{
  "id": "carousel",
  "name": "Carousel",
  "level": "molecule",
  "status": "stable",
  "purpose": "A row of slides to swipe or step through.",
  "description": "Apple-grade carousel built on `embla-carousel-react`. Compound API:\n`Carousel` + `CarouselViewport` + `CarouselSlide` + optional\n`CarouselControls`, `CarouselPreviousButton`, `CarouselNextButton`,\n`CarouselPagination`, `CarouselCounter`.\n\nSupports horizontal and vertical layouts, single or multi-item per\nview, loop, autoplay (with WCAG 2.2.2 pause-on-hover / pause-on-focus\nand reduced-motion opt-out), touch/drag, and full keyboard navigation\n(arrows + Home / End) on the Root region.\n\nIntegrates with every Card-family surface in the system: `Card`,\n`MetricCard`, `PlanCard`, `PricingOption`, `FeedCard`. Each slide is\nan inert container; the focused content lives inside it.\n\nPatterns consulted: `Patterns/Information Architecture · Progressive\ndisclosure`, `Patterns/Composition · Compound components`,\n`Patterns/Visual Priority · Action hierarchy`, `Patterns/Density &\nGrowth · Touch-target floor`, `Patterns/Page Shells · Dashboard surface`.",
  "role": "content",
  "import": "@rrios-forge/ui/molecules/carousel",
  "exports": [
    "Carousel",
    "CarouselAutoplayToggle",
    "CarouselControls",
    "CarouselCounter",
    "CarouselNextButton",
    "CarouselPagination",
    "CarouselPreviousButton",
    "CarouselSlide",
    "CarouselViewport",
    "useCarousel",
    "carouselButtonVariants",
    "carouselContainerVariants",
    "carouselControlsVariants",
    "carouselCounterVariants",
    "carouselDotVariants",
    "carouselPaginationVariants",
    "carouselRootVariants",
    "carouselSlideVariants",
    "carouselViewportVariants",
    "CAROUSEL_ALIGNMENTS",
    "CAROUSEL_CONTROL_PLACEMENTS",
    "CAROUSEL_ORIENTATIONS"
  ],
  "source": "packages/ui/src/molecules/carousel",
  "axes": [
    {
      "axis": "orientation",
      "part": null,
      "values": [
        "horizontal",
        "vertical"
      ],
      "default": "horizontal",
      "meaning": "The direction the parts run: a row (horizontal) or a column (vertical); responsive stacks on phones and runs in a row from sm."
    },
    {
      "axis": "placement",
      "part": null,
      "values": [
        "inset",
        "below",
        "floating-bottom"
      ],
      "default": "below",
      "meaning": "Where an attached element sits."
    },
    {
      "axis": "side",
      "part": null,
      "values": [
        "previous",
        "next"
      ],
      "default": "previous",
      "meaning": "Which side something belongs to."
    },
    {
      "axis": "presentation",
      "part": null,
      "values": [
        "plain",
        "capsule"
      ],
      "default": "capsule",
      "meaning": "How the same thing is staged."
    }
  ],
  "needs": [],
  "patterns": [],
  "a11yExceptions": [],
  "decisions": [],
  "stories": [
    {
      "name": "Playground",
      "id": "components-molecules-carousel--playground",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--playground",
      "frame": "/iframe.html?id=components-molecules-carousel--playground&viewMode=story"
    },
    {
      "name": "Multi-item per view",
      "id": "components-molecules-carousel--multi-item-view",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--multi-item-view",
      "frame": "/iframe.html?id=components-molecules-carousel--multi-item-view&viewMode=story"
    },
    {
      "name": "Control placements",
      "id": "components-molecules-carousel--control-placements",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--control-placements",
      "frame": "/iframe.html?id=components-molecules-carousel--control-placements&viewMode=story"
    },
    {
      "name": "Loop + autoplay",
      "id": "components-molecules-carousel--loop-and-autoplay",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--loop-and-autoplay",
      "frame": "/iframe.html?id=components-molecules-carousel--loop-and-autoplay&viewMode=story"
    },
    {
      "name": "Vertical",
      "id": "components-molecules-carousel--vertical",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--vertical",
      "frame": "/iframe.html?id=components-molecules-carousel--vertical&viewMode=story"
    },
    {
      "name": "Integration — Carousel of Cards",
      "id": "components-molecules-carousel--with-card",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--with-card",
      "frame": "/iframe.html?id=components-molecules-carousel--with-card&viewMode=story"
    },
    {
      "name": "Integration — MetricCard",
      "id": "components-molecules-carousel--with-metric-cards",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--with-metric-cards",
      "frame": "/iframe.html?id=components-molecules-carousel--with-metric-cards&viewMode=story"
    },
    {
      "name": "Integration — PricingOption",
      "id": "components-molecules-carousel--with-pricing-options",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--with-pricing-options",
      "frame": "/iframe.html?id=components-molecules-carousel--with-pricing-options&viewMode=story"
    },
    {
      "name": "With counter",
      "id": "components-molecules-carousel--with-counter",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--with-counter",
      "frame": "/iframe.html?id=components-molecules-carousel--with-counter&viewMode=story"
    },
    {
      "name": "Inset controls",
      "id": "components-molecules-carousel--inset-controls",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--inset-controls",
      "frame": "/iframe.html?id=components-molecules-carousel--inset-controls&viewMode=story"
    },
    {
      "name": "In context",
      "id": "components-molecules-carousel--in-context",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--in-context",
      "frame": "/iframe.html?id=components-molecules-carousel--in-context&viewMode=story"
    },
    {
      "name": "Accessibility notes",
      "id": "components-molecules-carousel--accessibility-notes",
      "interaction": false,
      "snapshots": [],
      "skipsSnapshot": true,
      "docs": "/?path=/story/components-molecules-carousel--accessibility-notes",
      "frame": "/iframe.html?id=components-molecules-carousel--accessibility-notes&viewMode=story"
    },
    {
      "name": "Integration — Card with embedded Carousel",
      "id": "components-molecules-carousel--card-with-carousel",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--card-with-carousel",
      "frame": "/iframe.html?id=components-molecules-carousel--card-with-carousel&viewMode=story"
    },
    {
      "name": "Integration — Card with vertical Carousel",
      "id": "components-molecules-carousel--card-with-vertical-carousel",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--card-with-vertical-carousel",
      "frame": "/iframe.html?id=components-molecules-carousel--card-with-vertical-carousel&viewMode=story"
    },
    {
      "name": "Integration — Card with metric snapshot Carousel",
      "id": "components-molecules-carousel--card-with-metrics-carousel",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-carousel--card-with-metrics-carousel",
      "frame": "/iframe.html?id=components-molecules-carousel--card-with-metrics-carousel&viewMode=story"
    },
    {
      "name": "Keyboard flow (interaction test)",
      "id": "components-molecules-carousel--keyboard-flow",
      "interaction": true,
      "snapshots": [],
      "skipsSnapshot": true,
      "docs": "/?path=/story/components-molecules-carousel--keyboard-flow",
      "frame": "/iframe.html?id=components-molecules-carousel--keyboard-flow&viewMode=story"
    }
  ],
  "storyFile": "tooling/storybook/stories/components/molecules/carousel.stories.tsx"
}
