{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "zak-design-kit", "homepage": "https://github.com/zakariamourid/zak-design-kit", "items": [ { "name": "tokens", "type": "registry:style", "title": "Design tokens", "description": "Four-layer token system: brand slot, semantic, shadcn map, scales. Edit only the brand slot.", "dependencies": [ "tailwind-merge", "clsx" ], "files": [ { "path": "registry/lib/tokens.css", "type": "registry:file", "target": "styles/tokens.css" } ] }, { "name": "utils", "type": "registry:lib", "title": "cn() helper", "description": "Tailwind-aware className merge helper.", "dependencies": [ "clsx", "tailwind-merge" ], "files": [ { "path": "registry/lib/utils.ts", "type": "registry:lib", "target": "lib/utils.ts" } ] }, { "name": "ActionMenu", "type": "registry:ui", "title": "ActionMenu", "description": "Primary action visible, secondary actions in a shared menu (also opens on right-click).", "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/Icon.json", "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/ActionMenu.tsx", "type": "registry:ui", "target": "components/ui/ActionMenu.tsx" } ] }, { "name": "Check", "type": "registry:ui", "title": "Check", "description": "Labelled checkbox with optional count, for filter groups.", "files": [ { "path": "registry/ui/Check.tsx", "type": "registry:ui", "target": "components/ui/Check.tsx" } ] }, { "name": "ConfirmDialog", "type": "registry:ui", "title": "ConfirmDialog", "description": "Confirmation dialog for destructive actions.", "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/button.json", "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/dialog.json" ], "files": [ { "path": "registry/ui/ConfirmDialog.tsx", "type": "registry:ui", "target": "components/ui/ConfirmDialog.tsx" } ] }, { "name": "FilterGroup", "type": "registry:ui", "title": "FilterGroup", "description": "Collapsible filter section with summary line.", "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/Icon.json" ], "files": [ { "path": "registry/ui/FilterGroup.tsx", "type": "registry:ui", "target": "components/ui/FilterGroup.tsx" } ] }, { "name": "Icon", "type": "registry:ui", "title": "Icon", "description": "Named SVG icon set. Use instead of emojis.", "files": [ { "path": "registry/ui/Icon.tsx", "type": "registry:ui", "target": "components/ui/Icon.tsx" } ] }, { "name": "Pill", "type": "registry:ui", "title": "Pill", "description": "Small tonal pill for inline status.", "files": [ { "path": "registry/ui/Pill.tsx", "type": "registry:ui", "target": "components/ui/Pill.tsx" } ] }, { "name": "Switch", "type": "registry:ui", "title": "Switch", "description": "Binary toggle control.", "files": [ { "path": "registry/ui/Switch.tsx", "type": "registry:ui", "target": "components/ui/Switch.tsx" } ] }, { "name": "Toast", "type": "registry:ui", "title": "Toast", "description": "Toast provider and useToast hook over sonner.", "dependencies": [ "sonner" ], "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/sonner.json" ], "files": [ { "path": "registry/ui/Toast.tsx", "type": "registry:ui", "target": "components/ui/Toast.tsx" } ] }, { "name": "badge", "type": "registry:ui", "title": "badge", "description": "Status and metadata badge.", "dependencies": [ "class-variance-authority", "radix-ui" ], "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/badge.tsx", "type": "registry:ui", "target": "components/ui/badge.tsx" } ] }, { "name": "button", "type": "registry:ui", "title": "button", "description": "Button with primary, secondary, outline, ghost and destructive variants.", "dependencies": [ "class-variance-authority", "radix-ui" ], "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/button.tsx", "type": "registry:ui", "target": "components/ui/button.tsx" } ] }, { "name": "card", "type": "registry:ui", "title": "card", "description": "Card container. Border or shadow, never both.", "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/card.tsx", "type": "registry:ui", "target": "components/ui/card.tsx" } ] }, { "name": "dialog", "type": "registry:ui", "title": "dialog", "description": "Modal dialog with focus trap and restore.", "dependencies": [ "lucide-react", "radix-ui" ], "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/button.json", "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/dialog.tsx", "type": "registry:ui", "target": "components/ui/dialog.tsx" } ] }, { "name": "input", "type": "registry:ui", "title": "input", "description": "Text input with focus ring and error linkage.", "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/input.tsx", "type": "registry:ui", "target": "components/ui/input.tsx" } ] }, { "name": "popover", "type": "registry:ui", "title": "popover", "description": "Anchored popover built on Radix.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/popover.tsx", "type": "registry:ui", "target": "components/ui/popover.tsx" } ] }, { "name": "select", "type": "registry:ui", "title": "select", "description": "Accessible select built on Radix.", "dependencies": [ "lucide-react", "radix-ui" ], "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/select.tsx", "type": "registry:ui", "target": "components/ui/select.tsx" } ] }, { "name": "separator", "type": "registry:ui", "title": "separator", "description": "Horizontal or vertical rule.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/separator.tsx", "type": "registry:ui", "target": "components/ui/separator.tsx" } ] }, { "name": "skeleton", "type": "registry:ui", "title": "skeleton", "description": "Loading placeholder.", "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/skeleton.tsx", "type": "registry:ui", "target": "components/ui/skeleton.tsx" } ] }, { "name": "sonner", "type": "registry:ui", "title": "sonner", "description": "Toaster mount, theme-aware.", "dependencies": [ "lucide-react", "next-themes", "sonner" ], "files": [ { "path": "registry/ui/sonner.tsx", "type": "registry:ui", "target": "components/ui/sonner.tsx" } ] }, { "name": "textarea", "type": "registry:ui", "title": "textarea", "description": "Multi-line text input.", "registryDependencies": [ "https://raw.githubusercontent.com/zakariamourid/zak-design-kit/main/r/utils.json" ], "files": [ { "path": "registry/ui/textarea.tsx", "type": "registry:ui", "target": "components/ui/textarea.tsx" } ] } ] }