mirror of
https://github.com/hanzoai/shadcn.git
synced 2026-11-03 03:18:52 +00:00
- Enable all 15 finance component docs (from .disabled → .mdx) - Create stock-market.mdx, 8 chart docs, 8 block docs, 2 framework docs - Add direction.tsx component (RTL/LTR support from upstream shadcn) - Add xs/icon-xs button sizes, data-variant/data-size attributes - Fix build-registry.mts to handle default exports in namespace re-exports - Add default props to order-entry, positions-list, orders-history, trading-panel - Fix 18 navigation stubs → re-export from root implementations - Add 44 orphaned MDX files to nav (installation, dark-mode, desktop, guides, etc) - Migrate 6 framer-motion imports → motion/react - Bump React 19.2.0→19.2.4, Next.js 16.0.1→16.1.6, motion→12.34.0 - Align lucide-react, sonner v2, tailwind-merge v3, postcss-selector-parser v7 - Remove framer-motion dep (superseded by motion) - Fix @types/react-dom, TypeScript versions across workspaces
375 lines
9.2 KiB
TypeScript
375 lines
9.2 KiB
TypeScript
/**
|
|
* Hanzo UI - Radix UI Base Registry
|
|
*
|
|
* Components built on Radix UI primitives.
|
|
* This is the default and most complete implementation.
|
|
*/
|
|
|
|
import { type Registry, type RegistryItem } from "../../schema"
|
|
|
|
// UI Components
|
|
const ui: RegistryItem[] = [
|
|
{
|
|
name: "accordion",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/accordion.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "alert",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/alert.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "alert-dialog",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
registryDependencies: ["button"],
|
|
files: [{ path: "ui/alert-dialog.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "aspect-ratio",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/aspect-ratio.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "avatar",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/avatar.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "badge",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/badge.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "breadcrumb",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/breadcrumb.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "button",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/button.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "button-group",
|
|
type: "registry:ui",
|
|
registryDependencies: ["separator"],
|
|
files: [{ path: "ui/button-group.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "calendar",
|
|
type: "registry:ui",
|
|
dependencies: ["react-day-picker@latest", "date-fns"],
|
|
registryDependencies: ["button"],
|
|
files: [{ path: "ui/calendar.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "card",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/card.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "carousel",
|
|
type: "registry:ui",
|
|
dependencies: ["embla-carousel-react"],
|
|
registryDependencies: ["button"],
|
|
files: [{ path: "ui/carousel.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "chart",
|
|
type: "registry:ui",
|
|
dependencies: ["[email protected]"],
|
|
registryDependencies: ["card"],
|
|
files: [{ path: "ui/chart.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "checkbox",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/checkbox.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "collapsible",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/collapsible.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "combobox",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
registryDependencies: ["button", "input-group"],
|
|
files: [{ path: "ui/combobox.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "command",
|
|
type: "registry:ui",
|
|
dependencies: ["cmdk"],
|
|
registryDependencies: ["dialog", "input-group"],
|
|
files: [{ path: "ui/command.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "context-menu",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/context-menu.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "dialog",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
registryDependencies: ["button"],
|
|
files: [{ path: "ui/dialog.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "drawer",
|
|
type: "registry:ui",
|
|
dependencies: ["vaul"],
|
|
files: [{ path: "ui/drawer.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "dropdown-menu",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/dropdown-menu.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "empty",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/empty.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "field",
|
|
type: "registry:ui",
|
|
registryDependencies: ["label", "separator"],
|
|
files: [{ path: "ui/field.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "form",
|
|
type: "registry:ui",
|
|
dependencies: ["react-hook-form", "@hookform/resolvers", "zod"],
|
|
registryDependencies: ["button", "label"],
|
|
files: [{ path: "ui/form.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "hover-card",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/hover-card.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "input",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/input.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "input-group",
|
|
type: "registry:ui",
|
|
registryDependencies: ["button", "input", "textarea"],
|
|
files: [{ path: "ui/input-group.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "input-otp",
|
|
type: "registry:ui",
|
|
dependencies: ["input-otp"],
|
|
files: [{ path: "ui/input-otp.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "item",
|
|
type: "registry:ui",
|
|
registryDependencies: ["separator"],
|
|
files: [{ path: "ui/item.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "label",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/label.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "menubar",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
registryDependencies: ["dropdown-menu"],
|
|
files: [{ path: "ui/menubar.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "navigation-menu",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/navigation-menu.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "pagination",
|
|
type: "registry:ui",
|
|
registryDependencies: ["button"],
|
|
files: [{ path: "ui/pagination.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "popover",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/popover.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "progress",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/progress.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "radio-group",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/radio-group.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "resizable",
|
|
type: "registry:ui",
|
|
dependencies: ["react-resizable-panels"],
|
|
files: [{ path: "ui/resizable.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "scroll-area",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/scroll-area.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "select",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/select.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "separator",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/separator.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "sheet",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
registryDependencies: ["button"],
|
|
files: [{ path: "ui/sheet.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "sidebar",
|
|
type: "registry:ui",
|
|
registryDependencies: [
|
|
"button",
|
|
"input",
|
|
"separator",
|
|
"sheet",
|
|
"skeleton",
|
|
"tooltip",
|
|
],
|
|
files: [{ path: "ui/sidebar.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "skeleton",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/skeleton.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "slider",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/slider.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "sonner",
|
|
type: "registry:ui",
|
|
dependencies: ["sonner", "next-themes"],
|
|
files: [{ path: "ui/sonner.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "spinner",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/spinner.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "switch",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/switch.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "table",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/table.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "tabs",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/tabs.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "textarea",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/textarea.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "toggle",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/toggle.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "toggle-group",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
registryDependencies: ["toggle"],
|
|
files: [{ path: "ui/toggle-group.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "tooltip",
|
|
type: "registry:ui",
|
|
dependencies: ["radix-ui"],
|
|
files: [{ path: "ui/tooltip.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "kbd",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/kbd.tsx", type: "registry:ui" }],
|
|
},
|
|
{
|
|
name: "native-select",
|
|
type: "registry:ui",
|
|
files: [{ path: "ui/native-select.tsx", type: "registry:ui" }],
|
|
},
|
|
]
|
|
|
|
// Lib
|
|
const lib: RegistryItem[] = [
|
|
{
|
|
name: "utils",
|
|
type: "registry:lib",
|
|
dependencies: ["clsx", "tailwind-merge"],
|
|
files: [{ path: "lib/utils.ts", type: "registry:lib" }],
|
|
},
|
|
]
|
|
|
|
// Hooks
|
|
const hooks: RegistryItem[] = [
|
|
{
|
|
name: "use-mobile",
|
|
type: "registry:hook",
|
|
files: [{ path: "hooks/use-mobile.ts", type: "registry:hook" }],
|
|
},
|
|
]
|
|
|
|
export const radixRegistry: Registry = {
|
|
name: "hanzo/ui/radix",
|
|
homepage: "https://ui.hanzo.ai",
|
|
items: [...ui, ...lib, ...hooks],
|
|
}
|