1import{F as T,x as $,G as V,B as M,aQ as B,C as z,a7 as m,L as w,aC as f,W as x,aa as C,ab as D,aA as L,aB as p,A as c,aO as R,aE as F,aT as O,aP as P,V as Y,aI as N,aN as W,a8 as I,ac as U,a5 as _,T as j,aR as G,aV as k}from"./BPkh4YjI.js";import{aT as q,aU as h,M as H,T as S,k as Q,n as X,av as J}from"./CedlswoG.js";import{v as Z}from"./DbSSqw6Z.js";import{u as ee}from"./DbNIDVzc.js";import{u as ae,t as te}from"./MC9i7OPh.js";import{_ as E}from"./DFf_1Pqz.js";function se({rootRef:e,buttonRef:s,optionsRef:d},{close:b,isOpen:o}){const n=$(!1);q(e,()=>{o.value&&b()});const{activate:g,deactivate:v}=ae(d,{immediate:o.value,isKeyBackward:a=>a.code==="ArrowUp",isKeyForward:a=>a.code==="ArrowDown",allowOutsideClick:!0});T(o,async a=>{await V(),a?g():(v({returnFocus:n.value}),n.value=!1)});const y=a=>{setTimeout(()=>{const u=s.value?.querySelector("button");if(!u)return;const l=te(document.body).filter(i=>i===u||!e.value?.contains(i)),t=l.indexOf(u);a===void 0||t===-1?u.focus():a==="next"&&l[t+1]?l[t+1].focus():a==="previous"&&l[t-1]&&l[t-1].focus()},0)};h(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"],a=>{a.preventDefault()},{target:e}),h("Escape",()=>{b()},{target:e}),h("Enter",()=>{o.value&&(n.value=!0)},{target:e}),h("Tab",a=>{o.value&&(a.preventDefault(),v(),b(),y(a.shiftKey?"previous":"next"))},{target:e})}const re={ref:"dropdownContainer",class:"relative inline-block text-left"},oe={ref:"button",class:"h-full"},le={class:"max-w-[80%] text-ellipsis"},ie=["id"],ne=["onKeydown","onClick"],me=M({__name:"SFDropdown",props:G({items:{},buttonClass:{},id:{},hasErrors:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},ariaLabel:{}},{visible:{type:Boolean,default:!1},visibleModifiers:{},modelValue:{},modelModifiers:{}}),emits:["update:visible","update:modelValue"],setup(e){const s=B(e,"visible"),d=B(e,"modelValue"),b=z(()=>Array.isArray(e.buttonClass)?e.buttonClass:[e.buttonClass]),o=t=>{d.value=t,s.value=!1},n=$(),{smaller:g}=ee(),v=g("md"),y=k("button"),A=k("dropdownContainer"),a=k("options");se({rootRef:A,buttonRef:y,optionsRef:a},{isOpen:s,close:()=>s.value=!1});const u=()=>{const t=y.value;if(!t)return;if(v.value){n.value={left:"0",bottom:"0",top:"auto",width:"100%",position:"fixed"};return}const i=t.getBoundingClientRect();n.value={left:`${i.left+window.scrollX}px`,top:`${i.bottom+window.scrollY}px`,width:`${t.offsetWidth}px`}};let l;return T(s,t=>{if(t){u(),l=J("resize",u);return}l?.(),l=void 0}),(t,i)=>(m(),w("div",re,[f("div",oe,[x(c(Q),{variant:"raw",class:p(["group inline-flex size-full justify-between gap-0 border border-primary bg-white !px-4 !py-2 text-primary hover:bg-white hover:ring-1 hover:ring-inset hover:ring-primary focus:bg-white focus:outline-none focus:ring-1 focus:ring-inset focus:ring-primary disabled:cursor-not-allowed disabled:!border-primary disabled:!bg-secondary disabled:hover:!ring-0 disabled:focus:!ring-0",[...c(S).COPY_SMALL,...b.value,{"!border-error bg-white hover:!border-error hover:!ring-error focus:!border-error focus:!ring-error":e.hasErrors}]]),disabled:e.disabled,"aria-label":e.ariaLabel,"aria-expanded":s.value,"aria-invalid":e.hasErrors,"aria-controls":e.id,"aria-haspopup":"true",onClick:i[0]||(i[0]=R(r=>s.value=!s.value,["prevent"]))},{"append-icon":C(({_class:r})=>[f("span",{class:p(["inline-flex !size-5 text-primary",[{"rotate-180":s.value},r]])},[x(E,{icon:c(H),class:"size-full"},null,8,["icon"])],2)]),default:C(()=>[D(t.$slots,"default",{},()=>[f("span",le,L(d.value),1)])]),_:3},8,["disabled","aria-label","aria-expanded","aria-invalid","aria-controls","class"])],512),x(j,{"enter-from-class":"translate-y-full md:-translate-y-10 opacity-0","enter-to-class":"translate-y-0 opacity-100","enter-active-class":"transition-all duration-200","leave-active-class":"transition-all duration-200","leave-from-class":"translate-y-0 opacity-100","leave-to-class":"translate-y-full md:-translate-y-10 opacity-0"},{default:C(()=>[F((m(),w("div",{id:e.id,ref:"options",class:p(["absolute m-0 w-full border border-primary bg-white !p-0 shadow-primary focus:outline-none max-md:backdrop:bg-primary/50",[{"block-scrolling":s.value&&c(v)}]]),style:P(n.value)},[f("ul",{class:p(["max-h-[330px] overflow-y-auto bg-white scrollbar-hide",{}])},[(m(!0),w(Y,null,N(e.items,r=>(m(),w("li",{key:`${r}`,class:"border-b border-primary last:border-b-0"},[D(t.$slots,"item",_({ref_for:!0},{item:r,selectItem:o}),()=>[f("div",{class:p([...c(S).COPY_SMALL,"flex w-full cursor-pointer items-center justify-between space-x-2 px-4 py-2 transition-all",r===d.value?"bg-primary text-white hover:bg-primary":"bg-white text-primary hover:bg-secondary"]),onKeydown:W(K=>o(r),["enter"]),onClick:K=>o(r)},[f("span",null,L(r),1),r===d.value?(m(),I(E,{key:0,icon:c(X),class:"size-5"},null,8,["icon"])):U("",!0)],42,ne)])]))),128))])],14,ie)),[[O,s.value],[c(Z),s.value]])]),_:3})],512))}});
1export{me as _};
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.