{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "item", "type": "registry:ui", "dependencies": [ "@radix-ui/react-slot" ], "files": [ { "path": "components/ui/item.tsx", "content": "import * as React from \"react\"\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Separator } from \"@/components/ui/separator\"\r\n\r\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction ItemSeparator({\r\n className,\r\n ...props\r\n}: React.ComponentProps) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst itemVariants = cva(\r\n \"group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-transparent\",\r\n outline: \"border-border\",\r\n muted: \"bg-muted/50\",\r\n },\r\n size: {\r\n default: \"p-4 gap-4 \",\r\n sm: \"py-3 px-4 gap-2.5\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nfunction Item({\r\n className,\r\n variant = \"default\",\r\n size = \"default\",\r\n asChild = false,\r\n ...props\r\n}: React.ComponentProps<\"div\"> &\r\n VariantProps & { asChild?: boolean }) {\r\n const Comp = asChild ? Slot : \"div\"\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst itemMediaVariants = cva(\r\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-transparent\",\r\n icon: \"size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4\",\r\n image:\r\n \"size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n }\r\n)\r\n\r\nfunction ItemMedia({\r\n className,\r\n variant = \"default\",\r\n ...props\r\n}: React.ComponentProps<\"div\"> & VariantProps) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\r\n return (\r\n a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport {\r\n Item,\r\n ItemMedia,\r\n ItemContent,\r\n ItemActions,\r\n ItemGroup,\r\n ItemSeparator,\r\n ItemTitle,\r\n ItemDescription,\r\n ItemHeader,\r\n ItemFooter,\r\n}\r\n", "type": "registry:ui", "target": "components/ui/item.tsx" } ] }