app/trips/new/ page.tsx actions/ tripPlanner.actions.ts tripPlanner.read.actions.ts components/ TripPlannerShell.tsx TripPlannerSidebar.tsx TripPlannerMain.tsx TripPlannerStepper.tsx TripPlannerSummary.tsx TripPlannerSchedulePreview.tsx TripPlannerCostPreview.tsx TripPlannerDock.tsx context/ TripPlannerContext.tsx types/ tripPlanner.types.ts
page.tsx
- server only
- loads bootstrap data
- passes into client shell
actions/
- sole authority for Prisma reads/writes
- create trip
- estimate helpers if persisted/server computed
- later revalidatePath
context/
- ephemeral planner state only
- current step
- stops
- hotel prefs
- preview mode
- selected city being edited
components/
- dumb UI
- sidebar = planner controls
- main = live projection
app/ └── trips/ ├── page.tsx ├── actions/ │ └── tripsLanding.actions.ts ├── components/ │ ├── TripsLandingSurface.tsx │ ├── TripsSectionRenderer.tsx │ └── sections/ │ ├── TripHeroSection.tsx │ ├── TripPathwaysSection.tsx │ ├── TripHowItWorksSection.tsx │ ├── TripFeaturedGroupTripsSection.tsx │ ├── TripFeaturedCitiesSection.tsx │ ├── TripFeaturedExperiencesSection.tsx │ ├── TripPlanYourTripSection.tsx │ ├── TripForPartnersSection.tsx │ ├── TripUpdatesSection.tsx │ └── TripFinalCTASection.tsx ├── hooks/ │ └── re-export existing builder hooks or import from canonical source └── types/ ├── tripsLanding.types.ts └── tripsLanding.registry.tsx