{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "@tac", "homepage": "https://github.com/tapan-cargo-az/tac-express", "description": "TAC Express private registry — TAC-compliant primitives + composed components. Every entry has passed the Fourteen Laws gate (zero-radius, semantic tokens, paper-mono fonts, brutalist offset shadows). Use `npx shadcn@4.7.0 add @tac/` to install a TAC-compliant primitive in one command — no post-processing required.", "items": [ { "name": "button", "type": "registry:ui", "title": "TAC Button", "description": "Button primitive with brutalist offset shadow, premium focus bloom, lift-on-hover, and the TAC-specific `glow` variant. Replaces the bare shadcn 4.7.0 Button.", "dependencies": ["class-variance-authority"], "registryDependencies": ["@radix-ui/react-slot"], "files": [ { "path": "src/components/button.tsx", "type": "registry:ui" } ] }, { "name": "input", "type": "registry:ui", "title": "TAC Input", "description": "Input primitive at TAC's h-9 text-sm rhythm with tac-focus-premium ring. Override of the shadcn 4.7.0 base which uses h-8 text-xs.", "files": [ { "path": "src/components/primitives/input.tsx", "type": "registry:ui" } ] }, { "name": "label", "type": "registry:ui", "title": "TAC Label", "description": "Label primitive (Radix). TAC-tuned for the form-field rhythm.", "registryDependencies": ["@radix-ui/react-label"], "files": [ { "path": "src/components/primitives/label.tsx", "type": "registry:ui" } ] }, { "name": "textarea", "type": "registry:ui", "title": "TAC Textarea", "description": "Textarea at TAC's form-field rhythm with token-only colors and tac-focus-premium ring.", "files": [ { "path": "src/components/primitives/textarea.tsx", "type": "registry:ui" } ] }, { "name": "badge", "type": "registry:ui", "title": "TAC Badge", "description": "Badge primitive with the TAC status palette (ok/warn/err/info/violet) layered over shadcn's default/secondary/destructive set. Used by OpsBadge.", "dependencies": ["class-variance-authority"], "files": [ { "path": "src/components/primitives/badge.tsx", "type": "registry:ui" } ] }, { "name": "separator", "type": "registry:ui", "title": "TAC Separator", "description": "Radix Separator with the paper-line / sidebar-border token defaults.", "registryDependencies": ["@radix-ui/react-separator"], "files": [ { "path": "src/components/primitives/separator.tsx", "type": "registry:ui" } ] }, { "name": "card", "type": "registry:ui", "title": "TAC Card", "description": "Card primitive at zero-radius with semantic tokens. For Paper Ops Console card usage prefer OpsCard (composed/ops-console/ops-card.tsx) which adds the corner-tick + accent variants.", "files": [ { "path": "src/components/primitives/card.tsx", "type": "registry:ui" } ] }, { "name": "select", "type": "registry:ui", "title": "TAC Select", "description": "Radix Select with paper-scope portal content. Verified portal scope inheritance in .ops-console.", "registryDependencies": ["@radix-ui/react-select"], "files": [ { "path": "src/components/select.tsx", "type": "registry:ui" } ] }, { "name": "dialog", "type": "registry:ui", "title": "TAC Dialog", "description": "Radix Dialog with paper-scope portal content and overlay token.", "registryDependencies": ["@radix-ui/react-dialog"], "files": [ { "path": "src/components/primitives/dialog.tsx", "type": "registry:ui" } ] }, { "name": "sheet", "type": "registry:ui", "title": "TAC Sheet", "description": "Slide-out drawer using Radix Dialog with side variants. Paper-scope content.", "registryDependencies": ["@radix-ui/react-dialog"], "files": [ { "path": "src/components/primitives/sheet.tsx", "type": "registry:ui" } ] }, { "name": "popover", "type": "registry:ui", "title": "TAC Popover", "description": "Radix Popover with suppressHydrationWarning on the Trigger (Radix useId React 19 / Next 16 workaround) plus paper-scope content.", "registryDependencies": ["@radix-ui/react-popover"], "files": [ { "path": "src/components/primitives/popover.tsx", "type": "registry:ui" } ] }, { "name": "tabs", "type": "registry:ui", "title": "TAC Tabs", "description": "Radix Tabs with token-only colors.", "registryDependencies": ["@radix-ui/react-tabs"], "files": [ { "path": "src/components/primitives/tabs.tsx", "type": "registry:ui" } ] }, { "name": "table", "type": "registry:ui", "title": "TAC Table", "description": "Zero-radius table with paper-line hairlines and density tokens. For Paper Ops Console tables prefer OpsTable (composed/ops-console/ops-table.tsx).", "files": [ { "path": "src/components/primitives/table.tsx", "type": "registry:ui" } ] }, { "name": "calendar", "type": "registry:ui", "title": "TAC Calendar", "description": "react-day-picker calendar with the nav-z-index + months-relative DayPicker-layout fix that ships with TAC.", "dependencies": ["react-day-picker"], "files": [ { "path": "src/components/primitives/calendar.tsx", "type": "registry:ui" } ] } ] }