1 line
29 KiB
JavaScript
1 line
29 KiB
JavaScript
import{At as e,B as t,C as n,D as r,Dt as i,E as a,G as o,H as s,I as c,L as l,Ot as u,R as d,S as f,St as p,T as m,Tt as h,W as g,_,b as v,et as y,gt as b,h as x,it as S,k as C,kt as w,p as T,q as E,tt as D,w as O,x as k,z as A}from"./iconify-DYZHDLa8.js";import{t as j}from"./createLucideIcon-KbkxXQD8.js";import{E as M,_ as N,u as ee,y as P}from"./vue-vendor-DjtlKxRy.js";import{J as F}from"./index-Uji7rFqr.js";import{n as te,r as ne,t as re}from"./VisuallyHidden-CeN_p2Md.js";import{D as ie,E as ae,O as I,S as oe,T as L,_ as R,b as z,c as B,g as se,h as ce,m as le,t as ue,v as de,w as fe,y as V}from"./Teleport-BIYegdAM.js";import{r as H}from"./button-BuRmTYve.js";import{a as pe,c as U,i as me,l as he,n as ge,o as W,u as _e}from"./PopperContent-BqlvlxQe.js";import{t as G}from"./useForwardExpose-B0BXtanw.js";var K=j(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),q=j(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),ve=j(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]);function J(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}function ye(e){let t=fe({nonce:b()});return v(()=>e?.value||t.nonce?.value)}var be=[` `,`Enter`,`ArrowUp`,`ArrowDown`],xe=[` `,`Enter`];function Y(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>X(e,t,n)):X(e,t,n)}function X(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:ne(e,t)}function Se(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var Ce={key:0,value:``},[Z,we]=I(`SelectRoot`),Te=r({inheritAttrs:!1,__name:`SelectRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`update:open`],setup(e,{emit:t}){let r=e,i=t,{required:a,disabled:l,multiple:u,dir:d}=p(r),m=P(r,`modelValue`,i,{defaultValue:r.defaultValue??(u.value?[]:void 0),passive:r.modelValue===void 0,deep:!0}),_=P(r,`open`,i,{defaultValue:r.defaultOpen,passive:r.open===void 0}),y=b(),C=b(),w=b({x:0,y:0}),T=v(()=>u.value&&Array.isArray(m.value)?m.value?.length===0:L(m.value));W({isProvider:!0});let E=_e(d),D=te(y),k=b(new Set),A=v(()=>Array.from(k.value).map(e=>e.value).join(`;`));function j(e){if(u.value){let t=Array.isArray(m.value)?[...m.value]:[],n=t.findIndex(t=>X(t,e,r.by));n===-1?t.push(e):t.splice(n,1),m.value=[...t]}else m.value=e}function M(e){return Array.from(k.value).find(t=>Y(e,t.value,r.by))}return we({triggerElement:y,onTriggerChange:e=>{y.value=e},valueElement:C,onValueElementChange:e=>{C.value=e},contentId:``,modelValue:m,onValueChange:j,by:r.by,open:_,multiple:u,required:a,onOpenChange:e=>{_.value=e},dir:E,triggerPointerDownPosRef:w,disabled:l,isEmptyModelValue:T,optionsSet:k,onOptionAdd:e=>{let t=M(e.value);t&&k.value.delete(t),k.value.add(e)},onOptionRemove:e=>{let t=M(e.value);t&&k.value.delete(t)}}),(e,t)=>(s(),f(h(pe),null,{default:S(()=>[o(e.$slots,`default`,{modelValue:h(m),open:h(_)}),h(D)?(s(),f(Ee,{key:A.value,"aria-hidden":`true`,tabindex:`-1`,multiple:h(u),required:h(a),name:e.name,autocomplete:e.autocomplete,disabled:h(l),value:h(m)},{default:S(()=>[h(L)(h(m))?(s(),O(`option`,Ce)):n(`v-if`,!0),(s(!0),O(x,null,g(Array.from(k.value),e=>(s(),O(`option`,c({key:e.value??``},{ref_for:!0},e),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):n(`v-if`,!0)]),_:3}))}}),Ee=r({__name:`BubbleSelect`,props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){let t=e,n=b(),r=Z();y(()=>t.value,(e,t)=>{let r=window.HTMLSelectElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(e!==t&&i&&n.value){let t=new Event(`change`,{bubbles:!0});i.call(n.value,e),n.value.dispatchEvent(t)}});function i(e){r.onValueChange(e.target.value)}return(e,r)=>(s(),f(h(re),{"as-child":``},{default:S(()=>[k(`select`,c({ref_key:`selectElement`,ref:n},t,{onInput:i}),[o(e.$slots,`default`)],16)]),_:3}))}}),De=r({__name:`SelectPopperPosition`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:10},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=z(e);return(e,n)=>(s(),f(h(ge),c(h(t),{style:{boxSizing:`border-box`,"--reka-select-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-select-content-available-width":`var(--reka-popper-available-width)`,"--reka-select-content-available-height":`var(--reka-popper-available-height)`,"--reka-select-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-select-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:S(()=>[o(e.$slots,`default`)]),_:3},16))}}),Oe={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[Q,ke]=I(`SelectContent`),Ae=r({__name:`SelectContentImpl`,props:{position:{type:String,required:!1,default:`item-aligned`},bodyLock:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=Z();he(),oe(n.bodyLock);let{CollectionSlot:l,getItems:u}=W(),d=b();de(d);let{search:p,handleTypeaheadSearch:m}=U(),g=b(),_=b(),x=b(),C=b(!1),w=b(!1),O=b(!1);function k(){_.value&&d.value&&B([_.value,d.value])}y(C,()=>{k()});let{onOpenChange:A,triggerPointerDownPosRef:j}=i;D(e=>{if(!d.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(j.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(j.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():d.value?.contains(e.target)||A(!1),document.removeEventListener(`pointermove`,n),j.value=null)};j.value!==null&&(document.addEventListener(`pointermove`,n),document.addEventListener(`pointerup`,r,{capture:!0,once:!0})),e(()=>{document.removeEventListener(`pointermove`,n),document.removeEventListener(`pointerup`,r,{capture:!0})})});function M(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&m(e.key,u()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...u().map(e=>e.ref)];if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>B(t)),e.preventDefault()}}let N=z(v(()=>n.position===`popper`?n:{}).value);return ke({content:d,viewport:g,onViewportChange:e=>{g.value=e},itemRefCallback:(e,t,n)=>{let r=!w.value&&!n,a=Y(i.modelValue.value,t,i.by);if(i.multiple.value){if(O.value)return;(a||r)&&(_.value=e,a&&(O.value=!0))}else (a||r)&&(_.value=e);r&&(w.value=!0)},selectedItem:_,selectedItemText:x,onItemLeave:()=>{d.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!w.value&&!n;(Y(i.modelValue.value,t,i.by)||r)&&(x.value=e)},focusSelectedItem:k,position:n.position,isPositioned:C,searchRef:p}),(e,t)=>(s(),f(h(l),null,{default:S(()=>[a(h(le),{"as-child":``,onMountAutoFocus:t[6]||=T(()=>{},[`prevent`]),onUnmountAutoFocus:t[7]||=e=>{r(`closeAutoFocus`,e),!e.defaultPrevented&&(h(i).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:S(()=>[a(h(ce),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onFocusOutside:t[2]||=T(()=>{},[`prevent`]),onDismiss:t[3]||=e=>h(i).onOpenChange(!1),onEscapeKeyDown:t[4]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[5]||=e=>r(`pointerDownOutside`,e)},{default:S(()=>[(s(),f(E(e.position===`popper`?De:Me),c({...e.$attrs,...h(N)},{id:h(i).contentId,ref:e=>{let t=h(ee)(e);t?.hasAttribute(`data-reka-popper-content-wrapper`)?d.value=t.firstElementChild:d.value=t},role:`listbox`,"data-state":h(i).open.value?`open`:`closed`,dir:h(i).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:t[0]||=T(()=>{},[`prevent`]),onPlaced:t[1]||=e=>C.value=!0,onKeydown:M}),{default:S(()=>[o(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),[$,je]=I(`SelectItemAlignedPosition`),Me=r({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,{getItems:i}=W(),u=Z(),d=Q(),f=b(!1),p=b(!0),m=b(),{forwardRef:g,currentElement:_}=G(),{viewport:v,selectedItem:y,selectedItemText:x,focusSelectedItem:C}=d;function T(){if(u.triggerElement.value&&u.valueElement.value&&m.value&&_.value&&v?.value&&y?.value&&x?.value){let e=u.triggerElement.value.getBoundingClientRect(),t=_.value.getBoundingClientRect(),n=u.valueElement.value.getBoundingClientRect(),a=x.value.getBoundingClientRect();if(u.dir.value!==`rtl`){let r=a.left-t.left,i=n.left-r,o=e.left-i,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-10,u=J(i,10,Math.max(10,l-c));m.value.style.minWidth=`${s}px`,m.value.style.left=`${u}px`}else{let r=t.right-a.right,i=window.innerWidth-n.right-r,o=window.innerWidth-e.right-i,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-10,u=J(i,10,Math.max(10,l-c));m.value.style.minWidth=`${s}px`,m.value.style.right=`${u}px`}let o=i().map(e=>e.ref),s=window.innerHeight-20,c=v.value.scrollHeight,l=window.getComputedStyle(_.value),d=Number.parseInt(l.borderTopWidth,10),p=Number.parseInt(l.paddingTop,10),h=Number.parseInt(l.borderBottomWidth,10),g=Number.parseInt(l.paddingBottom,10),b=d+p+c+g+h,S=Math.min(y.value.offsetHeight*5,b),C=window.getComputedStyle(v.value),w=Number.parseInt(C.paddingTop,10),T=Number.parseInt(C.paddingBottom,10),E=e.top+e.height/2-10,D=s-E,O=y.value.offsetHeight/2,k=y.value.offsetTop+O,A=d+p+k,j=b-A;if(A<=E){let e=y.value===o[o.length-1];m.value.style.bottom=`0px`;let t=_.value.clientHeight-v.value.offsetTop-v.value.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+h);m.value.style.height=`${n}px`}else{let e=y.value===o[0];m.value.style.top=`0px`;let t=Math.max(E,d+v.value.offsetTop+(e?w:0)+O)+j;m.value.style.height=`${t}px`,v.value.scrollTop=A-E+v.value.offsetTop}m.value.style.margin=`10px 0`,m.value.style.minHeight=`${S}px`,m.value.style.maxHeight=`${s}px`,r(`placed`),requestAnimationFrame(()=>f.value=!0)}}let E=b(``);A(async()=>{await l(),T(),_.value&&(E.value=window.getComputedStyle(_.value).zIndex)});function D(e){e&&p.value===!0&&(T(),C?.(),p.value=!1)}return N(u.triggerElement,()=>{T()}),je({contentWrapper:m,shouldExpandOnScrollRef:f,onScrollButtonChange:D}),(e,t)=>(s(),O(`div`,{ref_key:`contentWrapperElement`,ref:m,style:w({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:E.value})},[a(h(H),c({ref:h(g),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...n}),{default:S(()=>[o(e.$slots,`default`)]),_:3},16)],4))}}),Ne=r({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return we(e.context),ke(Oe),(e,t)=>o(e.$slots,`default`)}}),Pe={key:1},Fe=r({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let r=e,i=V(r,t),c=Z(),l=b();A(()=>{l.value=new DocumentFragment});let d=b(),p=v(()=>r.forceMount||c.open.value),m=b(p.value);return y(p,()=>{setTimeout(()=>m.value=p.value)}),(e,t)=>p.value||m.value||d.value?.present?(s(),f(h(se),{key:0,ref_key:`presenceRef`,ref:d,present:p.value},{default:S(()=>[a(Ae,u(C({...h(i),...e.$attrs})),{default:S(()=>[o(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):l.value?(s(),O(`div`,Pe,[(s(),f(_,{to:l.value},[a(Ne,{context:h(c)},{default:S(()=>[o(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):n(`v-if`,!0)}}),Ie=r({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(s(),f(h(H),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:S(()=>[o(e.$slots,`default`,{},()=>[t[0]||=m(`▼`)])]),_:3},8,[`as`,`as-child`]))}}),[Le,Re]=I(`SelectItem`),ze=r({__name:`SelectItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{disabled:i}=p(n),c=Z(),u=Q(),{forwardRef:d,currentElement:m}=G(),{CollectionItem:g}=W(),_=v(()=>Y(c.modelValue?.value,n.value,c.by)),y=b(!1),x=b(n.textValue??``),C=R(void 0,`reka-select-item-text`);async function w(e){e.defaultPrevented||ae(`select.select`,E,{originalEvent:e,value:n.value})}async function E(e){await l(),r(`select`,e),!e.defaultPrevented&&(i.value||(c.onValueChange(n.value),c.multiple.value||c.onOpenChange(!1)))}async function D(e){await l(),!e.defaultPrevented&&(i.value?u.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function O(e){await l(),!e.defaultPrevented&&e.currentTarget===ie()&&u.onItemLeave?.()}async function k(e){await l(),!e.defaultPrevented&&(u.searchRef?.value!==``&&e.key===` `||(xe.includes(e.key)&&w(e),e.key===` `&&e.preventDefault()))}if(n.value===``)throw Error(`A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return A(()=>{m.value&&u.itemRefCallback(m.value,n.value,n.disabled)}),Re({value:n.value,disabled:i,textId:C,isSelected:_,onItemTextChange:e=>{x.value=((x.value||e?.textContent)??``).trim()}}),(e,t)=>(s(),f(h(g),{value:{textValue:x.value}},{default:S(()=>[a(h(H),{ref:h(d),role:`option`,"aria-labelledby":h(C),"data-highlighted":y.value?``:void 0,"aria-selected":_.value,"data-state":_.value?`checked`:`unchecked`,"aria-disabled":h(i)||void 0,"data-disabled":h(i)?``:void 0,tabindex:h(i)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:t[0]||=e=>y.value=!0,onBlur:t[1]||=e=>y.value=!1,onPointerup:w,onPointerdown:t[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:t[3]||=T(()=>{},[`prevent`,`stop`]),onPointermove:D,onPointerleave:O,onKeydown:k},{default:S(()=>[o(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),Be=r({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,r=Le();return(e,i)=>h(r).isSelected.value?(s(),f(h(H),c({key:0,"aria-hidden":`true`},t),{default:S(()=>[o(e.$slots,`default`)]),_:3},16)):n(`v-if`,!0)}}),Ve=r({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let n=e,r=Z(),i=Q(),a=Le(),{forwardRef:l,currentElement:u}=G(),d=v(()=>({value:a.value,disabled:a.disabled.value,textContent:u.value?.textContent??a.value?.toString()??``}));return A(()=>{u.value&&(a.onItemTextChange(u.value),i.itemTextRefCallback(u.value,a.value,a.disabled.value),r.onOptionAdd(d.value))}),t(()=>{r.onOptionRemove(d.value)}),(e,t)=>(s(),f(h(H),c({id:h(a).textId,ref:h(l)},{...n,...e.$attrs}),{default:S(()=>[o(e.$slots,`default`)]),_:3},16,[`id`]))}}),He=r({__name:`SelectPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(s(),f(h(ue),u(C(t)),{default:S(()=>[o(e.$slots,`default`)]),_:3},16))}}),Ue=r({__name:`SelectScrollButtonImpl`,emits:[`autoScroll`],setup(e,{emit:t}){let n=t,{getItems:r}=W(),i=Q(),a=b(null);function l(){a.value!==null&&(window.clearInterval(a.value),a.value=null)}D(()=>{r().map(e=>e.ref).find(e=>e===ie())?.scrollIntoView({block:`nearest`})});function u(){a.value===null&&(a.value=window.setInterval(()=>{n(`autoScroll`)},50))}function p(){i.onItemLeave?.(),a.value===null&&(a.value=window.setInterval(()=>{n(`autoScroll`)},50))}return d(()=>l()),(e,t)=>(s(),f(h(H),c({"aria-hidden":`true`,style:{flexShrink:0}},e.$parent?.$props,{onPointerdown:u,onPointermove:p,onPointerleave:t[0]||=()=>{l()}}),{default:S(()=>[o(e.$slots,`default`)]),_:3},16))}}),We=r({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Q(),r=t.position===`item-aligned`?$():void 0,{forwardRef:i,currentElement:a}=G(),c=b(!1);return D(e=>{if(t.viewport?.value&&t.isPositioned?.value){let n=t.viewport.value;function r(){let e=n.scrollHeight-n.clientHeight;c.value=Math.ceil(n.scrollTop)<e}r(),n.addEventListener(`scroll`,r),e(()=>n.removeEventListener(`scroll`,r))}}),y(a,()=>{a.value&&r?.onScrollButtonChange(a.value)}),(e,r)=>c.value?(s(),f(Ue,{key:0,ref:h(i),onAutoScroll:r[0]||=()=>{let{viewport:e,selectedItem:n}=h(t);e?.value&&n?.value&&(e.value.scrollTop=e.value.scrollTop+n.value.offsetHeight)}},{default:S(()=>[o(e.$slots,`default`)]),_:3},512)):n(`v-if`,!0)}}),Ge=r({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Q(),r=t.position===`item-aligned`?$():void 0,{forwardRef:i,currentElement:a}=G(),c=b(!1);return D(e=>{if(t.viewport?.value&&t.isPositioned?.value){let n=t.viewport.value;function r(){c.value=n.scrollTop>0}r(),n.addEventListener(`scroll`,r),e(()=>n.removeEventListener(`scroll`,r))}}),y(a,()=>{a.value&&r?.onScrollButtonChange(a.value)}),(e,r)=>c.value?(s(),f(Ue,{key:0,ref:h(i),onAutoScroll:r[0]||=()=>{let{viewport:e,selectedItem:n}=h(t);e?.value&&n?.value&&(e.value.scrollTop=e.value.scrollTop-n.value.offsetHeight)}},{default:S(()=>[o(e.$slots,`default`)]),_:3},512)):n(`v-if`,!0)}}),Ke=r({__name:`SelectTrigger`,props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Z(),{forwardRef:r,currentElement:i}=G(),c=v(()=>n.disabled?.value||t.disabled);n.contentId||=R(void 0,`reka-select-content`),A(()=>{n.onTriggerChange(i.value)});let{getItems:l}=W(),{search:u,handleTypeaheadSearch:d,resetTypeahead:p}=U();function m(){c.value||(n.onOpenChange(!0),p())}function g(e){m(),n.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}return(e,t)=>(s(),f(h(me),{"as-child":``,reference:e.reference},{default:S(()=>[a(h(H),{ref:h(r),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":h(n).contentId,"aria-expanded":h(n).open.value||!1,"aria-required":h(n).required?.value,"aria-autocomplete":`none`,disabled:c.value,dir:h(n)?.dir.value,"data-state":h(n)?.open.value?`open`:`closed`,"data-disabled":c.value?``:void 0,"data-placeholder":h(Se)(h(n).modelValue?.value)?``:void 0,"as-child":e.asChild,as:e.as,onClick:t[0]||=e=>{(e?.currentTarget)?.focus()},onPointerdown:t[1]||=e=>{if(e.pointerType===`touch`)return e.preventDefault();let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&(g(e),e.preventDefault())},onPointerup:t[2]||=T(e=>{e.pointerType===`touch`&&g(e)},[`prevent`]),onKeydown:t[3]||=e=>{let t=h(u)!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&t&&e.key===` `||(h(d)(e.key,h(l)()),h(be).includes(e.key)&&(m(),e.preventDefault()))}},{default:S(()=>[o(e.$slots,`default`)]),_:3},8,[`type`,`aria-controls`,`aria-expanded`,`aria-required`,`disabled`,`dir`,`data-state`,`data-disabled`,`data-placeholder`,`as-child`,`as`])]),_:3},8,[`reference`]))}}),qe=r({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=t,{forwardRef:r,currentElement:i}=G(),a=Z();A(()=>{a.valueElement=i});let c=v(()=>{let e=[],t=Array.from(a.optionsSet.value),n=e=>t.find(t=>Y(e,t.value,a.by));return e=Array.isArray(a.modelValue.value)?a.modelValue.value.map(e=>n(e)?.textContent??``):[n(a.modelValue.value)?.textContent??``],e.filter(Boolean)}),l=v(()=>c.value.length?c.value.join(`, `):n.placeholder);return(t,i)=>(s(),f(h(H),{ref:h(r),as:t.as,"as-child":t.asChild,style:{pointerEvents:`none`},"data-placeholder":c.value.length?void 0:n.placeholder},{default:S(()=>[o(t.$slots,`default`,{selectedLabel:c.value,modelValue:h(a).modelValue.value},()=>[m(e(l.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),Je=r({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{nonce:n}=p(t),r=ye(n),i=Q(),l=i.position===`item-aligned`?$():void 0,{forwardRef:u,currentElement:d}=G();A(()=>{i?.onViewportChange(d.value)});let f=b(0);function g(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=l??{};if(n?.value&&r?.value){let e=Math.abs(f.value-t.scrollTop);if(e>0){let n=window.innerHeight-20,i=Number.parseFloat(r.value.style.minHeight),a=Number.parseFloat(r.value.style.height),o=Math.max(i,a);if(o<n){let i=o+e,a=Math.min(n,i),s=i-a;r.value.style.height=`${a}px`,r.value.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,r.value.style.justifyContent=`flex-end`)}}}f.value=t.scrollTop}return(e,n)=>(s(),O(x,null,[a(h(H),c({ref:h(u),"data-reka-select-viewport":``,role:`presentation`},{...e.$attrs,...t},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:g}),{default:S(()=>[o(e.$slots,`default`)]),_:3},16),a(h(H),{as:`style`,nonce:h(r)},{default:S(()=>n[0]||=[m(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),Ye=r({__name:`Select`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},defaultValue:{},modelValue:{},by:{type:[String,Function]},dir:{},multiple:{type:Boolean},autocomplete:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:open`],setup(e,{emit:t}){let n=V(e,t);return(e,t)=>(s(),f(h(Te),c({"data-slot":`select`},h(n)),{default:S(t=>[o(e.$slots,`default`,u(C(t)))]),_:3},16))}}),Xe=r({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean},position:{default:`popper`},bodyLock:{type:Boolean},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,l=V(M(n,`class`),r);return(t,r)=>(s(),f(h(He),null,{default:S(()=>[a(h(Fe),c({"data-slot":`select-content`},{...t.$attrs,...h(l)},{class:h(F)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--reka-select-content-available-height) min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border shadow-md`,e.position===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,n.class)}),{default:S(()=>[a(h(et)),a(h(Je),{class:i(h(F)(`p-1`,e.position===`popper`&&`h-[var(--reka-select-trigger-height)] w-full min-w-[var(--reka-select-trigger-width)] scroll-my-1`))},{default:S(()=>[o(t.$slots,`default`)]),_:3},8,[`class`]),a(h($e))]),_:3},16,[`class`])]),_:3}))}}),Ze={class:`absolute right-2 flex size-3.5 items-center justify-center`},Qe=r({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=z(M(t,`class`));return(e,r)=>(s(),f(h(ze),c({"data-slot":`select-item`},h(n),{class:h(F)(`focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,t.class)}),{default:S(()=>[k(`span`,Ze,[a(h(Be),null,{default:S(()=>[o(e.$slots,`indicator-icon`,{},()=>[a(h(K),{class:`size-4`})])]),_:3})]),a(h(Ve),null,{default:S(()=>[o(e.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),$e=r({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=z(M(t,`class`));return(e,r)=>(s(),f(h(We),c({"data-slot":`select-scroll-down-button`},h(n),{class:h(F)(`flex cursor-default items-center justify-center py-1`,t.class)}),{default:S(()=>[o(e.$slots,`default`,{},()=>[a(h(q),{class:`size-4`})])]),_:3},16,[`class`]))}}),et=r({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=z(M(t,`class`));return(e,r)=>(s(),f(h(Ge),c({"data-slot":`select-scroll-up-button`},h(n),{class:h(F)(`flex cursor-default items-center justify-center py-1`,t.class)}),{default:S(()=>[o(e.$slots,`default`,{},()=>[a(h(ve),{class:`size-4`})])]),_:3},16,[`class`]))}}),tt=r({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},setup(e){let t=e,n=z(M(t,`class`,`size`));return(r,i)=>(s(),f(h(Ke),c({"data-slot":`select-trigger`,"data-size":e.size},h(n),{class:h(F)(`border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t.class)}),{default:S(()=>[o(r.$slots,`default`),a(h(Ie),{"as-child":``},{default:S(()=>[a(h(q),{class:`size-4 opacity-50`})]),_:1})]),_:3},16,[`data-size`,`class`]))}}),nt=r({__name:`SelectValue`,props:{placeholder:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(s(),f(h(qe),c({"data-slot":`select-value`},t),{default:S(()=>[o(e.$slots,`default`)]),_:3},16))}});export{Ye as a,Xe as i,tt as n,K as o,Qe as r,nt as t}; |