{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "item",
  "title": "Item",
  "description": "A flexible content row for lists, settings and resource pickers.",
  "dependencies": [
    "@radix-ui/react-slot",
    "class-variance-authority"
  ],
  "registryDependencies": [
    "@rivelle/utils"
  ],
  "files": [
    {
      "path": "registry/nova/ui/item.tsx",
      "content": "import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst itemVariants = cva(\n  \"group/item relative flex w-full items-center gap-4 rounded-2xl border text-left outline-none transition-[background-color,border-color,box-shadow,transform] duration-200 focus-visible:ring-2 focus-visible:ring-ring/45 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-45\",\n  {\n    variants: {\n      variant: {\n        default: \"border-transparent bg-transparent hover:bg-foreground/[.04]\",\n        outline:\n          \"border-foreground/10 bg-background/65 shadow-[inset_0_1px_0_color-mix(in_oklch,var(--background)_70%,transparent)] hover:border-foreground/16 hover:bg-foreground/[.025]\",\n        muted:\n          \"border-transparent bg-foreground/[.04] hover:bg-foreground/[.065]\",\n      },\n      size: {\n        default: \"p-4\",\n        sm: \"gap-3 rounded-xl p-3\",\n      },\n    },\n    defaultVariants: { variant: \"default\", size: \"default\" },\n  },\n);\n\nfunction Item({\n  className,\n  variant,\n  size,\n  asChild = false,\n  ...props\n}: React.ComponentProps<\"div\"> &\n  VariantProps<typeof itemVariants> & { asChild?: boolean }) {\n  const Comp = asChild ? Slot : \"div\";\n  return (\n    <Comp\n      data-slot=\"item\"\n      data-variant={variant}\n      data-size={size}\n      className={cn(itemVariants({ variant, size }), className)}\n      {...props}\n    />\n  );\n}\n\nfunction ItemMedia({\n  className,\n  variant = \"default\",\n  ...props\n}: React.ComponentProps<\"div\"> & { variant?: \"default\" | \"icon\" | \"image\" }) {\n  return (\n    <div\n      data-slot=\"item-media\"\n      data-variant={variant}\n      className={cn(\n        \"flex shrink-0 items-center justify-center text-muted-foreground data-[variant=icon]:size-10 data-[variant=icon]:rounded-xl data-[variant=icon]:bg-primary/10 data-[variant=icon]:text-primary data-[variant=image]:size-12 data-[variant=image]:overflow-hidden data-[variant=image]:rounded-xl [&_svg]:size-5 [&_img]:size-full [&_img]:object-cover\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"item-content\"\n      className={cn(\"min-w-0 flex-1 space-y-1\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"item-title\"\n      className={cn(\"text-sm font-semibold tracking-[-0.012em]\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n  return (\n    <p\n      data-slot=\"item-description\"\n      className={cn(\n        \"line-clamp-2 text-sm leading-relaxed text-muted-foreground\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"item-actions\"\n      className={cn(\"flex shrink-0 items-center gap-2\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"item-header\"\n      className={cn(\n        \"flex w-full items-center justify-between gap-3\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"item-footer\"\n      className={cn(\n        \"flex w-full items-center justify-between gap-3\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"item-group\"\n      className={cn(\"grid gap-2\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction ItemSeparator({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      role=\"separator\"\n      data-slot=\"item-separator\"\n      className={cn(\"mx-4 h-px bg-border/80\", className)}\n      {...props}\n    />\n  );\n}\n\nexport {\n  Item,\n  ItemActions,\n  ItemContent,\n  ItemDescription,\n  ItemFooter,\n  ItemGroup,\n  ItemHeader,\n  ItemMedia,\n  ItemSeparator,\n  ItemTitle,\n  itemVariants,\n};\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}