{ "$schema": "./schema.json", "name": "vibe-ui", "version": "0.1.0", "styles": ["minimal", "neubrutalism"], "items": [ { "name": "button", "type": "registry:ui", "description": "A button component with multiple variants and sizes", "files": [ { "path": "ui/types/button.ts", "type": "type" }, { "path": "ui/{{style}}/button.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-slot", "class-variance-authority"], "registryDependencies": [] }, { "name": "card", "type": "registry:ui", "description": "A card component for displaying content", "files": [ { "path": "ui/types/card.ts", "type": "type" }, { "path": "ui/{{style}}/card.tsx", "type": "component" } ], "dependencies": [], "registryDependencies": [] }, { "name": "input", "type": "registry:ui", "description": "A text input component", "files": [ { "path": "ui/types/input.ts", "type": "type" }, { "path": "ui/{{style}}/input.tsx", "type": "component" } ], "dependencies": [], "registryDependencies": [] }, { "name": "label", "type": "registry:ui", "description": "A label component for form elements", "files": [ { "path": "ui/types/label.ts", "type": "type" }, { "path": "ui/{{style}}/label.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-label", "class-variance-authority"], "registryDependencies": [] }, { "name": "textarea", "type": "registry:ui", "description": "A multi-line text input component", "files": [ { "path": "ui/types/textarea.ts", "type": "type" }, { "path": "ui/{{style}}/textarea.tsx", "type": "component" } ], "dependencies": [], "registryDependencies": [] }, { "name": "checkbox", "type": "registry:ui", "description": "A checkbox component for toggle options", "files": [ { "path": "ui/types/checkbox.ts", "type": "type" }, { "path": "ui/{{style}}/checkbox.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-checkbox"], "registryDependencies": [] }, { "name": "switch", "type": "registry:ui", "description": "A toggle switch component", "files": [ { "path": "ui/types/switch.ts", "type": "type" }, { "path": "ui/{{style}}/switch.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-switch"], "registryDependencies": [] }, { "name": "select", "type": "registry:ui", "description": "A dropdown select component", "files": [ { "path": "ui/types/select.ts", "type": "type" }, { "path": "ui/{{style}}/select.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-select"], "registryDependencies": [] }, { "name": "badge", "type": "registry:ui", "description": "A badge component for status indicators", "files": [ { "path": "ui/types/badge.ts", "type": "type" }, { "path": "ui/{{style}}/badge.tsx", "type": "component" } ], "dependencies": ["class-variance-authority"], "registryDependencies": [] }, { "name": "alert", "type": "registry:ui", "description": "An alert component for notifications", "files": [ { "path": "ui/types/alert.ts", "type": "type" }, { "path": "ui/{{style}}/alert.tsx", "type": "component" } ], "dependencies": ["class-variance-authority"], "registryDependencies": [] }, { "name": "avatar", "type": "registry:ui", "description": "An avatar component for user profile images", "files": [ { "path": "ui/types/avatar.ts", "type": "type" }, { "path": "ui/{{style}}/avatar.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-avatar"], "registryDependencies": [] }, { "name": "separator", "type": "registry:ui", "description": "A separator component for dividing content", "files": [ { "path": "ui/types/separator.ts", "type": "type" }, { "path": "ui/{{style}}/separator.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-separator"], "registryDependencies": [] }, { "name": "skeleton", "type": "registry:ui", "description": "A skeleton loading component", "files": [ { "path": "ui/types/skeleton.ts", "type": "type" }, { "path": "ui/{{style}}/skeleton.tsx", "type": "component" } ], "dependencies": [], "registryDependencies": [] }, { "name": "dialog", "type": "registry:ui", "description": "A modal dialog component", "files": [ { "path": "ui/types/dialog.ts", "type": "type" }, { "path": "ui/{{style}}/dialog.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-dialog"], "registryDependencies": ["button"] }, { "name": "dropdown-menu", "type": "registry:ui", "description": "A dropdown menu component", "files": [ { "path": "ui/types/dropdown-menu.ts", "type": "type" }, { "path": "ui/{{style}}/dropdown-menu.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-dropdown-menu"], "registryDependencies": [] }, { "name": "tabs", "type": "registry:ui", "description": "A tabs component for tabbed content", "files": [ { "path": "ui/types/tabs.ts", "type": "type" }, { "path": "ui/{{style}}/tabs.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-tabs"], "registryDependencies": [] }, { "name": "tooltip", "type": "registry:ui", "description": "A tooltip component for additional information", "files": [ { "path": "ui/types/tooltip.ts", "type": "type" }, { "path": "ui/{{style}}/tooltip.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-tooltip"], "registryDependencies": [] }, { "name": "accordion", "type": "registry:ui", "description": "A set of vertically stacked expandable sections", "files": [ { "path": "ui/types/accordion.ts", "type": "type" }, { "path": "ui/{{style}}/accordion.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-accordion"], "registryDependencies": [] }, { "name": "table", "type": "registry:ui", "description": "A responsive table component with header, body, and footer", "files": [ { "path": "ui/types/table.ts", "type": "type" }, { "path": "ui/{{style}}/table.tsx", "type": "component" } ], "dependencies": [], "registryDependencies": [] }, { "name": "progress", "type": "registry:ui", "description": "A progress bar indicating completion status", "files": [ { "path": "ui/types/progress.ts", "type": "type" }, { "path": "ui/{{style}}/progress.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-progress"], "registryDependencies": [] }, { "name": "slider", "type": "registry:ui", "description": "A slider input for selecting a value from a range", "files": [ { "path": "ui/types/slider.ts", "type": "type" }, { "path": "ui/{{style}}/slider.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-slider"], "registryDependencies": [] }, { "name": "radio-group", "type": "registry:ui", "description": "A group of radio buttons for selecting one option", "files": [ { "path": "ui/types/radio-group.ts", "type": "type" }, { "path": "ui/{{style}}/radio-group.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-radio-group"], "registryDependencies": [] }, { "name": "popover", "type": "registry:ui", "description": "A floating panel for displaying content on demand", "files": [ { "path": "ui/types/popover.ts", "type": "type" }, { "path": "ui/{{style}}/popover.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-popover"], "registryDependencies": [] }, { "name": "sheet", "type": "registry:ui", "description": "A slide-out panel from any edge of the screen", "files": [ { "path": "ui/types/sheet.ts", "type": "type" }, { "path": "ui/{{style}}/sheet.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-dialog", "class-variance-authority"], "registryDependencies": [] }, { "name": "scroll-area", "type": "registry:ui", "description": "A scrollable area with custom scrollbars", "files": [ { "path": "ui/types/scroll-area.ts", "type": "type" }, { "path": "ui/{{style}}/scroll-area.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-scroll-area"], "registryDependencies": [] }, { "name": "collapsible", "type": "registry:ui", "description": "A component that can be expanded or collapsed", "files": [ { "path": "ui/types/collapsible.ts", "type": "type" }, { "path": "ui/{{style}}/collapsible.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-collapsible"], "registryDependencies": [] }, { "name": "alert-dialog", "type": "registry:ui", "description": "A modal dialog for confirmations and alerts", "files": [ { "path": "ui/types/alert-dialog.ts", "type": "type" }, { "path": "ui/{{style}}/alert-dialog.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-alert-dialog"], "registryDependencies": ["button"] }, { "name": "breadcrumb", "type": "registry:ui", "description": "A navigation component showing the current page location", "files": [ { "path": "ui/types/breadcrumb.ts", "type": "type" }, { "path": "ui/{{style}}/breadcrumb.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-slot"], "registryDependencies": [] }, { "name": "pagination", "type": "registry:ui", "description": "A pagination component for navigating pages", "files": [ { "path": "ui/types/pagination.ts", "type": "type" }, { "path": "ui/{{style}}/pagination.tsx", "type": "component" } ], "dependencies": [], "registryDependencies": ["button"] }, { "name": "toggle", "type": "registry:ui", "description": "A two-state button that can be on or off", "files": [ { "path": "ui/types/toggle.ts", "type": "type" }, { "path": "ui/{{style}}/toggle.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-toggle", "class-variance-authority"], "registryDependencies": [] }, { "name": "toggle-group", "type": "registry:ui", "description": "A group of toggle buttons where only one can be active", "files": [ { "path": "ui/types/toggle-group.ts", "type": "type" }, { "path": "ui/{{style}}/toggle-group.tsx", "type": "component" } ], "dependencies": [ "@radix-ui/react-toggle-group", "class-variance-authority" ], "registryDependencies": ["toggle"] }, { "name": "aspect-ratio", "type": "registry:ui", "description": "Display content within a desired aspect ratio", "files": [ { "path": "ui/types/aspect-ratio.ts", "type": "type" }, { "path": "ui/{{style}}/aspect-ratio.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-aspect-ratio"], "registryDependencies": [] }, { "name": "hover-card", "type": "registry:ui", "description": "Preview content available behind a link", "files": [ { "path": "ui/types/hover-card.ts", "type": "type" }, { "path": "ui/{{style}}/hover-card.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-hover-card"], "registryDependencies": [] }, { "name": "context-menu", "type": "registry:ui", "description": "A menu that appears on right-click", "files": [ { "path": "ui/types/context-menu.ts", "type": "type" }, { "path": "ui/{{style}}/context-menu.tsx", "type": "component" } ], "dependencies": ["@radix-ui/react-context-menu"], "registryDependencies": [] }, { "name": "input-otp", "type": "registry:ui", "description": "One-time password input for verification codes", "files": [ { "path": "ui/types/input-otp.ts", "type": "type" }, { "path": "ui/{{style}}/input-otp.tsx", "type": "component" } ], "dependencies": ["input-otp"], "registryDependencies": [] }, { "name": "drawer", "type": "registry:ui", "description": "A mobile-friendly bottom sheet component", "files": [ { "path": "ui/types/drawer.ts", "type": "type" }, { "path": "ui/{{style}}/drawer.tsx", "type": "component" } ], "dependencies": ["vaul"], "registryDependencies": [] }, { "name": "resizable", "type": "registry:ui", "description": "Split-pane resizable panel layouts", "files": [ { "path": "ui/types/resizable.ts", "type": "type" }, { "path": "ui/{{style}}/resizable.tsx", "type": "component" } ], "dependencies": ["react-resizable-panels"], "registryDependencies": [] }, { "name": "spinner", "type": "registry:ui", "description": "A loading spinner indicator with size variants", "files": [ { "path": "ui/types/spinner.ts", "type": "type" }, { "path": "ui/{{style}}/spinner.tsx", "type": "component" } ], "dependencies": ["class-variance-authority"], "registryDependencies": [] }, { "name": "kbd", "type": "registry:ui", "description": "A keyboard key indicator for displaying shortcuts", "files": [ { "path": "ui/types/kbd.ts", "type": "type" }, { "path": "ui/{{style}}/kbd.tsx", "type": "component" } ], "dependencies": ["class-variance-authority"], "registryDependencies": [] } ] }