{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "menu", "title": "Menu", "description": "A vertically stacked set of interactive menu items", "dependencies": ["@ark-ui/react", "lucide-react", "clsx", "tailwind-merge"], "files": [ { "path": "src/registry/thornberry/components/menu.tsx", "content": "import { Menu as ArkMenu } from \"@ark-ui/react/menu\";\nimport { Check, ChevronRight } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport type { ark } from \"@ark-ui/react\";\nimport type { ComponentProps } from \"react\";\n\nconst MenuProvider = ArkMenu.RootProvider;\nconst MenuRoot = ArkMenu.Root;\nconst PrimitiveMenuIndicator = ArkMenu.ItemIndicator;\n\nconst MenuTrigger = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuPositioner = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuContent = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuArrow = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuArrowTip = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuItem = ({\n className,\n children,\n variant = \"default\",\n ...rest\n}: ComponentProps & {\n variant?: \"default\" | \"destructive\";\n}) => (\n \n {children}\n \n);\n\nconst MenuCheckboxItem = ({\n className,\n children,\n ...rest\n}: ComponentProps) => (\n \n {children}\n \n);\n\nconst MenuItemGroup = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuItemGroupLabel = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuItemText = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuItemIndicator = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n \n \n);\n\nconst MenuRadioItem = ({\n className,\n children,\n ...rest\n}: ComponentProps) => (\n \n {children}\n \n);\n\nconst MenuRadioItemGroup = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuSeparator = ({\n className,\n ...rest\n}: ComponentProps) => (\n \n);\n\nconst MenuTriggerItem = ({\n className,\n children,\n ...rest\n}: ComponentProps) => (\n svg]:size-4\",\n className,\n )}\n {...rest}\n >\n {children}\n \n \n);\n\n// TODO: Dicuss passing in an Icon i.e, as children\nconst MenuItemShortcut = ({\n className,\n children,\n ...rest\n}: ComponentProps) => (\n \n {children}\n \n);\n\nexport {\n MenuArrow,\n MenuArrowTip,\n MenuContent,\n MenuItem,\n MenuItemGroup,\n MenuItemGroupLabel,\n MenuCheckboxItem,\n MenuRadioItem,\n MenuRadioItemGroup,\n MenuItemText,\n MenuItemIndicator,\n MenuPositioner,\n MenuProvider,\n MenuRoot,\n MenuSeparator,\n MenuTrigger,\n MenuTriggerItem,\n MenuItemShortcut,\n PrimitiveMenuIndicator,\n};\n", "type": "registry:ui" }, { "path": "src/lib/utils.ts", "content": "import { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nimport type { ClassValue } from \"clsx\";\n\nexport const cn = (...inputs: ClassValue[]) => {\n return twMerge(clsx(inputs));\n};\n", "type": "registry:lib", "target": "" } ], "type": "registry:ui" }