{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "item",
  "type": "registry:block",
  "title": "Item",
  "description": "Item with Crafter styling. Explore the live example and use the source in your project.",
  "dependencies": [
    "@base-ui/react@^1.8.0",
    "class-variance-authority@^0.7.1",
    "cn@^0.2.6"
  ],
  "files": [
    {
      "path": "components/ui/item.tsx",
      "type": "registry:ui",
      "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 { cn } from \"cn\";\nimport type * as React from \"react\";\nimport { Separator } from \"@/components/ui/separator\";\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n    return (<div role=\"list\" data-slot=\"item-group\" className={cn(\"group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2\", className)} {...props}/>);\n}\nfunction ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n    return (<Separator data-slot=\"item-separator\" orientation=\"horizontal\" className={cn(\"my-2\", className)} {...props}/>);\n}\nconst itemVariants = cva(\"group/item flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted\", {\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.5 px-3 py-2.5\",\n            xs: \"gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0\",\n        },\n    },\n    defaultVariants: {\n        variant: \"default\",\n        size: \"default\",\n    },\n});\nfunction Item({ className, variant = \"default\", size = \"default\", render, ...props }: useRender.ComponentProps<\"div\"> & VariantProps<typeof itemVariants>) {\n    return useRender({\n        defaultTagName: \"div\",\n        props: mergeProps<\"div\">({\n            className: cn(itemVariants({ variant, size, className })),\n        }, props),\n        render,\n        state: {\n            slot: \"item\",\n            variant,\n            size,\n        },\n    });\n}\nconst itemMediaVariants = cva(\"flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none\", {\n    variants: {\n        variant: {\n            default: \"bg-transparent\",\n            icon: \"[&_svg:not([class*='size-'])]:size-4\",\n            image: \"size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover\",\n        },\n    },\n    defaultVariants: {\n        variant: \"default\",\n    },\n});\nfunction ItemMedia({ className, variant = \"default\", ...props }: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n    return (<div data-slot=\"item-media\" data-variant={variant} className={cn(itemMediaVariants({ variant, className }))} {...props}/>);\n}\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n    return (<div data-slot=\"item-content\" className={cn(\"flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none\", className)} {...props}/>);\n}\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n    return (<div data-slot=\"item-title\" className={cn(\"line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4\", className)} {...props}/>);\n}\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n    return (<p data-slot=\"item-description\" className={cn(\"line-clamp-2 text-left text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\", className)} {...props}/>);\n}\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n    return (<div data-slot=\"item-actions\" className={cn(\"flex items-center gap-2\", className)} {...props}/>);\n}\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n    return (<div data-slot=\"item-header\" className={cn(\"flex basis-full items-center justify-between gap-2\", className)} {...props}/>);\n}\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n    return (<div data-slot=\"item-footer\" className={cn(\"flex basis-full items-center justify-between gap-2\", className)} {...props}/>);\n}\nexport { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, };\n"
    },
    {
      "path": "components/ui/separator.tsx",
      "type": "registry:ui",
      "content": "\"use client\"\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\nimport { cn } from \"cn\"\n\nfunction Separator({\n  className,\n  orientation = \"horizontal\",\n  ...props\n}: SeparatorPrimitive.Props) {\n  return (\n    <SeparatorPrimitive\n      data-slot=\"separator\"\n      orientation={orientation}\n      className={cn(\n        \"shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nexport { Separator }\n"
    }
  ],
  "cssVars": {
    "light": {
      "background": "#ffffff",
      "foreground": "#141414",
      "card": "#ffffff",
      "card-foreground": "#141414",
      "popover": "#ffffff",
      "popover-foreground": "#141414",
      "secondary": "#f5f5f5",
      "secondary-foreground": "#141414",
      "muted": "#f5f5f5",
      "muted-foreground": "#6b6b6b",
      "accent": "#f0f0f0",
      "accent-foreground": "#141414",
      "border": "#e6e6e6",
      "input": "#cccccc",
      "destructive": "#b91c1c",
      "syntax-text": "#242424",
      "syntax-keyword": "#754399",
      "syntax-string": "#326348",
      "syntax-function": "#315d89",
      "syntax-number": "#86551f",
      "syntax-comment": "#6b6b6b",
      "syntax-punctuation": "#616161",
      "syntax-type": "#7c464c",
      "syntax-background": "#f8f8f8",
      "sidebar": "#f5f5f5",
      "sidebar-foreground": "#141414",
      "sidebar-primary": "#141414",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#f0f0f0",
      "sidebar-accent-foreground": "#141414",
      "sidebar-border": "#e6e6e6",
      "sidebar-ring": "#141414",
      "chart-1": "#141414",
      "chart-2": "#525252",
      "chart-3": "#737373",
      "chart-4": "#a3a3a3",
      "chart-5": "#d4d4d4",
      "primary": "#141414",
      "primary-foreground": "#ffffff",
      "ring": "#141414",
      "radius": "0rem",
      "font-sans": "ui-sans-serif, system-ui, sans-serif",
      "control-height": "2rem"
    },
    "dark": {
      "background": "#141414",
      "foreground": "#fafafa",
      "card": "#1c1c1c",
      "card-foreground": "#fafafa",
      "popover": "#1c1c1c",
      "popover-foreground": "#fafafa",
      "secondary": "#262626",
      "secondary-foreground": "#fafafa",
      "muted": "#262626",
      "muted-foreground": "#a3a3a3",
      "accent": "#303030",
      "accent-foreground": "#fafafa",
      "border": "#404040",
      "input": "#404040",
      "destructive": "#ff9d9d",
      "syntax-text": "#ededed",
      "syntax-keyword": "#c6a3df",
      "syntax-string": "#98c4a4",
      "syntax-function": "#9cbedf",
      "syntax-number": "#d7b27d",
      "syntax-comment": "#a3a3a3",
      "syntax-punctuation": "#b0b0b0",
      "syntax-type": "#dda2aa",
      "syntax-background": "#1b1b1b",
      "sidebar": "#262626",
      "sidebar-foreground": "#fafafa",
      "sidebar-primary": "#fafafa",
      "sidebar-primary-foreground": "#141414",
      "sidebar-accent": "#303030",
      "sidebar-accent-foreground": "#fafafa",
      "sidebar-border": "#404040",
      "sidebar-ring": "#fafafa",
      "chart-1": "#fafafa",
      "chart-2": "#d4d4d4",
      "chart-3": "#a3a3a3",
      "chart-4": "#737373",
      "chart-5": "#525252",
      "primary": "#fafafa",
      "primary-foreground": "#141414",
      "ring": "#fafafa",
      "radius": "0rem",
      "font-sans": "ui-sans-serif, system-ui, sans-serif",
      "control-height": "2rem"
    }
  }
}
