CGpKcNx7.js
18.8 KB
import{s as K,g as i,Z as q,T as te,az as oe,U as ae,aW as de,W as ie,aD as ce,aK as ue,o,c as k,f as p,w as f,x as v,k as m,$ as P,Y as g,C as fe,S as L,n as z,e as Q,l as E,t as R,F as D,m as M,aY as ge,ar as me,i as ye,b7 as le,aG as pe,bg as be,bh as he,ag as G,ah as Y,aL as U,aM as X,b8 as re,p as xe,a_ as ve,a1 as Ie,V as ke,X as Le,a2 as _,a0 as ee}from"./BtEn9SvP.js";import{_ as ze,D as x,j as Se,k as Te,l as qe}from"./DYcig7R4.js";import{_ as we}from"./7yIyqIY0.js";function Oe(e){const F=K(()=>i(e)),r=K(()=>new Intl.Collator("en",{usage:"search",...F.value}));return{startsWith:(n,l)=>l.length===0?!0:(n=n.normalize("NFC"),l=l.normalize("NFC"),r.value.compare(n.slice(0,l.length),l)===0),endsWith:(n,l)=>l.length===0?!0:(n=n.normalize("NFC"),l=l.normalize("NFC"),r.value.compare(n.slice(-l.length),l)===0),contains:(n,l)=>{if(l.length===0)return!0;n=n.normalize("NFC"),l=l.normalize("NFC");let y=0;const c=l.length;for(;y+c<=n.length;y++){const s=n.slice(y,y+c);if(r.value.compare(l,s)===0)return!0}return!1}}}function Ke(){const{contains:e,startsWith:F}=Oe({sensitivity:"base"});function r(n,l){return e(n,l)?e(l,n)?0:F(n,l)?1:2:null}function S(n,l,y){if(typeof n!="object"||n===null)return r(String(n),l);let c=null;for(const s of y){const d=q(n,s);if(d==null)continue;const b=Array.isArray(d)?d.map(String):[String(d)];for(const B of b){const O=r(B,l);if(O!==null&&(c===null||O<c)&&(c=O),c===0)return 0}}return c}function I(n,l,y){if(!l)return n;const c=[];for(const s of n){const d=S(s,l,y);d!==null&&c.push({item:s,score:d})}return c.sort((s,d)=>s.score-d.score),c.map(({item:s})=>s)}function w(n,l,y){return l?n.map(c=>{const s=[];for(const d of c){if(d==null)continue;if(y.isStructural?.(d)){s.push({item:d,score:-1});continue}const b=S(d,l,y.fields);b!==null&&s.push({item:d,score:b})}return s.sort((d,b)=>d.score-b.score),s.map(({item:d})=>d)}).filter(c=>c.some(s=>!y.isStructural?.(s))):n}return{score:r,scoreItem:S,filter:I,filterGroups:w}}const ne={__name:"UDropdownMenuContent",props:{items:{type:null,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0},sub:{type:Boolean,required:!1},labelKey:{type:null,required:!0},descriptionKey:{type:null,required:!0},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0},size:{type:null,required:!1},filter:{type:[Boolean,Object],required:!1},filterFields:{type:Array,required:!1},ignoreFilter:{type:Boolean,required:!1},searchTerm:{type:String,required:!1},class:{type:null,required:!1},ui:{type:null,required:!0},uiOverride:{type:null,required:!1},loop:{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}},emits:["update:searchTerm","escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","closeAutoFocus"],setup(e,{emit:F}){const r=e,S=F,I=te(),{t:w,dir:n}=oe(),l=ae(),{filterGroups:y}=Ke(),c=xe(""),s=K({get:()=>r.searchTerm??c.value,set:u=>{c.value=u,S("update:searchTerm",u)}}),d=U(()=>X(r.filter,{placeholder:w("dropdownMenu.search"),variant:"none"})),b=de(U(()=>r.portal)),B=ie(ce(r,"sub","items","portal","labelKey","descriptionKey","checkedIcon","loadingIcon","externalIcon","size","filter","filterFields","ignoreFilter","searchTerm","class","ui","uiOverride"),S),O=()=>re(I,["default"]),[j,$]=ue(),N=K(()=>n.value==="rtl"?l.ui.icons.chevronLeft:l.ui.icons.chevronRight),W=K(()=>r.items?.length?ve(r.items)?r.items:[r.items]:[]),Z=u=>!!u.type&&["label","separator"].includes(u.type),H=K(()=>{if(!r.filter||r.ignoreFilter||!s.value)return W.value;const u=Array.isArray(r.filterFields)&&r.filterFields.length?r.filterFields:[r.labelKey];return y(W.value,s.value,{fields:u,isStructural:Z})}),J=K(()=>H.value.some(u=>u.some(C=>!Z(C))));return(u,C)=>(o(),k(D,null,[p(i(j),null,{default:f(({item:t,active:h,index:a})=>[v(u.$slots,t.slot||"item",{item:t,index:a,ui:e.ui},()=>[v(u.$slots,t.slot?`${t.slot}-leading`:"item-leading",{item:t,active:h,index:a,ui:e.ui},()=>[t.loading?(o(),m(P,{key:0,name:e.loadingIcon||i(l).ui.icons.loading,"data-slot":"itemLeadingIcon",class:g(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,t.ui?.itemLeadingIcon],color:t?.color,loading:!0}))},null,8,["name","class"])):t.icon?(o(),m(P,{key:1,name:t.icon,"data-slot":"itemLeadingIcon",class:g(e.ui.itemLeadingIcon({class:[e.uiOverride?.itemLeadingIcon,t.ui?.itemLeadingIcon],color:t?.color,active:h}))},null,8,["name","class"])):t.avatar?(o(),m(fe,L({key:2,size:t.ui?.itemLeadingAvatarSize||e.uiOverride?.itemLeadingAvatarSize||e.ui.itemLeadingAvatarSize()},t.avatar,{"data-slot":"itemLeadingAvatar",class:e.ui.itemLeadingAvatar({class:[e.uiOverride?.itemLeadingAvatar,t.ui?.itemLeadingAvatar],active:h})}),null,16,["size","class"])):z("",!0)]),i(q)(t,r.labelKey)||I[t.slot?`${t.slot}-label`:"item-label"]||i(q)(t,r.descriptionKey)||I[t.slot?`${t.slot}-description`:"item-description"]?(o(),k("span",{key:0,"data-slot":"itemWrapper",class:g(e.ui.itemWrapper({class:[e.uiOverride?.itemWrapper,t.ui?.itemWrapper]}))},[Q("span",{"data-slot":"itemLabel",class:g(e.ui.itemLabel({class:[e.uiOverride?.itemLabel,t.ui?.itemLabel],active:h}))},[v(u.$slots,t.slot?`${t.slot}-label`:"item-label",{item:t,active:h,index:a},()=>[E(R(i(q)(t,r.labelKey)),1)]),t.target==="_blank"&&e.externalIcon!==!1?(o(),m(P,{key:0,name:typeof e.externalIcon=="string"?e.externalIcon:i(l).ui.icons.external,"data-slot":"itemLabelExternalIcon",class:g(e.ui.itemLabelExternalIcon({class:[e.uiOverride?.itemLabelExternalIcon,t.ui?.itemLabelExternalIcon],color:t?.color,active:h}))},null,8,["name","class"])):z("",!0)],2),i(q)(t,r.descriptionKey)||I[t.slot?`${t.slot}-description`:"item-description"]?(o(),k("span",{key:0,"data-slot":"itemDescription",class:g(e.ui.itemDescription({class:[e.uiOverride?.itemDescription,t.ui?.itemDescription]}))},[v(u.$slots,t.slot?`${t.slot}-description`:"item-description",{item:t,active:h,index:a},()=>[E(R(i(q)(t,r.descriptionKey)),1)])],2)):z("",!0)],2)):z("",!0),Q("span",{"data-slot":"itemTrailing",class:g(e.ui.itemTrailing({class:[e.uiOverride?.itemTrailing,t.ui?.itemTrailing]}))},[v(u.$slots,t.slot?`${t.slot}-trailing`:"item-trailing",{item:t,active:h,index:a,ui:e.ui},()=>[t.children?.length?(o(),m(P,{key:0,name:N.value,"data-slot":"itemTrailingIcon",class:g(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,t.ui?.itemTrailingIcon],color:t?.color,active:h}))},null,8,["name","class"])):t.kbds?.length?(o(),k("span",{key:1,"data-slot":"itemTrailingKbds",class:g(e.ui.itemTrailingKbds({class:[e.uiOverride?.itemTrailingKbds,t.ui?.itemTrailingKbds]}))},[(o(!0),k(D,null,M(t.kbds,(T,A)=>(o(),m(ze,L({key:A,size:t.ui?.itemTrailingKbdsSize||e.uiOverride?.itemTrailingKbdsSize||e.ui.itemTrailingKbdsSize()},{ref_for:!0},typeof T=="string"?{value:T}:T),null,16,["size"]))),128))],2)):z("",!0)]),p(i(x).ItemIndicator,{"as-child":""},{default:f(()=>[p(P,{name:e.checkedIcon||i(l).ui.icons.check,"data-slot":"itemTrailingIcon",class:g(e.ui.itemTrailingIcon({class:[e.uiOverride?.itemTrailingIcon,t.ui?.itemTrailingIcon],color:t?.color}))},null,8,["name","class"])]),_:2},1024)],2)])]),_:3}),p(i(x).Portal,G(Y(i(b))),{default:f(()=>[p(i(ge),null,{default:f(()=>[(o(),m(me(e.sub?i(x).SubContent:i(x).Content),L({"data-slot":"content",class:e.ui.content({class:[e.uiOverride?.content,r.class]})},i(B)),{default:f(()=>[e.filter?(o(),m(i(x).Filter,{key:0,modelValue:s.value,"onUpdate:modelValue":C[1]||(C[1]=t=>s.value=t),"as-child":""},{default:f(()=>[p(we,L({autofocus:"",autocomplete:"off",size:e.size},d.value,{"data-slot":"input",class:e.ui.input({class:e.uiOverride?.input}),onChange:C[0]||(C[0]=ye(()=>{},["stop"]))}),null,16,["size","class"])]),_:1},8,["modelValue"])):z("",!0),v(u.$slots,"content-top",{sub:e.sub??!1}),!s.value||J.value?(o(),k("div",{key:1,role:"presentation","data-slot":"viewport",class:g(e.ui.viewport({class:e.uiOverride?.viewport}))},[(o(!0),k(D,null,M(H.value,(t,h)=>(o(),m(i(x).Group,{key:`group-${h}`,"data-slot":"group",class:g(e.ui.group({class:e.uiOverride?.group}))},{default:f(()=>[(o(!0),k(D,null,M(t,(a,T)=>(o(),k(D,{key:`group-${h}-${T}`},[a.type==="label"?(o(),m(i(x).Label,{key:0,"data-slot":"label",class:g(e.ui.label({class:[e.uiOverride?.label,a.ui?.label,a.class]}))},{default:f(()=>[p(i($),{item:a,index:T},null,8,["item","index"])]),_:2},1032,["class"])):a.type==="separator"?(o(),m(i(x).Separator,{key:1,"data-slot":"separator",class:g(e.ui.separator({class:[e.uiOverride?.separator,a.ui?.separator,a.class]}))},null,8,["class"])):a?.children?.length?(o(),m(i(x).Sub,{key:2,open:a.open,"default-open":a.defaultOpen},{default:f(()=>[p(i(x).SubTrigger,{as:"button",type:"button",disabled:a.disabled,"text-value":i(q)(a,r.labelKey),"data-slot":"item",class:g(e.ui.item({class:[e.uiOverride?.item,a.ui?.item,a.class],color:a?.color}))},{default:f(()=>[p(i($),{item:a,index:T},null,8,["item","index"])]),_:2},1032,["disabled","text-value","class"]),p(ne,L({sub:"",class:a.ui?.content,ui:e.ui,"ui-override":e.uiOverride,portal:e.portal,items:a.children,align:"start","align-offset":-4,"side-offset":3,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon,size:e.size,filter:a.filter,"filter-fields":a.filterFields||e.filterFields,"ignore-filter":a.ignoreFilter??e.ignoreFilter},{ref_for:!0},a.content),le({_:2},[M(O(),(A,V)=>({name:V,fn:f(se=>[v(u.$slots,V,L({ref_for:!0},se))])}))]),1040,["class","ui","ui-override","portal","items","label-key","description-key","checked-icon","loading-icon","external-icon","size","filter","filter-fields","ignore-filter"])]),_:2},1032,["open","default-open"])):a.type==="checkbox"?(o(),m(i(x).CheckboxItem,{key:3,"model-value":a.checked,disabled:a.disabled,"text-value":i(q)(a,r.labelKey),"data-slot":"item",class:g(e.ui.item({class:[e.uiOverride?.item,a.ui?.item,a.class],color:a?.color})),"onUpdate:modelValue":a.onUpdateChecked,onSelect:a.onSelect},{default:f(()=>[p(i($),{item:a,index:T},null,8,["item","index"])]),_:2},1032,["model-value","disabled","text-value","class","onUpdate:modelValue","onSelect"])):(o(),m(pe,L({key:4,ref_for:!0},i(be)(a),{custom:""}),{default:f(({active:A,...V})=>[p(i(x).Item,{"as-child":"",disabled:a.disabled,"text-value":i(q)(a,r.labelKey),onSelect:a.onSelect},{default:f(()=>[p(he,L({ref_for:!0},V,{"data-slot":"item",class:e.ui.item({class:[e.uiOverride?.item,a.ui?.item,a.class],color:a?.color,active:A})}),{default:f(()=>[p(i($),{item:a,active:A,index:T},null,8,["item","active","index"])]),_:2},1040,["class"])]),_:2},1032,["disabled","text-value","onSelect"])]),_:2},1040))],64))),128))]),_:2},1032,["class"]))),128))],2)):z("",!0),s.value&&!J.value?(o(),k("div",{key:2,"data-slot":"empty",class:g(e.ui.empty({class:e.uiOverride?.empty}))},[v(u.$slots,"empty",{searchTerm:s.value},()=>[E(R(i(w)("dropdownMenu.noMatch",{searchTerm:s.value})),1)])],2)):z("",!0),v(u.$slots,"default"),v(u.$slots,"content-bottom",{sub:e.sub??!1})]),_:3},16,["class"]))]),_:3})]),_:3},16)],64))}},Fe={slots:{content:"min-w-32 bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-dropdown-menu-content-transform-origin) flex flex-col",input:"border-b border-default",empty:"text-center text-muted",viewport:"relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",arrow:"fill-bg stroke-default",group:"p-1 isolate",label:"w-full flex items-center font-semibold text-highlighted",separator:"-mx-1 my-1 h-px bg-border",item:"group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75",itemLeadingIcon:"shrink-0",itemLeadingAvatar:"shrink-0",itemLeadingAvatarSize:"",itemTrailing:"ms-auto inline-flex gap-1.5 items-center",itemTrailingIcon:"shrink-0",itemTrailingKbds:"hidden lg:inline-flex items-center shrink-0",itemTrailingKbdsSize:"",itemWrapper:"flex-1 flex flex-col text-start min-w-0",itemLabel:"truncate",itemDescription:"truncate text-muted",itemLabelExternalIcon:"inline-block size-3 align-top text-dimmed"},variants:{color:{primary:"",secondary:"",success:"",info:"",warning:"",error:"",neutral:""},active:{true:{item:"text-highlighted before:bg-elevated",itemLeadingIcon:"text-default"},false:{item:["text-default data-highlighted:text-highlighted data-[state=open]:text-highlighted data-highlighted:before:bg-elevated/50 data-[state=open]:before:bg-elevated/50","transition-colors before:transition-colors"],itemLeadingIcon:["text-dimmed group-data-highlighted:text-default group-data-[state=open]:text-default","transition-colors"]}},loading:{true:{itemLeadingIcon:"animate-spin"}},size:{xs:{label:"p-1 text-xs gap-1",item:"p-1 text-xs gap-1",empty:"p-2 text-xs",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},sm:{label:"p-1.5 text-xs gap-1.5",item:"p-1.5 text-xs gap-1.5",empty:"p-2.5 text-xs",itemLeadingIcon:"size-4",itemLeadingAvatarSize:"3xs",itemTrailingIcon:"size-4",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"sm"},md:{label:"p-1.5 text-sm gap-1.5",item:"p-1.5 text-sm gap-1.5",empty:"p-2.5 text-sm",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-0.5",itemTrailingKbdsSize:"md"},lg:{label:"p-2 text-sm gap-2",item:"p-2 text-sm gap-2",empty:"p-3 text-sm",itemLeadingIcon:"size-5",itemLeadingAvatarSize:"2xs",itemTrailingIcon:"size-5",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"md"},xl:{label:"p-2 text-base gap-2",item:"p-2 text-base gap-2",empty:"p-3 text-base",itemLeadingIcon:"size-6",itemLeadingAvatarSize:"xs",itemTrailingIcon:"size-6",itemTrailingKbds:"gap-1",itemTrailingKbdsSize:"lg"}}},compoundVariants:[{color:"primary",active:!1,class:{item:"text-primary data-highlighted:text-primary data-highlighted:before:bg-primary/10 data-[state=open]:before:bg-primary/10",itemLeadingIcon:"text-primary/75 group-data-highlighted:text-primary group-data-[state=open]:text-primary"}},{color:"secondary",active:!1,class:{item:"text-secondary data-highlighted:text-secondary data-highlighted:before:bg-secondary/10 data-[state=open]:before:bg-secondary/10",itemLeadingIcon:"text-secondary/75 group-data-highlighted:text-secondary group-data-[state=open]:text-secondary"}},{color:"success",active:!1,class:{item:"text-success data-highlighted:text-success data-highlighted:before:bg-success/10 data-[state=open]:before:bg-success/10",itemLeadingIcon:"text-success/75 group-data-highlighted:text-success group-data-[state=open]:text-success"}},{color:"info",active:!1,class:{item:"text-info data-highlighted:text-info data-highlighted:before:bg-info/10 data-[state=open]:before:bg-info/10",itemLeadingIcon:"text-info/75 group-data-highlighted:text-info group-data-[state=open]:text-info"}},{color:"warning",active:!1,class:{item:"text-warning data-highlighted:text-warning data-highlighted:before:bg-warning/10 data-[state=open]:before:bg-warning/10",itemLeadingIcon:"text-warning/75 group-data-highlighted:text-warning group-data-[state=open]:text-warning"}},{color:"error",active:!1,class:{item:"text-error data-highlighted:text-error data-highlighted:before:bg-error/10 data-[state=open]:before:bg-error/10",itemLeadingIcon:"text-error/75 group-data-highlighted:text-error group-data-[state=open]:text-error"}},{color:"primary",active:!0,class:{item:"text-primary before:bg-primary/10",itemLeadingIcon:"text-primary"}},{color:"secondary",active:!0,class:{item:"text-secondary before:bg-secondary/10",itemLeadingIcon:"text-secondary"}},{color:"success",active:!0,class:{item:"text-success before:bg-success/10",itemLeadingIcon:"text-success"}},{color:"info",active:!0,class:{item:"text-info before:bg-info/10",itemLeadingIcon:"text-info"}},{color:"warning",active:!0,class:{item:"text-warning before:bg-warning/10",itemLeadingIcon:"text-warning"}},{color:"error",active:!0,class:{item:"text-error before:bg-error/10",itemLeadingIcon:"text-error"}}],defaultVariants:{size:"md"}},Ae={__name:"UDropdownMenu",props:_({size:{type:null,required:!1},items:{type:null,required:!1},checkedIcon:{type:null,required:!1},loadingIcon:{type:null,required:!1},externalIcon:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},labelKey:{type:null,required:!1,default:"label"},descriptionKey:{type:null,required:!1,default:"description"},filter:{type:[Boolean,Object],required:!1,default:!1},filterFields:{type:Array,required:!1},ignoreFilter:{type:Boolean,required:!1,default:!1},disabled:{type:Boolean,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},{searchTerm:{type:String,default:""},searchTermModifiers:{}}),emits:_(["update:open"],["update:searchTerm"]),setup(e,{emit:F}){const r=e,S=F,I=te(),w=Ie(e,"searchTerm",{type:String,default:""}),n=ae(),l=ke("dropdownMenu",r),y=ie(Le(r,"defaultOpen","open","modal"),S),c=U(()=>X(r.content,{side:"bottom",sideOffset:8,collisionPadding:8})),s=U(()=>X(r.arrow,{rounded:!0})),d=()=>re(I,["default"]),b=K(()=>ee({extend:ee(Fe),...n.ui?.dropdownMenu||{}})({size:r.size}));return(B,O)=>(o(),m(i(qe),G(Y(i(y))),{default:f(({open:j})=>[I.default?(o(),m(i(Se),{key:0,"as-child":"",class:g(r.class),disabled:e.disabled},{default:f(()=>[v(B.$slots,"default",{open:j})]),_:2},1032,["class","disabled"])):z("",!0),p(ne,L({"search-term":w.value,"onUpdate:searchTerm":O[0]||(O[0]=$=>w.value=$),class:b.value.content({class:[!I.default&&r.class,i(l)?.content]}),ui:b.value,"ui-override":i(l)},c.value,{items:e.items,portal:e.portal,"label-key":e.labelKey,"description-key":e.descriptionKey,"checked-icon":e.checkedIcon,"loading-icon":e.loadingIcon,"external-icon":e.externalIcon,size:e.size,filter:e.filter,"filter-fields":e.filterFields,"ignore-filter":e.ignoreFilter}),le({default:f(()=>[e.arrow?(o(),m(i(Te),L({key:0},s.value,{"data-slot":"arrow",class:b.value.arrow({class:i(l)?.arrow})}),null,16,["class"])):z("",!0)]),_:2},[M(d(),($,N)=>({name:N,fn:f(W=>[v(B.$slots,N,G(Y(W)))])}))]),1040,["search-term","class","ui","ui-override","items","portal","label-key","description-key","checked-icon","loading-icon","external-icon","size","filter","filter-fields","ignore-filter"])]),_:3},16))}};export{Ae as _};