[{"data":1,"prerenderedAt":897},["ShallowReactive",2],{"navigation":3,"$f2vxmxe0ttlw1b":470,"\u002Fdocs\u002Fcomponents\u002Fcarousel":481,"surround-\u002Fdocs\u002Fcomponents\u002Fcarousel":894},[4],{"title":5,"path":6,"stem":7,"children":8,"page":18},"Docs","\u002Fdocs","docs",[9,298,324,342,348,365,391,405],{"title":10,"path":11,"stem":12,"children":13,"new":18,"type":297},"Components","\u002Fdocs\u002Fcomponents","docs\u002F02.components",[14,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293],{"title":15,"path":16,"stem":17,"new":18,"type":19,"children":-1},"Accordion","\u002Fdocs\u002Fcomponents\u002Faccordion","docs\u002Fcomponents\u002Faccordion",false,"component",{"title":21,"path":22,"stem":23,"new":18,"type":19,"children":-1},"Alert","\u002Fdocs\u002Fcomponents\u002Falert","docs\u002Fcomponents\u002Falert",{"title":25,"path":26,"stem":27,"new":18,"type":19,"children":-1},"Alert Dialog","\u002Fdocs\u002Fcomponents\u002Falert-dialog","docs\u002Fcomponents\u002Falert-dialog",{"title":29,"path":30,"stem":31,"new":18,"type":19,"children":-1},"Aspect Ratio","\u002Fdocs\u002Fcomponents\u002Faspect-ratio","docs\u002Fcomponents\u002Faspect-ratio",{"title":33,"path":34,"stem":35,"new":18,"type":19,"children":-1},"Attachment","\u002Fdocs\u002Fcomponents\u002Fattachment","docs\u002Fcomponents\u002Fattachment",{"title":37,"path":38,"stem":39,"new":18,"type":19,"children":-1},"Avatar","\u002Fdocs\u002Fcomponents\u002Favatar","docs\u002Fcomponents\u002Favatar",{"title":41,"path":42,"stem":43,"new":18,"type":19,"children":-1},"Badge","\u002Fdocs\u002Fcomponents\u002Fbadge","docs\u002Fcomponents\u002Fbadge",{"title":45,"path":46,"stem":47,"new":18,"type":19,"children":-1},"Breadcrumb","\u002Fdocs\u002Fcomponents\u002Fbreadcrumb","docs\u002Fcomponents\u002Fbreadcrumb",{"title":49,"path":50,"stem":51,"new":18,"type":19,"children":-1},"Bubble","\u002Fdocs\u002Fcomponents\u002Fbubble","docs\u002Fcomponents\u002Fbubble",{"title":53,"path":54,"stem":55,"new":18,"type":19,"children":-1},"Button","\u002Fdocs\u002Fcomponents\u002Fbutton","docs\u002Fcomponents\u002Fbutton",{"title":57,"path":58,"stem":59,"new":18,"type":19,"children":-1},"Button Group","\u002Fdocs\u002Fcomponents\u002Fbutton-group","docs\u002Fcomponents\u002Fbutton-group",{"title":61,"path":62,"stem":63,"new":18,"type":19,"children":-1},"Calendar","\u002Fdocs\u002Fcomponents\u002Fcalendar","docs\u002Fcomponents\u002Fcalendar",{"title":65,"path":66,"stem":67,"new":18,"type":19,"children":-1},"Card","\u002Fdocs\u002Fcomponents\u002Fcard","docs\u002Fcomponents\u002Fcard",{"title":69,"path":70,"stem":71,"new":18,"type":19,"children":-1},"Carousel","\u002Fdocs\u002Fcomponents\u002Fcarousel","docs\u002Fcomponents\u002Fcarousel",{"title":73,"path":74,"stem":75,"new":18,"type":19,"children":-1},"Chart","\u002Fdocs\u002Fcomponents\u002Fchart","docs\u002Fcomponents\u002Fchart",{"title":77,"path":78,"stem":79,"new":18,"type":19,"children":-1},"Checkbox","\u002Fdocs\u002Fcomponents\u002Fcheckbox","docs\u002Fcomponents\u002Fcheckbox",{"title":81,"path":82,"stem":83,"new":18,"type":19,"children":-1},"Collapsible","\u002Fdocs\u002Fcomponents\u002Fcollapsible","docs\u002Fcomponents\u002Fcollapsible",{"title":85,"path":86,"stem":87,"new":18,"type":19,"children":-1},"Combobox","\u002Fdocs\u002Fcomponents\u002Fcombobox","docs\u002Fcomponents\u002Fcombobox",{"title":89,"path":90,"stem":91,"new":18,"type":19,"children":-1},"Command","\u002Fdocs\u002Fcomponents\u002Fcommand","docs\u002Fcomponents\u002Fcommand",{"title":93,"path":94,"stem":95,"new":18,"type":19,"children":-1},"Context Menu","\u002Fdocs\u002Fcomponents\u002Fcontext-menu","docs\u002Fcomponents\u002Fcontext-menu",{"title":97,"path":98,"stem":99,"new":18,"type":19,"children":-1},"Data Table","\u002Fdocs\u002Fcomponents\u002Fdata-table","docs\u002Fcomponents\u002Fdata-table",{"title":101,"path":102,"stem":103,"new":18,"type":19,"children":-1},"Date Picker","\u002Fdocs\u002Fcomponents\u002Fdate-picker","docs\u002Fcomponents\u002Fdate-picker",{"title":105,"path":106,"stem":107,"new":18,"type":19,"children":-1},"Dialog","\u002Fdocs\u002Fcomponents\u002Fdialog","docs\u002Fcomponents\u002Fdialog",{"title":109,"path":110,"stem":111,"new":18,"type":19,"children":-1},"Drawer","\u002Fdocs\u002Fcomponents\u002Fdrawer","docs\u002Fcomponents\u002Fdrawer",{"title":113,"path":114,"stem":115,"new":18,"type":19,"children":-1},"Dropdown Menu","\u002Fdocs\u002Fcomponents\u002Fdropdown-menu","docs\u002Fcomponents\u002Fdropdown-menu",{"title":117,"path":118,"stem":119,"new":18,"type":19,"children":-1},"Empty","\u002Fdocs\u002Fcomponents\u002Fempty","docs\u002Fcomponents\u002Fempty",{"title":121,"path":122,"stem":123,"new":18,"type":19,"children":-1},"Field","\u002Fdocs\u002Fcomponents\u002Ffield","docs\u002Fcomponents\u002Ffield",{"title":125,"path":126,"stem":127,"new":18,"type":19,"children":-1},"Form","\u002Fdocs\u002Fcomponents\u002Fform","docs\u002Fcomponents\u002Fform",{"title":129,"path":130,"stem":131,"new":18,"type":19,"children":-1},"Hover Card","\u002Fdocs\u002Fcomponents\u002Fhover-card","docs\u002Fcomponents\u002Fhover-card",{"title":133,"path":134,"stem":135,"new":18,"type":19,"children":-1},"Input","\u002Fdocs\u002Fcomponents\u002Finput","docs\u002Fcomponents\u002Finput",{"title":137,"path":138,"stem":139,"new":18,"type":19,"children":-1},"Input Group","\u002Fdocs\u002Fcomponents\u002Finput-group","docs\u002Fcomponents\u002Finput-group",{"title":141,"path":142,"stem":143,"new":18,"type":19,"children":-1},"Input OTP","\u002Fdocs\u002Fcomponents\u002Finput-otp","docs\u002Fcomponents\u002Finput-otp",{"title":145,"path":146,"stem":147,"new":18,"type":19,"children":-1},"Item","\u002Fdocs\u002Fcomponents\u002Fitem","docs\u002Fcomponents\u002Fitem",{"title":149,"path":150,"stem":151,"new":18,"type":19,"children":-1},"Kbd","\u002Fdocs\u002Fcomponents\u002Fkbd","docs\u002Fcomponents\u002Fkbd",{"title":153,"path":154,"stem":155,"new":18,"type":19,"children":-1},"Label","\u002Fdocs\u002Fcomponents\u002Flabel","docs\u002Fcomponents\u002Flabel",{"title":157,"path":158,"stem":159,"new":18,"type":19,"children":-1},"Marker","\u002Fdocs\u002Fcomponents\u002Fmarker","docs\u002Fcomponents\u002Fmarker",{"title":161,"path":162,"stem":163,"new":18,"type":19,"children":-1},"Menubar","\u002Fdocs\u002Fcomponents\u002Fmenubar","docs\u002Fcomponents\u002Fmenubar",{"title":165,"path":166,"stem":167,"new":18,"type":19,"children":-1},"Message","\u002Fdocs\u002Fcomponents\u002Fmessage","docs\u002Fcomponents\u002Fmessage",{"title":169,"path":170,"stem":171,"new":18,"type":19,"children":-1},"Message Scroller","\u002Fdocs\u002Fcomponents\u002Fmessage-scroller","docs\u002Fcomponents\u002Fmessage-scroller",{"title":173,"path":174,"stem":175,"new":18,"type":19,"children":-1},"Native Select","\u002Fdocs\u002Fcomponents\u002Fnative-select","docs\u002Fcomponents\u002Fnative-select",{"title":177,"path":178,"stem":179,"new":18,"type":19,"children":-1},"Navigation Menu","\u002Fdocs\u002Fcomponents\u002Fnavigation-menu","docs\u002Fcomponents\u002Fnavigation-menu",{"title":181,"path":182,"stem":183,"new":18,"type":19,"children":-1},"Number Field","\u002Fdocs\u002Fcomponents\u002Fnumber-field","docs\u002Fcomponents\u002Fnumber-field",{"title":185,"path":186,"stem":187,"new":18,"type":19,"children":-1},"Pagination","\u002Fdocs\u002Fcomponents\u002Fpagination","docs\u002Fcomponents\u002Fpagination",{"title":189,"path":190,"stem":191,"new":18,"type":19,"children":-1},"Pin Input","\u002Fdocs\u002Fcomponents\u002Fpin-input","docs\u002Fcomponents\u002Fpin-input",{"title":193,"path":194,"stem":195,"new":18,"type":19,"children":-1},"Popover","\u002Fdocs\u002Fcomponents\u002Fpopover","docs\u002Fcomponents\u002Fpopover",{"title":197,"path":198,"stem":199,"new":18,"type":19,"children":-1},"Progress","\u002Fdocs\u002Fcomponents\u002Fprogress","docs\u002Fcomponents\u002Fprogress",{"title":201,"path":202,"stem":203,"new":204,"type":19,"children":-1},"Questionnaire","\u002Fdocs\u002Fcomponents\u002Fquestionnaire","docs\u002Fcomponents\u002Fquestionnaire",true,{"title":206,"path":207,"stem":208,"new":18,"type":19,"children":-1},"Radio Group","\u002Fdocs\u002Fcomponents\u002Fradio-group","docs\u002Fcomponents\u002Fradio-group",{"title":210,"path":211,"stem":212,"new":18,"type":19,"children":-1},"Range Calendar","\u002Fdocs\u002Fcomponents\u002Frange-calendar","docs\u002Fcomponents\u002Frange-calendar",{"title":214,"path":215,"stem":216,"new":18,"type":19,"children":-1},"Resizable","\u002Fdocs\u002Fcomponents\u002Fresizable","docs\u002Fcomponents\u002Fresizable",{"title":218,"path":219,"stem":220,"new":18,"type":19,"children":-1},"Scroll Area","\u002Fdocs\u002Fcomponents\u002Fscroll-area","docs\u002Fcomponents\u002Fscroll-area",{"title":222,"path":223,"stem":224,"new":18,"type":19,"children":-1},"Select","\u002Fdocs\u002Fcomponents\u002Fselect","docs\u002Fcomponents\u002Fselect",{"title":226,"path":227,"stem":228,"new":18,"type":19,"children":-1},"Separator","\u002Fdocs\u002Fcomponents\u002Fseparator","docs\u002Fcomponents\u002Fseparator",{"title":230,"path":231,"stem":232,"new":18,"type":19,"children":-1},"Sheet","\u002Fdocs\u002Fcomponents\u002Fsheet","docs\u002Fcomponents\u002Fsheet",{"title":234,"path":235,"stem":236,"new":18,"type":19,"children":-1},"Sidebar","\u002Fdocs\u002Fcomponents\u002Fsidebar","docs\u002Fcomponents\u002Fsidebar",{"title":238,"path":239,"stem":240,"new":18,"type":19,"children":-1},"Skeleton","\u002Fdocs\u002Fcomponents\u002Fskeleton","docs\u002Fcomponents\u002Fskeleton",{"title":242,"path":243,"stem":244,"new":18,"type":19,"children":-1},"Slider","\u002Fdocs\u002Fcomponents\u002Fslider","docs\u002Fcomponents\u002Fslider",{"title":246,"path":247,"stem":248,"new":18,"type":19,"children":-1},"Sonner","\u002Fdocs\u002Fcomponents\u002Fsonner","docs\u002Fcomponents\u002Fsonner",{"title":250,"path":251,"stem":252,"new":18,"type":19,"children":-1},"Spinner","\u002Fdocs\u002Fcomponents\u002Fspinner","docs\u002Fcomponents\u002Fspinner",{"title":254,"path":255,"stem":256,"new":18,"type":19,"children":-1},"Stepper","\u002Fdocs\u002Fcomponents\u002Fstepper","docs\u002Fcomponents\u002Fstepper",{"title":258,"path":259,"stem":260,"new":18,"type":19,"children":-1},"Switch","\u002Fdocs\u002Fcomponents\u002Fswitch","docs\u002Fcomponents\u002Fswitch",{"title":262,"path":263,"stem":264,"new":18,"type":19,"children":-1},"Table","\u002Fdocs\u002Fcomponents\u002Ftable","docs\u002Fcomponents\u002Ftable",{"title":266,"path":267,"stem":268,"new":18,"type":19,"children":-1},"Tabs","\u002Fdocs\u002Fcomponents\u002Ftabs","docs\u002Fcomponents\u002Ftabs",{"title":270,"path":271,"stem":272,"new":18,"type":19,"children":-1},"Tags Input","\u002Fdocs\u002Fcomponents\u002Ftags-input","docs\u002Fcomponents\u002Ftags-input",{"title":274,"path":275,"stem":276,"new":18,"type":19,"children":-1},"Textarea","\u002Fdocs\u002Fcomponents\u002Ftextarea","docs\u002Fcomponents\u002Ftextarea",{"title":278,"path":279,"stem":280,"new":18,"type":19,"children":-1},"Toast","\u002Fdocs\u002Fcomponents\u002Ftoast","docs\u002Fcomponents\u002Ftoast",{"title":282,"path":283,"stem":284,"new":18,"type":19,"children":-1},"Toggle","\u002Fdocs\u002Fcomponents\u002Ftoggle","docs\u002Fcomponents\u002Ftoggle",{"title":286,"path":287,"stem":288,"new":18,"type":19,"children":-1},"Toggle Group","\u002Fdocs\u002Fcomponents\u002Ftoggle-group","docs\u002Fcomponents\u002Ftoggle-group",{"title":290,"path":291,"stem":292,"new":18,"type":19,"children":-1},"Tooltip","\u002Fdocs\u002Fcomponents\u002Ftooltip","docs\u002Fcomponents\u002Ftooltip",{"title":294,"path":295,"stem":296,"new":18,"type":19,"children":-1},"Typography","\u002Fdocs\u002Fcomponents\u002Ftypography","docs\u002Fcomponents\u002Ftypography","group",{"title":299,"path":300,"stem":301,"children":302,"new":18,"type":297},"Installation","\u002Fdocs\u002Finstallation","docs\u002F02.installation",[303,308,312,316,320],{"title":304,"path":305,"stem":306,"new":18,"type":307,"children":-1},"Vite","\u002Fdocs\u002Finstallation\u002Fvite","docs\u002Finstallation\u002F01.vite","page",{"title":309,"path":310,"stem":311,"new":18,"type":307,"children":-1},"Nuxt","\u002Fdocs\u002Finstallation\u002Fnuxt","docs\u002Finstallation\u002F02.nuxt",{"title":313,"path":314,"stem":315,"new":18,"type":307,"children":-1},"Astro","\u002Fdocs\u002Finstallation\u002Fastro","docs\u002Finstallation\u002F03.astro",{"title":317,"path":318,"stem":319,"new":18,"type":307,"children":-1},"Laravel","\u002Fdocs\u002Finstallation\u002Flaravel","docs\u002Finstallation\u002F04.laravel",{"title":321,"path":322,"stem":323,"new":18,"type":307,"children":-1},"Manual Installation","\u002Fdocs\u002Finstallation\u002Fmanual","docs\u002Finstallation\u002F05.manual",{"title":325,"path":326,"stem":327,"children":328,"new":18,"type":297},"Dark Mode","\u002Fdocs\u002Fdark-mode","docs\u002F05.dark-mode",[329,332,335,339],{"title":304,"path":330,"stem":331,"new":18,"type":307,"children":-1},"\u002Fdocs\u002Fdark-mode\u002Fvite","docs\u002Fdark-mode\u002F01.vite",{"title":309,"path":333,"stem":334,"new":18,"type":307,"children":-1},"\u002Fdocs\u002Fdark-mode\u002Fnuxt","docs\u002Fdark-mode\u002F02.nuxt",{"title":336,"path":337,"stem":338,"new":18,"type":307,"children":-1},"Vitepress","\u002Fdocs\u002Fdark-mode\u002Fvitepress","docs\u002Fdark-mode\u002F03.vitepress",{"title":313,"path":340,"stem":341,"new":18,"type":307,"children":-1},"\u002Fdocs\u002Fdark-mode\u002Fastro","docs\u002Fdark-mode\u002F04.astro",{"title":343,"path":344,"stem":345,"children":346,"new":18,"type":297},"Directory","\u002Fdocs\u002Fdirectory","docs\u002Fdirectory\u002Findex",[347],{"title":343,"path":344,"stem":345,"new":18,"type":307,"children":-1},{"title":349,"path":350,"stem":351,"children":352,"new":18,"type":297},"Forms","\u002Fdocs\u002Fforms","docs\u002Fforms",[353,357,361],{"title":354,"path":355,"stem":356,"new":18,"type":307,"children":-1},"VeeValidate","\u002Fdocs\u002Fforms\u002Fvee-validate","docs\u002Fforms\u002F01.vee-validate",{"title":358,"path":359,"stem":360,"new":18,"type":307,"children":-1},"TanStack Form","\u002Fdocs\u002Fforms\u002Ftanstack-form","docs\u002Fforms\u002F02.tanstack-form",{"title":362,"path":363,"stem":364,"new":18,"type":307,"children":-1},"Formisch","\u002Fdocs\u002Fforms\u002Fformisch","docs\u002Fforms\u002F03.formisch",{"title":366,"path":367,"stem":368,"children":369,"new":18,"type":297},"Registry","\u002Fdocs\u002Fregistry","docs\u002Fregistry\u002Findex",[370,371,375,379,383,387],{"title":366,"path":367,"stem":368,"new":18,"type":307,"children":-1},{"title":372,"path":373,"stem":374,"new":18,"type":307,"children":-1},"Examples","\u002Fdocs\u002Fregistry\u002Fexamples","docs\u002Fregistry\u002Fexamples",{"title":376,"path":377,"stem":378,"new":18,"type":307,"children":-1},"FAQ","\u002Fdocs\u002Fregistry\u002Ffaq","docs\u002Fregistry\u002Ffaq",{"title":380,"path":381,"stem":382,"new":18,"type":307,"children":-1},"Getting Started","\u002Fdocs\u002Fregistry\u002Fgetting-started","docs\u002Fregistry\u002Fgetting-started",{"title":384,"path":385,"stem":386,"new":18,"type":307,"children":-1},"registry-item.json","\u002Fdocs\u002Fregistry\u002Fregistry-item-json","docs\u002Fregistry\u002Fregistry-item-json",{"title":388,"path":389,"stem":390,"new":18,"type":307,"children":-1},"registry.json","\u002Fdocs\u002Fregistry\u002Fregistry-json","docs\u002Fregistry\u002Fregistry-json",{"title":392,"path":393,"stem":394,"children":395,"new":18,"type":297},"Utilities","\u002Fdocs\u002Futilities","docs\u002Futilities\u002Findex",[396,397,401],{"title":392,"path":393,"stem":394,"new":18,"type":307,"children":-1},{"title":398,"path":399,"stem":400,"new":18,"type":307,"children":-1},"scroll-fade","\u002Fdocs\u002Futilities\u002Fscroll-fade","docs\u002Futilities\u002Fscroll-fade",{"title":402,"path":403,"stem":404,"new":18,"type":307,"children":-1},"shimmer","\u002Fdocs\u002Futilities\u002Fshimmer","docs\u002Futilities\u002Fshimmer",{"path":6,"stem":7,"title":406,"type":297,"children":407},"Get Started",[408,412,419,423,427,433,437,441,445,449,453,457,461,465],{"title":409,"path":410,"stem":411,"new":18,"type":307,"children":-1},"Introduction","\u002Fdocs\u002Fintroduction","docs\u002F01.introduction",{"title":299,"path":300,"stem":301,"children":413,"new":18,"type":297},[414,415,416,417,418],{"title":304,"path":305,"stem":306,"new":18,"type":307,"children":-1},{"title":309,"path":310,"stem":311,"new":18,"type":307,"children":-1},{"title":313,"path":314,"stem":315,"new":18,"type":307,"children":-1},{"title":317,"path":318,"stem":319,"new":18,"type":307,"children":-1},{"title":321,"path":322,"stem":323,"new":18,"type":307,"children":-1},{"title":420,"path":421,"stem":422,"new":18,"type":307,"children":-1},"components.json","\u002Fdocs\u002Fcomponents-json","docs\u002F03.components-json",{"title":424,"path":425,"stem":426,"new":18,"type":307,"children":-1},"Theming","\u002Fdocs\u002Ftheming","docs\u002F04.theming",{"title":325,"path":326,"stem":327,"children":428,"new":18,"type":297},[429,430,431,432],{"title":304,"path":330,"stem":331,"new":18,"type":307,"children":-1},{"title":309,"path":333,"stem":334,"new":18,"type":307,"children":-1},{"title":336,"path":337,"stem":338,"new":18,"type":307,"children":-1},{"title":313,"path":340,"stem":341,"new":18,"type":307,"children":-1},{"title":434,"path":435,"stem":436,"new":18,"type":307,"children":-1},"CLI","\u002Fdocs\u002Fcli","docs\u002F06.cli",{"title":438,"path":439,"stem":440,"new":18,"type":307,"children":-1},"JavaScript","\u002Fdocs\u002Fjavascript","docs\u002F07.javascript",{"title":442,"path":443,"stem":444,"new":18,"type":307,"children":-1},"RTL","\u002Fdocs\u002Frtl","docs\u002F08.rtl",{"title":446,"path":447,"stem":448,"new":18,"type":307,"children":-1},"Figma","\u002Fdocs\u002Ffigma","docs\u002F09.figma",{"title":450,"path":451,"stem":452,"new":18,"type":307,"children":-1},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F10.changelog",{"title":454,"path":455,"stem":456,"new":18,"type":307,"children":-1},"Legacy Docs","\u002Fdocs\u002Flegacy","docs\u002F11.legacy",{"title":458,"path":459,"stem":460,"new":18,"type":307,"children":-1},"Skills","\u002Fdocs\u002Fskills","docs\u002Fskills",{"title":462,"path":463,"stem":464,"new":18,"type":307,"children":-1},"Typeset","\u002Fdocs\u002Ftypeset","docs\u002Ftypeset",{"title":392,"path":393,"stem":394,"children":466,"new":18,"type":297},[467,468,469],{"title":392,"path":393,"stem":394,"new":18,"type":307,"children":-1},{"title":398,"path":399,"stem":400,"new":18,"type":307,"children":-1},{"title":402,"path":403,"stem":404,"new":18,"type":307,"children":-1},{"repo":471},{"id":472,"name":473,"repo":474,"description":475,"createdAt":476,"updatedAt":477,"pushedAt":478,"stars":479,"watchers":479,"forks":479,"defaultBranch":480},1360880822,"v-design","v-stella\u002Fv-design","An open-source Vue design system and component registry.","2026-09-08T03:28:46Z","2026-09-09T08:39:14Z","2026-09-09T08:36:47Z",0,"dev",{"id":482,"title":69,"body":483,"description":887,"extension":888,"links":889,"meta":890,"navigation":204,"new":18,"path":70,"rawbody":891,"seo":892,"stem":71,"__hash__":893},"content\u002Fdocs\u002Fcomponents\u002Fcarousel.md",{"type":484,"value":485,"toc":870},"minimark",[486,492,496,564,568,577,580,585,596,601,611,618,622,639,672,676,683,690,694,700,705,711,715,728,737,741,745,755,760,764,770,779,783,792,802,810,814,829,836,840,846,852,859,863],[487,488],"component-preview",{"description":489,"name":490,"previewClass":491,"title":69},"A carousel component.","CarouselDemo","h-[25rem] sm:h-[32rem]",[493,494,299],"h2",{"id":495},"installation",[497,498,499,515,529],"code-tabs",{},[500,501,502,509],"tabs-list",{},[503,504,506],"tabs-trigger",{"value":505},"cli",[507,508,434],"p",{},[503,510,512],{"value":511},"manual",[507,513,514],{},"Manual",[516,517,518],"tabs-content",{"value":505},[519,520,526],"pre",{"className":521,"code":523,"language":524,"meta":525},[522],"language-bash","npx shadcn-vue@latest add carousel\n","bash","",[527,528,523],"code",{"__ignoreMap":525},[516,530,531],{"value":511},[532,533,534,540,546,559],"steps",{},[535,536,537],"step",{},[507,538,539],{},"Install the following dependencies:",[519,541,544],{"className":542,"code":543,"language":524,"meta":525},[522],"npm install embla-carousel-vue\n",[527,545,543],{"__ignoreMap":525},[535,547,548],{},[507,549,550,551,558],{},"Copy and paste the ",[552,553,557],"a",{"href":554,"rel":555},"https:\u002F\u002Fgithub.com\u002Funovue\u002Fshadcn-vue\u002Ftree\u002Fdev\u002Fapps\u002Fv4\u002Fregistry\u002Fnew-york-v4\u002Fui\u002Fcarousel",[556],"nofollow","GitHub source code"," into your project.",[535,560,561],{},[507,562,563],{},"Update the import paths to match your project setup.",[493,565,567],{"id":566},"usage","Usage",[519,569,575],{"className":570,"code":572,"language":573,"meta":574},[571],"language-vue","\u003Cscript setup lang=\"ts\">\nimport {\n  Carousel,\n  CarouselContent,\n  CarouselItem,\n  CarouselNext,\n  CarouselPrevious,\n} from '@\u002Fcomponents\u002Fui\u002Fcarousel'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n    \u003CCarouselPrevious \u002F>\n    \u003CCarouselNext \u002F>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n","vue","showLineNumbers",[527,576,572],{"__ignoreMap":525},[493,578,372],{"id":579},"examples",[581,582,584],"h3",{"id":583},"sizes","Sizes",[507,586,587,588,591,592,595],{},"To set the size of the items, you can use the ",[527,589,590],{},"basis"," utility class on the ",[527,593,594],{},"\u003CCarouselItem \u002F>",".",[487,597],{"description":598,"name":599,"previewClass":600,"title":69},"A carousel with 3 active items of equal size.","CarouselSize","h-[25rem] sm:h-72",[519,602,609],{"className":603,"code":604,"highlights":605,"language":573,"meta":574},[571],"\u002F\u002F 33% of the carousel width.\n\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent>\n      \u003CCarouselItem class=\"basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n",[606,607,608],5,6,7,[527,610,604],{"__ignoreMap":525},[519,612,616],{"className":613,"code":614,"highlights":615,"language":573,"meta":574},[571],"\u002F\u002F 50% on small screens and 33% on larger screens.\n\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent>\n      \u003CCarouselItem class=\"md:basis-1\u002F2 lg:basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"md:basis-1\u002F2 lg:basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"md:basis-1\u002F2 lg:basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n",[606,607,608],[527,617,614],{"__ignoreMap":525},[581,619,621],{"id":620},"spacing","Spacing",[507,623,624,625,628,629,631,632,635,636,595],{},"To set the spacing between the items, we use a ",[527,626,627],{},"pl-[VALUE]"," utility on the ",[527,630,594],{}," and a negative ",[527,633,634],{},"-ml-[VALUE]"," on the ",[527,637,638],{},"\u003CCarouselContent \u002F>",[640,641,644,669],"callout",{"className":642},[643],"mt-6",[507,645,646,650,651,654,655,658,659,662,663,665,666,668],{},[647,648,649],"strong",{},"Why:"," I tried to use the ",[527,652,653],{},"gap"," property or a ",[527,656,657],{},"grid"," layout on the ",[527,660,661],{},"   \u003CCarouselContent \u002F>"," but it required a lot of math and mental effort to get the\nspacing right. I found ",[527,664,627],{}," and ",[527,667,634],{}," utilities much easier to\nuse.",[507,670,671],{},"You can always adjust this in your own project if you need to.",[487,673],{"description":674,"name":675,"previewClass":600,"title":69},"A carousel with 3 items with a spacing of 1rem.","CarouselSpacing",[519,677,681],{"className":678,"code":679,"language":573,"meta":680},[571],"\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent class=\"-ml-4\">\n      \u003CCarouselItem class=\"pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n","showLineNumbers \u002F-ml-4\u002F \u002Fpl-4\u002F",[527,682,679],{"__ignoreMap":525},[519,684,688],{"className":685,"code":686,"language":573,"meta":687},[571],"\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent class=\"-ml-2 md:-ml-4\">\n      \u003CCarouselItem class=\"pl-2 md:pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"pl-2 md:pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"pl-2 md:pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n","showLineNumbers \u002F-ml-2\u002F \u002Fpl-2\u002F \u002Fmd:-ml-4\u002F \u002Fmd:pl-4\u002F",[527,689,686],{"__ignoreMap":525},[581,691,693],{"id":692},"orientation","Orientation",[507,695,696,697,699],{},"Use the ",[527,698,692],{}," prop to set the orientation of the carousel.",[487,701],{"description":702,"name":703,"previewClass":704,"title":69},"A vertical carousel.","CarouselOrientation","h-[32rem]",[519,706,709],{"className":707,"code":708,"language":573,"meta":525},[571],"\u003CCarousel orientation=\"vertical | horizontal\">\n  ...\n\u003C\u002FCarousel>\n",[527,710,708],{"__ignoreMap":525},[493,712,714],{"id":713},"options","Options",[507,716,717,718,721,722,727],{},"You can pass options to the carousel using the ",[527,719,720],{},"opts"," prop. See the ",[552,723,726],{"href":724,"rel":725},"https:\u002F\u002Fwww.embla-carousel.com\u002Fapi\u002Foptions\u002F",[556],"Embla Carousel docs"," for more information.",[519,729,735],{"className":730,"code":731,"highlights":732,"language":573,"meta":574},[571],"\u003Ctemplate>\n  \u003CCarousel\n    :opts=\"{\n      align: 'start',\n      loop: true,\n    }\"\n  >\n    \u003CCarouselContent>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n",[733,734,606,607],3,4,[527,736,731],{"__ignoreMap":525},[493,738,740],{"id":739},"api","API",[581,742,744],{"id":743},"method-1","Method 1",[507,746,696,747,750,751,754],{},[527,748,749],{},"@init-api"," emit method on ",[527,752,753],{},"\u003CCarousel \u002F>"," component to set the instance of the API.",[487,756],{"description":757,"name":758,"previewClass":759,"title":69},"A carousel with a slide counter.","CarouselApi","h-[27rem] sm:h-[32rem]",[581,761,763],{"id":762},"method-2","Method 2",[507,765,766,767,769],{},"You can access it through setting a template ref on the ",[527,768,753],{}," component.",[519,771,777],{"className":772,"code":773,"highlights":774,"language":573,"meta":574},[571],"\u003Cscript setup lang=\"ts\">\nconst carouselContainerRef = ref\u003CInstanceType\u003Ctypeof Carousel> | null>(null)\n\nfunction accessApi() {\n  carouselContainerRef.value?.carouselApi.on('select', () => {})\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CCarousel ref=\"carouselContainerRef\">\n    ...\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n",[775,606,776],2,10,[527,778,773],{"__ignoreMap":525},[493,780,782],{"id":781},"events","Events",[507,784,785,786,788,789,791],{},"You can listen to events using the API. To get the API instance use the ",[527,787,749],{}," emit method on the ",[527,790,753],{}," component",[519,793,800],{"className":794,"code":795,"highlights":796,"language":573,"meta":574},[571],"\u003Cscript setup lang=\"ts\">\nimport { nextTick, ref, watch } from 'vue'\nimport { useCarousel } from '@\u002Fcomponents\u002Fui\u002Fcarousel'\n\nconst api = ref\u003CCarouselApi>()\n\nfunction setApi(val: CarouselApi) {\n  api.value = val\n}\n\nconst stop = watch(api, (api) => {\n  if (!api)\n    return\n\n  \u002F\u002F Watch only once or use watchOnce() in @vueuse\u002Fcore\n  nextTick(() => stop())\n\n  api.on('select', () => {\n    \u002F\u002F Do something on select.\n  })\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CCarousel @init-api=\"setApi\">\n    ...\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n",[606,608,797,798,799],8,9,25,[527,801,795],{"__ignoreMap":525},[507,803,804,805,809],{},"See the ",[552,806,726],{"href":807,"rel":808},"https:\u002F\u002Fwww.embla-carousel.com\u002Fapi\u002Fevents\u002F",[556]," for more information on using events.",[493,811,813],{"id":812},"slot-props","Slot Props",[507,815,816,817,820,821,824,825,828],{},"You can get the reactive slot props like ",[527,818,819],{},"carouselRef, canScrollNext..Prev, scrollNext..Prev"," using the ",[527,822,823],{},"v-slot"," directive in the ",[527,826,827],{},"\u003CCarousel v-slot=\"slotProps\" \u002F>"," component to extend the functionality.",[519,830,834],{"className":831,"code":832,"highlights":833,"language":573,"meta":574},[571],"\u003Ctemplate>\n  \u003CCarousel v-slot=\"{ canScrollNext, canScrollPrev }\">\n    ...\n    \u003CCarouselPrevious v-if=\"canScrollPrev\" \u002F>\n    \u003CCarouselNext v-if=\"canScrollNext\" \u002F>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n",[775],[527,835,832],{"__ignoreMap":525},[493,837,839],{"id":838},"plugins","Plugins",[507,841,842,843,845],{},"You can use the ",[527,844,838],{}," prop to add plugins to the carousel.",[519,847,850],{"className":848,"code":849,"language":524,"meta":525},[522],"npm install embla-carousel-autoplay\n",[527,851,849],{"__ignoreMap":525},[519,853,857],{"className":854,"code":855,"highlights":856,"language":573,"meta":574},[571],"\u003Cscript setup lang=\"ts\">\nimport Autoplay from 'embla-carousel-autoplay'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CCarousel\n    class=\"w-full max-w-xs\"\n    :plugins=\"[Autoplay({\n      delay: 2000,\n    })]\"\n  >\n    ...\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n",[775,797,798,776],[527,858,855],{"__ignoreMap":525},[487,860],{"description":861,"name":862,"previewClass":491,"title":69},"A carousel with the autoplay plugin.","CarouselPlugin",[507,864,804,865,869],{},[552,866,726],{"href":867,"rel":868},"https:\u002F\u002Fwww.embla-carousel.com\u002Fapi\u002Fplugins\u002F",[556]," for more information on using plugins.",{"title":525,"searchDepth":775,"depth":775,"links":871},[872,873,874,879,880,884,885,886],{"id":495,"depth":775,"text":299},{"id":566,"depth":775,"text":567},{"id":579,"depth":775,"text":372,"children":875},[876,877,878],{"id":583,"depth":733,"text":584},{"id":620,"depth":733,"text":621},{"id":692,"depth":733,"text":693},{"id":713,"depth":775,"text":714},{"id":739,"depth":775,"text":740,"children":881},[882,883],{"id":743,"depth":733,"text":744},{"id":762,"depth":733,"text":763},{"id":781,"depth":775,"text":782},{"id":812,"depth":775,"text":813},{"id":838,"depth":775,"text":839},"A carousel with motion and swipe built using Embla.","md",null,{"component":204},"---\ntitle: Carousel\ndescription: A carousel with motion and swipe built using Embla.\ncomponent: true\n---\n\n::component-preview\n---\nname: CarouselDemo\ntitle: Carousel\ndescription: A carousel component.\npreviewClass: h-[25rem] sm:h-[32rem]\n---\n::\n\n## Installation\n\n:::::code-tabs\n\n:::tabs-list\n\n  ::tabs-trigger{value=\"cli\"}\n  CLI\n  ::\n\n  ::tabs-trigger{value=\"manual\"}\n  Manual\n  ::\n\n:::\n\n::tabs-content{value=\"cli\"}\n\n```bash\nnpx shadcn-vue@latest add carousel\n```\n\n::\n\n::::tabs-content{value=\"manual\"}\n  :::steps\n    ::step\n    Install the following dependencies:\n    ::\n\n    ```bash\n    npm install embla-carousel-vue\n    ```\n\n    ::step\n    Copy and paste the [GitHub source code](https:\u002F\u002Fgithub.com\u002Funovue\u002Fshadcn-vue\u002Ftree\u002Fdev\u002Fapps\u002Fv4\u002Fregistry\u002Fnew-york-v4\u002Fui\u002Fcarousel) into your project.\n    ::\n\n    ::step\n    Update the import paths to match your project setup.\n    ::\n  :::\n::::\n\n:::::\n\n## Usage\n\n```vue showLineNumbers\n\u003Cscript setup lang=\"ts\">\nimport {\n  Carousel,\n  CarouselContent,\n  CarouselItem,\n  CarouselNext,\n  CarouselPrevious,\n} from '@\u002Fcomponents\u002Fui\u002Fcarousel'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n    \u003CCarouselPrevious \u002F>\n    \u003CCarouselNext \u002F>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\n## Examples\n\n### Sizes\n\nTo set the size of the items, you can use the `basis` utility class on the `\u003CCarouselItem \u002F>`.\n\n::component-preview\n---\nname: CarouselSize\ntitle: Carousel\ndescription: A carousel with 3 active items of equal size.\npreviewClass: h-[25rem] sm:h-72\n---\n::\n\n```vue showLineNumbers {5-7}\n\u002F\u002F 33% of the carousel width.\n\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent>\n      \u003CCarouselItem class=\"basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\n```vue showLineNumbers {5-7}\n\u002F\u002F 50% on small screens and 33% on larger screens.\n\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent>\n      \u003CCarouselItem class=\"md:basis-1\u002F2 lg:basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"md:basis-1\u002F2 lg:basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"md:basis-1\u002F2 lg:basis-1\u002F3\">\n        ...\n      \u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\n### Spacing\n\nTo set the spacing between the items, we use a `pl-[VALUE]` utility on the `\u003CCarouselItem \u002F>` and a negative `-ml-[VALUE]` on the `\u003CCarouselContent \u002F>`.\n\n::callout{class=\"mt-6\"}\n  **Why:** I tried to use the `gap` property or a `grid` layout on the `\n  \u003CCarouselContent \u002F>` but it required a lot of math and mental effort to get the\n  spacing right. I found `pl-[VALUE]` and `-ml-[VALUE]` utilities much easier to\n  use.\n\nYou can always adjust this in your own project if you need to.\n\n::\n\n::component-preview\n---\nname: CarouselSpacing\ntitle: Carousel\ndescription: A carousel with 3 items with a spacing of 1rem.\npreviewClass: h-[25rem] sm:h-72\n---\n::\n\n```vue showLineNumbers \u002F-ml-4\u002F \u002Fpl-4\u002F\n\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent class=\"-ml-4\">\n      \u003CCarouselItem class=\"pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\n```vue showLineNumbers \u002F-ml-2\u002F \u002Fpl-2\u002F \u002Fmd:-ml-4\u002F \u002Fmd:pl-4\u002F\n\u003Ctemplate>\n  \u003CCarousel>\n    \u003CCarouselContent class=\"-ml-2 md:-ml-4\">\n      \u003CCarouselItem class=\"pl-2 md:pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"pl-2 md:pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n      \u003CCarouselItem class=\"pl-2 md:pl-4\">\n        ...\n      \u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\n### Orientation\n\nUse the `orientation` prop to set the orientation of the carousel.\n\n::component-preview\n---\nname: CarouselOrientation\ntitle: Carousel\ndescription: A vertical carousel.\npreviewClass: h-[32rem]\n---\n::\n\n```vue\n\u003CCarousel orientation=\"vertical | horizontal\">\n  ...\n\u003C\u002FCarousel>\n```\n\n## Options\n\nYou can pass options to the carousel using the `opts` prop. See the [Embla Carousel docs](https:\u002F\u002Fwww.embla-carousel.com\u002Fapi\u002Foptions\u002F) for more information.\n\n```vue showLineNumbers {3-6}\n\u003Ctemplate>\n  \u003CCarousel\n    :opts=\"{\n      align: 'start',\n      loop: true,\n    }\"\n  >\n    \u003CCarouselContent>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n      \u003CCarouselItem>...\u003C\u002FCarouselItem>\n    \u003C\u002FCarouselContent>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\n## API\n\n### Method 1\n\nUse the `@init-api` emit method on `\u003CCarousel \u002F>` component to set the instance of the API.\n\n::component-preview\n---\nname: CarouselApi\ntitle: Carousel\ndescription: A carousel with a slide counter.\npreviewClass: h-[27rem] sm:h-[32rem]\n---\n::\n\n### Method 2\n\nYou can access it through setting a template ref on the `\u003CCarousel \u002F>` component.\n\n```vue showLineNumbers {2,5,10}\n\u003Cscript setup lang=\"ts\">\nconst carouselContainerRef = ref\u003CInstanceType\u003Ctypeof Carousel> | null>(null)\n\nfunction accessApi() {\n  carouselContainerRef.value?.carouselApi.on('select', () => {})\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CCarousel ref=\"carouselContainerRef\">\n    ...\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\n## Events\n\nYou can listen to events using the API. To get the API instance use the `@init-api` emit method on the `\u003CCarousel \u002F>` component\n\n```vue showLineNumbers {5,7-9,25}\n\u003Cscript setup lang=\"ts\">\nimport { nextTick, ref, watch } from 'vue'\nimport { useCarousel } from '@\u002Fcomponents\u002Fui\u002Fcarousel'\n\nconst api = ref\u003CCarouselApi>()\n\nfunction setApi(val: CarouselApi) {\n  api.value = val\n}\n\nconst stop = watch(api, (api) => {\n  if (!api)\n    return\n\n  \u002F\u002F Watch only once or use watchOnce() in @vueuse\u002Fcore\n  nextTick(() => stop())\n\n  api.on('select', () => {\n    \u002F\u002F Do something on select.\n  })\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CCarousel @init-api=\"setApi\">\n    ...\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\nSee the [Embla Carousel docs](https:\u002F\u002Fwww.embla-carousel.com\u002Fapi\u002Fevents\u002F) for more information on using events.\n\n## Slot Props\n\nYou can get the reactive slot props like `carouselRef, canScrollNext..Prev, scrollNext..Prev` using the `v-slot` directive in the `\u003CCarousel v-slot=\"slotProps\" \u002F>` component to extend the functionality.\n\n```vue showLineNumbers {2}\n\u003Ctemplate>\n  \u003CCarousel v-slot=\"{ canScrollNext, canScrollPrev }\">\n    ...\n    \u003CCarouselPrevious v-if=\"canScrollPrev\" \u002F>\n    \u003CCarouselNext v-if=\"canScrollNext\" \u002F>\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\n## Plugins\n\nYou can use the `plugins` prop to add plugins to the carousel.\n\n```bash\nnpm install embla-carousel-autoplay\n```\n\n```vue showLineNumbers {2,8-10}\n\u003Cscript setup lang=\"ts\">\nimport Autoplay from 'embla-carousel-autoplay'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CCarousel\n    class=\"w-full max-w-xs\"\n    :plugins=\"[Autoplay({\n      delay: 2000,\n    })]\"\n  >\n    ...\n  \u003C\u002FCarousel>\n\u003C\u002Ftemplate>\n```\n\n::component-preview\n---\nname: CarouselPlugin\ntitle: Carousel\ndescription: A carousel with the autoplay plugin.\npreviewClass: h-[25rem] sm:h-[32rem]\n---\n::\n\nSee the [Embla Carousel docs](https:\u002F\u002Fwww.embla-carousel.com\u002Fapi\u002Fplugins\u002F) for more information on using plugins.\n",{"title":69,"description":887},"toC14ojjD1HMNqP0uP2c_P57637z6Pp4QJMohR2QJko",[895,896],{"title":65,"path":66,"stem":67,"children":-1},{"title":73,"path":74,"stem":75,"children":-1},1788943231579]