155155│ ├── (app)/ # Authenticated route group
156156│ │ ├── layout.tsx # Auth guard, fetches profile, renders AppShell
157157│ │ └── [workspaceSlug]/
158- │ │ └── page.tsx # /[workspaceSlug] — workspace home (placeholder)
158+ │ │ ├── page.tsx # /[workspaceSlug] — workspace home (page list or empty state)
159+ │ │ └── [pageId]/page.tsx # /[workspaceSlug]/[pageId] — page with title + editor placeholder
159160│ └── api/
160161│ └── health/route.ts # Health check endpoint (DB connectivity)
161162├── components/
@@ -168,8 +169,10 @@ src/
168169│ │ ├── sidebar-context.tsx # React context for sidebar open/close state + ⌘+\ shortcut
169170│ │ ├── workspace-switcher.tsx # Dropdown listing all workspaces, create workspace trigger
170171│ │ ├── create-workspace-dialog.tsx # Dialog for creating a new workspace
171- │ │ ├── page-tree.tsx # Page list placeholder (functional in #28)
172+ │ │ ├── page-tree.tsx # Hierarchical page tree with CRUD, drag-and-drop, nest/unnest
172173│ │ └── user-menu.tsx # User dropdown with settings link + sign-out
174+ │ ├── page-title.tsx # Inline-editable page title (saves on blur/Enter)
175+ │ ├── workspace-home.tsx # Workspace home: page list or empty state with create CTA
173176│ ├── workspace-settings-form.tsx # Edit workspace name/slug, delete workspace
174177│ └── ui/ # shadcn/ui components (base-nova style, base-ui primitives)
175178│ ├── alert-dialog.tsx
214217│ │ ├── layout.tsx # App shell (sidebar + main content), passes userId
215218│ │ └── [workspaceSlug]/
216219│ │ ├── page.tsx # /[workspaceSlug] (workspace home)
217- │ │ ├── [pageId]/page.tsx # /[workspaceSlug]/[pageId] (editor) — planned
220+ │ │ ├── [pageId]/page.tsx # /[workspaceSlug]/[pageId] (page view + editor placeholder)
218221│ │ └── settings/
219222│ │ ├── page.tsx # /[workspaceSlug]/settings (name, slug, delete)
220223│ │ └── members/page.tsx # /[workspaceSlug]/settings/members — planned
0 commit comments