@strapi/ui-primitives 1.7.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Combobox/Combobox.d.ts +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +1048 -1161
- package/package.json +11 -10
|
@@ -73,7 +73,7 @@ interface CreateItemProps extends PrimitiveDivProps {
|
|
|
73
73
|
disabled?: boolean;
|
|
74
74
|
}
|
|
75
75
|
declare const Root: React.FC<RootProps>;
|
|
76
|
-
declare const Trigger: React.ForwardRefExoticComponent<Pick<
|
|
76
|
+
declare const Trigger: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
77
77
|
ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
78
78
|
} & {
|
|
79
79
|
asChild?: boolean | undefined;
|
|
@@ -84,7 +84,7 @@ declare const Portal: React.FC<PortalProps>;
|
|
|
84
84
|
declare const Content: React.ForwardRefExoticComponent<ComboboxContentImplProps & React.RefAttributes<HTMLDivElement>>;
|
|
85
85
|
declare const Viewport: React.ForwardRefExoticComponent<ViewportProps & React.RefAttributes<HTMLDivElement>>;
|
|
86
86
|
declare const Item: React.ForwardRefExoticComponent<ItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
87
|
-
declare const ItemText: React.ForwardRefExoticComponent<Pick<
|
|
87
|
+
declare const ItemText: React.ForwardRefExoticComponent<Pick<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
|
|
88
88
|
ref?: ((instance: HTMLSpanElement | null) => void) | React.RefObject<HTMLSpanElement> | null | undefined;
|
|
89
89
|
} & {
|
|
90
90
|
asChild?: boolean | undefined;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const Et=require("react"),T=require("@radix-ui/primitive"),A=require("@radix-ui/react-compose-refs"),ve=require("@radix-ui/react-context"),et=require("@radix-ui/react-dismissable-layer"),oe=require("@radix-ui/react-id"),Ne=require("@radix-ui/react-popper"),tt=require("@radix-ui/react-portal"),_=require("@radix-ui/react-primitive"),ie=require("@radix-ui/react-use-controllable-state"),ot=require("aria-hidden"),Tt=require("react-dom"),nt=require("react-remove-scroll"),u=require("react/jsx-runtime"),Ee=require("@radix-ui/react-slot"),Je=require("@radix-ui/number"),Pt=require("@radix-ui/react-collection"),Rt=require("@radix-ui/react-direction"),Vt=require("@radix-ui/react-focus-guards"),_t=require("@radix-ui/react-focus-scope"),Nt=require("@radix-ui/react-use-callback-ref"),Z=require("@radix-ui/react-use-layout-effect"),At=require("@radix-ui/react-use-previous"),Mt=require("@radix-ui/react-visually-hidden");function Ae(o){if(o&&o.__esModule)return o;const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const e in o)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(l,e,t.get?t:{enumerable:!0,get:()=>o[e]})}}return l.default=o,Object.freeze(l)}const r=Ae(Et),re=Ae(Ne),Me=Ae(Tt);let Ie=new Map;function Ot(o,l){let e=o+(l?Object.entries(l).sort((n,s)=>n[0]<s[0]?-1:1).join():"");if(Ie.has(e))return Ie.get(e);let t=new Intl.Collator(o,l);return Ie.set(e,t),t}function Oe(o,l){let e=Ot(o,{usage:"search",...l});return{startsWith(t,n){return n.length===0?!0:(t=t.normalize("NFC"),n=n.normalize("NFC"),e.compare(t.slice(0,n.length),n)===0)},endsWith(t,n){return n.length===0?!0:(t=t.normalize("NFC"),n=n.normalize("NFC"),e.compare(t.slice(-n.length),n)===0)},contains(t,n){if(n.length===0)return!0;t=t.normalize("NFC"),n=n.normalize("NFC");let s=0,i=n.length;for(;s+i<=t.length;s++){let c=t.slice(s,s+i);if(e.compare(n,c)===0)return!0}return!1}}}const jt=o=>{const l=r.useRef();return r.useEffect(()=>{l.current=o}),l.current};function Dt(o){const l=`${o}CollectionProvider`,[e,t]=ve.createContextScope(l),[n,s]=e(l,{collectionRef:{current:null},itemMap:new Map,listeners:new Set}),i=d=>{const{scope:f,children:h}=d,v=r.useRef(null),C=r.useRef(new Map).current,x=r.useRef(new Set).current;return u.jsx(n,{scope:f,itemMap:C,collectionRef:v,listeners:x,children:h})};i.displayName=l;const c=`${o}CollectionSlot`,a=r.forwardRef((d,f)=>{const{scope:h,children:v}=d,C=s(c,h),x=A.useComposedRefs(f,C.collectionRef);return u.jsx(Ee.Slot,{ref:x,children:v})});a.displayName=c;const m=`${o}CollectionItemSlot`,p="data-radix-collection-item",b=r.forwardRef((d,f)=>{const{scope:h,children:v,...C}=d,x=r.useRef(null),y=A.useComposedRefs(f,x),N=s(m,h);return r.useEffect(()=>{const E=Array.from(N.itemMap.values());return N.itemMap.set(x,{ref:x,...C}),N.listeners.forEach(M=>M(Array.from(N.itemMap.values()),E)),()=>{const M=Array.from(N.itemMap.values());N.itemMap.delete(x),N.listeners.forEach(P=>P(Array.from(N.itemMap.values()),M))}}),u.jsx(Ee.Slot,{[p]:"",ref:y,children:v})});b.displayName=m;function g(d){const f=s(`${o}CollectionConsumer`,d),h=r.useCallback(()=>{const C=f.collectionRef.current;if(!C)return[];const x=Array.from(C.querySelectorAll(`[${p}]`));return Array.from(f.itemMap.values()).sort((E,M)=>x.indexOf(E.ref.current)-x.indexOf(M.ref.current))},[f.collectionRef,f.itemMap]),v=r.useCallback(C=>(f.listeners.add(C),()=>f.listeners.delete(C)),[f.listeners]);return{getItems:h,subscribe:v}}return[{Provider:i,Slot:a,ItemSlot:b},g,t]}const Lt=[" ","Enter","ArrowUp","ArrowDown"],kt=["Enter"],Qe=o=>Boolean(o.length===1&&o.match(/\S| /)),rt="Combobox",[fe,me]=Dt(rt),[Ft,W]=ve.createContext(rt),Ht=({children:o})=>u.jsx(re.Root,{children:u.jsx(fe.Provider,{scope:void 0,children:o})}),Bt=o=>{const{allowCustomValue:l=!1,autocomplete:e="none",children:t,open:n,defaultOpen:s,onOpenChange:i,value:c,defaultValue:a,onValueChange:m,disabled:p,required:b=!1,locale:g="en-EN",onTextValueChange:d,textValue:f,defaultTextValue:h,filterValue:v,defaultFilterValue:C,onFilterValueChange:x}=o,[y,N]=r.useState(null),[E,M]=r.useState(null),[P,D]=r.useState(null),[F,q]=r.useState(null),[H=!1,O]=ie.useControllableState({prop:n,defaultProp:s,onChange:i}),[L,k]=ie.useControllableState({prop:c,defaultProp:a,onChange:m}),[B,U]=ie.useControllableState({prop:f,defaultProp:h,onChange:d}),[G,Y]=ie.useControllableState({prop:v,defaultProp:C,onChange:x}),$=oe.useId(),ue=r.useCallback((se,le)=>{const de=le.map(w=>w.ref.current),[X,...ce]=de,[Q]=ce.slice(-1),S=F;for(const w of se){if(w===S)return;if(w?.scrollIntoView({block:"nearest"}),w===X&&E&&(E.scrollTop=0),w===Q&&E&&(E.scrollTop=E.scrollHeight),q(w),e==="both"){const j=le.find(I=>I.ref.current===w);j&&U(j.textValue)}if(w!==S)return}},[e,U,E,F]);return r.useEffect(()=>{e!=="both"&&q(null)},[B,e]),r.useEffect(()=>{if(P&&y)return ot.hideOthers([P,y])},[P,y]),u.jsx(Ht,{children:u.jsx(Ft,{allowCustomValue:l,autocomplete:e,required:b,trigger:y,onTriggerChange:N,contentId:$,value:L,onValueChange:k,open:H,onOpenChange:O,disabled:p,locale:g,focusFirst:ue,textValue:B,onTextValueChange:U,onViewportChange:M,onContentChange:D,visuallyFocussedItem:F,filterValue:G,onFilterValueChange:Y,onVisuallyFocussedItemChange:q,children:t})})},Ut="ComboboxTrigger",$t=r.forwardRef((o,l)=>{const{...e}=o,t=W(Ut);return u.jsx(re.Anchor,{asChild:!0,children:u.jsx("div",{ref:l,"data-disabled":t.disabled?"":void 0,...e})})}),st="ComboboxInput",qt=r.forwardRef((o,l)=>{const e=W(st),t=r.useRef(null),{getItems:n}=me(void 0),{startsWith:s}=Oe(e.locale,{sensitivity:"base"}),i=e.disabled,c=A.useComposedRefs(t,l,e.onTriggerChange),a=()=>{i||e.onOpenChange(!0)},m=jt(e.filterValue);return r.useLayoutEffect(()=>{setTimeout(()=>{if(e.textValue===""||e.textValue===void 0||e.filterValue===""||e.filterValue===void 0)return;const p=n().find(g=>g.type==="option"&&s(g.textValue,e.textValue)),b=Co(m??"",e.filterValue);p&&!e.visuallyFocussedItem&&b===e.filterValue.length&&t.current.setSelectionRange(e.filterValue.length,e.textValue.length)})},[e.textValue,e.filterValue,s,e.visuallyFocussedItem,n,m]),u.jsx("input",{type:"text",role:"combobox","aria-controls":e.contentId,"aria-expanded":e.open,"aria-required":e.required,"aria-autocomplete":e.autocomplete,"data-state":e.open?"open":"closed","aria-disabled":i,"aria-activedescendant":e.visuallyFocussedItem?.id,disabled:i,"data-disabled":i?"":void 0,"data-placeholder":e.textValue===void 0?"":void 0,value:e.textValue??"",...o,ref:c,onClick:T.composeEventHandlers(o.onClick,p=>{p.currentTarget.focus()}),onPointerDown:T.composeEventHandlers(o.onPointerDown,p=>{p.button===0&&p.ctrlKey===!1&&(a(),p.currentTarget.focus())}),onKeyDown:T.composeEventHandlers(o.onKeyDown,p=>{if(["ArrowUp","ArrowDown","Home","End"].includes(p.key))setTimeout(()=>{let g=n().filter(d=>!d.disabled).map(d=>d.ref.current);if(["ArrowUp","End"].includes(p.key)&&(g=g.slice().reverse()),["ArrowUp","ArrowDown"].includes(p.key)){const d=e.visuallyFocussedItem??p.target;let f=g.indexOf(d);f===g.length-1&&(f=-1),g=g.slice(f+1)}if(["ArrowDown"].includes(p.key)&&e.autocomplete==="both"&&g.length>1){const[d,...f]=g,h=n().find(v=>v.ref.current===d).textValue;e.textValue===h&&(g=f)}e.focusFirst(g,n())}),p.preventDefault();else if(["Escape"].includes(p.key))e.open?e.onOpenChange(!1):(e.onValueChange(void 0),e.onTextValueChange("")),p.preventDefault();else if(kt.includes(p.key)){if(e.visuallyFocussedItem){const b=n().find(g=>g.ref.current===e.visuallyFocussedItem);b&&(e.onValueChange(b.value),e.onTextValueChange(b.textValue),e.autocomplete==="both"&&e.onFilterValueChange(b.textValue),b.ref.current?.click())}e.onOpenChange(!1),p.preventDefault()}else e.onVisuallyFocussedItemChange(null)}),onChange:T.composeEventHandlers(o.onChange,p=>{e.onTextValueChange(p.currentTarget.value),e.autocomplete==="both"&&e.onFilterValueChange(p.currentTarget.value)}),onKeyUp:T.composeEventHandlers(o.onKeyUp,p=>{if(!e.open&&(Qe(p.key)||["ArrowUp","ArrowDown","Home","End","Backspace"].includes(p.key))&&a(),e.autocomplete==="both"&&Qe(p.key)&&e.filterValue!==void 0){const b=e.filterValue,g=n().find(d=>s(d.textValue,b));g&&e.onTextValueChange(g.textValue)}})})}),Kt=r.forwardRef((o,l)=>{const{children:e,...t}=o,n=W(st),s=n.disabled,i=()=>{s||(n.onOpenChange(!0),n.trigger?.focus())};return u.jsx(_.Primitive.button,{"aria-hidden":!0,type:"button","aria-disabled":s,"aria-controls":n.contentId,"aria-expanded":n.open,disabled:s,"data-disabled":s?"":void 0,...t,tabIndex:-1,ref:l,onClick:T.composeEventHandlers(t.onClick,()=>{n.trigger?.focus()}),onPointerDown:T.composeEventHandlers(t.onPointerDown,c=>{c.button===0&&c.ctrlKey===!1&&(i(),c.preventDefault())}),onKeyDown:T.composeEventHandlers(t.onKeyDown,c=>{Lt.includes(c.key)&&(i(),c.preventDefault())}),children:e||"\u25BC"})}),Wt="ComboboxPortal",lt=o=>u.jsx(tt.Portal,{asChild:!0,...o});lt.displayName=Wt;const ct="ComboboxContent",zt=r.forwardRef((o,l)=>{const e=W(ct),[t,n]=r.useState();if(r.useLayoutEffect(()=>{n(new DocumentFragment)},[]),!e.open){const s=t;return s?Me.createPortal(u.jsx(fe.Slot,{scope:void 0,children:u.jsx("div",{children:o.children})}),s):null}return u.jsx(Yt,{...o,ref:l})}),Gt=10,Yt=r.forwardRef((o,l)=>{const{onEscapeKeyDown:e,onPointerDownOutside:t,...n}=o,s=W(ct),i=A.useComposedRefs(l,h=>s.onContentChange(h)),{onOpenChange:c,onValueChange:a,onFilterValueChange:m,onTextValueChange:p,textValue:b,value:g}=s,{getItems:d}=me(void 0),f=r.useCallback(()=>{s.onVisuallyFocussedItemChange(null);const[h]=d().filter(C=>C.textValue===b&&C.type==="option");if(s.allowCustomValue){h&&(a(h.value),s.autocomplete==="both"&&m(h.textValue));return}const[v]=d().filter(C=>C.value===g&&C.type==="option");h?a(h.value):v&&b!==""?(p(v.textValue),s.autocomplete==="both"&&m(v.textValue)):(a(void 0),p(""))},[s,d,m,p,a,b,g]);return r.useEffect(()=>{const h=()=>{f(),c(!1)};return window.addEventListener("blur",h),window.addEventListener("resize",h),()=>{window.removeEventListener("blur",h),window.removeEventListener("resize",h)}},[f,c]),u.jsx(nt.RemoveScroll,{allowPinchZoom:!0,children:u.jsx(et.DismissableLayer,{asChild:!0,onEscapeKeyDown:e,onPointerDownOutside:t,onFocusOutside:h=>h.preventDefault(),onDismiss:()=>{s.onOpenChange(!1),s.trigger?.focus({preventScroll:!0}),f()},children:u.jsx(Xt,{role:"listbox",id:s.contentId,"data-state":s.open?"open":"closed",onContextMenu:h=>h.preventDefault(),...n,ref:i,style:{display:"flex",flexDirection:"column",outline:"none",...n.style}})})})}),Xt=r.forwardRef((o,l)=>{const{align:e="start",collisionPadding:t=Gt,...n}=o;return u.jsx(re.Content,{...n,ref:l,align:e,collisionPadding:t,style:{boxSizing:"border-box",...n.style,"--radix-combobox-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-combobox-content-available-width":"var(--radix-popper-available-width)","--radix-combobox-content-available-height":"var(--radix-popper-available-height)","--radix-combobox-trigger-width":"var(--radix-popper-anchor-width)","--radix-combobox-trigger-height":"var(--radix-popper-anchor-height)"}})}),Zt="ComboboxViewport",Jt=r.forwardRef((o,l)=>{const e=W(Zt),t=A.useComposedRefs(l,e.onViewportChange);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-combobox-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-combobox-viewport]::-webkit-scrollbar{display:none}"}}),u.jsx(fe.Slot,{scope:void 0,children:u.jsx(_.Primitive.div,{"data-radix-combobox-viewport":"",role:"presentation",...o,ref:t,style:{position:"relative",flex:1,overflow:"auto",...o.style}})})]})}),it="ComboboxItem",[Qt,at]=ve.createContext(it),ut=r.forwardRef((o,l)=>{const{value:e,disabled:t=!1,textValue:n,...s}=o,i=r.useRef(null),c=A.useComposedRefs(l,i),{getItems:a}=me(void 0),{onTextValueChange:m,textValue:p,visuallyFocussedItem:b,...g}=W(it),d=oe.useId(),[f,h]=r.useState(n??""),v=r.useMemo(()=>b===a().find(M=>M.ref.current===i.current)?.ref.current,[a,b]),C=g.value===e,x=()=>{t||(g.onValueChange(e),m(f),g.onOpenChange(!1),g.autocomplete==="both"&&g.onFilterValueChange(f),g.trigger?.focus({preventScroll:!0}))},{startsWith:y}=Oe(g.locale,{sensitivity:"base"}),N=r.useCallback(M=>{h(P=>P||(M?.textContent??"").trim())},[]);r.useEffect(()=>{C&&p===void 0&&f!==""&&m(f)},[f,C,p,m]);const E=oe.useId();return g.autocomplete==="list"&&f&&p&&!y(f,p)||g.autocomplete==="both"&&f&&g.filterValue&&!y(f,g.filterValue)?null:u.jsx(Qt,{textId:d,onTextValueChange:N,isSelected:C,children:u.jsx(fe.ItemSlot,{scope:void 0,value:e,textValue:f,disabled:t,type:"option",children:u.jsx(_.Primitive.div,{role:"option","aria-labelledby":d,"data-highlighted":v?"":void 0,"aria-selected":C&&v,"data-state":C?"checked":"unchecked","aria-disabled":t||void 0,"data-disabled":t?"":void 0,tabIndex:t?void 0:-1,...s,id:E,ref:c,onPointerUp:T.composeEventHandlers(s.onPointerUp,x)})})})}),eo="ComboboxItemText",to=r.forwardRef((o,l)=>{const{className:e,style:t,...n}=o,s=at(eo),i=A.useComposedRefs(l,s.onTextValueChange);return u.jsx(_.Primitive.span,{id:s.textId,...n,ref:i})}),oo="ComboboxItemIndicator",no=r.forwardRef((o,l)=>{const{isSelected:e}=at(oo);return e?u.jsx(_.Primitive.span,{"aria-hidden":!0,...o,ref:l}):null}),dt="ComboboxNoValueFound",ro=r.forwardRef((o,l)=>{const{textValue:e="",locale:t}=W(dt),[n,s]=r.useState([]),{subscribe:i}=me(void 0),{startsWith:c}=Oe(t,{sensitivity:"base"});return r.useEffect(()=>{const a=i(m=>{s(m)});return()=>{a()}},[i]),n.some(a=>c(a.textValue,e))?null:u.jsx(_.Primitive.div,{...o,ref:l})}),so=r.forwardRef((o,l)=>{const{disabled:e=!1,...t}=o,n=W(dt),{textValue:s,visuallyFocussedItem:i}=n,{getItems:c,subscribe:a}=me(void 0),m=r.useRef(null),[p,b]=r.useState(!1),g=A.useComposedRefs(l,m),d=r.useMemo(()=>i===c().find(v=>v.ref.current===m.current)?.ref.current,[c,i]),f=oe.useId(),h=()=>{!e&&s&&(n.onValueChange(s),n.onTextValueChange(s),n.onOpenChange(!1),n.autocomplete==="both"&&n.onFilterValueChange(s),n.trigger?.focus({preventScroll:!0}))};return r.useLayoutEffect(()=>{const v=a(C=>{b(!C.some(x=>x.textValue===s&&x.type!=="create"))});return()=>{v()}},[s,a]),!s||!p?null:u.jsx(fe.ItemSlot,{scope:void 0,value:s??"",textValue:s??"",disabled:e,type:"create",children:u.jsx(_.Primitive.div,{role:"option",tabIndex:e?void 0:-1,"aria-disabled":e||void 0,"data-disabled":e?"":void 0,"data-highlighted":d?"":void 0,...t,id:f,ref:g,onPointerUp:T.composeEventHandlers(t.onPointerUp,h)})})}),lo=Bt,co=$t,io=qt,ao=Kt,uo=lt,po=zt,fo=Jt,mo=ut,ho=to,xo=no,go=ro,vo=so;function Co(o,l){const e=Math.min(o.length,l.length);for(let t=0;t<e;t++)if(o[t]!==l[t])return t;return e}const So=Object.freeze(Object.defineProperty({__proto__:null,ComboboxItem:ut,Root:lo,Trigger:co,TextInput:io,Icon:ao,Portal:uo,Content:po,Viewport:fo,Item:mo,ItemText:ho,ItemIndicator:xo,NoValueFound:go,CreateItem:vo},Symbol.toStringTag,{value:"Module"})),bo=[" ","Enter","ArrowUp","ArrowDown"],yo=[" ","Enter"],he="Select",[Ce,xe,wo]=Pt.createCollection(he),[ae,Io]=ve.createContextScope(he,[wo,Ne.createPopperScope]),Se=Ne.createPopperScope(),[Eo,z]=ae(he),[To,Po]=ae(he),je=o=>{const{__scopeSelect:l,children:e,open:t,defaultOpen:n,onOpenChange:s,value:i,defaultValue:c,onValueChange:a,dir:m,disabled:p,required:b,multi:g=!1}=o,d=Se(l),[f,h]=r.useState(null),[v,C]=r.useState(null),[x,y]=r.useState(!1),N=Rt.useDirection(m),[E=!1,M]=ie.useControllableState({prop:t,defaultProp:n,onChange:s}),[P,D]=ie.useControllableState({prop:i,defaultProp:c,onChange(O){a&&(Array.isArray(O),a(O))}}),F=r.useRef(null),[q,H]=r.useState(new Set);return u.jsx(re.Root,{...d,children:u.jsx(Eo,{required:b,scope:l,trigger:f,onTriggerChange:h,valueNode:v,onValueNodeChange:C,valueNodeHasChildren:x,onValueNodeHasChildrenChange:y,contentId:oe.useId(),value:P,onValueChange:D,open:E,onOpenChange:M,dir:N,triggerPointerDownPosRef:F,disabled:p,multi:g,children:u.jsx(Ce.Provider,{scope:l,children:u.jsx(To,{scope:o.__scopeSelect,onNativeOptionAdd:r.useCallback(O=>{H(L=>new Set(L).add(O))},[]),onNativeOptionRemove:r.useCallback(O=>{H(L=>{const k=new Set(L);return k.delete(O),k})},[]),children:e})})})})};je.displayName=he;const pt="SelectTrigger",De=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Se(e),s=z(pt,e),i=s.disabled,c=A.useComposedRefs(l,s.onTriggerChange),a=xe(e),[m,p,b]=yt(d=>{const f=a().filter(C=>!C.disabled),h=f.find(C=>C.value===s.value),v=wt(f,d,h);if(v!==void 0&&!Array.isArray(v.value)){const C=s.multi?[v.value]:v.value;s.onValueChange(C)}}),g=()=>{i||(s.onOpenChange(!0),b())};return u.jsx(re.Anchor,{asChild:!0,...n,children:u.jsx(_.Primitive.div,{role:"combobox","aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":"none",dir:s.dir,"data-state":s.open?"open":"closed","data-disabled":i?"":void 0,"data-placeholder":s.value===void 0?"":void 0,tabIndex:i?void 0:0,...t,ref:c,onClick:T.composeEventHandlers(t.onClick,d=>{d.currentTarget.focus()}),onPointerDown:T.composeEventHandlers(t.onPointerDown,d=>{const f=d.target;f.hasPointerCapture(d.pointerId)&&f.releasePointerCapture(d.pointerId),(f.closest("button")??f.closest("div"))===d.currentTarget&&d.button===0&&d.ctrlKey===!1&&(g(),s.triggerPointerDownPosRef.current={x:Math.round(d.pageX),y:Math.round(d.pageY)},d.preventDefault())}),onKeyDown:T.composeEventHandlers(t.onKeyDown,d=>{const f=m.current!=="",h=d.ctrlKey||d.altKey||d.metaKey,v=d.target;(v.closest("button")??v.closest("div"))===d.currentTarget&&(!h&&d.key.length===1&&p(d.key),!(f&&d.key===" ")&&bo.includes(d.key)&&(g(),d.preventDefault()))})})})});De.displayName=pt;const ft="SelectValue",Le=r.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,placeholder:n,...s}=o,i=z(ft,e),{onValueNodeHasChildrenChange:c}=i,a=t!==void 0,m=A.useComposedRefs(l,i.onValueNodeChange),[p,b]=r.useState([]),g=xe(e);Z.useLayoutEffect(()=>{c(a)},[c,a]),r.useLayoutEffect(()=>{if(Array.isArray(i.value)&&p.length!==i.value.length){const f=setTimeout(()=>{const h=g().filter(v=>Array.isArray(v.value)?!1:i.value?.includes(v.value));b(h)});return()=>{clearTimeout(f)}}},[i.value,g,p]);let d=t;if((i.value===void 0||i.value.length===0)&&n!==void 0)d=u.jsx("span",{children:n});else if(typeof t=="function")if(Array.isArray(i.value)){const f=i.value.map(h=>{const v=p.find(C=>C.value===h);return v?t({value:h,textValue:v?.textValue}):null});d=f.every(h=>h===null)?n:f}else d=t(i.value);return u.jsx(_.Primitive.span,{...s,ref:m,children:d||null})});Le.displayName=ft;const Ro="SelectIcon",ke=r.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,...n}=o;return u.jsx(_.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t||"\u25BC"})});ke.displayName=Ro;const Vo="SelectPortal",Fe=o=>u.jsx(tt.Portal,{asChild:!0,...o});Fe.displayName=Vo;const ne="SelectContent",He=r.forwardRef((o,l)=>{const e=z(ne,o.__scopeSelect),[t,n]=r.useState();if(Z.useLayoutEffect(()=>{n(new DocumentFragment)},[]),!e.open){const s=t;return s?Me.createPortal(u.jsx(mt,{scope:o.__scopeSelect,children:u.jsx(Ce.Slot,{scope:o.__scopeSelect,children:u.jsx("div",{children:o.children})})}),s):null}return u.jsx(ht,{...o,ref:l})});He.displayName=ne;const K=10,[mt,J]=ae(ne),_o="SelectContentImpl",ht=r.forwardRef((o,l)=>{const{__scopeSelect:e,position:t="item-aligned",onCloseAutoFocus:n,onEscapeKeyDown:s,onPointerDownOutside:i,side:c,sideOffset:a,align:m,alignOffset:p,arrowPadding:b,collisionBoundary:g,collisionPadding:d,sticky:f,hideWhenDetached:h,avoidCollisions:v,...C}=o,x=z(ne,e),[y,N]=r.useState(null),[E,M]=r.useState(null),P=A.useComposedRefs(l,S=>N(S)),[D,F]=r.useState(null),[q,H]=r.useState(null),O=xe(e),[L,k]=r.useState(!1),B=r.useRef(!1);r.useEffect(()=>{if(y)return ot.hideOthers(y)},[y]),Vt.useFocusGuards();const U=r.useCallback(S=>{const[w,...j]=O().map(V=>V.ref.current),[I]=j.slice(-1),R=document.activeElement;for(const V of S)if(V===R||(V?.scrollIntoView({block:"nearest"}),V===w&&E&&(E.scrollTop=0),V===I&&E&&(E.scrollTop=E.scrollHeight),V?.focus(),document.activeElement!==R))return},[O,E]),G=r.useCallback(()=>U([D,y]),[U,D,y]);r.useEffect(()=>{L&&G()},[L,G]);const{onOpenChange:Y,triggerPointerDownPosRef:$}=x;r.useEffect(()=>{if(y){let S={x:0,y:0};const w=I=>{S={x:Math.abs(Math.round(I.pageX)-($.current?.x??0)),y:Math.abs(Math.round(I.pageY)-($.current?.y??0))}},j=I=>{S.x<=10&&S.y<=10?I.preventDefault():y.contains(I.target)||Y(!1),document.removeEventListener("pointermove",w),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",w),document.addEventListener("pointerup",j,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",w),document.removeEventListener("pointerup",j,{capture:!0})}}},[y,Y,$]),r.useEffect(()=>{const S=()=>Y(!1);return window.addEventListener("blur",S),window.addEventListener("resize",S),()=>{window.removeEventListener("blur",S),window.removeEventListener("resize",S)}},[Y]);const[ue,se]=yt(S=>{const w=O().filter(R=>!R.disabled),j=w.find(R=>R.ref.current===document.activeElement),I=wt(w,S,j);I&&setTimeout(()=>I.ref.current.focus())}),le=r.useCallback((S,w,j)=>{const I=!B.current&&!j;(x.value!==void 0&&x.value===w||I)&&(F(S),I&&(B.current=!0))},[x.value]),de=r.useCallback(()=>y?.focus(),[y]),X=r.useCallback((S,w,j)=>{const I=!B.current&&!j;(x.value!==void 0&&(Array.isArray(w)?w.every(V=>x.value?.includes(V)):x.value===w)||I)&&H(S)},[x.value]),ce=t==="popper"?Te:xt,Q=ce===Te?{side:c,sideOffset:a,align:m,alignOffset:p,arrowPadding:b,collisionBoundary:g,collisionPadding:d,sticky:f,hideWhenDetached:h,avoidCollisions:v}:{};return u.jsx(mt,{scope:e,content:y,viewport:E,onViewportChange:M,itemRefCallback:le,selectedItem:D,onItemLeave:de,itemTextRefCallback:X,focusSelectedItem:G,selectedItemText:q,position:t,isPositioned:L,searchRef:ue,children:u.jsx(nt.RemoveScroll,{as:Ee.Slot,allowPinchZoom:!0,children:u.jsx(_t.FocusScope,{asChild:!0,trapped:x.open,onMountAutoFocus:S=>{S.preventDefault()},onUnmountAutoFocus:T.composeEventHandlers(n,S=>{x.trigger?.focus({preventScroll:!0}),document.getSelection()?.empty(),S.preventDefault()}),children:u.jsx(et.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:S=>S.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:u.jsx(ce,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed","aria-multiselectable":x.multi?"true":void 0,dir:x.dir,onContextMenu:S=>S.preventDefault(),...C,...Q,onPlaced:()=>k(!0),ref:P,style:{display:"flex",flexDirection:"column",outline:"none",...C.style},onKeyDown:T.composeEventHandlers(C.onKeyDown,S=>{const w=S.ctrlKey||S.altKey||S.metaKey;if(S.key==="Tab"&&S.preventDefault(),!w&&S.key.length===1&&se(S.key),["ArrowUp","ArrowDown","Home","End"].includes(S.key)){let I=O().filter(R=>!R.disabled).map(R=>R.ref.current);if(["ArrowUp","End"].includes(S.key)&&(I=I.slice().reverse()),["ArrowUp","ArrowDown"].includes(S.key)){const R=S.target,V=I.indexOf(R);I=I.slice(V+1)}setTimeout(()=>U(I)),S.preventDefault()}})})})})})})});ht.displayName=_o;const No="SelectItemAlignedPosition",xt=r.forwardRef((o,l)=>{const{__scopeSelect:e,onPlaced:t,...n}=o,s=z(ne,e),i=J(ne,e),[c,a]=r.useState(null),[m,p]=r.useState(null),b=A.useComposedRefs(l,P=>p(P)),g=xe(e),d=r.useRef(!1),f=r.useRef(!0),{viewport:h,selectedItem:v,selectedItemText:C,focusSelectedItem:x}=i,y=r.useCallback(()=>{if(s.trigger&&s.valueNode&&c&&m&&h&&v&&C){const P=s.trigger.getBoundingClientRect(),D=m.getBoundingClientRect(),F=s.valueNode.getBoundingClientRect(),q=C.getBoundingClientRect();if(s.dir!=="rtl"){const R=q.left-D.left,V=F.left-R,ee=P.left-V,te=P.width+ee,be=Math.max(te,D.width),ye=window.innerWidth-K,we=Je.clamp(V,[K,ye-be]);c.style.minWidth=`${te}px`,c.style.left=`${we}px`}else{const R=D.right-q.right,V=window.innerWidth-F.right-R,ee=window.innerWidth-P.right-V,te=P.width+ee,be=Math.max(te,D.width),ye=window.innerWidth-K,we=Je.clamp(V,[K,ye-be]);c.style.minWidth=`${te}px`,c.style.right=`${we}px`}const H=g(),O=window.innerHeight-K*2,L=h.scrollHeight,k=window.getComputedStyle(m),B=parseInt(k.borderTopWidth,10),U=parseInt(k.paddingTop,10),G=parseInt(k.borderBottomWidth,10),Y=parseInt(k.paddingBottom,10),$=B+U+L+Y+G,ue=Math.min(v.offsetHeight*5,$),se=window.getComputedStyle(h),le=parseInt(se.paddingTop,10),de=parseInt(se.paddingBottom,10),X=P.top+P.height/2-K,ce=O-X,Q=v.offsetHeight/2,S=v.offsetTop+Q,w=B+U+S,j=$-w;if(w<=X){const R=v===H[H.length-1].ref.current;c.style.bottom=`${0}px`;const V=m.clientHeight-h.offsetTop-h.offsetHeight,ee=Math.max(ce,Q+(R?de:0)+V+G),te=w+ee;c.style.height=`${te}px`}else{const R=v===H[0].ref.current;c.style.top=`${0}px`;const ee=Math.max(X,B+h.offsetTop+(R?le:0)+Q)+j;c.style.height=`${ee}px`,h.scrollTop=w-X+h.offsetTop}c.style.margin=`${K}px 0`,c.style.minHeight=`${ue}px`,c.style.maxHeight=`${O}px`,t?.(),requestAnimationFrame(()=>d.current=!0)}},[g,s.trigger,s.valueNode,c,m,h,v,C,s.dir,t]);Z.useLayoutEffect(()=>y(),[y]);const[N,E]=r.useState();Z.useLayoutEffect(()=>{m&&E(window.getComputedStyle(m).zIndex)},[m]);const M=r.useCallback(P=>{P&&f.current===!0&&(y(),x?.(),f.current=!1)},[y,x]);return u.jsx(Mo,{scope:e,contentWrapper:c,shouldExpandOnScrollRef:d,onScrollButtonChange:M,children:u.jsx("div",{ref:a,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:N},children:u.jsx(_.Primitive.div,{...n,ref:b,style:{boxSizing:"border-box",maxHeight:"100%",...n.style}})})})});xt.displayName=No;const Ao="SelectPopperPosition",Te=r.forwardRef((o,l)=>{const{__scopeSelect:e,align:t="start",collisionPadding:n=K,...s}=o,i=Se(e);return u.jsx(re.Content,{...i,...s,ref:l,align:t,collisionPadding:n,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Te.displayName=Ao;const[Mo,Be]=ae(ne,{}),Pe="SelectViewport",Ue=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=J(Pe,e),s=Be(Pe,e),i=A.useComposedRefs(l,n.onViewportChange),c=r.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"}}),u.jsx(Ce.Slot,{scope:e,children:u.jsx(_.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...t,ref:i,style:{position:"relative",flex:1,overflow:"auto",...t.style},onScroll:T.composeEventHandlers(t.onScroll,a=>{const m=a.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:b}=s;if(b?.current&&p){const g=Math.abs(c.current-m.scrollTop);if(g>0){const d=window.innerHeight-K*2,f=parseFloat(p.style.minHeight),h=parseFloat(p.style.height),v=Math.max(f,h);if(v<d){const C=v+g,x=Math.min(d,C),y=C-x;p.style.height=`${x}px`,p.style.bottom==="0px"&&(m.scrollTop=y>0?y:0,p.style.justifyContent="flex-end")}}}c.current=m.scrollTop})})})]})});Ue.displayName=Pe;const gt="SelectGroup",[Oo,jo]=ae(gt),$e=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=oe.useId();return u.jsx(Oo,{scope:e,id:n,children:u.jsx(_.Primitive.div,{role:"group","aria-labelledby":n,...t,ref:l})})});$e.displayName=gt;const vt="SelectLabel",qe=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=jo(vt,e);return u.jsx(_.Primitive.div,{id:n.id,...t,ref:l})});qe.displayName=vt;const ge="SelectItem",[Do,Ct]=ae(ge),Ke=r.forwardRef((o,l)=>{const{__scopeSelect:e,value:t,disabled:n=!1,textValue:s,...i}=o,c=z(ge,e),a=J(ge,e),m=typeof t=="string"?Array.isArray(c.value)?c.value.includes(t):c.value===t:t.every(x=>c.value?.includes(x)),p=Array.isArray(c.value)&&Array.isArray(t)&&t.some(x=>c.value?.includes(x)),[b,g]=r.useState(s??""),[d,f]=r.useState(!1),h=A.useComposedRefs(l,x=>a.itemRefCallback?.(x,t,n)),v=oe.useId(),C=()=>{if(!n){let x=c.multi&&typeof t=="string"?[t]:t;p&&!m?c.onValueChange(x):Array.isArray(c.value)&&(x=It(t,c.value)),c.onValueChange(x),c.multi||c.onOpenChange(!1)}};if(!c.multi&&Array.isArray(t))throw new Error("You can only pass an array of values in multi selects");return u.jsx(Do,{scope:e,value:t,disabled:n,textId:v,isSelected:m,isIntermediate:p,onItemTextChange:r.useCallback(x=>{g(y=>y||(x?.textContent??"").trim())},[]),children:u.jsx(Ce.ItemSlot,{scope:e,value:t,disabled:n,textValue:b,children:u.jsx(_.Primitive.div,{role:"option","aria-labelledby":v,"data-highlighted":d?"":void 0,"aria-selected":c.multi?void 0:m&&d,"aria-checked":c.multi?m:void 0,"data-state":m?"checked":"unchecked","aria-disabled":n||void 0,"data-disabled":n?"":void 0,tabIndex:n?void 0:-1,...i,ref:h,onFocus:T.composeEventHandlers(i.onFocus,()=>f(!0)),onBlur:T.composeEventHandlers(i.onBlur,()=>f(!1)),onPointerUp:T.composeEventHandlers(i.onPointerUp,C),onPointerMove:T.composeEventHandlers(i.onPointerMove,x=>{n?a.onItemLeave?.():x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:T.composeEventHandlers(i.onPointerLeave,x=>{x.currentTarget===document.activeElement&&a.onItemLeave?.()}),onKeyDown:T.composeEventHandlers(i.onKeyDown,x=>{a.searchRef?.current!==""&&x.key===" "||(yo.includes(x.key)&&C(),x.key===" "&&x.preventDefault())})})})})});Ke.displayName=ge;const pe="SelectItemText",We=r.forwardRef((o,l)=>{const{__scopeSelect:e,className:t,style:n,...s}=o,i=z(pe,e),c=J(pe,e),a=Ct(pe,e),m=Po(pe,e),[p,b]=r.useState(null),g=A.useComposedRefs(l,C=>b(C),a.onItemTextChange,C=>c.itemTextRefCallback?.(C,a.value,a.disabled)),d=p?.textContent,f=r.useMemo(()=>u.jsx("option",{value:a.value,disabled:a.disabled,children:d},Array.isArray(a.value)?a.value.join(";"):a.value),[a.disabled,a.value,d]),{onNativeOptionAdd:h,onNativeOptionRemove:v}=m;return Z.useLayoutEffect(()=>(h(f),()=>v(f)),[h,v,f]),u.jsxs(u.Fragment,{children:[u.jsx(_.Primitive.span,{id:a.textId,...s,ref:g}),a.isSelected&&i.valueNode&&!i.valueNodeHasChildren?Me.createPortal(s.children,i.valueNode):null]})});We.displayName=pe;const St="SelectItemIndicator",ze=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Ct(St,e);return typeof o.children=="function"?u.jsx(_.Primitive.span,{"aria-hidden":!0,...t,ref:l,children:o.children({isSelected:n.isSelected,isIntermediate:n.isIntermediate})}):n.isSelected?u.jsx(_.Primitive.span,{"aria-hidden":!0,...t,ref:l}):null});ze.displayName=St;const Re="SelectScrollUpButton",Ge=r.forwardRef((o,l)=>{const e=J(Re,o.__scopeSelect),t=Be(Re,o.__scopeSelect),[n,s]=r.useState(!1),i=A.useComposedRefs(l,t.onScrollButtonChange);return Z.useLayoutEffect(()=>{if(e.viewport&&e.isPositioned){const c=e.viewport,a=()=>{const m=c.scrollTop>0;s(m)};return a(),c.addEventListener("scroll",a),()=>c.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),n?u.jsx(bt,{...o,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=e;c&&a&&(c.scrollTop-=a.offsetHeight)}}):null});Ge.displayName=Re;const Ve="SelectScrollDownButton",Ye=r.forwardRef((o,l)=>{const e=J(Ve,o.__scopeSelect),t=Be(Ve,o.__scopeSelect),[n,s]=r.useState(!1),i=A.useComposedRefs(l,t.onScrollButtonChange);return Z.useLayoutEffect(()=>{if(e.viewport&&e.isPositioned){const c=e.viewport,a=()=>{const m=c.scrollHeight-c.clientHeight,p=Math.ceil(c.scrollTop)<m;s(p)};return a(),c.addEventListener("scroll",a),()=>c.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),n?u.jsx(bt,{...o,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=e;c&&a&&(c.scrollTop+=a.offsetHeight)}}):null});Ye.displayName=Ve;const bt=r.forwardRef((o,l)=>{const{__scopeSelect:e,onAutoScroll:t,...n}=o,s=J("SelectScrollButton",e),i=r.useRef(null),c=xe(e),a=r.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return r.useEffect(()=>()=>a(),[a]),Z.useLayoutEffect(()=>{c().find(p=>p.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),u.jsx(_.Primitive.div,{"aria-hidden":!0,...n,ref:l,style:{flexShrink:0,...n.style},onPointerMove:T.composeEventHandlers(n.onPointerMove,()=>{s.onItemLeave?.(),i.current===null&&(i.current=window.setInterval(t,50))}),onPointerLeave:T.composeEventHandlers(n.onPointerLeave,()=>{a()})})}),Lo="SelectSeparator",Xe=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o;return u.jsx(_.Primitive.div,{"aria-hidden":!0,...t,ref:l})});Xe.displayName=Lo;const _e="SelectArrow",Ze=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Se(e),s=z(_e,e),i=J(_e,e);return s.open&&i.position==="popper"?u.jsx(re.Arrow,{...n,...t,ref:l}):null});Ze.displayName=_e;const ko="BubbleSelect",Fo=r.forwardRef((o,l)=>{const{value:e,...t}=o,n=r.useRef(null),s=A.useComposedRefs(l,n),i=At.usePrevious(e),c=z(ko,void 0);r.useEffect(()=>{const m=n.current,p=window.HTMLSelectElement.prototype,g=Object.getOwnPropertyDescriptor(p,"value").set;if(i!==e&&g){const d=new Event("change",{bubbles:!0});g.call(m,e),m.dispatchEvent(d)}},[i,e]);let a=e;return c.multi&&!Array.isArray(e)&&(a=[]),u.jsx(Mt.VisuallyHidden,{asChild:!0,children:u.jsx("select",{...t,multiple:c.multi?!0:void 0,ref:s,defaultValue:a})})});Fo.displayName="BubbleSelect";function yt(o){const l=Nt.useCallbackRef(o),e=r.useRef(""),t=r.useRef(0),n=r.useCallback(i=>{const c=e.current+i;l(c),function a(m){e.current=m,window.clearTimeout(t.current),m!==""&&(t.current=window.setTimeout(()=>a(""),1e3))}(c)},[l]),s=r.useCallback(()=>{e.current="",window.clearTimeout(t.current)},[]);return r.useEffect(()=>()=>window.clearTimeout(t.current),[]),[e,n,s]}function wt(o,l,e){const n=l.length>1&&Array.from(l).every(m=>m===l[0])?l[0]:l,s=e?o.indexOf(e):-1;let i=Ho(o,Math.max(s,0));n.length===1&&(i=i.filter(m=>m!==e));const a=i.find(m=>m.textValue.toLowerCase().startsWith(n.toLowerCase()));return a!==e?a:void 0}function Ho(o,l){return o.map((e,t)=>o[(l+t)%o.length])}const It=(o,l=[])=>{if(Array.isArray(o))return o.reduce((t,n)=>It(n,t),l);const e=l.indexOf(o);return e===-1?[...l,o]:[...l.slice(0,e),...l.slice(e+1)]},Bo=je,Uo=De,$o=Le,qo=ke,Ko=Fe,Wo=He,zo=Ue,Go=$e,Yo=qe,Xo=Ke,Zo=We,Jo=ze,Qo=Ge,en=Ye,tn=Xe,on=Ze,nn=Object.freeze(Object.defineProperty({__proto__:null,createSelectScope:Io,Select:je,SelectTrigger:De,SelectValue:Le,SelectIcon:ke,SelectPortal:Fe,SelectContent:He,SelectViewport:Ue,SelectGroup:$e,SelectLabel:qe,SelectItem:Ke,SelectItemText:We,SelectItemIndicator:ze,SelectScrollUpButton:Ge,SelectScrollDownButton:Ye,SelectSeparator:Xe,SelectArrow:Ze,Root:Bo,Trigger:Uo,Value:$o,Icon:qo,Portal:Ko,Content:Wo,Viewport:zo,Group:Go,Label:Yo,Item:Xo,ItemText:Zo,ItemIndicator:Jo,ScrollUpButton:Qo,ScrollDownButton:en,Separator:tn,Arrow:on},Symbol.toStringTag,{value:"Module"}));exports.Combobox=So;exports.Select=nn;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),Et=require("react"),T=require("@radix-ui/primitive"),A=require("@radix-ui/react-compose-refs"),ve=require("@radix-ui/react-context"),et=require("@radix-ui/react-dismissable-layer"),oe=require("@radix-ui/react-id"),Ne=require("@radix-ui/react-popper"),tt=require("@radix-ui/react-portal"),_=require("@radix-ui/react-primitive"),ie=require("@radix-ui/react-use-controllable-state"),ot=require("aria-hidden"),Tt=require("react-dom"),nt=require("react-remove-scroll"),Ee=require("@radix-ui/react-slot"),Je=require("@radix-ui/number"),Pt=require("@radix-ui/react-collection"),Rt=require("@radix-ui/react-direction"),Vt=require("@radix-ui/react-focus-guards"),_t=require("@radix-ui/react-focus-scope"),Nt=require("@radix-ui/react-use-callback-ref"),Z=require("@radix-ui/react-use-layout-effect"),At=require("@radix-ui/react-use-previous"),Ot=require("@radix-ui/react-visually-hidden");function Ae(o){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const e in o)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(l,e,t.get?t:{enumerable:!0,get:()=>o[e]})}}return l.default=o,Object.freeze(l)}const r=Ae(Et),re=Ae(Ne),Oe=Ae(Tt);let Ie=new Map;function Mt(o,l){let e=o+(l?Object.entries(l).sort((n,s)=>n[0]<s[0]?-1:1).join():"");if(Ie.has(e))return Ie.get(e);let t=new Intl.Collator(o,l);return Ie.set(e,t),t}function Me(o,l){let e=Mt(o,{usage:"search",...l});return{startsWith(t,n){return n.length===0?!0:(t=t.normalize("NFC"),n=n.normalize("NFC"),e.compare(t.slice(0,n.length),n)===0)},endsWith(t,n){return n.length===0?!0:(t=t.normalize("NFC"),n=n.normalize("NFC"),e.compare(t.slice(-n.length),n)===0)},contains(t,n){if(n.length===0)return!0;t=t.normalize("NFC"),n=n.normalize("NFC");let s=0,i=n.length;for(;s+i<=t.length;s++){let c=t.slice(s,s+i);if(e.compare(n,c)===0)return!0}return!1}}}const jt=o=>{const l=r.useRef();return r.useEffect(()=>{l.current=o}),l.current};function Dt(o){const l=`${o}CollectionProvider`,[e,t]=ve.createContextScope(l),[n,s]=e(l,{collectionRef:{current:null},itemMap:new Map,listeners:new Set}),i=d=>{const{scope:f,children:h}=d,v=r.useRef(null),C=r.useRef(new Map).current,x=r.useRef(new Set).current;return u.jsx(n,{scope:f,itemMap:C,collectionRef:v,listeners:x,children:h})};i.displayName=l;const c=`${o}CollectionSlot`,a=r.forwardRef((d,f)=>{const{scope:h,children:v}=d,C=s(c,h),x=A.useComposedRefs(f,C.collectionRef);return u.jsx(Ee.Slot,{ref:x,children:v})});a.displayName=c;const m=`${o}CollectionItemSlot`,p="data-radix-collection-item",b=r.forwardRef((d,f)=>{const{scope:h,children:v,...C}=d,x=r.useRef(null),y=A.useComposedRefs(f,x),N=s(m,h);return r.useEffect(()=>{const E=Array.from(N.itemMap.values());return N.itemMap.set(x,{ref:x,...C}),N.listeners.forEach(O=>O(Array.from(N.itemMap.values()),E)),()=>{const O=Array.from(N.itemMap.values());N.itemMap.delete(x),N.listeners.forEach(P=>P(Array.from(N.itemMap.values()),O))}}),u.jsx(Ee.Slot,{[p]:"",ref:y,children:v})});b.displayName=m;function g(d){const f=s(`${o}CollectionConsumer`,d),h=r.useCallback(()=>{const C=f.collectionRef.current;if(!C)return[];const x=Array.from(C.querySelectorAll(`[${p}]`));return Array.from(f.itemMap.values()).sort((E,O)=>x.indexOf(E.ref.current)-x.indexOf(O.ref.current))},[f.collectionRef,f.itemMap]),v=r.useCallback(C=>(f.listeners.add(C),()=>f.listeners.delete(C)),[f.listeners]);return{getItems:h,subscribe:v}}return[{Provider:i,Slot:a,ItemSlot:b},g,t]}const Lt=[" ","Enter","ArrowUp","ArrowDown"],kt=["Enter"],Qe=o=>!!(o.length===1&&o.match(/\S| /)),rt="Combobox",[fe,me]=Dt(rt),[Ft,W]=ve.createContext(rt),Ht=({children:o})=>u.jsx(re.Root,{children:u.jsx(fe.Provider,{scope:void 0,children:o})}),Bt=o=>{const{allowCustomValue:l=!1,autocomplete:e="none",children:t,open:n,defaultOpen:s,onOpenChange:i,value:c,defaultValue:a,onValueChange:m,disabled:p,required:b=!1,locale:g="en-EN",onTextValueChange:d,textValue:f,defaultTextValue:h,filterValue:v,defaultFilterValue:C,onFilterValueChange:x}=o,[y,N]=r.useState(null),[E,O]=r.useState(null),[P,D]=r.useState(null),[F,q]=r.useState(null),[H=!1,M]=ie.useControllableState({prop:n,defaultProp:s,onChange:i}),[L,k]=ie.useControllableState({prop:c,defaultProp:a,onChange:m}),[B,U]=ie.useControllableState({prop:f,defaultProp:h,onChange:d}),[G,Y]=ie.useControllableState({prop:v,defaultProp:C,onChange:x}),$=oe.useId(),ue=r.useCallback((se,le)=>{const de=le.map(w=>w.ref.current),[X,...ce]=de,[Q]=ce.slice(-1),S=F;for(const w of se){if(w===S)return;if(w?.scrollIntoView({block:"nearest"}),w===X&&E&&(E.scrollTop=0),w===Q&&E&&(E.scrollTop=E.scrollHeight),q(w),e==="both"){const j=le.find(I=>I.ref.current===w);j&&U(j.textValue)}if(w!==S)return}},[e,U,E,F]);return r.useEffect(()=>{e!=="both"&&q(null)},[B,e]),r.useEffect(()=>{if(P&&y)return ot.hideOthers([P,y])},[P,y]),u.jsx(Ht,{children:u.jsx(Ft,{allowCustomValue:l,autocomplete:e,required:b,trigger:y,onTriggerChange:N,contentId:$,value:L,onValueChange:k,open:H,onOpenChange:M,disabled:p,locale:g,focusFirst:ue,textValue:B,onTextValueChange:U,onViewportChange:O,onContentChange:D,visuallyFocussedItem:F,filterValue:G,onFilterValueChange:Y,onVisuallyFocussedItemChange:q,children:t})})},Ut="ComboboxTrigger",$t=r.forwardRef((o,l)=>{const{...e}=o,t=W(Ut);return u.jsx(re.Anchor,{asChild:!0,children:u.jsx("div",{ref:l,"data-disabled":t.disabled?"":void 0,...e})})}),st="ComboboxInput",qt=r.forwardRef((o,l)=>{const e=W(st),t=r.useRef(null),{getItems:n}=me(void 0),{startsWith:s}=Me(e.locale,{sensitivity:"base"}),i=e.disabled,c=A.useComposedRefs(t,l,e.onTriggerChange),a=()=>{i||e.onOpenChange(!0)},m=jt(e.filterValue);return r.useLayoutEffect(()=>{setTimeout(()=>{if(e.textValue===""||e.textValue===void 0||e.filterValue===""||e.filterValue===void 0)return;const p=n().find(g=>g.type==="option"&&s(g.textValue,e.textValue)),b=Co(m??"",e.filterValue);p&&!e.visuallyFocussedItem&&b===e.filterValue.length&&t.current.setSelectionRange(e.filterValue.length,e.textValue.length)})},[e.textValue,e.filterValue,s,e.visuallyFocussedItem,n,m]),u.jsx("input",{type:"text",role:"combobox","aria-controls":e.contentId,"aria-expanded":e.open,"aria-required":e.required,"aria-autocomplete":e.autocomplete,"data-state":e.open?"open":"closed","aria-disabled":i,"aria-activedescendant":e.visuallyFocussedItem?.id,disabled:i,"data-disabled":i?"":void 0,"data-placeholder":e.textValue===void 0?"":void 0,value:e.textValue??"",...o,ref:c,onClick:T.composeEventHandlers(o.onClick,p=>{p.currentTarget.focus()}),onPointerDown:T.composeEventHandlers(o.onPointerDown,p=>{p.button===0&&p.ctrlKey===!1&&(a(),p.currentTarget.focus())}),onKeyDown:T.composeEventHandlers(o.onKeyDown,p=>{if(["ArrowUp","ArrowDown","Home","End"].includes(p.key))setTimeout(()=>{let g=n().filter(d=>!d.disabled).map(d=>d.ref.current);if(["ArrowUp","End"].includes(p.key)&&(g=g.slice().reverse()),["ArrowUp","ArrowDown"].includes(p.key)){const d=e.visuallyFocussedItem??p.target;let f=g.indexOf(d);f===g.length-1&&(f=-1),g=g.slice(f+1)}if(["ArrowDown"].includes(p.key)&&e.autocomplete==="both"&&g.length>1){const[d,...f]=g,h=n().find(v=>v.ref.current===d).textValue;e.textValue===h&&(g=f)}e.focusFirst(g,n())}),p.preventDefault();else if(["Escape"].includes(p.key))e.open?e.onOpenChange(!1):(e.onValueChange(void 0),e.onTextValueChange("")),p.preventDefault();else if(kt.includes(p.key)){if(e.visuallyFocussedItem){const b=n().find(g=>g.ref.current===e.visuallyFocussedItem);b&&(e.onValueChange(b.value),e.onTextValueChange(b.textValue),e.autocomplete==="both"&&e.onFilterValueChange(b.textValue),b.ref.current?.click())}e.onOpenChange(!1),p.preventDefault()}else e.onVisuallyFocussedItemChange(null)}),onChange:T.composeEventHandlers(o.onChange,p=>{e.onTextValueChange(p.currentTarget.value),e.autocomplete==="both"&&e.onFilterValueChange(p.currentTarget.value)}),onKeyUp:T.composeEventHandlers(o.onKeyUp,p=>{if(!e.open&&(Qe(p.key)||["ArrowUp","ArrowDown","Home","End","Backspace"].includes(p.key))&&a(),e.autocomplete==="both"&&Qe(p.key)&&e.filterValue!==void 0){const b=e.filterValue,g=n().find(d=>s(d.textValue,b));g&&e.onTextValueChange(g.textValue)}})})}),Kt=r.forwardRef((o,l)=>{const{children:e,...t}=o,n=W(st),s=n.disabled,i=()=>{s||(n.onOpenChange(!0),n.trigger?.focus())};return u.jsx(_.Primitive.button,{"aria-hidden":!0,type:"button","aria-disabled":s,"aria-controls":n.contentId,"aria-expanded":n.open,disabled:s,"data-disabled":s?"":void 0,...t,tabIndex:-1,ref:l,onClick:T.composeEventHandlers(t.onClick,()=>{n.trigger?.focus()}),onPointerDown:T.composeEventHandlers(t.onPointerDown,c=>{c.button===0&&c.ctrlKey===!1&&(i(),c.preventDefault())}),onKeyDown:T.composeEventHandlers(t.onKeyDown,c=>{Lt.includes(c.key)&&(i(),c.preventDefault())}),children:e||"▼"})}),Wt="ComboboxPortal",lt=o=>u.jsx(tt.Portal,{asChild:!0,...o});lt.displayName=Wt;const ct="ComboboxContent",zt=r.forwardRef((o,l)=>{const e=W(ct),[t,n]=r.useState();if(r.useLayoutEffect(()=>{n(new DocumentFragment)},[]),!e.open){const s=t;return s?Oe.createPortal(u.jsx(fe.Slot,{scope:void 0,children:u.jsx("div",{children:o.children})}),s):null}return u.jsx(Yt,{...o,ref:l})}),Gt=10,Yt=r.forwardRef((o,l)=>{const{onEscapeKeyDown:e,onPointerDownOutside:t,...n}=o,s=W(ct),i=A.useComposedRefs(l,h=>s.onContentChange(h)),{onOpenChange:c,onValueChange:a,onFilterValueChange:m,onTextValueChange:p,textValue:b,value:g}=s,{getItems:d}=me(void 0),f=r.useCallback(()=>{s.onVisuallyFocussedItemChange(null);const[h]=d().filter(C=>C.textValue===b&&C.type==="option");if(s.allowCustomValue){h&&(a(h.value),s.autocomplete==="both"&&m(h.textValue));return}const[v]=d().filter(C=>C.value===g&&C.type==="option");h?a(h.value):v&&b!==""?(p(v.textValue),s.autocomplete==="both"&&m(v.textValue)):(a(void 0),p(""))},[s,d,m,p,a,b,g]);return r.useEffect(()=>{const h=()=>{f(),c(!1)};return window.addEventListener("blur",h),window.addEventListener("resize",h),()=>{window.removeEventListener("blur",h),window.removeEventListener("resize",h)}},[f,c]),u.jsx(nt.RemoveScroll,{allowPinchZoom:!0,children:u.jsx(et.DismissableLayer,{asChild:!0,onEscapeKeyDown:e,onPointerDownOutside:t,onFocusOutside:h=>h.preventDefault(),onDismiss:()=>{s.onOpenChange(!1),s.trigger?.focus({preventScroll:!0}),f()},children:u.jsx(Xt,{role:"listbox",id:s.contentId,"data-state":s.open?"open":"closed",onContextMenu:h=>h.preventDefault(),...n,ref:i,style:{display:"flex",flexDirection:"column",outline:"none",...n.style}})})})}),Xt=r.forwardRef((o,l)=>{const{align:e="start",collisionPadding:t=Gt,...n}=o;return u.jsx(re.Content,{...n,ref:l,align:e,collisionPadding:t,style:{boxSizing:"border-box",...n.style,"--radix-combobox-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-combobox-content-available-width":"var(--radix-popper-available-width)","--radix-combobox-content-available-height":"var(--radix-popper-available-height)","--radix-combobox-trigger-width":"var(--radix-popper-anchor-width)","--radix-combobox-trigger-height":"var(--radix-popper-anchor-height)"}})}),Zt="ComboboxViewport",Jt=r.forwardRef((o,l)=>{const e=W(Zt),t=A.useComposedRefs(l,e.onViewportChange);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-combobox-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-combobox-viewport]::-webkit-scrollbar{display:none}"}}),u.jsx(fe.Slot,{scope:void 0,children:u.jsx(_.Primitive.div,{"data-radix-combobox-viewport":"",role:"presentation",...o,ref:t,style:{position:"relative",flex:1,overflow:"auto",...o.style}})})]})}),it="ComboboxItem",[Qt,at]=ve.createContext(it),ut=r.forwardRef((o,l)=>{const{value:e,disabled:t=!1,textValue:n,...s}=o,i=r.useRef(null),c=A.useComposedRefs(l,i),{getItems:a}=me(void 0),{onTextValueChange:m,textValue:p,visuallyFocussedItem:b,...g}=W(it),d=oe.useId(),[f,h]=r.useState(n??""),v=r.useMemo(()=>b===a().find(O=>O.ref.current===i.current)?.ref.current,[a,b]),C=g.value===e,x=()=>{t||(g.onValueChange(e),m(f),g.onOpenChange(!1),g.autocomplete==="both"&&g.onFilterValueChange(f),g.trigger?.focus({preventScroll:!0}))},{startsWith:y}=Me(g.locale,{sensitivity:"base"}),N=r.useCallback(O=>{h(P=>P||(O?.textContent??"").trim())},[]);r.useEffect(()=>{C&&p===void 0&&f!==""&&m(f)},[f,C,p,m]);const E=oe.useId();return g.autocomplete==="list"&&f&&p&&!y(f,p)||g.autocomplete==="both"&&f&&g.filterValue&&!y(f,g.filterValue)?null:u.jsx(Qt,{textId:d,onTextValueChange:N,isSelected:C,children:u.jsx(fe.ItemSlot,{scope:void 0,value:e,textValue:f,disabled:t,type:"option",children:u.jsx(_.Primitive.div,{role:"option","aria-labelledby":d,"data-highlighted":v?"":void 0,"aria-selected":C&&v,"data-state":C?"checked":"unchecked","aria-disabled":t||void 0,"data-disabled":t?"":void 0,tabIndex:t?void 0:-1,...s,id:E,ref:c,onPointerUp:T.composeEventHandlers(s.onPointerUp,x)})})})}),eo="ComboboxItemText",to=r.forwardRef((o,l)=>{const{className:e,style:t,...n}=o,s=at(eo),i=A.useComposedRefs(l,s.onTextValueChange);return u.jsx(_.Primitive.span,{id:s.textId,...n,ref:i})}),oo="ComboboxItemIndicator",no=r.forwardRef((o,l)=>{const{isSelected:e}=at(oo);return e?u.jsx(_.Primitive.span,{"aria-hidden":!0,...o,ref:l}):null}),dt="ComboboxNoValueFound",ro=r.forwardRef((o,l)=>{const{textValue:e="",locale:t}=W(dt),[n,s]=r.useState([]),{subscribe:i}=me(void 0),{startsWith:c}=Me(t,{sensitivity:"base"});return r.useEffect(()=>{const a=i(m=>{s(m)});return()=>{a()}},[i]),n.some(a=>c(a.textValue,e))?null:u.jsx(_.Primitive.div,{...o,ref:l})}),so=r.forwardRef((o,l)=>{const{disabled:e=!1,...t}=o,n=W(dt),{textValue:s,visuallyFocussedItem:i}=n,{getItems:c,subscribe:a}=me(void 0),m=r.useRef(null),[p,b]=r.useState(!1),g=A.useComposedRefs(l,m),d=r.useMemo(()=>i===c().find(v=>v.ref.current===m.current)?.ref.current,[c,i]),f=oe.useId(),h=()=>{!e&&s&&(n.onValueChange(s),n.onTextValueChange(s),n.onOpenChange(!1),n.autocomplete==="both"&&n.onFilterValueChange(s),n.trigger?.focus({preventScroll:!0}))};return r.useLayoutEffect(()=>{const v=a(C=>{b(!C.some(x=>x.textValue===s&&x.type!=="create"))});return()=>{v()}},[s,a]),!s||!p?null:u.jsx(fe.ItemSlot,{scope:void 0,value:s??"",textValue:s??"",disabled:e,type:"create",children:u.jsx(_.Primitive.div,{role:"option",tabIndex:e?void 0:-1,"aria-disabled":e||void 0,"data-disabled":e?"":void 0,"data-highlighted":d?"":void 0,...t,id:f,ref:g,onPointerUp:T.composeEventHandlers(t.onPointerUp,h)})})}),lo=Bt,co=$t,io=qt,ao=Kt,uo=lt,po=zt,fo=Jt,mo=ut,ho=to,xo=no,go=ro,vo=so;function Co(o,l){const e=Math.min(o.length,l.length);for(let t=0;t<e;t++)if(o[t]!==l[t])return t;return e}const So=Object.freeze(Object.defineProperty({__proto__:null,ComboboxItem:ut,Content:po,CreateItem:vo,Icon:ao,Item:mo,ItemIndicator:xo,ItemText:ho,NoValueFound:go,Portal:uo,Root:lo,TextInput:io,Trigger:co,Viewport:fo},Symbol.toStringTag,{value:"Module"})),bo=[" ","Enter","ArrowUp","ArrowDown"],yo=[" ","Enter"],he="Select",[Ce,xe,wo]=Pt.createCollection(he),[ae,Io]=ve.createContextScope(he,[wo,Ne.createPopperScope]),Se=Ne.createPopperScope(),[Eo,z]=ae(he),[To,Po]=ae(he),je=o=>{const{__scopeSelect:l,children:e,open:t,defaultOpen:n,onOpenChange:s,value:i,defaultValue:c,onValueChange:a,dir:m,disabled:p,required:b,multi:g=!1}=o,d=Se(l),[f,h]=r.useState(null),[v,C]=r.useState(null),[x,y]=r.useState(!1),N=Rt.useDirection(m),[E=!1,O]=ie.useControllableState({prop:t,defaultProp:n,onChange:s}),[P,D]=ie.useControllableState({prop:i,defaultProp:c,onChange(M){a&&(Array.isArray(M),a(M))}}),F=r.useRef(null),[q,H]=r.useState(new Set);return u.jsx(re.Root,{...d,children:u.jsx(Eo,{required:b,scope:l,trigger:f,onTriggerChange:h,valueNode:v,onValueNodeChange:C,valueNodeHasChildren:x,onValueNodeHasChildrenChange:y,contentId:oe.useId(),value:P,onValueChange:D,open:E,onOpenChange:O,dir:N,triggerPointerDownPosRef:F,disabled:p,multi:g,children:u.jsx(Ce.Provider,{scope:l,children:u.jsx(To,{scope:o.__scopeSelect,onNativeOptionAdd:r.useCallback(M=>{H(L=>new Set(L).add(M))},[]),onNativeOptionRemove:r.useCallback(M=>{H(L=>{const k=new Set(L);return k.delete(M),k})},[]),children:e})})})})};je.displayName=he;const pt="SelectTrigger",De=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Se(e),s=z(pt,e),i=s.disabled,c=A.useComposedRefs(l,s.onTriggerChange),a=xe(e),[m,p,b]=yt(d=>{const f=a().filter(C=>!C.disabled),h=f.find(C=>C.value===s.value),v=wt(f,d,h);if(v!==void 0&&!Array.isArray(v.value)){const C=s.multi?[v.value]:v.value;s.onValueChange(C)}}),g=()=>{i||(s.onOpenChange(!0),b())};return u.jsx(re.Anchor,{asChild:!0,...n,children:u.jsx(_.Primitive.div,{role:"combobox","aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":"none",dir:s.dir,"data-state":s.open?"open":"closed","data-disabled":i?"":void 0,"data-placeholder":s.value===void 0?"":void 0,tabIndex:i?void 0:0,...t,ref:c,onClick:T.composeEventHandlers(t.onClick,d=>{d.currentTarget.focus()}),onPointerDown:T.composeEventHandlers(t.onPointerDown,d=>{const f=d.target;f.hasPointerCapture(d.pointerId)&&f.releasePointerCapture(d.pointerId),(f.closest("button")??f.closest("div"))===d.currentTarget&&d.button===0&&d.ctrlKey===!1&&(g(),s.triggerPointerDownPosRef.current={x:Math.round(d.pageX),y:Math.round(d.pageY)},d.preventDefault())}),onKeyDown:T.composeEventHandlers(t.onKeyDown,d=>{const f=m.current!=="",h=d.ctrlKey||d.altKey||d.metaKey,v=d.target;(v.closest("button")??v.closest("div"))===d.currentTarget&&(!h&&d.key.length===1&&p(d.key),!(f&&d.key===" ")&&bo.includes(d.key)&&(g(),d.preventDefault()))})})})});De.displayName=pt;const ft="SelectValue",Le=r.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,placeholder:n,...s}=o,i=z(ft,e),{onValueNodeHasChildrenChange:c}=i,a=t!==void 0,m=A.useComposedRefs(l,i.onValueNodeChange),[p,b]=r.useState([]),g=xe(e);Z.useLayoutEffect(()=>{c(a)},[c,a]),r.useLayoutEffect(()=>{if(Array.isArray(i.value)&&p.length!==i.value.length){const f=setTimeout(()=>{const h=g().filter(v=>Array.isArray(v.value)?!1:i.value?.includes(v.value));b(h)});return()=>{clearTimeout(f)}}},[i.value,g,p]);let d;if((i.value===void 0||i.value.length===0)&&n!==void 0)d=u.jsx("span",{children:n});else if(typeof t=="function")if(Array.isArray(i.value)){const f=i.value.map(h=>{const v=p.find(C=>C.value===h);return v?t({value:h,textValue:v?.textValue}):null});d=f.every(h=>h===null)?n:f}else d=t(i.value);else d=t;return u.jsx(_.Primitive.span,{...s,ref:m,children:d||null})});Le.displayName=ft;const Ro="SelectIcon",ke=r.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,...n}=o;return u.jsx(_.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t||"▼"})});ke.displayName=Ro;const Vo="SelectPortal",Fe=o=>u.jsx(tt.Portal,{asChild:!0,...o});Fe.displayName=Vo;const ne="SelectContent",He=r.forwardRef((o,l)=>{const e=z(ne,o.__scopeSelect),[t,n]=r.useState();if(Z.useLayoutEffect(()=>{n(new DocumentFragment)},[]),!e.open){const s=t;return s?Oe.createPortal(u.jsx(mt,{scope:o.__scopeSelect,children:u.jsx(Ce.Slot,{scope:o.__scopeSelect,children:u.jsx("div",{children:o.children})})}),s):null}return u.jsx(ht,{...o,ref:l})});He.displayName=ne;const K=10,[mt,J]=ae(ne),_o="SelectContentImpl",ht=r.forwardRef((o,l)=>{const{__scopeSelect:e,position:t="item-aligned",onCloseAutoFocus:n,onEscapeKeyDown:s,onPointerDownOutside:i,side:c,sideOffset:a,align:m,alignOffset:p,arrowPadding:b,collisionBoundary:g,collisionPadding:d,sticky:f,hideWhenDetached:h,avoidCollisions:v,...C}=o,x=z(ne,e),[y,N]=r.useState(null),[E,O]=r.useState(null),P=A.useComposedRefs(l,S=>N(S)),[D,F]=r.useState(null),[q,H]=r.useState(null),M=xe(e),[L,k]=r.useState(!1),B=r.useRef(!1);r.useEffect(()=>{if(y)return ot.hideOthers(y)},[y]),Vt.useFocusGuards();const U=r.useCallback(S=>{const[w,...j]=M().map(V=>V.ref.current),[I]=j.slice(-1),R=document.activeElement;for(const V of S)if(V===R||(V?.scrollIntoView({block:"nearest"}),V===w&&E&&(E.scrollTop=0),V===I&&E&&(E.scrollTop=E.scrollHeight),V?.focus(),document.activeElement!==R))return},[M,E]),G=r.useCallback(()=>U([D,y]),[U,D,y]);r.useEffect(()=>{L&&G()},[L,G]);const{onOpenChange:Y,triggerPointerDownPosRef:$}=x;r.useEffect(()=>{if(y){let S={x:0,y:0};const w=I=>{S={x:Math.abs(Math.round(I.pageX)-($.current?.x??0)),y:Math.abs(Math.round(I.pageY)-($.current?.y??0))}},j=I=>{S.x<=10&&S.y<=10?I.preventDefault():y.contains(I.target)||Y(!1),document.removeEventListener("pointermove",w),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",w),document.addEventListener("pointerup",j,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",w),document.removeEventListener("pointerup",j,{capture:!0})}}},[y,Y,$]),r.useEffect(()=>{const S=()=>Y(!1);return window.addEventListener("blur",S),window.addEventListener("resize",S),()=>{window.removeEventListener("blur",S),window.removeEventListener("resize",S)}},[Y]);const[ue,se]=yt(S=>{const w=M().filter(R=>!R.disabled),j=w.find(R=>R.ref.current===document.activeElement),I=wt(w,S,j);I&&setTimeout(()=>I.ref.current.focus())}),le=r.useCallback((S,w,j)=>{const I=!B.current&&!j;(x.value!==void 0&&x.value===w||I)&&(F(S),I&&(B.current=!0))},[x.value]),de=r.useCallback(()=>y?.focus(),[y]),X=r.useCallback((S,w,j)=>{const I=!B.current&&!j;(x.value!==void 0&&(Array.isArray(w)?w.every(V=>x.value?.includes(V)):x.value===w)||I)&&H(S)},[x.value]),ce=t==="popper"?Te:xt,Q=ce===Te?{side:c,sideOffset:a,align:m,alignOffset:p,arrowPadding:b,collisionBoundary:g,collisionPadding:d,sticky:f,hideWhenDetached:h,avoidCollisions:v}:{};return u.jsx(mt,{scope:e,content:y,viewport:E,onViewportChange:O,itemRefCallback:le,selectedItem:D,onItemLeave:de,itemTextRefCallback:X,focusSelectedItem:G,selectedItemText:q,position:t,isPositioned:L,searchRef:ue,children:u.jsx(nt.RemoveScroll,{as:Ee.Slot,allowPinchZoom:!0,children:u.jsx(_t.FocusScope,{asChild:!0,trapped:x.open,onMountAutoFocus:S=>{S.preventDefault()},onUnmountAutoFocus:T.composeEventHandlers(n,S=>{x.trigger?.focus({preventScroll:!0}),document.getSelection()?.empty(),S.preventDefault()}),children:u.jsx(et.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:S=>S.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:u.jsx(ce,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed","aria-multiselectable":x.multi?"true":void 0,dir:x.dir,onContextMenu:S=>S.preventDefault(),...C,...Q,onPlaced:()=>k(!0),ref:P,style:{display:"flex",flexDirection:"column",outline:"none",...C.style},onKeyDown:T.composeEventHandlers(C.onKeyDown,S=>{const w=S.ctrlKey||S.altKey||S.metaKey;if(S.key==="Tab"&&S.preventDefault(),!w&&S.key.length===1&&se(S.key),["ArrowUp","ArrowDown","Home","End"].includes(S.key)){let I=M().filter(R=>!R.disabled).map(R=>R.ref.current);if(["ArrowUp","End"].includes(S.key)&&(I=I.slice().reverse()),["ArrowUp","ArrowDown"].includes(S.key)){const R=S.target,V=I.indexOf(R);I=I.slice(V+1)}setTimeout(()=>U(I)),S.preventDefault()}})})})})})})});ht.displayName=_o;const No="SelectItemAlignedPosition",xt=r.forwardRef((o,l)=>{const{__scopeSelect:e,onPlaced:t,...n}=o,s=z(ne,e),i=J(ne,e),[c,a]=r.useState(null),[m,p]=r.useState(null),b=A.useComposedRefs(l,P=>p(P)),g=xe(e),d=r.useRef(!1),f=r.useRef(!0),{viewport:h,selectedItem:v,selectedItemText:C,focusSelectedItem:x}=i,y=r.useCallback(()=>{if(s.trigger&&s.valueNode&&c&&m&&h&&v&&C){const P=s.trigger.getBoundingClientRect(),D=m.getBoundingClientRect(),F=s.valueNode.getBoundingClientRect(),q=C.getBoundingClientRect();if(s.dir!=="rtl"){const R=q.left-D.left,V=F.left-R,ee=P.left-V,te=P.width+ee,be=Math.max(te,D.width),ye=window.innerWidth-K,we=Je.clamp(V,[K,ye-be]);c.style.minWidth=`${te}px`,c.style.left=`${we}px`}else{const R=D.right-q.right,V=window.innerWidth-F.right-R,ee=window.innerWidth-P.right-V,te=P.width+ee,be=Math.max(te,D.width),ye=window.innerWidth-K,we=Je.clamp(V,[K,ye-be]);c.style.minWidth=`${te}px`,c.style.right=`${we}px`}const H=g(),M=window.innerHeight-K*2,L=h.scrollHeight,k=window.getComputedStyle(m),B=parseInt(k.borderTopWidth,10),U=parseInt(k.paddingTop,10),G=parseInt(k.borderBottomWidth,10),Y=parseInt(k.paddingBottom,10),$=B+U+L+Y+G,ue=Math.min(v.offsetHeight*5,$),se=window.getComputedStyle(h),le=parseInt(se.paddingTop,10),de=parseInt(se.paddingBottom,10),X=P.top+P.height/2-K,ce=M-X,Q=v.offsetHeight/2,S=v.offsetTop+Q,w=B+U+S,j=$-w;if(w<=X){const R=v===H[H.length-1].ref.current;c.style.bottom="0px";const V=m.clientHeight-h.offsetTop-h.offsetHeight,ee=Math.max(ce,Q+(R?de:0)+V+G),te=w+ee;c.style.height=`${te}px`}else{const R=v===H[0].ref.current;c.style.top="0px";const ee=Math.max(X,B+h.offsetTop+(R?le:0)+Q)+j;c.style.height=`${ee}px`,h.scrollTop=w-X+h.offsetTop}c.style.margin=`${K}px 0`,c.style.minHeight=`${ue}px`,c.style.maxHeight=`${M}px`,t?.(),requestAnimationFrame(()=>d.current=!0)}},[g,s.trigger,s.valueNode,c,m,h,v,C,s.dir,t]);Z.useLayoutEffect(()=>y(),[y]);const[N,E]=r.useState();Z.useLayoutEffect(()=>{m&&E(window.getComputedStyle(m).zIndex)},[m]);const O=r.useCallback(P=>{P&&f.current===!0&&(y(),x?.(),f.current=!1)},[y,x]);return u.jsx(Oo,{scope:e,contentWrapper:c,shouldExpandOnScrollRef:d,onScrollButtonChange:O,children:u.jsx("div",{ref:a,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:N},children:u.jsx(_.Primitive.div,{...n,ref:b,style:{boxSizing:"border-box",maxHeight:"100%",...n.style}})})})});xt.displayName=No;const Ao="SelectPopperPosition",Te=r.forwardRef((o,l)=>{const{__scopeSelect:e,align:t="start",collisionPadding:n=K,...s}=o,i=Se(e);return u.jsx(re.Content,{...i,...s,ref:l,align:t,collisionPadding:n,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Te.displayName=Ao;const[Oo,Be]=ae(ne,{}),Pe="SelectViewport",Ue=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=J(Pe,e),s=Be(Pe,e),i=A.useComposedRefs(l,n.onViewportChange),c=r.useRef(0);return u.jsxs(u.Fragment,{children:[u.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"}}),u.jsx(Ce.Slot,{scope:e,children:u.jsx(_.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...t,ref:i,style:{position:"relative",flex:1,overflow:"auto",...t.style},onScroll:T.composeEventHandlers(t.onScroll,a=>{const m=a.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:b}=s;if(b?.current&&p){const g=Math.abs(c.current-m.scrollTop);if(g>0){const d=window.innerHeight-K*2,f=parseFloat(p.style.minHeight),h=parseFloat(p.style.height),v=Math.max(f,h);if(v<d){const C=v+g,x=Math.min(d,C),y=C-x;p.style.height=`${x}px`,p.style.bottom==="0px"&&(m.scrollTop=y>0?y:0,p.style.justifyContent="flex-end")}}}c.current=m.scrollTop})})})]})});Ue.displayName=Pe;const gt="SelectGroup",[Mo,jo]=ae(gt),$e=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=oe.useId();return u.jsx(Mo,{scope:e,id:n,children:u.jsx(_.Primitive.div,{role:"group","aria-labelledby":n,...t,ref:l})})});$e.displayName=gt;const vt="SelectLabel",qe=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=jo(vt,e);return u.jsx(_.Primitive.div,{id:n.id,...t,ref:l})});qe.displayName=vt;const ge="SelectItem",[Do,Ct]=ae(ge),Ke=r.forwardRef((o,l)=>{const{__scopeSelect:e,value:t,disabled:n=!1,textValue:s,...i}=o,c=z(ge,e),a=J(ge,e),m=typeof t=="string"?Array.isArray(c.value)?c.value.includes(t):c.value===t:t.every(x=>c.value?.includes(x)),p=Array.isArray(c.value)&&Array.isArray(t)&&t.some(x=>c.value?.includes(x)),[b,g]=r.useState(s??""),[d,f]=r.useState(!1),h=A.useComposedRefs(l,x=>a.itemRefCallback?.(x,t,n)),v=oe.useId(),C=()=>{if(!n){let x=c.multi&&typeof t=="string"?[t]:t;p&&!m?c.onValueChange(x):Array.isArray(c.value)&&(x=It(t,c.value)),c.onValueChange(x),c.multi||c.onOpenChange(!1)}};if(!c.multi&&Array.isArray(t))throw new Error("You can only pass an array of values in multi selects");return u.jsx(Do,{scope:e,value:t,disabled:n,textId:v,isSelected:m,isIntermediate:p,onItemTextChange:r.useCallback(x=>{g(y=>y||(x?.textContent??"").trim())},[]),children:u.jsx(Ce.ItemSlot,{scope:e,value:t,disabled:n,textValue:b,children:u.jsx(_.Primitive.div,{role:"option","aria-labelledby":v,"data-highlighted":d?"":void 0,"aria-selected":c.multi?void 0:m&&d,"aria-checked":c.multi?m:void 0,"data-state":m?"checked":"unchecked","aria-disabled":n||void 0,"data-disabled":n?"":void 0,tabIndex:n?void 0:-1,...i,ref:h,onFocus:T.composeEventHandlers(i.onFocus,()=>f(!0)),onBlur:T.composeEventHandlers(i.onBlur,()=>f(!1)),onPointerUp:T.composeEventHandlers(i.onPointerUp,C),onPointerMove:T.composeEventHandlers(i.onPointerMove,x=>{n?a.onItemLeave?.():x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:T.composeEventHandlers(i.onPointerLeave,x=>{x.currentTarget===document.activeElement&&a.onItemLeave?.()}),onKeyDown:T.composeEventHandlers(i.onKeyDown,x=>{a.searchRef?.current!==""&&x.key===" "||(yo.includes(x.key)&&C(),x.key===" "&&x.preventDefault())})})})})});Ke.displayName=ge;const pe="SelectItemText",We=r.forwardRef((o,l)=>{const{__scopeSelect:e,className:t,style:n,...s}=o,i=z(pe,e),c=J(pe,e),a=Ct(pe,e),m=Po(pe,e),[p,b]=r.useState(null),g=A.useComposedRefs(l,C=>b(C),a.onItemTextChange,C=>c.itemTextRefCallback?.(C,a.value,a.disabled)),d=p?.textContent,f=r.useMemo(()=>u.jsx("option",{value:a.value,disabled:a.disabled,children:d},Array.isArray(a.value)?a.value.join(";"):a.value),[a.disabled,a.value,d]),{onNativeOptionAdd:h,onNativeOptionRemove:v}=m;return Z.useLayoutEffect(()=>(h(f),()=>v(f)),[h,v,f]),u.jsxs(u.Fragment,{children:[u.jsx(_.Primitive.span,{id:a.textId,...s,ref:g}),a.isSelected&&i.valueNode&&!i.valueNodeHasChildren?Oe.createPortal(s.children,i.valueNode):null]})});We.displayName=pe;const St="SelectItemIndicator",ze=r.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,...n}=o,s=Ct(St,e);return typeof t=="function"?u.jsx(_.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t({isSelected:s.isSelected,isIntermediate:s.isIntermediate})}):s.isSelected?u.jsx(_.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t}):null});ze.displayName=St;const Re="SelectScrollUpButton",Ge=r.forwardRef((o,l)=>{const e=J(Re,o.__scopeSelect),t=Be(Re,o.__scopeSelect),[n,s]=r.useState(!1),i=A.useComposedRefs(l,t.onScrollButtonChange);return Z.useLayoutEffect(()=>{if(e.viewport&&e.isPositioned){const c=e.viewport,a=()=>{const m=c.scrollTop>0;s(m)};return a(),c.addEventListener("scroll",a),()=>c.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),n?u.jsx(bt,{...o,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=e;c&&a&&(c.scrollTop-=a.offsetHeight)}}):null});Ge.displayName=Re;const Ve="SelectScrollDownButton",Ye=r.forwardRef((o,l)=>{const e=J(Ve,o.__scopeSelect),t=Be(Ve,o.__scopeSelect),[n,s]=r.useState(!1),i=A.useComposedRefs(l,t.onScrollButtonChange);return Z.useLayoutEffect(()=>{if(e.viewport&&e.isPositioned){const c=e.viewport,a=()=>{const m=c.scrollHeight-c.clientHeight,p=Math.ceil(c.scrollTop)<m;s(p)};return a(),c.addEventListener("scroll",a),()=>c.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),n?u.jsx(bt,{...o,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=e;c&&a&&(c.scrollTop+=a.offsetHeight)}}):null});Ye.displayName=Ve;const bt=r.forwardRef((o,l)=>{const{__scopeSelect:e,onAutoScroll:t,...n}=o,s=J("SelectScrollButton",e),i=r.useRef(null),c=xe(e),a=r.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return r.useEffect(()=>()=>a(),[a]),Z.useLayoutEffect(()=>{c().find(p=>p.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),u.jsx(_.Primitive.div,{"aria-hidden":!0,...n,ref:l,style:{flexShrink:0,...n.style},onPointerMove:T.composeEventHandlers(n.onPointerMove,()=>{s.onItemLeave?.(),i.current===null&&(i.current=window.setInterval(t,50))}),onPointerLeave:T.composeEventHandlers(n.onPointerLeave,()=>{a()})})}),Lo="SelectSeparator",Xe=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o;return u.jsx(_.Primitive.div,{"aria-hidden":!0,...t,ref:l})});Xe.displayName=Lo;const _e="SelectArrow",Ze=r.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Se(e),s=z(_e,e),i=J(_e,e);return s.open&&i.position==="popper"?u.jsx(re.Arrow,{...n,...t,ref:l}):null});Ze.displayName=_e;const ko="BubbleSelect",Fo=r.forwardRef((o,l)=>{const{value:e,...t}=o,n=r.useRef(null),s=A.useComposedRefs(l,n),i=At.usePrevious(e),c=z(ko,void 0);r.useEffect(()=>{const m=n.current,p=window.HTMLSelectElement.prototype,g=Object.getOwnPropertyDescriptor(p,"value").set;if(i!==e&&g){const d=new Event("change",{bubbles:!0});g.call(m,e),m.dispatchEvent(d)}},[i,e]);let a=e;return c.multi&&!Array.isArray(e)&&(a=[]),u.jsx(Ot.VisuallyHidden,{asChild:!0,children:u.jsx("select",{...t,multiple:c.multi?!0:void 0,ref:s,defaultValue:a})})});Fo.displayName="BubbleSelect";function yt(o){const l=Nt.useCallbackRef(o),e=r.useRef(""),t=r.useRef(0),n=r.useCallback(i=>{const c=e.current+i;l(c),function a(m){e.current=m,window.clearTimeout(t.current),m!==""&&(t.current=window.setTimeout(()=>a(""),1e3))}(c)},[l]),s=r.useCallback(()=>{e.current="",window.clearTimeout(t.current)},[]);return r.useEffect(()=>()=>window.clearTimeout(t.current),[]),[e,n,s]}function wt(o,l,e){const n=l.length>1&&Array.from(l).every(m=>m===l[0])?l[0]:l,s=e?o.indexOf(e):-1;let i=Ho(o,Math.max(s,0));n.length===1&&(i=i.filter(m=>m!==e));const a=i.find(m=>m.textValue.toLowerCase().startsWith(n.toLowerCase()));return a!==e?a:void 0}function Ho(o,l){return o.map((e,t)=>o[(l+t)%o.length])}const It=(o,l=[])=>{if(Array.isArray(o))return o.reduce((t,n)=>It(n,t),l);const e=l.indexOf(o);return e===-1?[...l,o]:[...l.slice(0,e),...l.slice(e+1)]},Bo=je,Uo=De,$o=Le,qo=ke,Ko=Fe,Wo=He,zo=Ue,Go=$e,Yo=qe,Xo=Ke,Zo=We,Jo=ze,Qo=Ge,en=Ye,tn=Xe,on=Ze,nn=Object.freeze(Object.defineProperty({__proto__:null,Arrow:on,Content:Wo,Group:Go,Icon:qo,Item:Xo,ItemIndicator:Jo,ItemText:Zo,Label:Yo,Portal:Ko,Root:Bo,ScrollDownButton:en,ScrollUpButton:Qo,Select:je,SelectArrow:Ze,SelectContent:He,SelectGroup:$e,SelectIcon:ke,SelectItem:Ke,SelectItemIndicator:ze,SelectItemText:We,SelectLabel:qe,SelectPortal:Fe,SelectScrollDownButton:Ye,SelectScrollUpButton:Ge,SelectSeparator:Xe,SelectTrigger:De,SelectValue:Le,SelectViewport:Ue,Separator:tn,Trigger:Uo,Value:$o,Viewport:zo,createSelectScope:Io},Symbol.toStringTag,{value:"Module"}));exports.Combobox=So;exports.Select=nn;
|