{ "$schema": "./component-registry.schema.json", "version": "2.0.0", "categories": { "ui": { "name": "UI Components", "description": "Core building blocks - buttons, forms, cards, dialogs", "subcategories": { "form": { "name": "Form", "description": "Form input components - buttons, inputs, selects" }, "data-display": { "name": "Data Display", "description": "Components for displaying data - cards, badges, tables" }, "feedback": { "name": "Feedback", "description": "User feedback components - alerts, toasts, tooltips" }, "overlay": { "name": "Overlay", "description": "Overlay components - dialogs, dropdowns, tabs" }, "layout": { "name": "Layout", "description": "Layout components - separators, dividers" }, "primitives": { "name": "Primitives", "description": "Fundamental components used across the system" }, "content": { "name": "Content", "description": "Content display components" }, "marketing": { "name": "Marketing", "description": "Marketing and landing page components" } } }, "layout": { "name": "Layout Components", "description": "Page structure components - header, footer, navigation" }, "patterns": { "name": "Patterns", "description": "Reusable form and UI patterns" }, "hero": { "name": "Hero", "description": "Flexible hero section component" } }, "utilities": { "cn": { "name": "cn utility", "description": "Tailwind CSS class merging utility", "files": ["src/lib/cn.ts"], "npm": ["clsx", "tailwind-merge"] } }, "components": { "button": { "name": "Button", "category": "ui", "subcategory": "form", "files": [ "src/components/ui/form/Button/Button.astro", "src/components/ui/form/Button/Button.tsx", "src/components/ui/form/Button/button.variants.ts", "src/components/ui/form/Button/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "input": { "name": "Input", "category": "ui", "subcategory": "form", "files": [ "src/components/ui/form/Input/Input.astro", "src/components/ui/form/Input/Input.tsx", "src/components/ui/form/Input/input.variants.ts", "src/components/ui/form/Input/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "textarea": { "name": "Textarea", "category": "ui", "subcategory": "form", "files": [ "src/components/ui/form/Textarea/Textarea.astro", "src/components/ui/form/Textarea/Textarea.tsx", "src/components/ui/form/Textarea/textarea.variants.ts", "src/components/ui/form/Textarea/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "select": { "name": "Select", "category": "ui", "subcategory": "form", "files": [ "src/components/ui/form/Select/Select.astro", "src/components/ui/form/Select/Select.tsx", "src/components/ui/form/Select/select.variants.ts", "src/components/ui/form/Select/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "checkbox": { "name": "Checkbox", "category": "ui", "subcategory": "form", "files": [ "src/components/ui/form/Checkbox/Checkbox.astro", "src/components/ui/form/Checkbox/Checkbox.tsx", "src/components/ui/form/Checkbox/checkbox.variants.ts", "src/components/ui/form/Checkbox/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "radio": { "name": "Radio", "category": "ui", "subcategory": "form", "files": [ "src/components/ui/form/Radio/Radio.astro", "src/components/ui/form/Radio/Radio.tsx", "src/components/ui/form/Radio/radio.variants.ts", "src/components/ui/form/Radio/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "switch": { "name": "Switch", "category": "ui", "subcategory": "form", "files": [ "src/components/ui/form/Switch/Switch.astro", "src/components/ui/form/Switch/Switch.tsx", "src/components/ui/form/Switch/switch.variants.ts", "src/components/ui/form/Switch/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "card": { "name": "Card", "category": "ui", "subcategory": "data-display", "files": [ "src/components/ui/data-display/Card/Card.astro", "src/components/ui/data-display/Card/Card.tsx", "src/components/ui/data-display/Card/card.variants.ts", "src/components/ui/data-display/Card/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "badge": { "name": "Badge", "category": "ui", "subcategory": "data-display", "files": [ "src/components/ui/data-display/Badge/Badge.astro", "src/components/ui/data-display/Badge/badge.variants.ts", "src/components/ui/data-display/Badge/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "avatar": { "name": "Avatar", "category": "ui", "subcategory": "data-display", "files": [ "src/components/ui/data-display/Avatar/Avatar.astro", "src/components/ui/data-display/Avatar/avatar.variants.ts", "src/components/ui/data-display/Avatar/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "avatar-group": { "name": "AvatarGroup", "category": "ui", "subcategory": "data-display", "files": [ "src/components/ui/data-display/AvatarGroup/AvatarGroup.astro", "src/components/ui/data-display/AvatarGroup/index.ts" ], "dependencies": { "utilities": ["cn"], "components": ["avatar"] }, "premium": false }, "table": { "name": "Table", "category": "ui", "subcategory": "data-display", "files": [ "src/components/ui/data-display/Table/Table.astro", "src/components/ui/data-display/Table/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "pagination": { "name": "Pagination", "category": "ui", "subcategory": "data-display", "files": [ "src/components/ui/data-display/Pagination/Pagination.astro", "src/components/ui/data-display/Pagination/pagination.variants.ts", "src/components/ui/data-display/Pagination/index.ts" ], "dependencies": { "utilities": ["cn"], "components": ["icon"] }, "premium": false }, "progress": { "name": "Progress", "category": "ui", "subcategory": "data-display", "files": [ "src/components/ui/data-display/Progress/Progress.astro", "src/components/ui/data-display/Progress/progress.variants.ts", "src/components/ui/data-display/Progress/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "skeleton": { "name": "Skeleton", "category": "ui", "subcategory": "data-display", "files": [ "src/components/ui/data-display/Skeleton/Skeleton.astro", "src/components/ui/data-display/Skeleton/skeleton.variants.ts", "src/components/ui/data-display/Skeleton/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "alert": { "name": "Alert", "category": "ui", "subcategory": "feedback", "files": [ "src/components/ui/feedback/Alert/Alert.astro", "src/components/ui/feedback/Alert/alert.variants.ts", "src/components/ui/feedback/Alert/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "toast": { "name": "Toast", "category": "ui", "subcategory": "feedback", "files": [ "src/components/ui/feedback/Toast/Toast.astro", "src/components/ui/feedback/Toast/Toast.tsx", "src/components/ui/feedback/Toast/ToastDemo.tsx", "src/components/ui/feedback/Toast/toast.variants.ts", "src/components/ui/feedback/Toast/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "tooltip": { "name": "Tooltip", "category": "ui", "subcategory": "feedback", "files": [ "src/components/ui/feedback/Tooltip/Tooltip.astro", "src/components/ui/feedback/Tooltip/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "dialog": { "name": "Dialog", "category": "ui", "subcategory": "overlay", "files": [ "src/components/ui/overlay/Dialog/Dialog.astro", "src/components/ui/overlay/Dialog/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "dropdown": { "name": "Dropdown", "category": "ui", "subcategory": "overlay", "files": [ "src/components/ui/overlay/Dropdown/Dropdown.astro", "src/components/ui/overlay/Dropdown/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "tabs": { "name": "Tabs", "category": "ui", "subcategory": "overlay", "files": [ "src/components/ui/overlay/Tabs/Tabs.astro", "src/components/ui/overlay/Tabs/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "vertical-tabs": { "name": "VerticalTabs", "category": "ui", "subcategory": "overlay", "files": [ "src/components/ui/overlay/VerticalTabs/VerticalTabs.astro", "src/components/ui/overlay/VerticalTabs/VerticalTabs.tsx", "src/components/ui/overlay/VerticalTabs/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "accordion": { "name": "Accordion", "category": "ui", "subcategory": "overlay", "files": [ "src/components/ui/overlay/Accordion/Accordion.astro", "src/components/ui/overlay/Accordion/accordion.variants.ts", "src/components/ui/overlay/Accordion/index.ts" ], "dependencies": { "utilities": ["cn"], "components": ["icon"] }, "premium": false }, "separator": { "name": "Separator", "category": "ui", "subcategory": "layout", "files": [ "src/components/ui/layout/Separator/Separator.astro", "src/components/ui/layout/Separator/separator.variants.ts", "src/components/ui/layout/Separator/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "icon": { "name": "Icon", "category": "ui", "subcategory": "primitives", "files": [ "src/components/ui/primitives/Icon/Icon.astro", "src/components/ui/primitives/Icon/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "code-block": { "name": "CodeBlock", "category": "ui", "subcategory": "content", "files": [ "src/components/ui/content/CodeBlock/CodeBlock.astro", "src/components/ui/content/CodeBlock/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "logo": { "name": "Logo", "category": "ui", "subcategory": "marketing", "files": [ "src/components/ui/marketing/Logo/Logo.astro", "src/components/ui/marketing/Logo/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "cta": { "name": "CTA", "category": "ui", "subcategory": "marketing", "files": [ "src/components/ui/marketing/CTA/CTA.astro", "src/components/ui/marketing/CTA/index.ts" ], "dependencies": { "utilities": ["cn"], "components": ["logo"] }, "premium": false }, "npm-copy-button": { "name": "NpmCopyButton", "category": "ui", "subcategory": "marketing", "files": [ "src/components/ui/marketing/NpmCopyButton/NpmCopyButton.astro", "src/components/ui/marketing/NpmCopyButton/index.ts" ], "dependencies": { "utilities": ["cn"], "components": ["icon"] }, "premium": false }, "social-proof": { "name": "SocialProof", "category": "ui", "subcategory": "marketing", "files": [ "src/components/ui/marketing/SocialProof/SocialProof.astro", "src/components/ui/marketing/SocialProof/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "terminal-demo": { "name": "TerminalDemo", "category": "ui", "subcategory": "marketing", "files": [ "src/components/ui/marketing/TerminalDemo/TerminalDemo.tsx", "src/components/ui/marketing/TerminalDemo/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "contact-form": { "name": "ContactForm", "category": "patterns", "files": ["src/components/patterns/ContactForm.astro"], "dependencies": { "utilities": ["cn"], "components": ["input", "textarea", "button"] }, "premium": false }, "newsletter-form": { "name": "NewsletterForm", "category": "patterns", "files": ["src/components/patterns/NewsletterForm.astro"], "dependencies": { "utilities": ["cn"], "components": ["input", "button"] }, "premium": false }, "form-field": { "name": "FormField", "category": "patterns", "files": ["src/components/patterns/FormField.astro"], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "search-input": { "name": "SearchInput", "category": "patterns", "files": ["src/components/patterns/SearchInput.astro"], "dependencies": { "utilities": ["cn"], "components": ["input"] }, "premium": false }, "password-input": { "name": "PasswordInput", "category": "patterns", "files": ["src/components/patterns/PasswordInput.astro"], "dependencies": { "utilities": ["cn"], "components": ["input", "icon"] }, "premium": false }, "stat-card": { "name": "StatCard", "category": "patterns", "files": ["src/components/patterns/StatCard.astro"], "dependencies": { "utilities": ["cn"], "components": ["card", "icon"] }, "premium": false }, "empty-state": { "name": "EmptyState", "category": "patterns", "files": ["src/components/patterns/EmptyState.astro"], "dependencies": { "utilities": ["cn"], "components": ["icon", "button"] }, "premium": false }, "hero": { "name": "Hero", "category": "hero", "files": [ "src/components/hero/Hero.astro", "src/components/hero/hero.variants.ts", "src/components/hero/index.ts" ], "dependencies": { "utilities": ["cn"], "components": [] }, "premium": false }, "header": { "name": "Header", "category": "layout", "files": [ "src/components/layout/Header.astro", "src/components/layout/header.variants.ts" ], "dependencies": { "utilities": ["cn"], "components": ["button", "icon", "logo"] }, "premium": false }, "footer": { "name": "Footer", "category": "layout", "files": [ "src/components/layout/Footer.astro", "src/components/layout/footer.variants.ts" ], "dependencies": { "utilities": ["cn"], "components": ["icon", "logo"] }, "premium": false } } }