# `shared/layouts/` ## Purpose Application chrome: portal shells, sidebars, public site layouts, page headers, auth gates composition. ## Legacy source (not moved) - `components/accounting/AccountingShell.tsx` - `components/beauty/BeautyPortalShell.tsx`, `PublicBeautyLayout.tsx`, `createPortalLayout.tsx` - `components/healthcare/HealthcarePortalShell.tsx`, `PublicHealthcareLayout.tsx`, `createPortalLayout.tsx` - `components/admin/AdminShell.tsx` - `components/ds/Page.tsx` — PageHeader, EmptyState, LoadingState, ErrorState - `components/AuthGuard.tsx`, `SiteHeader.tsx` ## Planned contents (Phase 2) - `PortalShell` — parameterized sidebar/nav shell - `createPortalLayout()` — single factory for all modules - `PublicSiteLayout` — marketing/booking site wrapper - `ModuleGate` — 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.