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>
31 lines
874 B
Markdown
31 lines
874 B
Markdown
# `shared/ui/`
|
|
|
|
## Purpose
|
|
|
|
Low-level, domain-agnostic UI atoms: buttons, inputs, badges, cards, dialogs, drawers, skeletons.
|
|
|
|
## Legacy source (not moved)
|
|
|
|
- Primary: `components/ds/` (Button, Input, Card, Badge, Dialog, Drawer, …)
|
|
- Marketing: `components/ui/` (legacy Button, Badge, Container, AppTile)
|
|
|
|
## Migration target
|
|
|
|
Consolidate `components/ds/` and deprecate `components/ui/` into this folder. DS `Button` should become the single button implementation (including `loading` prop).
|
|
|
|
## Allowed dependencies
|
|
|
|
- `shared/design-system/` (tokens)
|
|
- `shared/utils/` (`cn`)
|
|
- `shared/icons/`
|
|
- External: `class-variance-authority`, `lucide-react`, `react`
|
|
|
|
## Forbidden dependencies
|
|
|
|
- Any `modules/*` or `components/{accounting,beauty,healthcare}/*`
|
|
- Domain API clients
|
|
|
|
## Status
|
|
|
|
📁 Scaffold only — no files migrated in Phase 1.
|