Move business logic out of App Router into module packages, add boundary validation scripts, and keep all routes as thin re-exports without changing URLs or API behavior. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| .. | ||
| README.md | ||
shared/layouts/
Purpose
Application chrome: portal shells, sidebars, public site layouts, page headers, auth gates composition.
Legacy source (not moved)
components/accounting/AccountingShell.tsxcomponents/beauty/BeautyPortalShell.tsx,PublicBeautyLayout.tsx,createPortalLayout.tsxcomponents/healthcare/HealthcarePortalShell.tsx,PublicHealthcareLayout.tsx,createPortalLayout.tsxcomponents/admin/AdminShell.tsxcomponents/ds/Page.tsx— PageHeader, EmptyState, LoadingState, ErrorStatecomponents/AuthGuard.tsx,SiteHeader.tsx
Planned contents (Phase 2)
PortalShell— parameterized sidebar/nav shellcreatePortalLayout()— single factory for all modulesPublicSiteLayout— marketing/booking site wrapperModuleGate— tenant + onboarding gate
Allowed dependencies
shared/ui/,shared/hooks/,shared/providers/shared/constants/(nav types only — nav data stays per module)
Forbidden dependencies
- Module page bodies, module API clients
Status
📁 Scaffold only — no files migrated in Phase 1.