{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "rocketvault", "homepage": "https://github.com/Snehal1112/rocketvault", "items": [ { "name": "style", "type": "registry:style", "title": "RocketVault Style", "description": "Design tokens, fonts and base layer for the RocketVault UI. Apply this before adding components.", "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react", "@fontsource-variable/noto-sans", "@fontsource-variable/jetbrains-mono" ], "devDependencies": [ "tw-animate-css", "shadcn" ], "registryDependencies": [ "utils" ], "files": [], "cssVars": { "theme": { "font-sans": "\"Noto Sans Variable\", sans-serif", "font-heading": "\"JetBrains Mono Variable\", monospace", "color-sidebar-ring": "var(--sidebar-ring)", "color-sidebar-border": "var(--sidebar-border)", "color-sidebar-accent-foreground": "var(--sidebar-accent-foreground)", "color-sidebar-accent": "var(--sidebar-accent)", "color-sidebar-primary-foreground": "var(--sidebar-primary-foreground)", "color-sidebar-primary": "var(--sidebar-primary)", "color-sidebar-foreground": "var(--sidebar-foreground)", "color-sidebar": "var(--sidebar)", "color-chart-5": "var(--chart-5)", "color-chart-4": "var(--chart-4)", "color-chart-3": "var(--chart-3)", "color-chart-2": "var(--chart-2)", "color-chart-1": "var(--chart-1)", "color-ring": "var(--ring)", "color-input": "var(--input)", "color-border": "var(--border)", "color-destructive": "var(--destructive)", "color-accent-foreground": "var(--accent-foreground)", "color-accent": "var(--accent)", "color-muted-foreground": "var(--muted-foreground)", "color-muted": "var(--muted)", "color-secondary-foreground": "var(--secondary-foreground)", "color-secondary": "var(--secondary)", "color-primary-foreground": "var(--primary-foreground)", "color-primary": "var(--primary)", "color-popover-foreground": "var(--popover-foreground)", "color-popover": "var(--popover)", "color-card-foreground": "var(--card-foreground)", "color-card": "var(--card)", "color-foreground": "var(--foreground)", "color-background": "var(--background)", "radius-sm": "calc(var(--radius) * 0.6)", "radius-md": "calc(var(--radius) * 0.8)", "radius-lg": "var(--radius)", "radius-xl": "calc(var(--radius) * 1.4)", "radius-2xl": "calc(var(--radius) * 1.8)", "radius-3xl": "calc(var(--radius) * 2.2)", "radius-4xl": "calc(var(--radius) * 2.6)" }, "light": { "background": "oklch(1 0 0)", "foreground": "oklch(0.148 0.004 228.8)", "card": "oklch(1 0 0)", "card-foreground": "oklch(0.148 0.004 228.8)", "popover": "oklch(1 0 0)", "popover-foreground": "oklch(0.148 0.004 228.8)", "primary": "oklch(0.508 0.118 165.612)", "primary-foreground": "oklch(0.979 0.021 166.113)", "secondary": "oklch(0.967 0.001 286.375)", "secondary-foreground": "oklch(0.21 0.006 285.885)", "muted": "oklch(0.963 0.002 197.1)", "muted-foreground": "oklch(0.56 0.021 213.5)", "accent": "oklch(0.963 0.002 197.1)", "accent-foreground": "oklch(0.218 0.008 223.9)", "destructive": "oklch(0.577 0.245 27.325)", "border": "oklch(0.925 0.005 214.3)", "input": "oklch(0.925 0.005 214.3)", "ring": "oklch(0.723 0.014 214.4)", "chart-1": "oklch(0.872 0.007 219.6)", "chart-2": "oklch(0.56 0.021 213.5)", "chart-3": "oklch(0.45 0.017 213.2)", "chart-4": "oklch(0.378 0.015 216)", "chart-5": "oklch(0.275 0.011 216.9)", "radius": "0.625rem", "sidebar": "oklch(0.987 0.002 197.1)", "sidebar-foreground": "oklch(0.148 0.004 228.8)", "sidebar-primary": "oklch(0.596 0.145 163.225)", "sidebar-primary-foreground": "oklch(0.979 0.021 166.113)", "sidebar-accent": "oklch(0.963 0.002 197.1)", "sidebar-accent-foreground": "oklch(0.218 0.008 223.9)", "sidebar-border": "oklch(0.925 0.005 214.3)", "sidebar-ring": "oklch(0.723 0.014 214.4)" }, "dark": { "background": "oklch(0.148 0.004 228.8)", "foreground": "oklch(0.987 0.002 197.1)", "card": "oklch(0.218 0.008 223.9)", "card-foreground": "oklch(0.987 0.002 197.1)", "popover": "oklch(0.218 0.008 223.9)", "popover-foreground": "oklch(0.987 0.002 197.1)", "primary": "oklch(0.432 0.095 166.913)", "primary-foreground": "oklch(0.979 0.021 166.113)", "secondary": "oklch(0.274 0.006 286.033)", "secondary-foreground": "oklch(0.985 0 0)", "muted": "oklch(0.275 0.011 216.9)", "muted-foreground": "oklch(0.723 0.014 214.4)", "accent": "oklch(0.275 0.011 216.9)", "accent-foreground": "oklch(0.987 0.002 197.1)", "destructive": "oklch(0.704 0.191 22.216)", "border": "oklch(1 0 0 / 10%)", "input": "oklch(1 0 0 / 15%)", "ring": "oklch(0.56 0.021 213.5)", "chart-1": "oklch(0.872 0.007 219.6)", "chart-2": "oklch(0.56 0.021 213.5)", "chart-3": "oklch(0.45 0.017 213.2)", "chart-4": "oklch(0.378 0.015 216)", "chart-5": "oklch(0.275 0.011 216.9)", "sidebar": "oklch(0.218 0.008 223.9)", "sidebar-foreground": "oklch(0.987 0.002 197.1)", "sidebar-primary": "oklch(0.696 0.17 162.48)", "sidebar-primary-foreground": "oklch(0.262 0.051 172.552)", "sidebar-accent": "oklch(0.275 0.011 216.9)", "sidebar-accent-foreground": "oklch(0.987 0.002 197.1)", "sidebar-border": "oklch(1 0 0 / 10%)", "sidebar-ring": "oklch(0.56 0.021 213.5)" } }, "css": { "@import \"tw-animate-css\"": {}, "@import \"shadcn/tailwind.css\"": {}, "@import \"@fontsource-variable/noto-sans\"": {}, "@import \"@fontsource-variable/jetbrains-mono\"": {}, "@custom-variant dark (&:is(.dark *))": {}, "@layer base": { "*": { "@apply border-border outline-ring/50": {} }, "body": { "@apply bg-background text-foreground": {} }, "button:not(:disabled), [role=\"button\"]:not(:disabled)": { "cursor": "pointer" }, "html": { "@apply font-sans": {} } } } }, { "name": "utils", "type": "registry:lib", "title": "Utils", "files": [ { "path": "src/lib/utils.ts", "type": "registry:lib" } ], "dependencies": [ "clsx", "tailwind-merge" ], "description": "The cn() class-name merge helper used by every component." }, { "name": "accordion", "type": "registry:ui", "title": "Accordion", "files": [ { "path": "src/components/ui/accordion.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "utils" ], "description": "A vertically stacked set of interactive headings that each reveal a section of content." }, { "name": "alert-dialog", "type": "registry:ui", "title": "Alert Dialog", "files": [ { "path": "src/components/ui/alert-dialog.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "button", "utils" ], "description": "A modal dialog that interrupts the user with an important message." }, { "name": "alert", "type": "registry:ui", "title": "Alert", "files": [ { "path": "src/components/ui/alert.tsx", "type": "registry:ui" } ], "dependencies": [ "class-variance-authority" ], "registryDependencies": [ "utils" ], "description": "Displays a callout for user attention." }, { "name": "aspect-ratio", "type": "registry:ui", "title": "Aspect Ratio", "files": [ { "path": "src/components/ui/aspect-ratio.tsx", "type": "registry:ui" } ], "registryDependencies": [ "utils" ], "description": "Displays content within a desired ratio." }, { "name": "attachment", "type": "registry:ui", "title": "Attachment", "files": [ { "path": "src/components/ui/attachment.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "button", "utils" ], "description": "Displays a file attachment with name, size and remove action." }, { "name": "avatar", "type": "registry:ui", "title": "Avatar", "files": [ { "path": "src/components/ui/avatar.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "An image element with a fallback for representing the user." }, { "name": "badge", "type": "registry:ui", "title": "Badge", "files": [ { "path": "src/components/ui/badge.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "utils" ], "description": "Displays a badge or a component that looks like a badge." }, { "name": "breadcrumb", "type": "registry:ui", "title": "Breadcrumb", "files": [ { "path": "src/components/ui/breadcrumb.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "utils" ], "description": "Displays the path to the current resource using a hierarchy of links." }, { "name": "bubble", "type": "registry:ui", "title": "Bubble", "files": [ { "path": "src/components/ui/bubble.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "utils" ], "description": "A chat message bubble." }, { "name": "button-group", "type": "registry:ui", "title": "Button Group", "files": [ { "path": "src/components/ui/button-group.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "separator", "utils" ], "description": "Groups related buttons together with shared borders." }, { "name": "button", "type": "registry:ui", "title": "Button", "files": [ { "path": "src/components/ui/button.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "utils" ], "description": "Displays a button or a component that looks like a button." }, { "name": "calendar", "type": "registry:ui", "title": "Calendar", "files": [ { "path": "src/components/ui/calendar.tsx", "type": "registry:ui" } ], "dependencies": [ "lucide-react", "react-day-picker" ], "registryDependencies": [ "button", "utils" ], "description": "A date field component that allows users to enter and edit dates." }, { "name": "card", "type": "registry:ui", "title": "Card", "files": [ { "path": "src/components/ui/card.tsx", "type": "registry:ui" } ], "registryDependencies": [ "utils" ], "description": "Displays a card with header, content and footer." }, { "name": "carousel", "type": "registry:ui", "title": "Carousel", "files": [ { "path": "src/components/ui/carousel.tsx", "type": "registry:ui" } ], "dependencies": [ "embla-carousel-react", "lucide-react" ], "registryDependencies": [ "button", "utils" ], "description": "A carousel with motion and swipe, built using Embla." }, { "name": "chart", "type": "registry:ui", "title": "Chart", "files": [ { "path": "src/components/ui/chart.tsx", "type": "registry:ui" } ], "dependencies": [ "recharts" ], "registryDependencies": [ "utils" ], "description": "Composable chart components built on Recharts." }, { "name": "checkbox", "type": "registry:ui", "title": "Checkbox", "files": [ { "path": "src/components/ui/checkbox.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "utils" ], "description": "A control that allows the user to toggle between checked and not checked." }, { "name": "collapsible", "type": "registry:ui", "title": "Collapsible", "files": [ { "path": "src/components/ui/collapsible.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "description": "An interactive component which expands and collapses a panel." }, { "name": "combobox", "type": "registry:ui", "title": "Combobox", "files": [ { "path": "src/components/ui/combobox.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "button", "input-group", "utils" ], "description": "Autocomplete input and command palette with a list of suggestions." }, { "name": "command", "type": "registry:ui", "title": "Command", "files": [ { "path": "src/components/ui/command.tsx", "type": "registry:ui" } ], "dependencies": [ "cmdk", "lucide-react" ], "registryDependencies": [ "dialog", "input-group", "utils" ], "description": "Fast, composable, unstyled command menu." }, { "name": "context-menu", "type": "registry:ui", "title": "Context Menu", "files": [ { "path": "src/components/ui/context-menu.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "utils" ], "description": "Displays a menu located at the pointer, triggered by a right click." }, { "name": "dialog", "type": "registry:ui", "title": "Dialog", "files": [ { "path": "src/components/ui/dialog.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "button", "utils" ], "description": "A window overlaid on the primary window, rendering the content underneath inert." }, { "name": "direction", "type": "registry:ui", "title": "Direction", "files": [ { "path": "src/components/ui/direction.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "description": "Provides text direction (LTR/RTL) to descendant components." }, { "name": "drawer", "type": "registry:ui", "title": "Drawer", "files": [ { "path": "src/components/ui/drawer.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "A drawer component that slides in from the edge of the screen." }, { "name": "dropdown-menu", "type": "registry:ui", "title": "Dropdown Menu", "files": [ { "path": "src/components/ui/dropdown-menu.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "utils" ], "description": "Displays a menu to the user, triggered by a button." }, { "name": "empty", "type": "registry:ui", "title": "Empty", "files": [ { "path": "src/components/ui/empty.tsx", "type": "registry:ui" } ], "dependencies": [ "class-variance-authority" ], "registryDependencies": [ "utils" ], "description": "Displays an empty state with icon, title and description." }, { "name": "field", "type": "registry:ui", "title": "Field", "files": [ { "path": "src/components/ui/field.tsx", "type": "registry:ui" } ], "dependencies": [ "class-variance-authority" ], "registryDependencies": [ "label", "separator", "utils" ], "description": "Form field wrapper providing label, description and error styling." }, { "name": "hover-card", "type": "registry:ui", "title": "Hover Card", "files": [ { "path": "src/components/ui/hover-card.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "For sighted users to preview content available behind a link." }, { "name": "input-group", "type": "registry:ui", "title": "Input Group", "files": [ { "path": "src/components/ui/input-group.tsx", "type": "registry:ui" } ], "dependencies": [ "class-variance-authority" ], "registryDependencies": [ "button", "input", "textarea", "utils" ], "description": "Groups an input with adjacent addons, icons or buttons." }, { "name": "input-otp", "type": "registry:ui", "title": "Input OTP", "files": [ { "path": "src/components/ui/input-otp.tsx", "type": "registry:ui" } ], "dependencies": [ "input-otp", "lucide-react" ], "registryDependencies": [ "utils" ], "description": "Accessible one-time password component with copy paste functionality." }, { "name": "input", "type": "registry:ui", "title": "Input", "files": [ { "path": "src/components/ui/input.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "Displays a form input field." }, { "name": "item", "type": "registry:ui", "title": "Item", "files": [ { "path": "src/components/ui/item.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "separator", "utils" ], "description": "A generic list item with media, content and actions." }, { "name": "kbd", "type": "registry:ui", "title": "Kbd", "files": [ { "path": "src/components/ui/kbd.tsx", "type": "registry:ui" } ], "registryDependencies": [ "utils" ], "description": "Displays a keyboard key or shortcut." }, { "name": "label", "type": "registry:ui", "title": "Label", "files": [ { "path": "src/components/ui/label.tsx", "type": "registry:ui" } ], "registryDependencies": [ "utils" ], "description": "Renders an accessible label associated with controls." }, { "name": "marker", "type": "registry:ui", "title": "Marker", "files": [ { "path": "src/components/ui/marker.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "utils" ], "description": "A visual marker or annotation indicator." }, { "name": "menubar", "type": "registry:ui", "title": "Menubar", "files": [ { "path": "src/components/ui/menubar.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "dropdown-menu", "utils" ], "description": "A visually persistent menu common in desktop applications." }, { "name": "message-scroller", "type": "registry:ui", "title": "Message Scroller", "files": [ { "path": "src/components/ui/message-scroller.tsx", "type": "registry:ui" } ], "dependencies": [ "@shadcn/react", "lucide-react" ], "registryDependencies": [ "button", "utils" ], "description": "Auto-scrolling container for a stream of messages." }, { "name": "message", "type": "registry:ui", "title": "Message", "files": [ { "path": "src/components/ui/message.tsx", "type": "registry:ui" } ], "registryDependencies": [ "utils" ], "description": "Displays a chat message with author and content." }, { "name": "native-select", "type": "registry:ui", "title": "Native Select", "files": [ { "path": "src/components/ui/native-select.tsx", "type": "registry:ui" } ], "dependencies": [ "lucide-react" ], "registryDependencies": [ "utils" ], "description": "A styled wrapper around the native select element." }, { "name": "navigation-menu", "type": "registry:ui", "title": "Navigation Menu", "files": [ { "path": "src/components/ui/navigation-menu.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react" ], "registryDependencies": [ "utils" ], "description": "A collection of links for navigating websites." }, { "name": "pagination", "type": "registry:ui", "title": "Pagination", "files": [ { "path": "src/components/ui/pagination.tsx", "type": "registry:ui" } ], "dependencies": [ "lucide-react" ], "registryDependencies": [ "button", "utils" ], "description": "Pagination with page navigation, next and previous links." }, { "name": "popover", "type": "registry:ui", "title": "Popover", "files": [ { "path": "src/components/ui/popover.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "Displays rich content in a portal, triggered by a button." }, { "name": "progress", "type": "registry:ui", "title": "Progress", "files": [ { "path": "src/components/ui/progress.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "Displays an indicator showing the completion progress of a task." }, { "name": "questionnaire", "type": "registry:ui", "title": "Questionnaire", "files": [ { "path": "src/components/ui/questionnaire.tsx", "type": "registry:ui" } ], "dependencies": [ "@shadcn/react", "lucide-react" ], "registryDependencies": [ "button", "utils" ], "description": "A multi-step question and answer flow." }, { "name": "radio-group", "type": "registry:ui", "title": "Radio Group", "files": [ { "path": "src/components/ui/radio-group.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "A set of checkable buttons where only one can be checked at a time." }, { "name": "resizable", "type": "registry:ui", "title": "Resizable", "files": [ { "path": "src/components/ui/resizable.tsx", "type": "registry:ui" } ], "dependencies": [ "react-resizable-panels" ], "registryDependencies": [ "utils" ], "description": "Accessible resizable panel groups and layouts." }, { "name": "scroll-area", "type": "registry:ui", "title": "Scroll Area", "files": [ { "path": "src/components/ui/scroll-area.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "Augments native scroll functionality for custom, cross-browser styling." }, { "name": "select", "type": "registry:ui", "title": "Select", "files": [ { "path": "src/components/ui/select.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "utils" ], "description": "Displays a list of options for the user to pick from." }, { "name": "separator", "type": "registry:ui", "title": "Separator", "files": [ { "path": "src/components/ui/separator.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "Visually or semantically separates content." }, { "name": "sheet", "type": "registry:ui", "title": "Sheet", "files": [ { "path": "src/components/ui/sheet.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "button", "utils" ], "description": "Extends the Dialog component to display content complementary to the main content." }, { "name": "sidebar", "type": "registry:ui", "title": "Sidebar", "files": [ { "path": "src/components/ui/sidebar.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react" ], "registryDependencies": [ "button", "input", "separator", "sheet", "skeleton", "tooltip", "use-mobile", "utils" ], "description": "A composable, themeable and customizable sidebar." }, { "name": "skeleton", "type": "registry:ui", "title": "Skeleton", "files": [ { "path": "src/components/ui/skeleton.tsx", "type": "registry:ui" } ], "registryDependencies": [ "utils" ], "description": "Use to show a placeholder while content is loading." }, { "name": "slider", "type": "registry:ui", "title": "Slider", "files": [ { "path": "src/components/ui/slider.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "An input where the user selects a value from within a given range." }, { "name": "spinner", "type": "registry:ui", "title": "Spinner", "files": [ { "path": "src/components/ui/spinner.tsx", "type": "registry:ui" } ], "dependencies": [ "lucide-react" ], "registryDependencies": [ "utils" ], "description": "An indeterminate loading indicator." }, { "name": "switch", "type": "registry:ui", "title": "Switch", "files": [ { "path": "src/components/ui/switch.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "A control that allows the user to toggle between checked and not checked." }, { "name": "table", "type": "registry:ui", "title": "Table", "files": [ { "path": "src/components/ui/table.tsx", "type": "registry:ui" } ], "registryDependencies": [ "utils" ], "description": "A responsive table component." }, { "name": "tabs", "type": "registry:ui", "title": "Tabs", "files": [ { "path": "src/components/ui/tabs.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "utils" ], "description": "A set of layered sections of content displayed one panel at a time." }, { "name": "textarea", "type": "registry:ui", "title": "Textarea", "files": [ { "path": "src/components/ui/textarea.tsx", "type": "registry:ui" } ], "registryDependencies": [ "utils" ], "description": "Displays a form textarea field." }, { "name": "toast", "type": "registry:ui", "title": "Toast", "files": [ { "path": "src/components/ui/toast.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "lucide-react" ], "registryDependencies": [ "button", "utils" ], "description": "A succinct message that is displayed temporarily." }, { "name": "toggle-group", "type": "registry:ui", "title": "Toggle Group", "files": [ { "path": "src/components/ui/toggle-group.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "toggle", "utils" ], "description": "A set of two-state buttons that can be toggled on or off." }, { "name": "toggle", "type": "registry:ui", "title": "Toggle", "files": [ { "path": "src/components/ui/toggle.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react", "class-variance-authority" ], "registryDependencies": [ "utils" ], "description": "A two-state button that can be either on or off." }, { "name": "tooltip", "type": "registry:ui", "title": "Tooltip", "files": [ { "path": "src/components/ui/tooltip.tsx", "type": "registry:ui" } ], "dependencies": [ "@base-ui/react" ], "registryDependencies": [ "utils" ], "description": "A popup that displays information related to an element on focus or hover." }, { "name": "use-mobile", "type": "registry:hook", "title": "Use Mobile", "files": [ { "path": "src/hooks/use-mobile.ts", "type": "registry:hook" } ], "description": "Hook that reports whether the viewport is at mobile width." } ] }