# `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.
