{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "card",
  "files": [
    {
      "path": "ui/card/Card.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/Card.astro directly.\n/**\n * @component Card\n * @title Card\n * @description UI container for grouping content with header, footer, etc.\n * @figmaUrl https://www.figma.com/design/koxai7zw5vIuBzuVxe5T2l/bejamas-ui?node-id=2543-3884&t=YFStJ3V8fXEO8QD8-4\n *\n * @preview\n *\n * <Card class=\"w-full max-w-sm\">\n *   <CardMedia class=\"m-1\">\n *     <img src=\"https://gradient.bejamas.com/presets/bejamas/marine.png\" alt=\"Gradient Cover\" class=\"w-full h-full object-cover\" width=\"374\" height=\"250\" loading=\"lazy\" />\n *   </CardMedia>\n *   <CardHeader>\n *     <div class=\"flex items-center gap-2 justify-between\">\n *       <div class=\"*:data-[slot=avatar]:ring-background flex -space-x-2 *:data-[slot=avatar]:ring-2\">\n *         <Avatar>\n *           <AvatarImage>\n *             <img src=\"https://gradient.bejamas.com/presets/bejamas/marine.png\" alt=\"grdient avatar\" />\n *           </AvatarImage>\n *           <AvatarFallback>AW</AvatarFallback>\n *         </Avatar>\n *       </div>\n *       <Date date=\"2025-08-24T12:00:00Z\" class=\"text-sm text-muted-foreground\" />\n *     </div>\n *   </CardHeader>\n *   <CardContent class=\"space-y-4\">\n *     <CardTitle>Strong Foundations, Built to Scale</CardTitle>\n *     <CardDescription>Like any enduring system, a scalable design system relies on clear structure, solid foundations, and careful layering over time.</CardDescription>\n *     <Button variant=\"outline\" as=\"a\" href=\"#\">Read more</Button>\n *   </CardContent>\n *   <CardFooter>\n *     <p class=\"text-sm text-muted-foreground\">Categories</p>\n *     <div class=\"flex items-center gap-2\">\n *       <Badge variant=\"secondary\">Marketing</Badge>\n *       <Badge variant=\"secondary\">UI Design</Badge>\n *     </div>\n *   </CardFooter>\n * </Card>\n *\n * @usage\n *\n * ```astro nocollapse\n * ---\n * import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from '@bejamas/ui/components/card';\n * ---\n *\n * <Card>\n *   <CardHeader>\n *     <CardTitle>Card Title</CardTitle>\n *     <CardDescription>Card Description</CardDescription>\n *   </CardHeader>\n *   <CardContent>\n *     Card content goes here.\n *   </CardContent>\n *   <CardFooter>\n *     <button>OK</button>\n *   </CardFooter>\n * </Card>\n * ```\n */\n\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport type { HTMLAttributes } from \"astro/types\";\n\ntype CardVariant = \"default\" | \"ghost\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  variant?: CardVariant;\n  class?: string;\n}\n\nconst {\n  class: className = \"\",\n  variant = \"default\",\n  ...rest\n} = Astro.props as Props;\n\nconst cardVariants = cva(\n  \"group/card flex flex-col overflow-clip [&:has(>_[data-slot=card-media]:first-child_img)]:pt-0\",\n  {\n    variants: {\n      variant: {\n        default: \"\",\n        ghost: \"data-[variant=ghost]\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  },\n);\n---\n\n<div\n  {...rest}\n  data-slot=\"card\"\n  data-variant={variant}\n  class={cn(\"ring-foreground/10 bg-card border-none text-card-foreground gap-6 overflow-hidden rounded-xl py-6 text-sm shadow-sm ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl border border-border shadow-lg\", cardVariants({ variant }), className)}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/card/CardAction.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/CardAction.astro directly.\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport type { HTMLAttributes } from \"astro/types\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  class?: string;\n}\n\nconst {\n  class: className = \"\",\n  ...rest\n} = Astro.props as Props;\n\nconst actionVariants = cva(\n  \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n);\n---\n\n<div\n  {...rest}\n  data-slot=\"card-action\"\n  class={cn(\"\", actionVariants(), className)}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/card/CardContent.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/CardContent.astro directly.\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport type { HTMLAttributes } from \"astro/types\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  class?: string;\n}\n\nconst {\n  class: className = \"\",\n  ...rest\n} = Astro.props as Props;\n\nconst contentVariants = cva(\"\");\n---\n\n<div\n  {...rest}\n  data-slot=\"card-content\"\n  class={cn(\"px-6 group-data-[size=sm]/card:px-4\", contentVariants(), className)}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/card/CardDescription.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/CardDescription.astro directly.\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport type { HTMLAttributes } from \"astro/types\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  class?: string;\n}\n\nconst {\n  class: className = \"\",\n  ...rest\n} = Astro.props as Props;\n\nconst descriptionVariants = cva(\"\");\n---\n\n<div\n  {...rest}\n  data-slot=\"card-description\"\n  class={cn(\"text-muted-foreground text-sm\", descriptionVariants(), className)}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/card/CardFooter.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/CardFooter.astro directly.\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport type { HTMLAttributes } from \"astro/types\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  class?: string;\n}\n\nconst {\n  class: className = \"\",\n  ...rest\n} = Astro.props as Props;\n\nconst footerVariants = cva(\"flex items-center justify-between\");\n---\n\n<div\n  {...rest}\n  data-slot=\"card-footer\"\n  class={cn(\"rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4\", footerVariants(), className)}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/card/CardHeader.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/CardHeader.astro directly.\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport type { HTMLAttributes } from \"astro/types\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  class?: string;\n}\n\nconst {\n  class: className = \"\",\n  ...rest\n} = Astro.props as Props;\n\nconst headerVariants = cva(\n  \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start has-data-[slot=card-action]:grid-cols-[1fr_auto]\",\n);\n---\n\n<div\n  {...rest}\n  data-slot=\"card-header\"\n  class={cn(\"gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 gap-1.5\", headerVariants(), className)}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/card/CardMedia.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/CardMedia.astro directly.\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport type { HTMLAttributes } from \"astro/types\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  class?: string;\n}\n\nconst {\n  class: className = \"\",\n  ...rest\n} = Astro.props as Props;\n\nconst mediaVariants = cva(\n  \"z-0 rounded-lg overflow-hidden [&_img]:size-full [&_img]:object-cover\",\n);\n---\n\n<div\n  {...rest}\n  data-slot=\"card-media\"\n  class={cn(\"\", mediaVariants(), className)}\n>\n  <slot />\n</div>\n\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/card/CardOverlay.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/CardOverlay.astro directly.\nimport { cn } from \"@/lib/utils\";\nimport type { HTMLAttributes } from \"astro/types\";\n\ntype CardOverlayVariant = \"default\" | \"glass\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  variant?: CardOverlayVariant;\n  class?: string;\n}\n\nconst {\n  class: className = \"\",\n  variant = \"default\",\n  ...rest\n} = Astro.props as Props;\n---\n\n<div\n  {...rest}\n  data-slot=\"card-overlay\"\n  class={cn(\"\", \n    \"inset-0 absolute z-10 opacity-0 p-6 group-hover/card:opacity-100 transition-opacity duration-300 ease-out\",\n    variant === \"glass\"\n      ? \"bg-primary/70 backdrop-blur-sm text-primary-foreground\"\n      : \"bg-primary text-primary-foreground\",\n    className,\n  )}\n>\n  <slot />\n</div>\n\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/card/CardTitle.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/CardTitle.astro directly.\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport type { HTMLAttributes } from \"astro/types\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  class?: string;\n}\n\nconst { class: className = \"\", ...rest } = Astro.props as Props;\n\nconst titleVariants = cva(\"cn-font-heading text-balance\");\n---\n\n<div\n  {...rest}\n  data-slot=\"card-title\"\n  class={cn(\"text-lg md:text-xl leading-normal font-medium group-data-[size=sm]/card:text-sm\", titleVariants(), className)}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/card/index.ts",
      "content": "// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/card/index.ts directly.\nexport { default as Card } from \"./Card.astro\";\nexport { default as CardMedia } from \"./CardMedia.astro\";\nexport { default as CardHeader } from \"./CardHeader.astro\";\nexport { default as CardTitle } from \"./CardTitle.astro\";\nexport { default as CardDescription } from \"./CardDescription.astro\";\nexport { default as CardAction } from \"./CardAction.astro\";\nexport { default as CardContent } from \"./CardContent.astro\";\nexport { default as CardFooter } from \"./CardFooter.astro\";\nexport { default as CardOverlay } from \"./CardOverlay.astro\";\n\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}