@icomponents/react
v0.1.1
Published
Кит компонентов для веба: shadcn по форме на Base UI, оболочка, темизация, контракт testid
Readme
⚠️ Ядро шаблона. В продукте этот пакет перезаписывается целиком (
scripts/sync-core.sh): локальная правка здесь будет затёрта следующим синком. Расширяй через швы (каталог прав, список шрифтов, резолвер), а полезное — портируй в шаблон, чтобы это получили все продукты. Политика и процедура:docs/engineering/core-modules.md.
@stack/ui
The design system: shared shadcn-based primitives plus the admin ("Evoca") theme components and the app shell, consumed by every UI slice and apps/web.
What it is / responsibility
An infra/presentation package. It holds the shadcn/Radix UI primitives, the higher-level admin components (status pill / detail card / KPI tile) built on semantic theme tokens, the layout shell (sidebar / header / nav), React context providers (theme/font/layout/direction/search), hooks, and low-level utils. No feature domain and no server code — pure client building blocks. Shape: exports: "./*" maps directly onto src/*, so there is no barrel; each module is imported by its subpath.
Public surface (package.json exports = ./* → src/*)
Imported by path, e.g.:
@stack/ui/lib/utils—cn,sleep,getPageNumbers,getDisplayNameInitials.@stack/ui/components/status-badge—StatusBadge+StatusTone(semantic tones: success/info/neutral/warning/danger/muted).@stack/ui/components/detail-card—DetailCard,DetailRow.@stack/ui/components/stat-tile—StatTile.@stack/ui/components/ui/*— shadcn primitives (button,dialog,table,form,select,sidebar,sonner, …).@stack/ui/components/layout/*—header,main,app-sidebar,nav-*.@stack/ui/context/*—theme-provider,font-provider,layout-provider,direction-provider,search-provider.@stack/ui/components/data-table/*,@stack/ui/hooks/*.
Structure (src/)
components/ui/— shadcn/Radix primitives.components/— admin composites (status-badge,detail-card,stat-tile,data-table/,command-menu,confirm-dialog,password-input, …).components/layout/— the app shell (sidebar/header/nav).context/,hooks/,config/fonts,assets/custom/(layout/theme icons),lib/(utils,cookies,format-cell,handle-server-error).
Depends on
@radix-ui/*, class-variance-authority, clsx, tailwind-merge, cmdk, lucide-react, date-fns, sonner, react-hook-form, input-otp, react-day-picker, react-top-loading-bar, tw-animate-css; peer: react, react-dom, @tanstack/react-router, @tanstack/react-table.
Consumed by / how to use
Imported as @stack/ui/<path> by every UI-bearing slice (account, audit, roles-matrix, tenants, tenant-users, token-inspector) and by apps/web. Tailwind theme tokens (success/warning/destructive/primary/…) are defined by the consuming app; these components only reference them.
