{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "item", "title": "Item", "description": "Generic list item primitive for building consistent list-based interfaces.", "dependencies": [ "@base-ui/react", "class-variance-authority" ], "files": [ { "path": "packages/ui/src/item.tsx", "content": "import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"./utils\";\n\n// ---------------------------------------------------------------------------\n// ItemGroup\n// ---------------------------------------------------------------------------\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n
\n );\n}\n\n// ---------------------------------------------------------------------------\n// ItemSeparator\n// ---------------------------------------------------------------------------\n\nfunction ItemSeparator({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\n// ---------------------------------------------------------------------------\n// Variants\n// ---------------------------------------------------------------------------\n\nconst itemVariants = cva(\n \"group/item flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100 focus:ring-0 focus:ring-offset-0 focus-visible:outline-2 focus-visible:outline-ring/50 focus-visible:outline-offset-2 [a]:transition-colors [a]:hover:bg-muted\",\n {\n variants: {\n variant: {\n default: \"border-transparent\",\n outline: \"border-border\",\n muted: \"border-transparent bg-muted/50\",\n },\n size: {\n default: \"gap-2.5 px-3 py-2.5\",\n sm: \"gap-2 px-2.5 py-2\",\n xs: \"gap-2 in-data-[slot=dropdown-menu-content]:p-0 px-2.5 py-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\n// ---------------------------------------------------------------------------\n// Item\n// ---------------------------------------------------------------------------\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & VariantPropsa]:underline [&>a]:underline-offset-4 [&>a]:hover:text-primary\",\n className\n )}\n data-slot=\"item-description\"\n {...props}\n />\n );\n}\n\n// ---------------------------------------------------------------------------\n// ItemActions\n// ---------------------------------------------------------------------------\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n
\n );\n}\n\n// ---------------------------------------------------------------------------\n// ItemHeader\n// ---------------------------------------------------------------------------\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\n// ---------------------------------------------------------------------------\n// ItemFooter\n// ---------------------------------------------------------------------------\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n itemMediaVariants,\n itemVariants,\n};\n", "type": "registry:ui" } ], "type": "registry:ui" }