{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "card",
  "title": "Card",
  "description": "Containers for displaying content and actions about a single subject.",
  "dependencies": [
    "class-variance-authority",
    "@mdi/js"
  ],
  "registryDependencies": [
    "https://blok.sitecore.com/r/theme.json",
    "https://blok.sitecore.com/r/button.json"
  ],
  "files": [
    {
      "path": "src/components/ui/card.tsx",
      "content": "import { type VariantProps, cva } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst cardVariants = cva(\n  \"flex flex-col gap-6 border transition-shadow focus-visible:outline-none\",\n  {\n    variants: {\n      elevation: {\n        none: \"shadow-none\",\n        xs: \"shadow-xs hover:shadow-sm focus-visible:shadow-sm\",\n        sm: \"shadow-sm hover:shadow-base focus-visible:shadow-base\",\n        base: \"shadow-base hover:shadow-md focus-visible:shadow-md\",\n        md: \"shadow-md hover:shadow-lg focus-visible:shadow-lg\",\n        lg: \"shadow-lg hover:shadow-xl focus-visible:shadow-xl\",\n      },\n      style: {\n        flat: \"bg-body-bg border-transparent\",\n        outline: \"bg-body-bg border-border-color\",\n        filled: \"bg-subtle-bg border-transparent\",\n      },\n      padding: {\n        sm: \"px-3 py-3 rounded-base\",\n        md: \"px-5 py-5 rounded-md\",\n        lg: \"px-7 py-7 rounded-lg\",\n      },\n    },\n    defaultVariants: {\n      elevation: \"none\",\n      style: \"flat\",\n      padding: \"lg\",\n    },\n    compoundVariants: [\n      {\n        style: \"outline\",\n        class: \"shadow-none hover:shadow-base focus-visible:shadow-base\",\n      },\n    ],\n  },\n);\n\nfunction Card({\n  className,\n  elevation,\n  style,\n  padding,\n  ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof cardVariants>) {\n  return (\n    <div\n      data-slot=\"card\"\n      className={cn(cardVariants({ elevation, style, padding }), className)}\n      {...props}\n    />\n  );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-header\"\n      className={cn(\n        \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-title\"\n      className={cn(\"leading-none font-semibold\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-description\"\n      className={cn(\"text-subtle-text text-sm\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-action\"\n      className={cn(\n        \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div data-slot=\"card-content\" className={cn(\"\", className)} {...props} />\n  );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-footer\"\n      className={cn(\"flex items-center [.border-t]:pt-6\", className)}\n      {...props}\n    />\n  );\n}\n\nexport {\n  Card,\n  CardHeader,\n  CardFooter,\n  CardTitle,\n  CardAction,\n  CardDescription,\n  CardContent,\n};\n",
      "type": "registry:ui"
    },
    {
      "path": "src/lib/icon.tsx",
      "content": "import type { SVGProps } from \"react\";\n\ntype IconProps = SVGProps<SVGSVGElement> & {\n  path: string;\n  title?: string;\n  size?: number | string;\n  className?: string;\n  fill?: string;\n};\n\nexport function Icon({\n  path,\n  title,\n  size = 1,\n  className,\n  fill = \"currentColor\",\n  ...rest\n}: IconProps) {\n  return (\n    <svg\n      transform={`scale(${size})`}\n      viewBox=\"0 0 24 24\"\n      aria-label={title}\n      className={className}\n      {...rest}\n    >\n      {title ? <title>{title}</title> : null}\n      <path d={path} fill={fill} />\n    </svg>\n  );\n}\n",
      "type": "registry:lib"
    }
  ],
  "type": "registry:ui"
}