1import O from"./1V2jm14t.js";import{a as z,b as X,d as A}from"./Rwaz_Qdu.js";import{s as g,o as D,V,S as W,d as I,h as u,i as n,k as E,t as m,F as $,z as S,N as v,aL as b,x as N,X as h,aO as Q,aP as R,R as p,aR as T,aQ as j}from"./CfwR7KjC.js";import{u as q}from"./B_ZaJEvG.js";import"./DpQcQH3V.js";import"./DahKxLZg.js";import"./DRrMar8Z.js";import"./CK3j4WxR.js";import"./Cd8xZgT4.js";import"./BI5RZpNB.js";import"./CHOj1P8S.js";const G={wrapper:"relative",container:"relative w-full flex overflow-x-auto snap-x snap-mandatory scroll-smooth",item:"flex flex-none snap-center",arrows:{wrapper:"flex items-center justify-between"},indicators:{wrapper:"absolute flex items-center justify-center gap-3 bottom-4 inset-x-0",base:"rounded-full h-3 w-3",active:"bg-primary-500 dark:bg-primary-400",inactive:"bg-gray-100 dark:bg-gray-800"},default:{prevButton:{color:"black",class:"rtl:[&_span:first-child]:rotate-180 absolute start-4 top-1/2 transform -translate-y-1/2 rounded-full",icon:"i-heroicons-chevron-left-20-solid"},nextButton:{color:"black",class:"rtl:[&_span:last-child]:rotate-180 absolute end-4 top-1/2 transform -translate-y-1/2 rounded-full",icon:"i-heroicons-chevron-right-20-solid"}}},H=e=>{const l=g(0);function d(t){e.value.style.scrollSnapType="none",e.value.style.scrollBehavior="auto",l.value=t.pageX,window.addEventListener("mousemove",r),window.addEventListener("mouseup",c)}function c(){e.value.style.removeProperty("scroll-behavior"),e.value.style.removeProperty("scroll-snap-type"),e.value.style.removeProperty("pointer-events"),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",c)}function r(t){t.preventDefault(),e.value.style.pointerEvents="none";const o=t.pageX-l.value;l.value=t.pageX,e.value.scrollBy(-o,0)}D(()=>{e.value&&e.value.addEventListener("mousedown",d)}),V(()=>{e.value&&e.value.removeEventListener("mousedown",d)})},w=Q(j.ui.strategy,j.ui.carousel,G),J=I({components:{UButton:O},inheritAttrs:!1,props:{items:{type:Array,default:()=>[]},arrows:{type:Boolean,default:!1},indicators:{type:Boolean,default:!1},dir:{type:String,default:"ltr"},prevButton:{type:Object,default:()=>w.default.prevButton},nextButton:{type:Object,default:()=>w.default.nextButton},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:void 0}},setup(e,{expose:l}){const{ui:d,attrs:c}=q("carousel",R(e,"ui"),w,R(e,"class")),r=g(),t=g(0),{x:o}=z(r,{behavior:"smooth"}),{width:a}=X(r);H(r),A(r,i=>{var L,M;const[k]=i;t.value=((M=(L=k==null?void 0:k.target)==null?void 0:L.firstElementChild)==null?void 0:M.clientWidth)||0});const s=p(()=>e.dir==="rtl"),f=p(()=>t.value?s.value?Math.round(-o.value/t.value)+1:Math.round(o.value/t.value)+1:0),y=p(()=>{if(!t.value)return 0;const i=Math.round(a.value/t.value);return e.items.length<=i?0:e.items.length-i+1}),F=p(()=>f.value<=1),U=p(()=>f.value===y.value);function B(){o.value+=s.value?-t.value:t.value}function C(){o.value-=s.value?-t.value:t.value}function P(i){o.value=(i-1)*t.value*(s.value?-1:1)}return l({pages:y,page:f,prev:C,next:B,select:P}),{ui:d,attrs:c,isFirst:F,isLast:U,carouselRef:r,pages:y,currentPage:f,onClickNext:B,onClickPrev:C,onClick:P,twMerge:T}}}),K=["dir"],Y=["role"],Z=["aria-selected","aria-label","onClick"];function x(e,l,d,c,r,t){const o=O;return n(),u("div",h({class:e.ui.wrapper},e.attrs,{dir:e.dir}),[E("div",{ref:"carouselRef",class:v([e.ui.container,"no-scrollbar"])},[(n(!0),u($,null,S(e.items,(a,s)=>(n(),u("div",{key:s,class:v(e.ui.item),role:e.indicators?"tabpanel":null},[b(e.$slots,"default",{item:a,index:s},void 0,!0)],10,Y))),128))],2),e.arrows?(n(),u("div",{key:0,class:v(e.ui.arrows.wrapper)},[b(e.$slots,"prev",{onClick:e.onClickPrev,disabled:e.isFirst},()=>{var a;return[e.prevButton?(n(),N(o,h({key:0,disabled:e.isFirst},{...e.ui.default.prevButton,...e.prevButton},{class:e.twMerge(e.ui.default.prevButton.class,(a=e.prevButton)==null?void 0:a.class),"aria-label":"Prev",onClick:e.onClickPrev}),null,16,["disabled","class","onClick"])):m("",!0)]},!0),b(e.$slots,"next",{onClick:e.onClickNext,disabled:e.isLast},()=>{var a;return[e.nextButton?(n(),N(o,h({key:0,disabled:e.isLast},{...e.ui.default.nextButton,...e.nextButton},{class:e.twMerge(e.ui.default.nextButton.class,(a=e.nextButton)==null?void 0:a.class),"aria-label":"Next",onClick:e.onClickNext}),null,16,["disabled","class","onClick"])):m("",!0)]},!0)],2)):m("",!0),e.indicators?(n(),u("div",{key:1,role:"tablist",class:v(e.ui.indicators.wrapper)},[(n(!0),u($,null,S(e.pages,a=>b(e.$slots,"indicator",{key:a,onClick:e.onClick,active:a===e.currentPage,page:a},()=>[E("button",{type:"button",role:"tab","aria-selected":a===e.currentPage,class:v([e.ui.indicators.base,a===e.currentPage?e.ui.indicators.active:e.ui.indicators.inactive]),"aria-label":`set slide ${a}`,onClick:s=>e.onClick(a)},null,10,Z)],!0)),128))],2)):m("",!0)],16,K)}const de=W(J,[["render",x],["__scopeId","data-v-89717b3f"]]);export{de as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.