{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "Twin:te Design System", "homepage": "https://v0-twinte-design-system.vercel.app", "items": [ { "name": "theme", "type": "registry:theme", "title": "Twin:te Neumorphic Theme", "description": "Neumorphic design system theme with Twin:te colors (#00c0c0 primary, #eff1f6 base) and soft shadow tokens", "cssVars": { "light": { "background": "oklch(0.96 0.007 268.5)", "foreground": "oklch(0.52 0.021 258.4)", "card": "oklch(0.96 0.007 268.5)", "card-foreground": "oklch(0.52 0.021 258.4)", "popover": "oklch(0.96 0.007 268.5)", "popover-foreground": "oklch(0.52 0.021 258.4)", "primary": "oklch(0.73 0.125 194.8)", "primary-foreground": "oklch(1.0 0 0)", "secondary": "oklch(0.66 0.014 216.0)", "secondary-foreground": "oklch(1.0 0 0)", "muted": "oklch(0.92 0.012 240.1)", "muted-foreground": "oklch(0.64 0.017 235.6)", "accent": "oklch(0.90 0.050 194.8 / 0.6)", "accent-foreground": "oklch(0.52 0.021 258.4)", "destructive": "oklch(0.72 0.136 9.5)", "destructive-foreground": "oklch(1.0 0 0)", "border": "oklch(0.87 0.021 232.3)", "input": "oklch(0.87 0.021 232.3)", "ring": "oklch(0.73 0.125 194.8)", "chart-1": "oklch(0.73 0.125 194.8)", "chart-2": "oklch(0.66 0.014 216.0)", "chart-3": "oklch(0.72 0.136 9.5)", "chart-4": "oklch(0.64 0.017 235.6)", "chart-5": "oklch(0.52 0.021 258.4)", "sidebar": "oklch(0.92 0.012 240.1)", "sidebar-foreground": "oklch(0.52 0.021 258.4)", "sidebar-primary": "oklch(0.73 0.125 194.8)", "sidebar-primary-foreground": "oklch(1.0 0 0)", "sidebar-accent": "oklch(0.90 0.050 194.8 / 0.6)", "sidebar-accent-foreground": "oklch(0.52 0.021 258.4)", "sidebar-border": "oklch(0.87 0.021 232.3)", "sidebar-ring": "oklch(0.73 0.125 194.8)", "radius": "0.8rem" }, "dark": { "background": "oklch(0.25 0.023 262.4)", "foreground": "oklch(0.89 0.014 258.4)", "card": "oklch(0.25 0.023 262.4)", "card-foreground": "oklch(0.89 0.014 258.4)", "popover": "oklch(0.25 0.023 262.4)", "popover-foreground": "oklch(0.89 0.014 258.4)", "primary": "oklch(0.75 0.125 194.8)", "primary-foreground": "oklch(0.15 0.01 262.4)", "secondary": "oklch(0.50 0.024 257.5)", "secondary-foreground": "oklch(0.89 0.014 258.4)", "muted": "oklch(0.31 0.030 268.6)", "muted-foreground": "oklch(0.78 0.014 226.8)", "accent": "oklch(0.75 0.125 194.8 / 0.2)", "accent-foreground": "oklch(0.89 0.014 258.4)", "destructive": "oklch(0.59 0.170 13.0)", "destructive-foreground": "oklch(0.89 0.014 258.4)", "border": "oklch(0.39 0.040 273.1)", "input": "oklch(0.39 0.040 273.1)", "ring": "oklch(0.75 0.125 194.8)", "chart-1": "oklch(0.75 0.125 194.8)", "chart-2": "oklch(0.50 0.024 257.5)", "chart-3": "oklch(0.59 0.170 13.0)", "chart-4": "oklch(0.78 0.014 226.8)", "chart-5": "oklch(0.89 0.014 258.4)", "sidebar": "oklch(0.25 0.023 262.4)", "sidebar-foreground": "oklch(0.89 0.014 258.4)", "sidebar-primary": "oklch(0.75 0.125 194.8)", "sidebar-primary-foreground": "oklch(0.15 0.01 262.4)", "sidebar-accent": "oklch(0.75 0.125 194.8 / 0.2)", "sidebar-accent-foreground": "oklch(0.89 0.014 258.4)", "sidebar-border": "oklch(0.39 0.040 273.1)", "sidebar-ring": "oklch(0.75 0.125 194.8)", "radius": "0.8rem" } }, "dependencies": ["radix-ui"], "files": [ { "path": "registry/common/globals.css", "type": "registry:style", "target": "src/app/globals.css" }, { "path": "registry/common/postcss.config.mjs", "type": "registry:file", "target": "postcss.config.mjs" }, { "path": "registry/common/tsconfig.json", "type": "registry:file", "target": "tsconfig.json" }, { "path": "registry/common/package.json", "type": "registry:file", "target": "package.json" }, { "path": "registry/common/utils.ts", "type": "registry:lib", "target": "src/lib/utils.ts" }, { "path": "registry/common/use-mobile.ts", "type": "registry:hook", "target": "src/hooks/use-mobile.ts" } ] }, { "name": "blank", "type": "registry:block", "title": "Blank", "description": "A blank application with all brand components and code", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json", "https://v0-twinte-design-system.vercel.app/r/brand-header.json", "https://v0-twinte-design-system.vercel.app/r/brand-sidebar.json", "https://v0-twinte-design-system.vercel.app/r/login.json", "https://v0-twinte-design-system.vercel.app/r/logo.json", "https://v0-twinte-design-system.vercel.app/r/hero.json", "https://v0-twinte-design-system.vercel.app/r/promo.json", "https://v0-twinte-design-system.vercel.app/r/product-grid.json", "https://v0-twinte-design-system.vercel.app/r/accordion.json", "https://v0-twinte-design-system.vercel.app/r/alert.json", "https://v0-twinte-design-system.vercel.app/r/alert-dialog.json", "https://v0-twinte-design-system.vercel.app/r/aspect-ratio.json", "https://v0-twinte-design-system.vercel.app/r/avatar.json", "https://v0-twinte-design-system.vercel.app/r/badge.json", "https://v0-twinte-design-system.vercel.app/r/breadcrumb.json", "https://v0-twinte-design-system.vercel.app/r/button.json", "https://v0-twinte-design-system.vercel.app/r/calendar.json", "https://v0-twinte-design-system.vercel.app/r/card.json", "https://v0-twinte-design-system.vercel.app/r/carousel.json", "https://v0-twinte-design-system.vercel.app/r/chart.json", "https://v0-twinte-design-system.vercel.app/r/checkbox.json", "https://v0-twinte-design-system.vercel.app/r/collapsible.json", "https://v0-twinte-design-system.vercel.app/r/command.json", "https://v0-twinte-design-system.vercel.app/r/context-menu.json", "https://v0-twinte-design-system.vercel.app/r/dialog.json", "https://v0-twinte-design-system.vercel.app/r/drawer.json", "https://v0-twinte-design-system.vercel.app/r/dropdown-menu.json", "https://v0-twinte-design-system.vercel.app/r/form.json", "https://v0-twinte-design-system.vercel.app/r/hover-card.json", "https://v0-twinte-design-system.vercel.app/r/input.json", "https://v0-twinte-design-system.vercel.app/r/input-otp.json", "https://v0-twinte-design-system.vercel.app/r/label.json", "https://v0-twinte-design-system.vercel.app/r/menubar.json", "https://v0-twinte-design-system.vercel.app/r/navigation-menu.json", "https://v0-twinte-design-system.vercel.app/r/pagination.json", "https://v0-twinte-design-system.vercel.app/r/popover.json", "https://v0-twinte-design-system.vercel.app/r/progress.json", "https://v0-twinte-design-system.vercel.app/r/radio-group.json", "https://v0-twinte-design-system.vercel.app/r/resizable.json", "https://v0-twinte-design-system.vercel.app/r/scroll-area.json", "https://v0-twinte-design-system.vercel.app/r/select.json", "https://v0-twinte-design-system.vercel.app/r/separator.json", "https://v0-twinte-design-system.vercel.app/r/sheet.json", "https://v0-twinte-design-system.vercel.app/r/sidebar.json", "https://v0-twinte-design-system.vercel.app/r/skeleton.json", "https://v0-twinte-design-system.vercel.app/r/slider.json", "https://v0-twinte-design-system.vercel.app/r/sonner.json", "https://v0-twinte-design-system.vercel.app/r/switch.json", "https://v0-twinte-design-system.vercel.app/r/table.json", "https://v0-twinte-design-system.vercel.app/r/tabs.json", "https://v0-twinte-design-system.vercel.app/r/textarea.json", "https://v0-twinte-design-system.vercel.app/r/toggle.json", "https://v0-twinte-design-system.vercel.app/r/toggle-group.json", "https://v0-twinte-design-system.vercel.app/r/tooltip.json", "https://v0-twinte-design-system.vercel.app/r/data-table.json", "https://v0-twinte-design-system.vercel.app/r/date-picker.json" ], "files": [ { "path": "registry/layouts/minimal-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" }, { "path": "src/app/demo/[name]/blocks/blank-page.tsx", "type": "registry:page", "target": "src/app/page.tsx" } ] }, { "name": "dashboard", "type": "registry:block", "title": "Dashboard", "description": "A dashboard application with your brand themed components", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json", "https://v0-twinte-design-system.vercel.app/r/brand-header.json", "https://v0-twinte-design-system.vercel.app/r/brand-sidebar.json", "https://v0-twinte-design-system.vercel.app/r/login.json", "https://v0-twinte-design-system.vercel.app/r/logo.json", "https://v0-twinte-design-system.vercel.app/r/hero.json", "https://v0-twinte-design-system.vercel.app/r/promo.json", "https://v0-twinte-design-system.vercel.app/r/product-grid.json", "https://v0-twinte-design-system.vercel.app/r/accordion.json", "https://v0-twinte-design-system.vercel.app/r/alert.json", "https://v0-twinte-design-system.vercel.app/r/alert-dialog.json", "https://v0-twinte-design-system.vercel.app/r/aspect-ratio.json", "https://v0-twinte-design-system.vercel.app/r/avatar.json", "https://v0-twinte-design-system.vercel.app/r/badge.json", "https://v0-twinte-design-system.vercel.app/r/breadcrumb.json", "https://v0-twinte-design-system.vercel.app/r/button.json", "https://v0-twinte-design-system.vercel.app/r/calendar.json", "https://v0-twinte-design-system.vercel.app/r/card.json", "https://v0-twinte-design-system.vercel.app/r/carousel.json", "https://v0-twinte-design-system.vercel.app/r/chart.json", "https://v0-twinte-design-system.vercel.app/r/checkbox.json", "https://v0-twinte-design-system.vercel.app/r/collapsible.json", "https://v0-twinte-design-system.vercel.app/r/command.json", "https://v0-twinte-design-system.vercel.app/r/context-menu.json", "https://v0-twinte-design-system.vercel.app/r/dialog.json", "https://v0-twinte-design-system.vercel.app/r/drawer.json", "https://v0-twinte-design-system.vercel.app/r/dropdown-menu.json", "https://v0-twinte-design-system.vercel.app/r/form.json", "https://v0-twinte-design-system.vercel.app/r/hover-card.json", "https://v0-twinte-design-system.vercel.app/r/input.json", "https://v0-twinte-design-system.vercel.app/r/input-otp.json", "https://v0-twinte-design-system.vercel.app/r/label.json", "https://v0-twinte-design-system.vercel.app/r/menubar.json", "https://v0-twinte-design-system.vercel.app/r/navigation-menu.json", "https://v0-twinte-design-system.vercel.app/r/pagination.json", "https://v0-twinte-design-system.vercel.app/r/popover.json", "https://v0-twinte-design-system.vercel.app/r/progress.json", "https://v0-twinte-design-system.vercel.app/r/radio-group.json", "https://v0-twinte-design-system.vercel.app/r/resizable.json", "https://v0-twinte-design-system.vercel.app/r/scroll-area.json", "https://v0-twinte-design-system.vercel.app/r/select.json", "https://v0-twinte-design-system.vercel.app/r/separator.json", "https://v0-twinte-design-system.vercel.app/r/sheet.json", "https://v0-twinte-design-system.vercel.app/r/sidebar.json", "https://v0-twinte-design-system.vercel.app/r/skeleton.json", "https://v0-twinte-design-system.vercel.app/r/slider.json", "https://v0-twinte-design-system.vercel.app/r/sonner.json", "https://v0-twinte-design-system.vercel.app/r/switch.json", "https://v0-twinte-design-system.vercel.app/r/table.json", "https://v0-twinte-design-system.vercel.app/r/tabs.json", "https://v0-twinte-design-system.vercel.app/r/textarea.json", "https://v0-twinte-design-system.vercel.app/r/toggle.json", "https://v0-twinte-design-system.vercel.app/r/toggle-group.json", "https://v0-twinte-design-system.vercel.app/r/tooltip.json", "https://v0-twinte-design-system.vercel.app/r/data-table.json", "https://v0-twinte-design-system.vercel.app/r/date-picker.json" ], "files": [ { "path": "registry/layouts/shell-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" }, { "path": "src/app/demo/[name]/blocks/dashboard-page.tsx", "type": "registry:page", "target": "src/app/page.tsx" } ] }, { "name": "store", "type": "registry:block", "title": "Store", "description": "A store application with your brand themed components", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json", "https://v0-twinte-design-system.vercel.app/r/brand-header.json", "https://v0-twinte-design-system.vercel.app/r/brand-sidebar.json", "https://v0-twinte-design-system.vercel.app/r/login.json", "https://v0-twinte-design-system.vercel.app/r/logo.json", "https://v0-twinte-design-system.vercel.app/r/hero.json", "https://v0-twinte-design-system.vercel.app/r/promo.json", "https://v0-twinte-design-system.vercel.app/r/product-grid.json", "https://v0-twinte-design-system.vercel.app/r/accordion.json", "https://v0-twinte-design-system.vercel.app/r/alert.json", "https://v0-twinte-design-system.vercel.app/r/alert-dialog.json", "https://v0-twinte-design-system.vercel.app/r/aspect-ratio.json", "https://v0-twinte-design-system.vercel.app/r/avatar.json", "https://v0-twinte-design-system.vercel.app/r/badge.json", "https://v0-twinte-design-system.vercel.app/r/breadcrumb.json", "https://v0-twinte-design-system.vercel.app/r/button.json", "https://v0-twinte-design-system.vercel.app/r/calendar.json", "https://v0-twinte-design-system.vercel.app/r/card.json", "https://v0-twinte-design-system.vercel.app/r/carousel.json", "https://v0-twinte-design-system.vercel.app/r/chart.json", "https://v0-twinte-design-system.vercel.app/r/checkbox.json", "https://v0-twinte-design-system.vercel.app/r/collapsible.json", "https://v0-twinte-design-system.vercel.app/r/command.json", "https://v0-twinte-design-system.vercel.app/r/context-menu.json", "https://v0-twinte-design-system.vercel.app/r/dialog.json", "https://v0-twinte-design-system.vercel.app/r/drawer.json", "https://v0-twinte-design-system.vercel.app/r/dropdown-menu.json", "https://v0-twinte-design-system.vercel.app/r/form.json", "https://v0-twinte-design-system.vercel.app/r/hover-card.json", "https://v0-twinte-design-system.vercel.app/r/input.json", "https://v0-twinte-design-system.vercel.app/r/input-otp.json", "https://v0-twinte-design-system.vercel.app/r/label.json", "https://v0-twinte-design-system.vercel.app/r/menubar.json", "https://v0-twinte-design-system.vercel.app/r/navigation-menu.json", "https://v0-twinte-design-system.vercel.app/r/pagination.json", "https://v0-twinte-design-system.vercel.app/r/popover.json", "https://v0-twinte-design-system.vercel.app/r/progress.json", "https://v0-twinte-design-system.vercel.app/r/radio-group.json", "https://v0-twinte-design-system.vercel.app/r/resizable.json", "https://v0-twinte-design-system.vercel.app/r/scroll-area.json", "https://v0-twinte-design-system.vercel.app/r/select.json", "https://v0-twinte-design-system.vercel.app/r/separator.json", "https://v0-twinte-design-system.vercel.app/r/sheet.json", "https://v0-twinte-design-system.vercel.app/r/sidebar.json", "https://v0-twinte-design-system.vercel.app/r/skeleton.json", "https://v0-twinte-design-system.vercel.app/r/slider.json", "https://v0-twinte-design-system.vercel.app/r/sonner.json", "https://v0-twinte-design-system.vercel.app/r/switch.json", "https://v0-twinte-design-system.vercel.app/r/table.json", "https://v0-twinte-design-system.vercel.app/r/tabs.json", "https://v0-twinte-design-system.vercel.app/r/textarea.json", "https://v0-twinte-design-system.vercel.app/r/toggle.json", "https://v0-twinte-design-system.vercel.app/r/toggle-group.json", "https://v0-twinte-design-system.vercel.app/r/tooltip.json", "https://v0-twinte-design-system.vercel.app/r/data-table.json", "https://v0-twinte-design-system.vercel.app/r/date-picker.json" ], "files": [ { "path": "registry/layouts/minimal-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" }, { "path": "src/app/demo/[name]/blocks/store-page.tsx", "type": "registry:page", "target": "src/app/page.tsx" } ] }, { "name": "brand-header", "type": "registry:component", "title": "Brand Header", "description": "A styled, simple, reusable header", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json", "https://v0-twinte-design-system.vercel.app/r/button.json", "https://v0-twinte-design-system.vercel.app/r/input.json", "https://v0-twinte-design-system.vercel.app/r/avatar.json", "https://v0-twinte-design-system.vercel.app/r/sidebar.json", "https://v0-twinte-design-system.vercel.app/r/sonner.json", "https://v0-twinte-design-system.vercel.app/r/logo.json" ], "files": [ { "path": "src/components/brand-header.tsx", "type": "registry:component", "target": "src/components/brand-header.tsx" }, { "path": "registry/layouts/shell-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" }, { "path": "src/app/demo/[name]/blocks/blank-page.tsx", "type": "registry:page", "target": "src/app/page.tsx" } ] }, { "name": "brand-sidebar", "type": "registry:component", "title": "Brand Sidebar", "description": "A styled, simple, reusable sidebar", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json", "https://v0-twinte-design-system.vercel.app/r/badge.json", "https://v0-twinte-design-system.vercel.app/r/button.json", "https://v0-twinte-design-system.vercel.app/r/sidebar.json", "https://v0-twinte-design-system.vercel.app/r/sonner.json" ], "files": [ { "path": "src/components/brand-sidebar.tsx", "type": "registry:component", "target": "src/components/brand-sidebar.tsx" }, { "path": "registry/layouts/shell-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" }, { "path": "src/app/demo/[name]/blocks/blank-page.tsx", "type": "registry:page", "target": "src/app/page.tsx" } ] }, { "name": "login", "type": "registry:component", "title": "Login", "description": "Username & password login section with customer quote.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json", "https://v0-twinte-design-system.vercel.app/r/badge.json", "https://v0-twinte-design-system.vercel.app/r/button.json", "https://v0-twinte-design-system.vercel.app/r/logo.json" ], "files": [ { "path": "src/components/login.tsx", "type": "registry:component", "target": "src/components/login.tsx" }, { "path": "registry/layouts/minimal-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" }, { "path": "src/app/demo/[name]/blocks/blank-page.tsx", "type": "registry:page", "target": "src/app/page.tsx" } ] }, { "name": "logo", "type": "registry:component", "title": "Brand Logo", "description": "A styled, simple, reusable logo", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/logo.tsx", "type": "registry:component", "target": "src/components/logo.tsx" }, { "path": "registry/layouts/minimal-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" }, { "path": "src/app/demo/[name]/blocks/blank-page.tsx", "type": "registry:page", "target": "src/app/page.tsx" } ] }, { "name": "hero", "type": "registry:component", "title": "Hero", "description": "Attention-grabbing section for the top of your landing pages.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json", "https://v0-twinte-design-system.vercel.app/r/badge.json", "https://v0-twinte-design-system.vercel.app/r/button.json" ], "files": [ { "path": "src/components/hero.tsx", "type": "registry:component", "target": "src/components/hero.tsx" }, { "path": "registry/layouts/minimal-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" }, { "path": "src/app/demo/[name]/blocks/blank-page.tsx", "type": "registry:page", "target": "src/app/page.tsx" } ] }, { "name": "promo", "type": "registry:component", "title": "Promo", "description": "Attention-grabbing section to display the current promotional deal.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json", "https://v0-twinte-design-system.vercel.app/r/button.json" ], "files": [ { "path": "src/components/promo.tsx", "type": "registry:component", "target": "src/components/promo.tsx" }, { "path": "registry/layouts/minimal-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" }, { "path": "src/app/demo/[name]/blocks/blank-page.tsx", "type": "registry:page", "target": "src/app/page.tsx" } ] }, { "name": "product-grid", "type": "registry:component", "title": "Product Grid", "description": "Product grid displaying all products with API to fetch data", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/product-grid.tsx", "type": "registry:component", "target": "src/components/product-grid.tsx" }, { "path": "src/lib/products.ts", "type": "registry:lib", "target": "src/lib/products.ts" }, { "path": "registry/layouts/minimal-layout.tsx", "type": "registry:file", "target": "src/app/layout.tsx" } ] }, { "name": "accordion", "type": "registry:ui", "title": "Accordion", "description": "A vertically stacked set of interactive headings that each reveal a section of content.", "files": [ { "path": "src/components/ui/accordion.tsx", "type": "registry:ui" } ] }, { "name": "alert", "type": "registry:ui", "title": "Alert", "description": "Displays a callout for user attention.", "files": [ { "path": "src/components/ui/alert.tsx", "type": "registry:ui" } ] }, { "name": "alert-dialog", "type": "registry:ui", "title": "Alert Dialog", "description": "A modal dialog that interrupts the user with important content and expects a response.", "files": [ { "path": "src/components/ui/alert-dialog.tsx", "type": "registry:ui" } ] }, { "name": "aspect-ratio", "type": "registry:ui", "title": "Aspect Ratio", "description": "Displays content within a desired ratio.", "files": [ { "path": "src/components/ui/aspect-ratio.tsx", "type": "registry:ui" } ] }, { "name": "avatar", "type": "registry:ui", "title": "Avatar", "description": "An image element with a fallback for representing the user.", "files": [ { "path": "src/components/ui/avatar.tsx", "type": "registry:ui" } ] }, { "name": "badge", "type": "registry:ui", "title": "Badge", "description": "Displays a small count or status indicator.", "files": [ { "path": "src/components/ui/badge.tsx", "type": "registry:ui" } ] }, { "name": "breadcrumb", "type": "registry:ui", "title": "Breadcrumb", "description": "Displays the path to the current resource using a hierarchy of links.", "files": [ { "path": "src/components/ui/breadcrumb.tsx", "type": "registry:ui" } ] }, { "name": "button", "type": "registry:ui", "title": "Button", "description": "Allows users to take actions with a single click or tap.", "files": [ { "path": "src/components/ui/button.tsx", "type": "registry:ui" } ] }, { "name": "calendar", "type": "registry:ui", "title": "Calendar", "description": "A date field component that allows users to enter and edit date.", "files": [ { "path": "src/components/ui/calendar.tsx", "type": "registry:ui" } ] }, { "name": "card", "type": "registry:ui", "title": "Card", "description": "Containers for displaying content and actions about a single subject.", "files": [ { "path": "src/components/ui/card.tsx", "type": "registry:ui" } ] }, { "name": "carousel", "type": "registry:ui", "title": "Carousel", "description": "A carousel with motion and swipe built using Embla.", "files": [ { "path": "src/components/ui/carousel.tsx", "type": "registry:ui" } ] }, { "name": "chart", "type": "registry:ui", "title": "Chart", "description": "Beautiful charts. Built using Recharts. Copy and paste into your apps.", "files": [ { "path": "src/components/ui/chart.tsx", "type": "registry:ui" } ] }, { "name": "checkbox", "type": "registry:ui", "title": "Checkbox", "description": "Allows users to select multiple items from a list of options.", "files": [ { "path": "src/components/ui/checkbox.tsx", "type": "registry:ui" } ] }, { "name": "collapsible", "type": "registry:ui", "title": "Collapsible", "description": "An interactive component which expands/collapses a panel.", "files": [ { "path": "src/components/ui/collapsible.tsx", "type": "registry:ui" } ] }, { "name": "command", "type": "registry:ui", "title": "Command", "description": "Fast, composable, unstyled command menu for React.", "files": [ { "path": "src/components/ui/command.tsx", "type": "registry:ui" } ] }, { "name": "context-menu", "type": "registry:ui", "title": "Context Menu", "description": "Displays a menu located at the pointer, triggered by a right-click or a long-press.", "files": [ { "path": "src/components/ui/context-menu.tsx", "type": "registry:ui" } ] }, { "name": "dialog", "type": "registry:ui", "title": "Dialog", "description": "A modal dialog that interrupts the user with important content.", "files": [ { "path": "src/components/ui/dialog.tsx", "type": "registry:ui" } ] }, { "name": "drawer", "type": "registry:ui", "title": "Drawer", "description": "A drawer component for React.", "files": [ { "path": "src/components/ui/drawer.tsx", "type": "registry:ui" } ] }, { "name": "dropdown-menu", "type": "registry:ui", "title": "Dropdown Menu", "description": "Displays a menu to the user triggered by a button.", "files": [ { "path": "src/components/ui/dropdown-menu.tsx", "type": "registry:ui" } ] }, { "name": "form", "type": "registry:ui", "title": "Form", "description": "Building forms with React Hook Form and Zod.", "files": [ { "path": "src/components/ui/form.tsx", "type": "registry:ui" } ] }, { "name": "hover-card", "type": "registry:ui", "title": "Hover Card", "description": "For sighted users to preview content available behind a link.", "files": [ { "path": "src/components/ui/hover-card.tsx", "type": "registry:ui" } ] }, { "name": "input", "type": "registry:ui", "title": "Input", "description": "Displays a form input field or a component that looks like an input field.", "files": [ { "path": "src/components/ui/input.tsx", "type": "registry:ui" } ] }, { "name": "input-otp", "type": "registry:ui", "title": "Input OTP", "description": "Accessible one-time password component with copy paste functionality.", "files": [ { "path": "src/components/ui/input-otp.tsx", "type": "registry:ui" } ] }, { "name": "label", "type": "registry:ui", "title": "Label", "description": "Renders an accessible label associated with controls.", "files": [ { "path": "src/components/ui/label.tsx", "type": "registry:ui" } ] }, { "name": "menubar", "type": "registry:ui", "title": "Menubar", "description": "A visually persistent menu common in desktop applications.", "files": [ { "path": "src/components/ui/menubar.tsx", "type": "registry:ui" } ] }, { "name": "navigation-menu", "type": "registry:ui", "title": "Navigation Menu", "description": "A collection of links for navigating websites.", "files": [ { "path": "src/components/ui/navigation-menu.tsx", "type": "registry:ui" } ] }, { "name": "pagination", "type": "registry:ui", "title": "Pagination", "description": "Pagination with page navigation, next and previous links.", "files": [ { "path": "src/components/ui/pagination.tsx", "type": "registry:ui" } ] }, { "name": "popover", "type": "registry:ui", "title": "Popover", "description": "Displays rich content in a portal, triggered by a button.", "files": [ { "path": "src/components/ui/popover.tsx", "type": "registry:ui" } ] }, { "name": "progress", "type": "registry:ui", "title": "Progress", "description": "Displays an indicator showing the completion progress of a task.", "files": [ { "path": "src/components/ui/progress.tsx", "type": "registry:ui" } ] }, { "name": "radio-group", "type": "registry:ui", "title": "Radio Group", "description": "A set of checkable buttons where only one button can be checked at a time.", "files": [ { "path": "src/components/ui/radio-group.tsx", "type": "registry:ui" } ] }, { "name": "resizable", "type": "registry:ui", "title": "Resizable", "description": "Accessible resizable panel groups and layouts with keyboard support.", "files": [ { "path": "src/components/ui/resizable.tsx", "type": "registry:ui" } ] }, { "name": "scroll-area", "type": "registry:ui", "title": "Scroll Area", "description": "Augments native scroll functionality for custom, cross-browser styling.", "files": [ { "path": "src/components/ui/scroll-area.tsx", "type": "registry:ui" } ] }, { "name": "select", "type": "registry:ui", "title": "Select", "description": "Displays a list of options for the user to pick from—triggered by a button.", "files": [ { "path": "src/components/ui/select.tsx", "type": "registry:ui" } ] }, { "name": "separator", "type": "registry:ui", "title": "Separator", "description": "Visually or semantically separates content.", "files": [ { "path": "src/components/ui/separator.tsx", "type": "registry:ui" } ] }, { "name": "sheet", "type": "registry:ui", "title": "Sheet", "description": "Extends the Dialog component to display content that complements the main content of the screen.", "files": [ { "path": "src/components/ui/sheet.tsx", "type": "registry:ui" } ] }, { "name": "sidebar", "type": "registry:ui", "title": "Sidebar", "description": "A composable, themeable and customizable sidebar component.", "files": [ { "path": "src/components/ui/sidebar.tsx", "type": "registry:ui" } ] }, { "name": "skeleton", "type": "registry:ui", "title": "Skeleton", "description": "Use to show a placeholder while content is loading.", "files": [ { "path": "src/components/ui/skeleton.tsx", "type": "registry:ui" } ] }, { "name": "slider", "type": "registry:ui", "title": "Slider", "description": "An input where the user selects a value from within a given range.", "files": [ { "path": "src/components/ui/slider.tsx", "type": "registry:ui" } ] }, { "name": "sonner", "type": "registry:ui", "title": "Sonner", "description": "An opinionated toast component for React.", "files": [ { "path": "src/components/ui/sonner.tsx", "type": "registry:ui" } ] }, { "name": "switch", "type": "registry:ui", "title": "Switch", "description": "A control that allows the user to toggle between checked and not checked.", "files": [ { "path": "src/components/ui/switch.tsx", "type": "registry:ui" } ] }, { "name": "table", "type": "registry:ui", "title": "Table", "description": "A responsive table component.", "files": [ { "path": "src/components/ui/table.tsx", "type": "registry:ui" } ] }, { "name": "tabs", "type": "registry:ui", "title": "Tabs", "description": "A set of layered sections of content—known as tab panels—that are displayed one at a time.", "files": [ { "path": "src/components/ui/tabs.tsx", "type": "registry:ui" } ] }, { "name": "textarea", "type": "registry:ui", "title": "Textarea", "description": "Displays a form textarea or a component that looks like a textarea.", "files": [ { "path": "src/components/ui/textarea.tsx", "type": "registry:ui" } ] }, { "name": "toggle", "type": "registry:ui", "title": "Toggle", "description": "A two-state button that can be either on or off.", "files": [ { "path": "src/components/ui/toggle.tsx", "type": "registry:ui" } ] }, { "name": "toggle-group", "type": "registry:ui", "title": "Toggle Group", "description": "A set of two-state buttons that can be toggled on or off.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/toggle.json" ], "files": [ { "path": "src/components/ui/toggle-group.tsx", "type": "registry:ui" } ] }, { "name": "tooltip", "type": "registry:ui", "title": "Tooltip", "description": "A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.", "files": [ { "path": "src/components/ui/tooltip.tsx", "type": "registry:ui" } ] }, { "name": "data-table", "type": "registry:ui", "title": "Data Table", "description": "Powerful table and datagrids built using TanStack Table.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/table.json" ], "files": [] }, { "name": "date-picker", "type": "registry:ui", "title": "Date Picker", "description": "A date picker component with range and presets.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/button.json", "https://v0-twinte-design-system.vercel.app/r/calendar.json", "https://v0-twinte-design-system.vercel.app/r/popover.json" ], "files": [] }, { "name": "twinte-button", "type": "registry:component", "title": "Button", "description": "Neumorphic button with size (s/m/l), color (base/primary/danger), and layout (flexible/fill/half) variants.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/button.tsx", "type": "registry:component", "target": "src/components/twinte/button.tsx" } ] }, { "name": "twinte-icon-button", "type": "registry:component", "title": "Icon Button", "description": "Circular neumorphic icon button with lucide-react icon support.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/icon-button.tsx", "type": "registry:component", "target": "src/components/twinte/icon-button.tsx" } ] }, { "name": "twinte-card", "type": "registry:component", "title": "Card", "description": "Neumorphic card wrapper with shadow-neu-base.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/card.tsx", "type": "registry:component", "target": "src/components/twinte/card.tsx" } ] }, { "name": "twinte-label", "type": "registry:component", "title": "Label", "description": "Form label with optional mandatory badge.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/label.tsx", "type": "registry:component", "target": "src/components/twinte/label.tsx" } ] }, { "name": "twinte-loader", "type": "registry:component", "title": "Loader", "description": "8-dot rotating loading animation.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/loader.tsx", "type": "registry:component", "target": "src/components/twinte/loader.tsx" } ] }, { "name": "twinte-decorated-icon", "type": "registry:component", "title": "Decorated Icon", "description": "Icon with gradient decoration and neumorphic shadow.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/decorated-icon.tsx", "type": "registry:component", "target": "src/components/twinte/decorated-icon.tsx" } ] }, { "name": "twinte-text-field", "type": "registry:component", "title": "Text Field", "description": "Single-line neumorphic text input with normal/slim variants.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/text-field.tsx", "type": "registry:component", "target": "src/components/twinte/text-field.tsx" } ] }, { "name": "twinte-textarea", "type": "registry:component", "title": "Textarea", "description": "Multi-line neumorphic text input.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/textarea.tsx", "type": "registry:component", "target": "src/components/twinte/textarea.tsx" } ] }, { "name": "twinte-checkbox", "type": "registry:component", "title": "Checkbox", "description": "Neumorphic checkbox built on Radix UI Checkbox.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/checkbox.tsx", "type": "registry:component", "target": "src/components/twinte/checkbox.tsx" } ] }, { "name": "twinte-toggle-switch", "type": "registry:component", "title": "Toggle Switch", "description": "Neumorphic toggle switch built on Radix UI Switch.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/toggle-switch.tsx", "type": "registry:component", "target": "src/components/twinte/toggle-switch.tsx" } ] }, { "name": "twinte-toggle-button", "type": "registry:component", "title": "Toggle Button", "description": "Left/right label toggle button.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/toggle-button.tsx", "type": "registry:component", "target": "src/components/twinte/toggle-button.tsx" } ] }, { "name": "twinte-radio-button", "type": "registry:component", "title": "Radio Button", "description": "Neumorphic radio button group with convex/concave states.", "registryDependencies": [ "https://v0-twinte-design-system.vercel.app/r/theme.json" ], "files": [ { "path": "src/components/twinte/radio-button.tsx", "type": "registry:component", "target": "src/components/twinte/radio-button.tsx" } ] } ] }