{
  "name": "carousel",
  "displayName": "Carousel",
  "type": "shadow",
  "isCustomElement": true,
  "tag": "l-carousel",
  "nativeTag": null,
  "selector": "l-carousel",
  "subItemOf": null,
  "summary": "Carousel custom element based on Embla Carousel.",
  "status": "stable",
  "appearances": [],
  "import": {
    "css": null,
    "js": "luxen-ui/carousel"
  },
  "properties": [
    {
      "name": "embla",
      "attribute": null,
      "type": "EmblaCarouselType",
      "default": null,
      "reflects": false,
      "description": ""
    },
    {
      "name": "autoplay",
      "attribute": "autoplay",
      "type": "number",
      "default": "0",
      "reflects": true,
      "description": "Choose a delay between transitions in milliseconds (default: 4000)."
    },
    {
      "name": "autoplayOptions",
      "attribute": "autoplay-options",
      "type": "any",
      "default": null,
      "reflects": false,
      "description": "Configure autoplay options."
    },
    {
      "name": "axis",
      "attribute": "axis",
      "type": "AxisOptionType",
      "default": "'x'",
      "reflects": false,
      "description": "Choose scroll axis between x and y."
    },
    {
      "name": "align",
      "attribute": "align",
      "type": "AlignmentOptionType",
      "default": "'start'",
      "reflects": false,
      "description": "Align the slides relative to the carousel viewport."
    },
    {
      "name": "breakpoints",
      "attribute": "breakpoints",
      "type": "any",
      "default": "{}",
      "reflects": true,
      "description": "Breakpoint overrides for options."
    },
    {
      "name": "loop",
      "attribute": "loop",
      "type": "boolean",
      "default": "false",
      "reflects": false,
      "description": "Enables infinite looping."
    },
    {
      "name": "dragFree",
      "attribute": "drag-free",
      "type": "boolean",
      "default": "false",
      "reflects": false,
      "description": "Enables momentum scrolling (drag free)."
    },
    {
      "name": "duration",
      "attribute": "duration",
      "type": "number",
      "default": "20",
      "reflects": false,
      "description": "Set scroll duration when triggered by API methods."
    },
    {
      "name": "skipSnaps",
      "attribute": "skip-snaps",
      "type": "boolean",
      "default": "false",
      "reflects": false,
      "description": "Allow skipping scroll snaps on vigorous drag."
    },
    {
      "name": "slidesToScroll",
      "attribute": "slides-to-scroll",
      "type": "SlidesToScrollOptionType",
      "default": "1",
      "reflects": false,
      "description": "Group slides together for navigation."
    },
    {
      "name": "startIndex",
      "attribute": "start-index",
      "type": "number",
      "default": "0",
      "reflects": false,
      "description": "Set the initial scroll snap index."
    },
    {
      "name": "containScroll",
      "attribute": "contain-scroll",
      "type": "ScrollContainOptionType",
      "default": "'trimSnaps'",
      "reflects": false,
      "description": "Clear leading and trailing empty space."
    },
    {
      "name": "single",
      "attribute": "single",
      "type": "boolean",
      "default": "false",
      "reflects": false,
      "description": ""
    },
    {
      "name": "withDots",
      "attribute": "with-dots",
      "type": "boolean",
      "default": "false",
      "reflects": false,
      "description": ""
    },
    {
      "name": "withScrollbar",
      "attribute": "with-scrollbar",
      "type": "boolean",
      "default": "false",
      "reflects": false,
      "description": ""
    },
    {
      "name": "withFullscreen",
      "attribute": "with-fullscreen",
      "type": "boolean",
      "default": "false",
      "reflects": false,
      "description": ""
    },
    {
      "name": "dotAppearance",
      "attribute": "dot-appearance",
      "type": "'circle' | 'bar'",
      "default": "'bar'",
      "reflects": false,
      "description": ""
    },
    {
      "name": "maxVisibleDots",
      "attribute": "max-visible-dots",
      "type": "number",
      "default": "0",
      "reflects": false,
      "description": "Maximum number of dots rendered at once. When the snap count exceeds this,\na sliding window keeps the active dot in view and shrinks the edge dot(s)\non the side where dots are hidden. `0` (default) renders all dots."
    },
    {
      "name": "scrollButtonsPosition",
      "attribute": "scroll-buttons-position",
      "type": "'inside' | 'outside'",
      "default": "'inside'",
      "reflects": false,
      "description": ""
    },
    {
      "name": "next",
      "attribute": null,
      "type": null,
      "default": null,
      "reflects": false,
      "description": ""
    },
    {
      "name": "previous",
      "attribute": null,
      "type": null,
      "default": null,
      "reflects": false,
      "description": ""
    }
  ],
  "attributes": [],
  "events": [
    {
      "name": "select",
      "description": "Fired when the active slide changes. Bubbles. Properties: `index: number`.",
      "cancelable": false
    },
    {
      "name": "slides-in-view",
      "description": "Fired when the set of slides in view changes. Properties: `indexes: number[]`.",
      "cancelable": false
    },
    {
      "name": "fullscreen",
      "description": "Fired when the fullscreen button is activated.",
      "cancelable": false
    }
  ],
  "methods": [
    {
      "name": "options",
      "params": [],
      "returns": "EmblaOptionsType",
      "description": ""
    },
    {
      "name": "goToSlide",
      "params": [
        {
          "name": "index",
          "type": "number"
        },
        {
          "name": "jump",
          "type": "boolean"
        }
      ],
      "returns": null,
      "description": ""
    },
    {
      "name": "slideNodes",
      "params": [],
      "returns": null,
      "description": ""
    },
    {
      "name": "slidesInView",
      "params": [],
      "returns": null,
      "description": ""
    },
    {
      "name": "isActive",
      "params": [],
      "returns": null,
      "description": ""
    },
    {
      "name": "renderFullscreenButton",
      "params": [],
      "returns": null,
      "description": ""
    },
    {
      "name": "renderNextPreviousButtons",
      "params": [],
      "returns": null,
      "description": ""
    }
  ],
  "slots": [],
  "cssClasses": [],
  "cssParts": [
    {
      "name": "viewport",
      "description": "The carousel viewport container."
    },
    {
      "name": "container",
      "description": "The slides container slot."
    },
    {
      "name": "scroll-buttons",
      "description": "The scroll buttons wrapper."
    },
    {
      "name": "button",
      "description": "Any navigation button."
    },
    {
      "name": "button-previous",
      "description": "The previous slide navigation button."
    },
    {
      "name": "button-next",
      "description": "The next slide navigation button."
    },
    {
      "name": "button-dot",
      "description": "Any dot navigation button."
    },
    {
      "name": "dots",
      "description": "The dots navigation wrapper."
    },
    {
      "name": "button-fullscreen",
      "description": "The fullscreen button."
    },
    {
      "name": "button-icon",
      "description": "Any button icon SVG."
    }
  ],
  "cssProperties": [
    {
      "name": "--slide-height",
      "default": null,
      "description": "Height of slides in vertical axis mode."
    },
    {
      "name": "--slide-size",
      "default": null,
      "description": "Width of each slide (e.g. `100%`, `calc(100% / 3)`)."
    },
    {
      "name": "--slide-gap",
      "default": null,
      "description": "Gap between slides."
    },
    {
      "name": "--button-size",
      "default": null,
      "description": "Size of navigation buttons."
    },
    {
      "name": "--button-arrow-size",
      "default": null,
      "description": "Size of arrow icons inside buttons."
    },
    {
      "name": "--button-arrow-color",
      "default": null,
      "description": "Color of arrow icons."
    },
    {
      "name": "--button-offset",
      "default": null,
      "description": "Offset of inside-positioned buttons from edges."
    },
    {
      "name": "--button-border-color",
      "default": null,
      "description": "Border color of buttons."
    },
    {
      "name": "--button-border-radius",
      "default": null,
      "description": "Border radius of buttons."
    },
    {
      "name": "--button-bg",
      "default": null,
      "description": "Background color of buttons."
    },
    {
      "name": "--button-color",
      "default": null,
      "description": "Text/icon color of buttons."
    },
    {
      "name": "--dot-color",
      "default": null,
      "description": "Color of inactive dots."
    },
    {
      "name": "--dot-color-active",
      "default": null,
      "description": "Color of active dot."
    },
    {
      "name": "--dot-margin",
      "default": null,
      "description": "Margin around dots container."
    },
    {
      "name": "--dot-edge-scale",
      "default": "0.5",
      "description": "Scale factor applied to edge dots that signal more dots exist beyond the visible window ()."
    }
  ],
  "commands": [],
  "examples": []
}
