{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "carousel",
  "files": [
    {
      "path": "ui/carousel/Carousel.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/carousel/Carousel.astro directly.\n/**\n * @component Carousel\n * @title Carousel\n * @description A CSS scroll-snap carousel using only Tailwind classes (no JS).\n *\n * @preview\n *\n * <!-- Horizontal images with center snapping -->\n * <Carousel class=\"gap-4 p-2\" align=\"center\">\n *   <CarouselSlide><img src=\"https://images.unsplash.com/photo-1759332978018-a6efdacf4d11?ixlib=rb-4.1.0&auto=format&fit=crop&q=80&w=1290\" alt=\"Example\" class=\"w-64 h-96 object-cover rounded-lg\" /></CarouselSlide>\n *   <CarouselSlide><img src=\"https://plus.unsplash.com/premium_photo-1760541740387-e0af5182d805?ixlib=rb-4.1.0&auto=format&fit=crop&q=80&w=1335\" alt=\"Example\" class=\"w-64 h-96 object-cover rounded-lg\" /></CarouselSlide>\n *   <CarouselSlide><img src=\"https://images.unsplash.com/photo-1760659391924-86d657118008?ixlib=rb-4.1.0&auto=format&fit=crop&q=80&w=2340\" alt=\"Example\" class=\"w-120 h-96 object-cover rounded-lg\" /></CarouselSlide>\n * </Carousel>\n *\n * @usage\n *\n * ```astro nocollapse\n * ---\n * import { Carousel, CarouselSlide } from '@bejamas/ui/components/carousel';\n * ---\n *\n * <Carousel>\n *   <CarouselSlide><div class=\"w-72 bg-muted rounded-xl p-6\">Item 1</div></CarouselSlide>\n *   <CarouselSlide><div class=\"w-72 bg-muted rounded-xl p-6\">Item 2</div></CarouselSlide>\n *   <CarouselSlide><div class=\"w-72 bg-muted rounded-xl p-6\">Item 3</div></CarouselSlide>\n * </Carousel>\n * ```\n *\n * @props\n * - axis?: \"x\" | \"y\" — Scroll direction. Default: \"x\".\n * - snapType?: \"mandatory\" | \"proximity\" — Scroll-snap behavior. Default: \"mandatory\".\n * - align?: \"start\" | \"center\" | \"end\" — Child snap alignment. Default: \"start\".\n * - fade?: boolean — Add edge fade via CSS mask on the scroll axis. Default: false.\n */\n\nimport type { HTMLAttributes } from \"astro/types\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\ntype Axis = \"x\" | \"y\";\ntype SnapType = \"mandatory\" | \"proximity\";\ntype Align = \"start\" | \"center\" | \"end\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  axis?: Axis;\n  snapType?: SnapType;\n  align?: Align;\n  fade?: boolean;\n  class?: string;\n}\n\nconst {\n  axis = \"x\",\n  snapType = \"mandatory\",\n  align = \"start\",\n  fade = false,\n  class: className = \"\",\n  ...rest\n} = Astro.props as Props;\n\nconst carouselVariants = cva(\n  \"relative w-full overflow-auto scroll-smooth [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden\",\n  {\n    variants: {\n      axis: {\n        x: \"flex flex-row snap-x\",\n        y: \"flex flex-col snap-y\",\n      },\n      snapType: {\n        mandatory: \"snap-mandatory\",\n        proximity: \"snap-proximity\",\n      },\n      align: {\n        start:\n          \"[&>[data-slot=carousel-slide]]:snap-start [&>[data-slot=carousel-slide]]:shrink-0\",\n        center:\n          \"[&>[data-slot=carousel-slide]]:snap-center [&>[data-slot=carousel-slide]]:shrink-0\",\n        end: \"[&>[data-slot=carousel-slide]]:snap-end [&>[data-slot=carousel-slide]]:shrink-0\",\n      },\n    },\n    defaultVariants: {\n      axis: \"x\",\n      snapType: \"mandatory\",\n      align: \"start\",\n    },\n  },\n);\n\nconst defaultFadeX = \"mask-x-from-80% mask-x-to-95%\";\nconst defaultFadeY = \"mask-y-from-80% mask-y-to-95%\";\n---\n\n<div\n  {...rest}\n  data-slot=\"carousel\"\n  class={cn(\"\", \n    carouselVariants({ axis, snapType, align }),\n    fade && axis === \"x\" && defaultFadeX,\n    fade && axis === \"y\" && defaultFadeY,\n    className,\n  )}\n>\n  <slot />\n</div>\n\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/carousel/CarouselSlide.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/carousel/CarouselSlide.astro directly.\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---\n\n<div\n  {...rest}\n  data-slot=\"carousel-slide\"\n  class={cn(\"\", \"shrink-0\", className)}\n>\n  <slot />\n</div>\n\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/carousel/index.ts",
      "content": "// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/carousel/index.ts directly.\nexport { default as Carousel } from \"./Carousel.astro\";\nexport { default as CarouselSlide } from \"./CarouselSlide.astro\";\n\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}