@strapi/ui-primitives 1.16.0-typescript.0 → 1.17.0-typescript.0
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/README.md +17 -0
- package/dist/index.d.ts +2 -0
- package/dist/ui-primitives.js +1 -1
- package/dist/ui-primitives.mjs +3 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -95,6 +95,23 @@ import { Select } from '@strapi/ui-primitives';
|
|
|
95
95
|
};
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
+
## Hook Documentation
|
|
99
|
+
|
|
100
|
+
### useCallbackRef
|
|
101
|
+
|
|
102
|
+
Converts a callback to a ref to avoid triggering re-renders when passed as a prop or avoid re-executing
|
|
103
|
+
effects when passed as a dependency
|
|
104
|
+
|
|
105
|
+
### useCollator
|
|
106
|
+
|
|
107
|
+
Provides localized string collation for the current locale. Automatically updates when the locale changes,
|
|
108
|
+
and handles caching of the collator for performance.
|
|
109
|
+
|
|
110
|
+
### useFilter
|
|
111
|
+
|
|
112
|
+
Provides localized string search functionality that is useful for filtering or matching items
|
|
113
|
+
in a list. Options can be provided to adjust the sensitivity to case, diacritics, and other parameters.
|
|
114
|
+
|
|
98
115
|
## Contributing
|
|
99
116
|
|
|
100
117
|
Please follow our [CONTRIBUTING](https://github.com/strapi/design-system/blob/main/CONTRIBUTING.md) guidelines.
|
package/dist/index.d.ts
CHANGED
package/dist/ui-primitives.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),Kt=require("react"),A=require("@radix-ui/react-compose-refs"),ve=require("@radix-ui/react-context"),Ee=require("@radix-ui/react-slot"),w=require("@radix-ui/primitive"),ct=require("@radix-ui/react-dismissable-layer"),it=require("@radix-ui/react-focus-guards"),at=require("@radix-ui/react-focus-scope"),ne=require("@radix-ui/react-id"),Me=require("@radix-ui/react-popper"),ut=require("@radix-ui/react-portal"),R=require("@radix-ui/react-primitive"),ce=require("@radix-ui/react-use-controllable-state"),F=require("@radix-ui/react-use-layout-effect"),dt=require("aria-hidden"),zt=require("react-dom"),pt=require("react-remove-scroll"),st=require("@radix-ui/number"),Gt=require("@radix-ui/react-collection"),Yt=require("@radix-ui/react-direction"),Xt=require("@radix-ui/react-use-previous"),Zt=require("@radix-ui/react-visually-hidden"),ft=require("@radix-ui/react-use-callback-ref");function je(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 s=je(Kt),re=je(Me),Ce=je(zt);function mt(o){const l=`${o}CollectionProvider`,[e,t]=ve.createContextScope(l),[n,r]=e(l,{collectionRef:{current:null},itemMap:new Map,listeners:new Set}),i=d=>{const{scope:h,children:C}=d,v=s.useRef(null),b=s.useRef(new Map).current,x=s.useRef(new Set).current;return u.jsx(n,{scope:h,itemMap:b,collectionRef:v,listeners:x,children:C})};i.displayName=l;const c=`${o}CollectionSlot`,a=s.forwardRef((d,h)=>{const{scope:C,children:v}=d,b=r(c,C),x=A.useComposedRefs(h,b.collectionRef);return u.jsx(Ee.Slot,{ref:x,children:v})});a.displayName=c;const m=`${o}CollectionItemSlot`,p="data-radix-collection-item",g=s.forwardRef((d,h)=>{const{scope:C,children:v,...b}=d,x=s.useRef(null),I=A.useComposedRefs(h,x),V=r(m,C);return s.useEffect(()=>{const O=Array.from(V.itemMap.values());return V.itemMap.set(x,{ref:x,...b}),V.listeners.forEach(N=>N(Array.from(V.itemMap.values()),O)),()=>{const N=Array.from(V.itemMap.values());V.itemMap.delete(x),V.listeners.forEach(_=>_(Array.from(V.itemMap.values()),N))}}),u.jsx(Ee.Slot,{[p]:"",ref:I,children:v})});g.displayName=m;function f(d){const h=r(`${o}CollectionConsumer`,d),C=s.useCallback(()=>{const b=h.collectionRef.current;if(!b)return[];const x=Array.from(b.querySelectorAll(`[${p}]`));return Array.from(h.itemMap.values()).sort((O,N)=>x.indexOf(O.ref.current)-x.indexOf(N.ref.current))},[h.collectionRef,h.itemMap]),v=s.useCallback(b=>(h.listeners.add(b),()=>h.listeners.delete(b)),[h.listeners]);return{getItems:C,subscribe:v}}return[{Provider:i,Slot:a,ItemSlot:g},f,t]}const Pe=new Map;function Jt(o,l){const e=o+(l?Object.entries(l).sort((n,r)=>n[0]<r[0]?-1:1).join():"");if(Pe.has(e))return Pe.get(e);const t=new Intl.Collator(o,l);return Pe.set(e,t),t}function De(o,l){const e=Jt(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 r=0;const i=n.length;for(;r+i<=t.length;r++){const c=t.slice(r,r+i);if(e.compare(n,c)===0)return!0}return!1}}}const Qt=o=>{const l=s.useRef();return s.useEffect(()=>{l.current=o}),l.current},eo=[" ","Enter","ArrowUp","ArrowDown"],to=["Enter"],oo=o=>!!(o.length===1&&o.match(/\S| /)),ht="Combobox",[ie,me]=mt(ht),[no,W]=ve.createContext(ht),ro=({children:o})=>u.jsx(re.Root,{children:u.jsx(ie.Provider,{scope:void 0,children:o})}),so=o=>typeof o=="string"?o==="none"?{type:o,filter:void 0}:{type:o,filter:"startsWith"}:o,lo=o=>{const{allowCustomValue:l=!1,autocomplete:e="none",children:t,open:n,defaultOpen:r,onOpenChange:i,value:c,defaultValue:a,onValueChange:m,disabled:p,required:g=!1,locale:f="en-EN",onTextValueChange:d,textValue:h,defaultTextValue:C,filterValue:v,defaultFilterValue:b,onFilterValueChange:x,isPrintableCharacter:I=oo}=o,[V,O]=s.useState(null),[N,_]=s.useState(null),[D,X]=s.useState(null),[q,k]=s.useState(null),[M=!1,H]=ce.useControllableState({prop:n,defaultProp:r,onChange:i}),[L,K]=ce.useControllableState({prop:c,defaultProp:a,onChange:m}),[z,B]=ce.useControllableState({prop:h,defaultProp:l&&!C?c:C,onChange:d}),[Z,U]=ce.useControllableState({prop:v,defaultProp:b,onChange:x}),ue=ne.useId(),se=s.useCallback((pe,$)=>{const le=$.map(S=>S.ref.current),[Q,...y]=le,[P]=y.slice(-1),j=q??$.find(S=>S.value===L)?.ref.current;for(const S of pe){if(S===j)return;if(S?.scrollIntoView({block:"nearest"}),S===Q&&N&&(N.scrollTop=0),S===P&&N&&(N.scrollTop=N.scrollHeight),k(S),e==="both"){const T=$.find(E=>E.ref.current===S);T&&B(T.textValue)}if(S!==j)return}},[e,B,N,q,L]),de=so(e);return s.useEffect(()=>{e!=="both"&&k(null)},[z,e]),s.useEffect(()=>{if(D&&V)return dt.hideOthers([D,V])},[D,V]),u.jsx(ro,{children:u.jsx(no,{allowCustomValue:l,autocomplete:de,required:g,trigger:V,onTriggerChange:O,contentId:ue,value:L,onValueChange:K,open:M,onOpenChange:H,disabled:p,locale:f,focusFirst:se,textValue:z,onTextValueChange:B,onViewportChange:_,onContentChange:X,visuallyFocussedItem:q,filterValue:Z,onFilterValueChange:U,onVisuallyFocussedItemChange:k,isPrintableCharacter:I,children:t})})},xt="ComboboxTrigger",gt=s.forwardRef((o,l)=>{const{...e}=o,t=W(xt),n=()=>{t.disabled||t.onOpenChange(!0)};return u.jsx(re.Anchor,{asChild:!0,children:u.jsx(at.FocusScope,{asChild:!0,trapped:t.open,onMountAutoFocus:r=>{r.preventDefault()},onUnmountAutoFocus:r=>{t.trigger?.focus({preventScroll:!0}),document.getSelection()?.empty(),r.preventDefault()},children:u.jsx("div",{ref:l,"data-disabled":t.disabled?"":void 0,...e,onClick:w.composeEventHandlers(e.onClick,()=>{t.trigger?.focus()}),onPointerDown:w.composeEventHandlers(e.onPointerDown,r=>{const i=r.target;i.hasPointerCapture(r.pointerId)&&i.releasePointerCapture(r.pointerId),(i.closest("button")??i.closest("div"))===r.currentTarget&&r.button===0&&r.ctrlKey===!1&&(n(),t.trigger?.focus())})})})})});gt.displayName=xt;const vt="ComboboxInput",Ct=s.forwardRef((o,l)=>{const e=W(vt),t=s.useRef(null),{getItems:n}=me(void 0),{startsWith:r}=De(e.locale,{sensitivity:"base"}),i=e.disabled,c=A.useComposedRefs(t,l,e.onTriggerChange),a=()=>{i||e.onOpenChange(!0)},m=Qt(e.filterValue);return F.useLayoutEffect(()=>{const p=setTimeout(()=>{if(e.textValue===""||e.textValue===void 0||e.filterValue===""||e.filterValue===void 0)return;const g=n().find(d=>d.type==="option"&&r(d.textValue,e.textValue)),f=So(m??"",e.filterValue);g&&!e.visuallyFocussedItem&&f===e.filterValue.length&&t.current?.setSelectionRange(e.filterValue.length,e.textValue.length)});return()=>clearTimeout(p)},[e.textValue,e.filterValue,r,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.type,"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,onKeyDown:w.composeEventHandlers(o.onKeyDown,p=>{if(["ArrowUp","ArrowDown","Home","End"].includes(p.key))e.open||a(),setTimeout(()=>{let f=n().filter(d=>!d.disabled&&d.isVisible).map(d=>d.ref.current);if(["ArrowUp","End"].includes(p.key)&&(f=f.slice().reverse()),["ArrowUp","ArrowDown"].includes(p.key)){const d=e.visuallyFocussedItem??n().find(h=>h.value===e.value)?.ref.current;if(d){let h=f.indexOf(d);h===f.length-1&&(h=-1),f=f.slice(h+1)}}if(["ArrowDown"].includes(p.key)&&e.autocomplete.type==="both"&&f.length>1){const[d,...h]=f,C=n().find(v=>v.ref.current===d).textValue;e.textValue===C&&(f=h)}e.focusFirst(f,n())}),p.preventDefault();else if(["Tab"].includes(p.key)&&e.open)p.preventDefault();else if(["Escape"].includes(p.key))e.open?e.onOpenChange(!1):(e.onValueChange(void 0),e.onTextValueChange("")),p.preventDefault();else if(to.includes(p.key)){if(e.visuallyFocussedItem){const g=n().find(f=>f.ref.current===e.visuallyFocussedItem);g&&(e.onValueChange(g.value),e.onTextValueChange(g.textValue),e.autocomplete.type==="both"&&e.onFilterValueChange(g.textValue),g.ref.current?.click())}else{const g=n().find(f=>f.type==="option"&&!f.disabled&&f.textValue===e.textValue);g&&(e.onValueChange(g.value),e.onTextValueChange(g.textValue),e.autocomplete.type==="both"&&e.onFilterValueChange(g.textValue),g.ref.current?.click())}e.onOpenChange(!1),p.preventDefault()}else e.onVisuallyFocussedItemChange(null)}),onChange:w.composeEventHandlers(o.onChange,p=>{e.onTextValueChange(p.currentTarget.value),e.autocomplete.type==="both"&&e.onFilterValueChange(p.currentTarget.value)}),onKeyUp:w.composeEventHandlers(o.onKeyUp,p=>{if(!e.open&&(e.isPrintableCharacter(p.key)||["Backspace"].includes(p.key))&&a(),setTimeout(()=>{if(e.autocomplete.type==="both"&&e.isPrintableCharacter(p.key)&&e.filterValue!==void 0){const g=e.filterValue,f=n().find(d=>r(d.textValue,g));f&&e.onTextValueChange(f.textValue)}}),e.autocomplete.type==="none"&&e.isPrintableCharacter(p.key)){const g=e.textValue??"",f=n().find(d=>r(d.textValue,g));f&&(e.onVisuallyFocussedItemChange(f.ref.current),f.ref.current?.scrollIntoView())}}),onBlur:w.composeEventHandlers(o.onBlur,()=>{if(e.open)return;e.onVisuallyFocussedItemChange(null);const[p]=n().filter(f=>f.textValue===e.textValue&&f.type==="option");if(p){e.onValueChange(p.value),e.autocomplete.type==="both"&&e.onFilterValueChange(p.textValue);return}if(e.allowCustomValue){e.onValueChange(e.textValue),e.autocomplete.type==="both"&&e.onFilterValueChange(e.textValue);return}const[g]=n().filter(f=>f.value===e.value&&f.type==="option");g&&e.textValue!==""?(e.onTextValueChange(g.textValue),e.autocomplete.type==="both"&&e.onFilterValueChange(g.textValue)):(e.onValueChange(void 0),e.onTextValueChange(""))})})});Ct.displayName="ComboboxTextInput";const bt=s.forwardRef((o,l)=>{const{children:e,...t}=o,n=W(vt),r=n.disabled,i=()=>{r||(n.onOpenChange(!0),n.trigger?.focus())};return u.jsx(R.Primitive.button,{"aria-hidden":!0,type:"button","aria-disabled":r,"aria-controls":n.contentId,"aria-expanded":n.open,disabled:r,"data-disabled":r?"":void 0,...t,tabIndex:-1,ref:l,onClick:w.composeEventHandlers(t.onClick,()=>{n.trigger?.focus()}),onPointerDown:w.composeEventHandlers(t.onPointerDown,c=>{c.button===0&&c.ctrlKey===!1&&(i(),c.preventDefault())}),onKeyDown:w.composeEventHandlers(t.onKeyDown,c=>{eo.includes(c.key)&&(i(),c.preventDefault())}),children:e||"▼"})});bt.displayName="ComboboxIcon";const co="ComboboxPortal",yt=o=>u.jsx(ut.Portal,{asChild:!0,...o});yt.displayName=co;const Le="ComboboxContent",St=s.forwardRef((o,l)=>{const e=W(Le),{getItems:t}=me(void 0),[n,r]=s.useState();if(F.useLayoutEffect(()=>{r(new DocumentFragment)},[]),F.useLayoutEffect(()=>{e.open&&e.autocomplete.type==="none"&&setTimeout(()=>{t().find(c=>c.value===e.value)?.ref.current?.scrollIntoView({block:"nearest"})})},[t,e.autocomplete,e.value,e.open]),!e.open){const i=n;return i?Ce.createPortal(u.jsx(ie.Slot,{scope:void 0,children:u.jsx("div",{children:o.children})}),i):null}return u.jsx(It,{...o,ref:l})});St.displayName=Le;const io=10,It=s.forwardRef((o,l)=>{const{onEscapeKeyDown:e,onPointerDownOutside:t,...n}=o,r=W(Le),i=A.useComposedRefs(l,a=>r.onContentChange(a)),{onOpenChange:c}=r;return it.useFocusGuards(),s.useEffect(()=>{const a=()=>{c(!1)};return window.addEventListener("blur",a),window.addEventListener("resize",a),()=>{window.removeEventListener("blur",a),window.removeEventListener("resize",a)}},[c]),u.jsx(pt.RemoveScroll,{allowPinchZoom:!0,children:u.jsx(ct.DismissableLayer,{asChild:!0,onEscapeKeyDown:e,onPointerDownOutside:t,onFocusOutside:a=>{a.preventDefault()},onDismiss:()=>{r.onOpenChange(!1),r.trigger?.focus({preventScroll:!0})},children:u.jsx(wt,{role:"listbox",id:r.contentId,"data-state":r.open?"open":"closed",onContextMenu:a=>a.preventDefault(),...n,ref:i,style:{display:"flex",flexDirection:"column",outline:"none",...n.style}})})})});It.displayName="ComboboxContentImpl";const wt=s.forwardRef((o,l)=>{const{align:e="start",collisionPadding:t=io,...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)"}})});wt.displayName="ComboboxPopperPosition";const Tt="ComboboxViewport",Pt=s.forwardRef((o,l)=>{const e=W(Tt),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(ie.Slot,{scope:void 0,children:u.jsx(R.Primitive.div,{"data-radix-combobox-viewport":"",role:"presentation",...o,ref:t,style:{position:"relative",flex:1,overflow:"auto",...o.style}})})]})});Pt.displayName=Tt;const be="ComboboxItem",[lt,Fe]=ve.createContext(be),ke=s.forwardRef((o,l)=>{const{value:e,disabled:t=!1,textValue:n,...r}=o,[i,c]=s.useState();F.useLayoutEffect(()=>{c(new DocumentFragment)},[]);const{onTextValueChange:a,textValue:m,...p}=W(be),g=ne.useId(),[f,d]=s.useState(n??""),h=p.value===e,{startsWith:C,contains:v}=De(p.locale,{sensitivity:"base"}),b=s.useCallback(x=>{d(I=>I||(x?.textContent??"").trim())},[]);return s.useEffect(()=>{h&&m===void 0&&f!==""&&a(f)},[f,h,m,a]),p.autocomplete.type==="both"&&f&&p.filterValue&&!C(f,p.filterValue)||p.autocomplete.type==="list"&&p.autocomplete.filter==="startsWith"&&f&&m&&!C(f,m)||p.autocomplete.type==="list"&&p.autocomplete.filter==="contains"&&f&&m&&!v(f,m)?i?Ce.createPortal(u.jsx(lt,{textId:g,onTextValueChange:b,isSelected:h,textValue:f,children:u.jsx(ie.ItemSlot,{scope:void 0,value:e,textValue:f,disabled:t,type:"option",isVisible:!1,children:u.jsx(Ve,{ref:l,value:e,disabled:t,...r})})}),i):null:u.jsx(lt,{textId:g,onTextValueChange:b,isSelected:h,textValue:f,children:u.jsx(ie.ItemSlot,{scope:void 0,value:e,textValue:f,disabled:t,type:"option",isVisible:!0,children:u.jsx(Ve,{ref:l,value:e,disabled:t,...r})})})});ke.displayName=be;const Et="ComboboxItemImpl",Ve=s.forwardRef((o,l)=>{const{value:e,disabled:t=!1,...n}=o,r=s.useRef(null),i=A.useComposedRefs(l,r),{getItems:c}=me(void 0),{onTextValueChange:a,visuallyFocussedItem:m,...p}=W(be),{isSelected:g,textValue:f,textId:d}=Fe(Et),h=()=>{t||(p.onValueChange(e),a(f),p.onOpenChange(!1),p.autocomplete.type==="both"&&p.onFilterValueChange(f),p.trigger?.focus({preventScroll:!0}))},C=s.useMemo(()=>m===c().find(b=>b.ref.current===r.current)?.ref.current,[c,m]),v=ne.useId();return u.jsx(R.Primitive.div,{role:"option","aria-labelledby":d,"data-highlighted":C?"":void 0,"aria-selected":g&&C,"data-state":g?"checked":"unchecked","aria-disabled":t||void 0,"data-disabled":t?"":void 0,tabIndex:t?void 0:-1,...n,id:v,ref:i,onPointerUp:w.composeEventHandlers(n.onPointerUp,h)})});Ve.displayName=Et;const Vt="ComboboxItemText",Rt=s.forwardRef((o,l)=>{const{className:e,style:t,...n}=o,r=Fe(Vt),i=A.useComposedRefs(l,r.onTextValueChange);return u.jsx(R.Primitive.span,{id:r.textId,...n,ref:i})});Rt.displayName=Vt;const Nt="ComboboxItemIndicator",_t=s.forwardRef((o,l)=>{const{isSelected:e}=Fe(Nt);return e?u.jsx(R.Primitive.span,{"aria-hidden":!0,...o,ref:l}):null});_t.displayName=Nt;const He="ComboboxNoValueFound",At=s.forwardRef((o,l)=>{const{textValue:e="",filterValue:t="",locale:n,autocomplete:r}=W(He),[i,c]=s.useState([]),{subscribe:a}=me(void 0),{startsWith:m,contains:p}=De(n,{sensitivity:"base"});return s.useEffect(()=>{const g=a(f=>{c(f)});return()=>{g()}},[a]),i.length===0||r.type==="none"||r.type==="list"&&r.filter==="startsWith"&&i.some(g=>m(g.textValue,e))||r.type==="both"&&i.some(g=>m(g.textValue,t))||r.type==="list"&&r.filter==="contains"&&i.some(g=>p(g.textValue,e))?null:u.jsx(R.Primitive.div,{...o,ref:l})});At.displayName=He;const Ot=s.forwardRef((o,l)=>{const{disabled:e=!1,...t}=o,n=W(He),{textValue:r,visuallyFocussedItem:i}=n,{getItems:c,subscribe:a}=me(void 0),m=s.useRef(null),[p,g]=s.useState(!1),f=A.useComposedRefs(l,m),d=s.useMemo(()=>i===c().find(v=>v.ref.current===m.current)?.ref.current,[c,i]),h=ne.useId(),C=()=>{!e&&r&&(n.onValueChange(r),n.onTextValueChange(r),n.onOpenChange(!1),n.autocomplete.type==="both"&&n.onFilterValueChange(r),n.trigger?.focus({preventScroll:!0}))};return F.useLayoutEffect(()=>{const v=a(b=>{g(!b.some(x=>x.textValue===r&&x.type!=="create"))});return c().length===0&&g(!0),()=>{v()}},[r,a,c]),!r||!p?null:u.jsx(ie.ItemSlot,{scope:void 0,value:r??"",textValue:r??"",disabled:e,isVisible:!0,type:"create",children:u.jsx(R.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:h,ref:f,onPointerUp:w.composeEventHandlers(t.onPointerUp,C)})})});Ot.displayName="ComboboxCreateItem";const ao=lo,uo=gt,po=Ct,fo=bt,mo=yt,ho=St,xo=Pt,go=ke,vo=Rt,Co=_t,bo=At,yo=Ot;function So(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 Io=Object.freeze(Object.defineProperty({__proto__:null,ComboboxItem:ke,Content:ho,CreateItem:yo,Icon:fo,Item:go,ItemIndicator:Co,ItemText:vo,NoValueFound:bo,Portal:mo,Root:ao,TextInput:po,Trigger:uo,Viewport:xo},Symbol.toStringTag,{value:"Module"})),wo=[" ","Enter","ArrowUp","ArrowDown"],To=[" ","Enter"],he="Select",[ye,xe,Po]=Gt.createCollection(he),[ae,Eo]=ve.createContextScope(he,[Po,Me.createPopperScope]),Se=Me.createPopperScope(),[Vo,Y]=ae(he),[Ro,No]=ae(he),Be=o=>{const{__scopeSelect:l,children:e,open:t,defaultOpen:n,onOpenChange:r,value:i,defaultValue:c,onValueChange:a,dir:m,disabled:p,required:g,multi:f=!1}=o,d=Se(l),[h,C]=s.useState(null),[v,b]=s.useState(null),[x,I]=s.useState(!1),V=Yt.useDirection(m),[O=!1,N]=ce.useControllableState({prop:t,defaultProp:n,onChange:r}),[_,D]=ce.useControllableState({prop:i,defaultProp:c,onChange(M){a&&(Array.isArray(M),a(M))}}),X=s.useRef(null),[q,k]=s.useState(new Set);return u.jsx(re.Root,{...d,children:u.jsx(Vo,{required:g,scope:l,trigger:h,onTriggerChange:C,valueNode:v,onValueNodeChange:b,valueNodeHasChildren:x,onValueNodeHasChildrenChange:I,contentId:ne.useId(),value:_,onValueChange:D,open:O,onOpenChange:N,dir:V,triggerPointerDownPosRef:X,disabled:p,multi:f,children:u.jsx(ye.Provider,{scope:l,children:u.jsx(Ro,{scope:o.__scopeSelect,onNativeOptionAdd:s.useCallback(M=>{k(H=>new Set(H).add(M))},[]),onNativeOptionRemove:s.useCallback(M=>{k(H=>{const L=new Set(H);return L.delete(M),L})},[]),children:e})})})})};Be.displayName=he;const Mt="SelectTrigger",Ue=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Se(e),r=Y(Mt,e),i=r.disabled,c=A.useComposedRefs(l,r.onTriggerChange),a=xe(e),[m,p,g]=$t(d=>{const h=a().filter(b=>!b.disabled),C=h.find(b=>b.value===r.value),v=Wt(h,d,C);if(v!==void 0&&!Array.isArray(v.value)){const b=r.multi?[v.value]:v.value;r.onValueChange(b)}}),f=()=>{i||(r.onOpenChange(!0),g())};return u.jsx(re.Anchor,{asChild:!0,...n,children:u.jsx(R.Primitive.div,{role:"combobox","aria-controls":r.contentId,"aria-expanded":r.open,"aria-required":r.required,"aria-autocomplete":"none",dir:r.dir,"data-state":r.open?"open":"closed","data-disabled":i?"":void 0,"data-placeholder":r.value===void 0?"":void 0,tabIndex:i?void 0:0,...t,ref:c,onClick:w.composeEventHandlers(t.onClick,d=>{d.currentTarget.focus()}),onPointerDown:w.composeEventHandlers(t.onPointerDown,d=>{const h=d.target;h.hasPointerCapture(d.pointerId)&&h.releasePointerCapture(d.pointerId),(h.closest("button")??h.closest("div"))===d.currentTarget&&d.button===0&&d.ctrlKey===!1&&(f(),r.triggerPointerDownPosRef.current={x:Math.round(d.pageX),y:Math.round(d.pageY)},d.preventDefault())}),onKeyDown:w.composeEventHandlers(t.onKeyDown,d=>{const h=m.current!=="",C=d.ctrlKey||d.altKey||d.metaKey,v=d.target;(v.closest("button")??v.closest("div"))===d.currentTarget&&(!C&&d.key.length===1&&p(d.key),!(h&&d.key===" ")&&wo.includes(d.key)&&(f(),d.preventDefault()))})})})});Ue.displayName=Mt;const jt="SelectValue",$e=s.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,placeholder:n,...r}=o,i=Y(jt,e),{onValueNodeHasChildrenChange:c}=i,a=t!==void 0,m=A.useComposedRefs(l,i.onValueNodeChange),[p,g]=s.useState([]),f=xe(e);F.useLayoutEffect(()=>{c(a)},[c,a]),s.useLayoutEffect(()=>{if(Array.isArray(i.value)&&p.length!==i.value.length){const h=setTimeout(()=>{const C=f().filter(v=>Array.isArray(v.value)?!1:i.value?.includes(v.value));g(C)});return()=>{clearTimeout(h)}}},[i.value,f,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 h=i.value.map(C=>{const v=p.find(b=>b.value===C);return v?t({value:C,textValue:v?.textValue}):null});d=h.every(C=>C===null)?n:h}else d=t(i.value);else d=t;return u.jsx(R.Primitive.span,{...r,ref:m,children:d||null})});$e.displayName=jt;const _o="SelectIcon",We=s.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,...n}=o;return u.jsx(R.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t||"▼"})});We.displayName=_o;const Ao="SelectPortal",qe=o=>u.jsx(ut.Portal,{asChild:!0,...o});qe.displayName=Ao;const oe="SelectContent",Ke=s.forwardRef((o,l)=>{const e=Y(oe,o.__scopeSelect),[t,n]=s.useState();if(F.useLayoutEffect(()=>{n(new DocumentFragment)},[]),!e.open){const r=t;return r?Ce.createPortal(u.jsx(Dt,{scope:o.__scopeSelect,children:u.jsx(ye.Slot,{scope:o.__scopeSelect,children:u.jsx("div",{children:o.children})})}),r):null}return u.jsx(Lt,{...o,ref:l})});Ke.displayName=oe;const G=10,[Dt,J]=ae(oe),Oo="SelectContentImpl",Lt=s.forwardRef((o,l)=>{const{__scopeSelect:e,position:t="item-aligned",onCloseAutoFocus:n,onEscapeKeyDown:r,onPointerDownOutside:i,side:c,sideOffset:a,align:m,alignOffset:p,arrowPadding:g,collisionBoundary:f,collisionPadding:d,sticky:h,hideWhenDetached:C,avoidCollisions:v,...b}=o,x=Y(oe,e),[I,V]=s.useState(null),[O,N]=s.useState(null),_=A.useComposedRefs(l,y=>V(y)),[D,X]=s.useState(null),[q,k]=s.useState(null),M=xe(e),[H,L]=s.useState(!1),K=s.useRef(!1);s.useEffect(()=>{if(I)return dt.hideOthers(I)},[I]),it.useFocusGuards();const z=s.useCallback(y=>{const[P,...j]=M().map(E=>E.ref.current),[S]=j.slice(-1),T=document.activeElement;for(const E of y)if(E===T||(E?.scrollIntoView({block:"nearest"}),E===P&&O&&(O.scrollTop=0),E===S&&O&&(O.scrollTop=O.scrollHeight),E?.focus(),document.activeElement!==T))return},[M,O]),B=s.useCallback(()=>z([D,I]),[z,D,I]);s.useEffect(()=>{H&&B()},[H,B]);const{onOpenChange:Z,triggerPointerDownPosRef:U}=x;s.useEffect(()=>{if(I){let y={x:0,y:0};const P=S=>{y={x:Math.abs(Math.round(S.pageX)-(U.current?.x??0)),y:Math.abs(Math.round(S.pageY)-(U.current?.y??0))}},j=S=>{y.x<=10&&y.y<=10?S.preventDefault():I.contains(S.target)||Z(!1),document.removeEventListener("pointermove",P),U.current=null};return U.current!==null&&(document.addEventListener("pointermove",P),document.addEventListener("pointerup",j,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",P),document.removeEventListener("pointerup",j,{capture:!0})}}},[I,Z,U]),s.useEffect(()=>{const y=()=>Z(!1);return window.addEventListener("blur",y),window.addEventListener("resize",y),()=>{window.removeEventListener("blur",y),window.removeEventListener("resize",y)}},[Z]);const[ue,se]=$t(y=>{const P=M().filter(T=>!T.disabled),j=P.find(T=>T.ref.current===document.activeElement),S=Wt(P,y,j);S&&setTimeout(()=>S.ref.current.focus())}),de=s.useCallback((y,P,j)=>{const S=!K.current&&!j;(x.value!==void 0&&x.value===P||S)&&(X(y),S&&(K.current=!0))},[x.value]),pe=s.useCallback(()=>I?.focus(),[I]),$=s.useCallback((y,P,j)=>{const S=!K.current&&!j;(x.value!==void 0&&(Array.isArray(P)?P.every(E=>x.value?.includes(E)):x.value===P)||S)&&k(y)},[x.value]),le=t==="popper"?Re:Ft,Q=le===Re?{side:c,sideOffset:a,align:m,alignOffset:p,arrowPadding:g,collisionBoundary:f,collisionPadding:d,sticky:h,hideWhenDetached:C,avoidCollisions:v}:{};return u.jsx(Dt,{scope:e,content:I,viewport:O,onViewportChange:N,itemRefCallback:de,selectedItem:D,onItemLeave:pe,itemTextRefCallback:$,focusSelectedItem:B,selectedItemText:q,position:t,isPositioned:H,searchRef:ue,children:u.jsx(pt.RemoveScroll,{as:Ee.Slot,allowPinchZoom:!0,children:u.jsx(at.FocusScope,{asChild:!0,trapped:x.open,onMountAutoFocus:y=>{y.preventDefault()},onUnmountAutoFocus:w.composeEventHandlers(n,y=>{x.trigger?.focus({preventScroll:!0}),document.getSelection()?.empty(),y.preventDefault()}),children:u.jsx(ct.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:y=>y.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:u.jsx(le,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed","aria-multiselectable":x.multi?"true":void 0,dir:x.dir,onContextMenu:y=>y.preventDefault(),...b,...Q,onPlaced:()=>L(!0),ref:_,style:{display:"flex",flexDirection:"column",outline:"none",...b.style},onKeyDown:w.composeEventHandlers(b.onKeyDown,y=>{const P=y.ctrlKey||y.altKey||y.metaKey;if(y.key==="Tab"&&y.preventDefault(),!P&&y.key.length===1&&se(y.key),["ArrowUp","ArrowDown","Home","End"].includes(y.key)){let S=M().filter(T=>!T.disabled).map(T=>T.ref.current);if(["ArrowUp","End"].includes(y.key)&&(S=S.slice().reverse()),["ArrowUp","ArrowDown"].includes(y.key)){const T=y.target,E=S.indexOf(T);S=S.slice(E+1)}setTimeout(()=>z(S)),y.preventDefault()}})})})})})})});Lt.displayName=Oo;const Mo="SelectItemAlignedPosition",Ft=s.forwardRef((o,l)=>{const{__scopeSelect:e,onPlaced:t,...n}=o,r=Y(oe,e),i=J(oe,e),[c,a]=s.useState(null),[m,p]=s.useState(null),g=A.useComposedRefs(l,_=>p(_)),f=xe(e),d=s.useRef(!1),h=s.useRef(!0),{viewport:C,selectedItem:v,selectedItemText:b,focusSelectedItem:x}=i,I=s.useCallback(()=>{if(r.trigger&&r.valueNode&&c&&m&&C&&v&&b){const _=r.trigger.getBoundingClientRect(),D=m.getBoundingClientRect(),X=r.valueNode.getBoundingClientRect(),q=b.getBoundingClientRect();if(r.dir!=="rtl"){const T=q.left-D.left,E=X.left-T,ee=_.left-E,te=_.width+ee,Ie=Math.max(te,D.width),we=window.innerWidth-G,Te=st.clamp(E,[G,we-Ie]);c.style.minWidth=`${te}px`,c.style.left=`${Te}px`}else{const T=D.right-q.right,E=window.innerWidth-X.right-T,ee=window.innerWidth-_.right-E,te=_.width+ee,Ie=Math.max(te,D.width),we=window.innerWidth-G,Te=st.clamp(E,[G,we-Ie]);c.style.minWidth=`${te}px`,c.style.right=`${Te}px`}const k=f(),M=window.innerHeight-G*2,H=C.scrollHeight,L=window.getComputedStyle(m),K=parseInt(L.borderTopWidth,10),z=parseInt(L.paddingTop,10),B=parseInt(L.borderBottomWidth,10),Z=parseInt(L.paddingBottom,10),U=K+z+H+Z+B,ue=Math.min(v.offsetHeight*5,U),se=window.getComputedStyle(C),de=parseInt(se.paddingTop,10),pe=parseInt(se.paddingBottom,10),$=_.top+_.height/2-G,le=M-$,Q=v.offsetHeight/2,y=v.offsetTop+Q,P=K+z+y,j=U-P;if(P<=$){const T=v===k[k.length-1].ref.current;c.style.bottom="0px";const E=m.clientHeight-C.offsetTop-C.offsetHeight,ee=Math.max(le,Q+(T?pe:0)+E+B),te=P+ee;c.style.height=`${te}px`}else{const T=v===k[0].ref.current;c.style.top="0px";const ee=Math.max($,K+C.offsetTop+(T?de:0)+Q)+j;c.style.height=`${ee}px`,C.scrollTop=P-$+C.offsetTop}c.style.margin=`${G}px 0`,c.style.minHeight=`${ue}px`,c.style.maxHeight=`${M}px`,t?.(),requestAnimationFrame(()=>d.current=!0)}},[f,r.trigger,r.valueNode,c,m,C,v,b,r.dir,t]);F.useLayoutEffect(()=>I(),[I]);const[V,O]=s.useState();F.useLayoutEffect(()=>{m&&O(window.getComputedStyle(m).zIndex)},[m]);const N=s.useCallback(_=>{_&&h.current===!0&&(I(),x?.(),h.current=!1)},[I,x]);return u.jsx(Do,{scope:e,contentWrapper:c,shouldExpandOnScrollRef:d,onScrollButtonChange:N,children:u.jsx("div",{ref:a,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:V},children:u.jsx(R.Primitive.div,{...n,ref:g,style:{boxSizing:"border-box",maxHeight:"100%",...n.style}})})})});Ft.displayName=Mo;const jo="SelectPopperPosition",Re=s.forwardRef((o,l)=>{const{__scopeSelect:e,align:t="start",collisionPadding:n=G,...r}=o,i=Se(e);return u.jsx(re.Content,{...i,...r,ref:l,align:t,collisionPadding:n,style:{boxSizing:"border-box",...r.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)"}})});Re.displayName=jo;const[Do,ze]=ae(oe,{}),Ne="SelectViewport",Ge=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=J(Ne,e),r=ze(Ne,e),i=A.useComposedRefs(l,n.onViewportChange),c=s.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(ye.Slot,{scope:e,children:u.jsx(R.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...t,ref:i,style:{position:"relative",flex:1,overflow:"auto",...t.style},onScroll:w.composeEventHandlers(t.onScroll,a=>{const m=a.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=r;if(g?.current&&p){const f=Math.abs(c.current-m.scrollTop);if(f>0){const d=window.innerHeight-G*2,h=parseFloat(p.style.minHeight),C=parseFloat(p.style.height),v=Math.max(h,C);if(v<d){const b=v+f,x=Math.min(d,b),I=b-x;p.style.height=`${x}px`,p.style.bottom==="0px"&&(m.scrollTop=I>0?I:0,p.style.justifyContent="flex-end")}}}c.current=m.scrollTop})})})]})});Ge.displayName=Ne;const kt="SelectGroup",[Lo,Fo]=ae(kt),Ye=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=ne.useId();return u.jsx(Lo,{scope:e,id:n,children:u.jsx(R.Primitive.div,{role:"group","aria-labelledby":n,...t,ref:l})})});Ye.displayName=kt;const Ht="SelectLabel",Xe=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Fo(Ht,e);return u.jsx(R.Primitive.div,{id:n.id,...t,ref:l})});Xe.displayName=Ht;const ge="SelectItem",[ko,Bt]=ae(ge),Ze=s.forwardRef((o,l)=>{const{__scopeSelect:e,value:t,disabled:n=!1,textValue:r,...i}=o,c=Y(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)),[g,f]=s.useState(r??""),[d,h]=s.useState(!1),C=A.useComposedRefs(l,x=>a.itemRefCallback?.(x,t,n)),v=ne.useId(),b=()=>{if(!n){let x=c.multi&&typeof t=="string"?[t]:t;p&&!m?c.onValueChange(x):Array.isArray(c.value)&&(x=qt(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(ko,{scope:e,value:t,disabled:n,textId:v,isSelected:m,isIntermediate:p,onItemTextChange:s.useCallback(x=>{f(I=>I||(x?.textContent??"").trim())},[]),children:u.jsx(ye.ItemSlot,{scope:e,value:t,disabled:n,textValue:g,children:u.jsx(R.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:C,onFocus:w.composeEventHandlers(i.onFocus,()=>h(!0)),onBlur:w.composeEventHandlers(i.onBlur,()=>h(!1)),onPointerUp:w.composeEventHandlers(i.onPointerUp,b),onPointerMove:w.composeEventHandlers(i.onPointerMove,x=>{n?a.onItemLeave?.():x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:w.composeEventHandlers(i.onPointerLeave,x=>{x.currentTarget===document.activeElement&&a.onItemLeave?.()}),onKeyDown:w.composeEventHandlers(i.onKeyDown,x=>{a.searchRef?.current!==""&&x.key===" "||(To.includes(x.key)&&b(),x.key===" "&&x.preventDefault())})})})})});Ze.displayName=ge;const fe="SelectItemText",Je=s.forwardRef((o,l)=>{const{__scopeSelect:e,className:t,style:n,...r}=o,i=Y(fe,e),c=J(fe,e),a=Bt(fe,e),m=No(fe,e),[p,g]=s.useState(null),f=A.useComposedRefs(l,b=>g(b),a.onItemTextChange,b=>c.itemTextRefCallback?.(b,a.value,a.disabled)),d=p?.textContent,h=s.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:C,onNativeOptionRemove:v}=m;return F.useLayoutEffect(()=>(C(h),()=>v(h)),[C,v,h]),u.jsxs(u.Fragment,{children:[u.jsx(R.Primitive.span,{id:a.textId,...r,ref:f}),a.isSelected&&i.valueNode&&!i.valueNodeHasChildren?Ce.createPortal(r.children,i.valueNode):null]})});Je.displayName=fe;const Ut="SelectItemIndicator",Qe=s.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,...n}=o,r=Bt(Ut,e);return typeof t=="function"?u.jsx(R.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t({isSelected:r.isSelected,isIntermediate:r.isIntermediate})}):r.isSelected?u.jsx(R.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t}):null});Qe.displayName=Ut;const _e="SelectScrollUpButton",et=s.forwardRef((o,l)=>{const e=J(_e,o.__scopeSelect),t=ze(_e,o.__scopeSelect),[n,r]=s.useState(!1),i=A.useComposedRefs(l,t.onScrollButtonChange);return F.useLayoutEffect(()=>{if(e.viewport&&e.isPositioned){const c=e.viewport,a=()=>{const m=c.scrollTop>0;r(m)};return a(),c.addEventListener("scroll",a),()=>c.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),n?u.jsx(ot,{...o,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=e;c&&a&&(c.scrollTop-=a.offsetHeight)}}):null});et.displayName=_e;const Ae="SelectScrollDownButton",tt=s.forwardRef((o,l)=>{const e=J(Ae,o.__scopeSelect),t=ze(Ae,o.__scopeSelect),[n,r]=s.useState(!1),i=A.useComposedRefs(l,t.onScrollButtonChange);return F.useLayoutEffect(()=>{if(e.viewport&&e.isPositioned){const c=e.viewport,a=()=>{const m=c.scrollHeight-c.clientHeight,p=Math.ceil(c.scrollTop)<m;r(p)};return a(),c.addEventListener("scroll",a),()=>c.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),n?u.jsx(ot,{...o,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=e;c&&a&&(c.scrollTop+=a.offsetHeight)}}):null});tt.displayName=Ae;const ot=s.forwardRef((o,l)=>{const{__scopeSelect:e,onAutoScroll:t,...n}=o,r=J("SelectScrollButton",e),i=s.useRef(null),c=xe(e),a=s.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return s.useEffect(()=>()=>a(),[a]),F.useLayoutEffect(()=>{c().find(p=>p.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),u.jsx(R.Primitive.div,{"aria-hidden":!0,...n,ref:l,style:{flexShrink:0,...n.style},onPointerMove:w.composeEventHandlers(n.onPointerMove,()=>{r.onItemLeave?.(),i.current===null&&(i.current=window.setInterval(t,50))}),onPointerLeave:w.composeEventHandlers(n.onPointerLeave,()=>{a()})})});ot.displayName="SelectScrollButtonImpl";const Ho="SelectSeparator",nt=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o;return u.jsx(R.Primitive.div,{"aria-hidden":!0,...t,ref:l})});nt.displayName=Ho;const Oe="SelectArrow",rt=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Se(e),r=Y(Oe,e),i=J(Oe,e);return r.open&&i.position==="popper"?u.jsx(re.Arrow,{...n,...t,ref:l}):null});rt.displayName=Oe;const Bo="BubbleSelect",Uo=s.forwardRef((o,l)=>{const{value:e,...t}=o,n=s.useRef(null),r=A.useComposedRefs(l,n),i=Xt.usePrevious(e),c=Y(Bo,void 0);s.useEffect(()=>{const m=n.current,p=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(p,"value").set;if(i!==e&&f){const d=new Event("change",{bubbles:!0});f.call(m,e),m.dispatchEvent(d)}},[i,e]);let a=e;return c.multi&&!Array.isArray(e)&&(a=[]),u.jsx(Zt.VisuallyHidden,{asChild:!0,children:u.jsx("select",{...t,multiple:c.multi?!0:void 0,ref:r,defaultValue:a})})});Uo.displayName="BubbleSelect";function $t(o){const l=ft.useCallbackRef(o),e=s.useRef(""),t=s.useRef(0),n=s.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]),r=s.useCallback(()=>{e.current="",window.clearTimeout(t.current)},[]);return s.useEffect(()=>()=>window.clearTimeout(t.current),[]),[e,n,r]}function Wt(o,l,e){const n=l.length>1&&Array.from(l).every(m=>m===l[0])?l[0]:l,r=e?o.indexOf(e):-1;let i=$o(o,Math.max(r,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 $o(o,l){return o.map((e,t)=>o[(l+t)%o.length])}const qt=(o,l=[])=>{if(Array.isArray(o))return o.reduce((t,n)=>qt(n,t),l);const e=l.indexOf(o);return e===-1?[...l,o]:[...l.slice(0,e),...l.slice(e+1)]},Wo=Be,qo=Ue,Ko=$e,zo=We,Go=qe,Yo=Ke,Xo=Ge,Zo=Ye,Jo=Xe,Qo=Ze,en=Je,tn=Qe,on=et,nn=tt,rn=nt,sn=rt,ln=Object.freeze(Object.defineProperty({__proto__:null,Arrow:sn,Content:Yo,Group:Zo,Icon:zo,Item:Qo,ItemIndicator:tn,ItemText:en,Label:Jo,Portal:Go,Root:Wo,ScrollDownButton:nn,ScrollUpButton:on,Select:Be,SelectArrow:rt,SelectContent:Ke,SelectGroup:Ye,SelectIcon:We,SelectItem:Ze,SelectItemIndicator:Qe,SelectItemText:Je,SelectLabel:Xe,SelectPortal:qe,SelectScrollDownButton:tt,SelectScrollUpButton:et,SelectSeparator:nt,SelectTrigger:Ue,SelectValue:$e,SelectViewport:Ge,Separator:rn,Trigger:qo,Value:Ko,Viewport:Xo,createSelectScope:Eo},Symbol.toStringTag,{value:"Module"}));Object.defineProperty(exports,"composeEventHandlers",{enumerable:!0,get:()=>w.composeEventHandlers});Object.defineProperty(exports,"useCallbackRef",{enumerable:!0,get:()=>ft.useCallbackRef});exports.Combobox=Io;exports.Select=ln;exports.createCollection=mt;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),zt=require("react"),A=require("@radix-ui/react-compose-refs"),ve=require("@radix-ui/react-context"),Ve=require("@radix-ui/react-slot"),w=require("@radix-ui/primitive"),ct=require("@radix-ui/react-dismissable-layer"),it=require("@radix-ui/react-focus-guards"),at=require("@radix-ui/react-focus-scope"),ne=require("@radix-ui/react-id"),je=require("@radix-ui/react-popper"),ut=require("@radix-ui/react-portal"),R=require("@radix-ui/react-primitive"),ce=require("@radix-ui/react-use-controllable-state"),F=require("@radix-ui/react-use-layout-effect"),dt=require("aria-hidden"),Gt=require("react-dom"),pt=require("react-remove-scroll"),st=require("@radix-ui/number"),Yt=require("@radix-ui/react-collection"),Xt=require("@radix-ui/react-direction"),Zt=require("@radix-ui/react-use-previous"),Jt=require("@radix-ui/react-visually-hidden"),ft=require("@radix-ui/react-use-callback-ref");function De(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 s=De(zt),re=De(je),Ce=De(Gt);function mt(o){const l=`${o}CollectionProvider`,[e,t]=ve.createContextScope(l),[n,r]=e(l,{collectionRef:{current:null},itemMap:new Map,listeners:new Set}),i=d=>{const{scope:h,children:C}=d,v=s.useRef(null),b=s.useRef(new Map).current,x=s.useRef(new Set).current;return u.jsx(n,{scope:h,itemMap:b,collectionRef:v,listeners:x,children:C})};i.displayName=l;const c=`${o}CollectionSlot`,a=s.forwardRef((d,h)=>{const{scope:C,children:v}=d,b=r(c,C),x=A.useComposedRefs(h,b.collectionRef);return u.jsx(Ve.Slot,{ref:x,children:v})});a.displayName=c;const m=`${o}CollectionItemSlot`,p="data-radix-collection-item",g=s.forwardRef((d,h)=>{const{scope:C,children:v,...b}=d,x=s.useRef(null),I=A.useComposedRefs(h,x),V=r(m,C);return s.useEffect(()=>{const O=Array.from(V.itemMap.values());return V.itemMap.set(x,{ref:x,...b}),V.listeners.forEach(N=>N(Array.from(V.itemMap.values()),O)),()=>{const N=Array.from(V.itemMap.values());V.itemMap.delete(x),V.listeners.forEach(_=>_(Array.from(V.itemMap.values()),N))}}),u.jsx(Ve.Slot,{[p]:"",ref:I,children:v})});g.displayName=m;function f(d){const h=r(`${o}CollectionConsumer`,d),C=s.useCallback(()=>{const b=h.collectionRef.current;if(!b)return[];const x=Array.from(b.querySelectorAll(`[${p}]`));return Array.from(h.itemMap.values()).sort((O,N)=>x.indexOf(O.ref.current)-x.indexOf(N.ref.current))},[h.collectionRef,h.itemMap]),v=s.useCallback(b=>(h.listeners.add(b),()=>h.listeners.delete(b)),[h.listeners]);return{getItems:C,subscribe:v}}return[{Provider:i,Slot:a,ItemSlot:g},f,t]}const Ee=new Map;function ht(o,l){const e=o+(l?Object.entries(l).sort((n,r)=>n[0]<r[0]?-1:1).join():"");if(Ee.has(e))return Ee.get(e);const t=new Intl.Collator(o,l);return Ee.set(e,t),t}function be(o,l){const e=ht(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 r=0;const i=n.length;for(;r+i<=t.length;r++){const c=t.slice(r,r+i);if(e.compare(n,c)===0)return!0}return!1}}}const Qt=o=>{const l=s.useRef();return s.useEffect(()=>{l.current=o}),l.current},eo=[" ","Enter","ArrowUp","ArrowDown"],to=["Enter"],oo=o=>!!(o.length===1&&o.match(/\S| /)),xt="Combobox",[ie,me]=mt(xt),[no,W]=ve.createContext(xt),ro=({children:o})=>u.jsx(re.Root,{children:u.jsx(ie.Provider,{scope:void 0,children:o})}),so=o=>typeof o=="string"?o==="none"?{type:o,filter:void 0}:{type:o,filter:"startsWith"}:o,lo=o=>{const{allowCustomValue:l=!1,autocomplete:e="none",children:t,open:n,defaultOpen:r,onOpenChange:i,value:c,defaultValue:a,onValueChange:m,disabled:p,required:g=!1,locale:f="en-EN",onTextValueChange:d,textValue:h,defaultTextValue:C,filterValue:v,defaultFilterValue:b,onFilterValueChange:x,isPrintableCharacter:I=oo}=o,[V,O]=s.useState(null),[N,_]=s.useState(null),[D,X]=s.useState(null),[q,k]=s.useState(null),[M=!1,H]=ce.useControllableState({prop:n,defaultProp:r,onChange:i}),[L,K]=ce.useControllableState({prop:c,defaultProp:a,onChange:m}),[z,B]=ce.useControllableState({prop:h,defaultProp:l&&!C?c:C,onChange:d}),[Z,U]=ce.useControllableState({prop:v,defaultProp:b,onChange:x}),ue=ne.useId(),se=s.useCallback((pe,$)=>{const le=$.map(S=>S.ref.current),[Q,...y]=le,[P]=y.slice(-1),j=q??$.find(S=>S.value===L)?.ref.current;for(const S of pe){if(S===j)return;if(S?.scrollIntoView({block:"nearest"}),S===Q&&N&&(N.scrollTop=0),S===P&&N&&(N.scrollTop=N.scrollHeight),k(S),e==="both"){const T=$.find(E=>E.ref.current===S);T&&B(T.textValue)}if(S!==j)return}},[e,B,N,q,L]),de=so(e);return s.useEffect(()=>{e!=="both"&&k(null)},[z,e]),s.useEffect(()=>{if(D&&V)return dt.hideOthers([D,V])},[D,V]),u.jsx(ro,{children:u.jsx(no,{allowCustomValue:l,autocomplete:de,required:g,trigger:V,onTriggerChange:O,contentId:ue,value:L,onValueChange:K,open:M,onOpenChange:H,disabled:p,locale:f,focusFirst:se,textValue:z,onTextValueChange:B,onViewportChange:_,onContentChange:X,visuallyFocussedItem:q,filterValue:Z,onFilterValueChange:U,onVisuallyFocussedItemChange:k,isPrintableCharacter:I,children:t})})},gt="ComboboxTrigger",vt=s.forwardRef((o,l)=>{const{...e}=o,t=W(gt),n=()=>{t.disabled||t.onOpenChange(!0)};return u.jsx(re.Anchor,{asChild:!0,children:u.jsx(at.FocusScope,{asChild:!0,trapped:t.open,onMountAutoFocus:r=>{r.preventDefault()},onUnmountAutoFocus:r=>{t.trigger?.focus({preventScroll:!0}),document.getSelection()?.empty(),r.preventDefault()},children:u.jsx("div",{ref:l,"data-disabled":t.disabled?"":void 0,...e,onClick:w.composeEventHandlers(e.onClick,()=>{t.trigger?.focus()}),onPointerDown:w.composeEventHandlers(e.onPointerDown,r=>{const i=r.target;i.hasPointerCapture(r.pointerId)&&i.releasePointerCapture(r.pointerId),(i.closest("button")??i.closest("div"))===r.currentTarget&&r.button===0&&r.ctrlKey===!1&&(n(),t.trigger?.focus())})})})})});vt.displayName=gt;const Ct="ComboboxInput",bt=s.forwardRef((o,l)=>{const e=W(Ct),t=s.useRef(null),{getItems:n}=me(void 0),{startsWith:r}=be(e.locale,{sensitivity:"base"}),i=e.disabled,c=A.useComposedRefs(t,l,e.onTriggerChange),a=()=>{i||e.onOpenChange(!0)},m=Qt(e.filterValue);return F.useLayoutEffect(()=>{const p=setTimeout(()=>{if(e.textValue===""||e.textValue===void 0||e.filterValue===""||e.filterValue===void 0)return;const g=n().find(d=>d.type==="option"&&r(d.textValue,e.textValue)),f=So(m??"",e.filterValue);g&&!e.visuallyFocussedItem&&f===e.filterValue.length&&t.current?.setSelectionRange(e.filterValue.length,e.textValue.length)});return()=>clearTimeout(p)},[e.textValue,e.filterValue,r,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.type,"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,onKeyDown:w.composeEventHandlers(o.onKeyDown,p=>{if(["ArrowUp","ArrowDown","Home","End"].includes(p.key))e.open||a(),setTimeout(()=>{let f=n().filter(d=>!d.disabled&&d.isVisible).map(d=>d.ref.current);if(["ArrowUp","End"].includes(p.key)&&(f=f.slice().reverse()),["ArrowUp","ArrowDown"].includes(p.key)){const d=e.visuallyFocussedItem??n().find(h=>h.value===e.value)?.ref.current;if(d){let h=f.indexOf(d);h===f.length-1&&(h=-1),f=f.slice(h+1)}}if(["ArrowDown"].includes(p.key)&&e.autocomplete.type==="both"&&f.length>1){const[d,...h]=f,C=n().find(v=>v.ref.current===d).textValue;e.textValue===C&&(f=h)}e.focusFirst(f,n())}),p.preventDefault();else if(["Tab"].includes(p.key)&&e.open)p.preventDefault();else if(["Escape"].includes(p.key))e.open?e.onOpenChange(!1):(e.onValueChange(void 0),e.onTextValueChange("")),p.preventDefault();else if(to.includes(p.key)){if(e.visuallyFocussedItem){const g=n().find(f=>f.ref.current===e.visuallyFocussedItem);g&&(e.onValueChange(g.value),e.onTextValueChange(g.textValue),e.autocomplete.type==="both"&&e.onFilterValueChange(g.textValue),g.ref.current?.click())}else{const g=n().find(f=>f.type==="option"&&!f.disabled&&f.textValue===e.textValue);g&&(e.onValueChange(g.value),e.onTextValueChange(g.textValue),e.autocomplete.type==="both"&&e.onFilterValueChange(g.textValue),g.ref.current?.click())}e.onOpenChange(!1),p.preventDefault()}else e.onVisuallyFocussedItemChange(null)}),onChange:w.composeEventHandlers(o.onChange,p=>{e.onTextValueChange(p.currentTarget.value),e.autocomplete.type==="both"&&e.onFilterValueChange(p.currentTarget.value)}),onKeyUp:w.composeEventHandlers(o.onKeyUp,p=>{if(!e.open&&(e.isPrintableCharacter(p.key)||["Backspace"].includes(p.key))&&a(),setTimeout(()=>{if(e.autocomplete.type==="both"&&e.isPrintableCharacter(p.key)&&e.filterValue!==void 0){const g=e.filterValue,f=n().find(d=>r(d.textValue,g));f&&e.onTextValueChange(f.textValue)}}),e.autocomplete.type==="none"&&e.isPrintableCharacter(p.key)){const g=e.textValue??"",f=n().find(d=>r(d.textValue,g));f&&(e.onVisuallyFocussedItemChange(f.ref.current),f.ref.current?.scrollIntoView())}}),onBlur:w.composeEventHandlers(o.onBlur,()=>{if(e.open)return;e.onVisuallyFocussedItemChange(null);const[p]=n().filter(f=>f.textValue===e.textValue&&f.type==="option");if(p){e.onValueChange(p.value),e.autocomplete.type==="both"&&e.onFilterValueChange(p.textValue);return}if(e.allowCustomValue){e.onValueChange(e.textValue),e.autocomplete.type==="both"&&e.onFilterValueChange(e.textValue);return}const[g]=n().filter(f=>f.value===e.value&&f.type==="option");g&&e.textValue!==""?(e.onTextValueChange(g.textValue),e.autocomplete.type==="both"&&e.onFilterValueChange(g.textValue)):(e.onValueChange(void 0),e.onTextValueChange(""))})})});bt.displayName="ComboboxTextInput";const yt=s.forwardRef((o,l)=>{const{children:e,...t}=o,n=W(Ct),r=n.disabled,i=()=>{r||(n.onOpenChange(!0),n.trigger?.focus())};return u.jsx(R.Primitive.button,{"aria-hidden":!0,type:"button","aria-disabled":r,"aria-controls":n.contentId,"aria-expanded":n.open,disabled:r,"data-disabled":r?"":void 0,...t,tabIndex:-1,ref:l,onClick:w.composeEventHandlers(t.onClick,()=>{n.trigger?.focus()}),onPointerDown:w.composeEventHandlers(t.onPointerDown,c=>{c.button===0&&c.ctrlKey===!1&&(i(),c.preventDefault())}),onKeyDown:w.composeEventHandlers(t.onKeyDown,c=>{eo.includes(c.key)&&(i(),c.preventDefault())}),children:e||"▼"})});yt.displayName="ComboboxIcon";const co="ComboboxPortal",St=o=>u.jsx(ut.Portal,{asChild:!0,...o});St.displayName=co;const Le="ComboboxContent",It=s.forwardRef((o,l)=>{const e=W(Le),{getItems:t}=me(void 0),[n,r]=s.useState();if(F.useLayoutEffect(()=>{r(new DocumentFragment)},[]),F.useLayoutEffect(()=>{e.open&&e.autocomplete.type==="none"&&setTimeout(()=>{t().find(c=>c.value===e.value)?.ref.current?.scrollIntoView({block:"nearest"})})},[t,e.autocomplete,e.value,e.open]),!e.open){const i=n;return i?Ce.createPortal(u.jsx(ie.Slot,{scope:void 0,children:u.jsx("div",{children:o.children})}),i):null}return u.jsx(wt,{...o,ref:l})});It.displayName=Le;const io=10,wt=s.forwardRef((o,l)=>{const{onEscapeKeyDown:e,onPointerDownOutside:t,...n}=o,r=W(Le),i=A.useComposedRefs(l,a=>r.onContentChange(a)),{onOpenChange:c}=r;return it.useFocusGuards(),s.useEffect(()=>{const a=()=>{c(!1)};return window.addEventListener("blur",a),window.addEventListener("resize",a),()=>{window.removeEventListener("blur",a),window.removeEventListener("resize",a)}},[c]),u.jsx(pt.RemoveScroll,{allowPinchZoom:!0,children:u.jsx(ct.DismissableLayer,{asChild:!0,onEscapeKeyDown:e,onPointerDownOutside:t,onFocusOutside:a=>{a.preventDefault()},onDismiss:()=>{r.onOpenChange(!1),r.trigger?.focus({preventScroll:!0})},children:u.jsx(Tt,{role:"listbox",id:r.contentId,"data-state":r.open?"open":"closed",onContextMenu:a=>a.preventDefault(),...n,ref:i,style:{display:"flex",flexDirection:"column",outline:"none",...n.style}})})})});wt.displayName="ComboboxContentImpl";const Tt=s.forwardRef((o,l)=>{const{align:e="start",collisionPadding:t=io,...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)"}})});Tt.displayName="ComboboxPopperPosition";const Pt="ComboboxViewport",Et=s.forwardRef((o,l)=>{const e=W(Pt),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(ie.Slot,{scope:void 0,children:u.jsx(R.Primitive.div,{"data-radix-combobox-viewport":"",role:"presentation",...o,ref:t,style:{position:"relative",flex:1,overflow:"auto",...o.style}})})]})});Et.displayName=Pt;const ye="ComboboxItem",[lt,Fe]=ve.createContext(ye),ke=s.forwardRef((o,l)=>{const{value:e,disabled:t=!1,textValue:n,...r}=o,[i,c]=s.useState();F.useLayoutEffect(()=>{c(new DocumentFragment)},[]);const{onTextValueChange:a,textValue:m,...p}=W(ye),g=ne.useId(),[f,d]=s.useState(n??""),h=p.value===e,{startsWith:C,contains:v}=be(p.locale,{sensitivity:"base"}),b=s.useCallback(x=>{d(I=>I||(x?.textContent??"").trim())},[]);return s.useEffect(()=>{h&&m===void 0&&f!==""&&a(f)},[f,h,m,a]),p.autocomplete.type==="both"&&f&&p.filterValue&&!C(f,p.filterValue)||p.autocomplete.type==="list"&&p.autocomplete.filter==="startsWith"&&f&&m&&!C(f,m)||p.autocomplete.type==="list"&&p.autocomplete.filter==="contains"&&f&&m&&!v(f,m)?i?Ce.createPortal(u.jsx(lt,{textId:g,onTextValueChange:b,isSelected:h,textValue:f,children:u.jsx(ie.ItemSlot,{scope:void 0,value:e,textValue:f,disabled:t,type:"option",isVisible:!1,children:u.jsx(Re,{ref:l,value:e,disabled:t,...r})})}),i):null:u.jsx(lt,{textId:g,onTextValueChange:b,isSelected:h,textValue:f,children:u.jsx(ie.ItemSlot,{scope:void 0,value:e,textValue:f,disabled:t,type:"option",isVisible:!0,children:u.jsx(Re,{ref:l,value:e,disabled:t,...r})})})});ke.displayName=ye;const Vt="ComboboxItemImpl",Re=s.forwardRef((o,l)=>{const{value:e,disabled:t=!1,...n}=o,r=s.useRef(null),i=A.useComposedRefs(l,r),{getItems:c}=me(void 0),{onTextValueChange:a,visuallyFocussedItem:m,...p}=W(ye),{isSelected:g,textValue:f,textId:d}=Fe(Vt),h=()=>{t||(p.onValueChange(e),a(f),p.onOpenChange(!1),p.autocomplete.type==="both"&&p.onFilterValueChange(f),p.trigger?.focus({preventScroll:!0}))},C=s.useMemo(()=>m===c().find(b=>b.ref.current===r.current)?.ref.current,[c,m]),v=ne.useId();return u.jsx(R.Primitive.div,{role:"option","aria-labelledby":d,"data-highlighted":C?"":void 0,"aria-selected":g&&C,"data-state":g?"checked":"unchecked","aria-disabled":t||void 0,"data-disabled":t?"":void 0,tabIndex:t?void 0:-1,...n,id:v,ref:i,onPointerUp:w.composeEventHandlers(n.onPointerUp,h)})});Re.displayName=Vt;const Rt="ComboboxItemText",Nt=s.forwardRef((o,l)=>{const{className:e,style:t,...n}=o,r=Fe(Rt),i=A.useComposedRefs(l,r.onTextValueChange);return u.jsx(R.Primitive.span,{id:r.textId,...n,ref:i})});Nt.displayName=Rt;const _t="ComboboxItemIndicator",At=s.forwardRef((o,l)=>{const{isSelected:e}=Fe(_t);return e?u.jsx(R.Primitive.span,{"aria-hidden":!0,...o,ref:l}):null});At.displayName=_t;const He="ComboboxNoValueFound",Ot=s.forwardRef((o,l)=>{const{textValue:e="",filterValue:t="",locale:n,autocomplete:r}=W(He),[i,c]=s.useState([]),{subscribe:a}=me(void 0),{startsWith:m,contains:p}=be(n,{sensitivity:"base"});return s.useEffect(()=>{const g=a(f=>{c(f)});return()=>{g()}},[a]),i.length===0||r.type==="none"||r.type==="list"&&r.filter==="startsWith"&&i.some(g=>m(g.textValue,e))||r.type==="both"&&i.some(g=>m(g.textValue,t))||r.type==="list"&&r.filter==="contains"&&i.some(g=>p(g.textValue,e))?null:u.jsx(R.Primitive.div,{...o,ref:l})});Ot.displayName=He;const Mt=s.forwardRef((o,l)=>{const{disabled:e=!1,...t}=o,n=W(He),{textValue:r,visuallyFocussedItem:i}=n,{getItems:c,subscribe:a}=me(void 0),m=s.useRef(null),[p,g]=s.useState(!1),f=A.useComposedRefs(l,m),d=s.useMemo(()=>i===c().find(v=>v.ref.current===m.current)?.ref.current,[c,i]),h=ne.useId(),C=()=>{!e&&r&&(n.onValueChange(r),n.onTextValueChange(r),n.onOpenChange(!1),n.autocomplete.type==="both"&&n.onFilterValueChange(r),n.trigger?.focus({preventScroll:!0}))};return F.useLayoutEffect(()=>{const v=a(b=>{g(!b.some(x=>x.textValue===r&&x.type!=="create"))});return c().length===0&&g(!0),()=>{v()}},[r,a,c]),!r||!p?null:u.jsx(ie.ItemSlot,{scope:void 0,value:r??"",textValue:r??"",disabled:e,isVisible:!0,type:"create",children:u.jsx(R.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:h,ref:f,onPointerUp:w.composeEventHandlers(t.onPointerUp,C)})})});Mt.displayName="ComboboxCreateItem";const ao=lo,uo=vt,po=bt,fo=yt,mo=St,ho=It,xo=Et,go=ke,vo=Nt,Co=At,bo=Ot,yo=Mt;function So(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 Io=Object.freeze(Object.defineProperty({__proto__:null,ComboboxItem:ke,Content:ho,CreateItem:yo,Icon:fo,Item:go,ItemIndicator:Co,ItemText:vo,NoValueFound:bo,Portal:mo,Root:ao,TextInput:po,Trigger:uo,Viewport:xo},Symbol.toStringTag,{value:"Module"})),wo=[" ","Enter","ArrowUp","ArrowDown"],To=[" ","Enter"],he="Select",[Se,xe,Po]=Yt.createCollection(he),[ae,Eo]=ve.createContextScope(he,[Po,je.createPopperScope]),Ie=je.createPopperScope(),[Vo,Y]=ae(he),[Ro,No]=ae(he),Be=o=>{const{__scopeSelect:l,children:e,open:t,defaultOpen:n,onOpenChange:r,value:i,defaultValue:c,onValueChange:a,dir:m,disabled:p,required:g,multi:f=!1}=o,d=Ie(l),[h,C]=s.useState(null),[v,b]=s.useState(null),[x,I]=s.useState(!1),V=Xt.useDirection(m),[O=!1,N]=ce.useControllableState({prop:t,defaultProp:n,onChange:r}),[_,D]=ce.useControllableState({prop:i,defaultProp:c,onChange(M){a&&(Array.isArray(M),a(M))}}),X=s.useRef(null),[q,k]=s.useState(new Set);return u.jsx(re.Root,{...d,children:u.jsx(Vo,{required:g,scope:l,trigger:h,onTriggerChange:C,valueNode:v,onValueNodeChange:b,valueNodeHasChildren:x,onValueNodeHasChildrenChange:I,contentId:ne.useId(),value:_,onValueChange:D,open:O,onOpenChange:N,dir:V,triggerPointerDownPosRef:X,disabled:p,multi:f,children:u.jsx(Se.Provider,{scope:l,children:u.jsx(Ro,{scope:o.__scopeSelect,onNativeOptionAdd:s.useCallback(M=>{k(H=>new Set(H).add(M))},[]),onNativeOptionRemove:s.useCallback(M=>{k(H=>{const L=new Set(H);return L.delete(M),L})},[]),children:e})})})})};Be.displayName=he;const jt="SelectTrigger",Ue=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Ie(e),r=Y(jt,e),i=r.disabled,c=A.useComposedRefs(l,r.onTriggerChange),a=xe(e),[m,p,g]=Wt(d=>{const h=a().filter(b=>!b.disabled),C=h.find(b=>b.value===r.value),v=qt(h,d,C);if(v!==void 0&&!Array.isArray(v.value)){const b=r.multi?[v.value]:v.value;r.onValueChange(b)}}),f=()=>{i||(r.onOpenChange(!0),g())};return u.jsx(re.Anchor,{asChild:!0,...n,children:u.jsx(R.Primitive.div,{role:"combobox","aria-controls":r.contentId,"aria-expanded":r.open,"aria-required":r.required,"aria-autocomplete":"none",dir:r.dir,"data-state":r.open?"open":"closed","data-disabled":i?"":void 0,"data-placeholder":r.value===void 0?"":void 0,tabIndex:i?void 0:0,...t,ref:c,onClick:w.composeEventHandlers(t.onClick,d=>{d.currentTarget.focus()}),onPointerDown:w.composeEventHandlers(t.onPointerDown,d=>{const h=d.target;h.hasPointerCapture(d.pointerId)&&h.releasePointerCapture(d.pointerId),(h.closest("button")??h.closest("div"))===d.currentTarget&&d.button===0&&d.ctrlKey===!1&&(f(),r.triggerPointerDownPosRef.current={x:Math.round(d.pageX),y:Math.round(d.pageY)},d.preventDefault())}),onKeyDown:w.composeEventHandlers(t.onKeyDown,d=>{const h=m.current!=="",C=d.ctrlKey||d.altKey||d.metaKey,v=d.target;(v.closest("button")??v.closest("div"))===d.currentTarget&&(!C&&d.key.length===1&&p(d.key),!(h&&d.key===" ")&&wo.includes(d.key)&&(f(),d.preventDefault()))})})})});Ue.displayName=jt;const Dt="SelectValue",$e=s.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,placeholder:n,...r}=o,i=Y(Dt,e),{onValueNodeHasChildrenChange:c}=i,a=t!==void 0,m=A.useComposedRefs(l,i.onValueNodeChange),[p,g]=s.useState([]),f=xe(e);F.useLayoutEffect(()=>{c(a)},[c,a]),s.useLayoutEffect(()=>{if(Array.isArray(i.value)&&p.length!==i.value.length){const h=setTimeout(()=>{const C=f().filter(v=>Array.isArray(v.value)?!1:i.value?.includes(v.value));g(C)});return()=>{clearTimeout(h)}}},[i.value,f,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 h=i.value.map(C=>{const v=p.find(b=>b.value===C);return v?t({value:C,textValue:v?.textValue}):null});d=h.every(C=>C===null)?n:h}else d=t(i.value);else d=t;return u.jsx(R.Primitive.span,{...r,ref:m,children:d||null})});$e.displayName=Dt;const _o="SelectIcon",We=s.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,...n}=o;return u.jsx(R.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t||"▼"})});We.displayName=_o;const Ao="SelectPortal",qe=o=>u.jsx(ut.Portal,{asChild:!0,...o});qe.displayName=Ao;const oe="SelectContent",Ke=s.forwardRef((o,l)=>{const e=Y(oe,o.__scopeSelect),[t,n]=s.useState();if(F.useLayoutEffect(()=>{n(new DocumentFragment)},[]),!e.open){const r=t;return r?Ce.createPortal(u.jsx(Lt,{scope:o.__scopeSelect,children:u.jsx(Se.Slot,{scope:o.__scopeSelect,children:u.jsx("div",{children:o.children})})}),r):null}return u.jsx(Ft,{...o,ref:l})});Ke.displayName=oe;const G=10,[Lt,J]=ae(oe),Oo="SelectContentImpl",Ft=s.forwardRef((o,l)=>{const{__scopeSelect:e,position:t="item-aligned",onCloseAutoFocus:n,onEscapeKeyDown:r,onPointerDownOutside:i,side:c,sideOffset:a,align:m,alignOffset:p,arrowPadding:g,collisionBoundary:f,collisionPadding:d,sticky:h,hideWhenDetached:C,avoidCollisions:v,...b}=o,x=Y(oe,e),[I,V]=s.useState(null),[O,N]=s.useState(null),_=A.useComposedRefs(l,y=>V(y)),[D,X]=s.useState(null),[q,k]=s.useState(null),M=xe(e),[H,L]=s.useState(!1),K=s.useRef(!1);s.useEffect(()=>{if(I)return dt.hideOthers(I)},[I]),it.useFocusGuards();const z=s.useCallback(y=>{const[P,...j]=M().map(E=>E.ref.current),[S]=j.slice(-1),T=document.activeElement;for(const E of y)if(E===T||(E?.scrollIntoView({block:"nearest"}),E===P&&O&&(O.scrollTop=0),E===S&&O&&(O.scrollTop=O.scrollHeight),E?.focus(),document.activeElement!==T))return},[M,O]),B=s.useCallback(()=>z([D,I]),[z,D,I]);s.useEffect(()=>{H&&B()},[H,B]);const{onOpenChange:Z,triggerPointerDownPosRef:U}=x;s.useEffect(()=>{if(I){let y={x:0,y:0};const P=S=>{y={x:Math.abs(Math.round(S.pageX)-(U.current?.x??0)),y:Math.abs(Math.round(S.pageY)-(U.current?.y??0))}},j=S=>{y.x<=10&&y.y<=10?S.preventDefault():I.contains(S.target)||Z(!1),document.removeEventListener("pointermove",P),U.current=null};return U.current!==null&&(document.addEventListener("pointermove",P),document.addEventListener("pointerup",j,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",P),document.removeEventListener("pointerup",j,{capture:!0})}}},[I,Z,U]),s.useEffect(()=>{const y=()=>Z(!1);return window.addEventListener("blur",y),window.addEventListener("resize",y),()=>{window.removeEventListener("blur",y),window.removeEventListener("resize",y)}},[Z]);const[ue,se]=Wt(y=>{const P=M().filter(T=>!T.disabled),j=P.find(T=>T.ref.current===document.activeElement),S=qt(P,y,j);S&&setTimeout(()=>S.ref.current.focus())}),de=s.useCallback((y,P,j)=>{const S=!K.current&&!j;(x.value!==void 0&&x.value===P||S)&&(X(y),S&&(K.current=!0))},[x.value]),pe=s.useCallback(()=>I?.focus(),[I]),$=s.useCallback((y,P,j)=>{const S=!K.current&&!j;(x.value!==void 0&&(Array.isArray(P)?P.every(E=>x.value?.includes(E)):x.value===P)||S)&&k(y)},[x.value]),le=t==="popper"?Ne:kt,Q=le===Ne?{side:c,sideOffset:a,align:m,alignOffset:p,arrowPadding:g,collisionBoundary:f,collisionPadding:d,sticky:h,hideWhenDetached:C,avoidCollisions:v}:{};return u.jsx(Lt,{scope:e,content:I,viewport:O,onViewportChange:N,itemRefCallback:de,selectedItem:D,onItemLeave:pe,itemTextRefCallback:$,focusSelectedItem:B,selectedItemText:q,position:t,isPositioned:H,searchRef:ue,children:u.jsx(pt.RemoveScroll,{as:Ve.Slot,allowPinchZoom:!0,children:u.jsx(at.FocusScope,{asChild:!0,trapped:x.open,onMountAutoFocus:y=>{y.preventDefault()},onUnmountAutoFocus:w.composeEventHandlers(n,y=>{x.trigger?.focus({preventScroll:!0}),document.getSelection()?.empty(),y.preventDefault()}),children:u.jsx(ct.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:y=>y.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:u.jsx(le,{role:"listbox",id:x.contentId,"data-state":x.open?"open":"closed","aria-multiselectable":x.multi?"true":void 0,dir:x.dir,onContextMenu:y=>y.preventDefault(),...b,...Q,onPlaced:()=>L(!0),ref:_,style:{display:"flex",flexDirection:"column",outline:"none",...b.style},onKeyDown:w.composeEventHandlers(b.onKeyDown,y=>{const P=y.ctrlKey||y.altKey||y.metaKey;if(y.key==="Tab"&&y.preventDefault(),!P&&y.key.length===1&&se(y.key),["ArrowUp","ArrowDown","Home","End"].includes(y.key)){let S=M().filter(T=>!T.disabled).map(T=>T.ref.current);if(["ArrowUp","End"].includes(y.key)&&(S=S.slice().reverse()),["ArrowUp","ArrowDown"].includes(y.key)){const T=y.target,E=S.indexOf(T);S=S.slice(E+1)}setTimeout(()=>z(S)),y.preventDefault()}})})})})})})});Ft.displayName=Oo;const Mo="SelectItemAlignedPosition",kt=s.forwardRef((o,l)=>{const{__scopeSelect:e,onPlaced:t,...n}=o,r=Y(oe,e),i=J(oe,e),[c,a]=s.useState(null),[m,p]=s.useState(null),g=A.useComposedRefs(l,_=>p(_)),f=xe(e),d=s.useRef(!1),h=s.useRef(!0),{viewport:C,selectedItem:v,selectedItemText:b,focusSelectedItem:x}=i,I=s.useCallback(()=>{if(r.trigger&&r.valueNode&&c&&m&&C&&v&&b){const _=r.trigger.getBoundingClientRect(),D=m.getBoundingClientRect(),X=r.valueNode.getBoundingClientRect(),q=b.getBoundingClientRect();if(r.dir!=="rtl"){const T=q.left-D.left,E=X.left-T,ee=_.left-E,te=_.width+ee,we=Math.max(te,D.width),Te=window.innerWidth-G,Pe=st.clamp(E,[G,Te-we]);c.style.minWidth=`${te}px`,c.style.left=`${Pe}px`}else{const T=D.right-q.right,E=window.innerWidth-X.right-T,ee=window.innerWidth-_.right-E,te=_.width+ee,we=Math.max(te,D.width),Te=window.innerWidth-G,Pe=st.clamp(E,[G,Te-we]);c.style.minWidth=`${te}px`,c.style.right=`${Pe}px`}const k=f(),M=window.innerHeight-G*2,H=C.scrollHeight,L=window.getComputedStyle(m),K=parseInt(L.borderTopWidth,10),z=parseInt(L.paddingTop,10),B=parseInt(L.borderBottomWidth,10),Z=parseInt(L.paddingBottom,10),U=K+z+H+Z+B,ue=Math.min(v.offsetHeight*5,U),se=window.getComputedStyle(C),de=parseInt(se.paddingTop,10),pe=parseInt(se.paddingBottom,10),$=_.top+_.height/2-G,le=M-$,Q=v.offsetHeight/2,y=v.offsetTop+Q,P=K+z+y,j=U-P;if(P<=$){const T=v===k[k.length-1].ref.current;c.style.bottom="0px";const E=m.clientHeight-C.offsetTop-C.offsetHeight,ee=Math.max(le,Q+(T?pe:0)+E+B),te=P+ee;c.style.height=`${te}px`}else{const T=v===k[0].ref.current;c.style.top="0px";const ee=Math.max($,K+C.offsetTop+(T?de:0)+Q)+j;c.style.height=`${ee}px`,C.scrollTop=P-$+C.offsetTop}c.style.margin=`${G}px 0`,c.style.minHeight=`${ue}px`,c.style.maxHeight=`${M}px`,t?.(),requestAnimationFrame(()=>d.current=!0)}},[f,r.trigger,r.valueNode,c,m,C,v,b,r.dir,t]);F.useLayoutEffect(()=>I(),[I]);const[V,O]=s.useState();F.useLayoutEffect(()=>{m&&O(window.getComputedStyle(m).zIndex)},[m]);const N=s.useCallback(_=>{_&&h.current===!0&&(I(),x?.(),h.current=!1)},[I,x]);return u.jsx(Do,{scope:e,contentWrapper:c,shouldExpandOnScrollRef:d,onScrollButtonChange:N,children:u.jsx("div",{ref:a,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:V},children:u.jsx(R.Primitive.div,{...n,ref:g,style:{boxSizing:"border-box",maxHeight:"100%",...n.style}})})})});kt.displayName=Mo;const jo="SelectPopperPosition",Ne=s.forwardRef((o,l)=>{const{__scopeSelect:e,align:t="start",collisionPadding:n=G,...r}=o,i=Ie(e);return u.jsx(re.Content,{...i,...r,ref:l,align:t,collisionPadding:n,style:{boxSizing:"border-box",...r.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)"}})});Ne.displayName=jo;const[Do,ze]=ae(oe,{}),_e="SelectViewport",Ge=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=J(_e,e),r=ze(_e,e),i=A.useComposedRefs(l,n.onViewportChange),c=s.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(Se.Slot,{scope:e,children:u.jsx(R.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...t,ref:i,style:{position:"relative",flex:1,overflow:"auto",...t.style},onScroll:w.composeEventHandlers(t.onScroll,a=>{const m=a.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=r;if(g?.current&&p){const f=Math.abs(c.current-m.scrollTop);if(f>0){const d=window.innerHeight-G*2,h=parseFloat(p.style.minHeight),C=parseFloat(p.style.height),v=Math.max(h,C);if(v<d){const b=v+f,x=Math.min(d,b),I=b-x;p.style.height=`${x}px`,p.style.bottom==="0px"&&(m.scrollTop=I>0?I:0,p.style.justifyContent="flex-end")}}}c.current=m.scrollTop})})})]})});Ge.displayName=_e;const Ht="SelectGroup",[Lo,Fo]=ae(Ht),Ye=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=ne.useId();return u.jsx(Lo,{scope:e,id:n,children:u.jsx(R.Primitive.div,{role:"group","aria-labelledby":n,...t,ref:l})})});Ye.displayName=Ht;const Bt="SelectLabel",Xe=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Fo(Bt,e);return u.jsx(R.Primitive.div,{id:n.id,...t,ref:l})});Xe.displayName=Bt;const ge="SelectItem",[ko,Ut]=ae(ge),Ze=s.forwardRef((o,l)=>{const{__scopeSelect:e,value:t,disabled:n=!1,textValue:r,...i}=o,c=Y(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)),[g,f]=s.useState(r??""),[d,h]=s.useState(!1),C=A.useComposedRefs(l,x=>a.itemRefCallback?.(x,t,n)),v=ne.useId(),b=()=>{if(!n){let x=c.multi&&typeof t=="string"?[t]:t;p&&!m?c.onValueChange(x):Array.isArray(c.value)&&(x=Kt(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(ko,{scope:e,value:t,disabled:n,textId:v,isSelected:m,isIntermediate:p,onItemTextChange:s.useCallback(x=>{f(I=>I||(x?.textContent??"").trim())},[]),children:u.jsx(Se.ItemSlot,{scope:e,value:t,disabled:n,textValue:g,children:u.jsx(R.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:C,onFocus:w.composeEventHandlers(i.onFocus,()=>h(!0)),onBlur:w.composeEventHandlers(i.onBlur,()=>h(!1)),onPointerUp:w.composeEventHandlers(i.onPointerUp,b),onPointerMove:w.composeEventHandlers(i.onPointerMove,x=>{n?a.onItemLeave?.():x.currentTarget.focus({preventScroll:!0})}),onPointerLeave:w.composeEventHandlers(i.onPointerLeave,x=>{x.currentTarget===document.activeElement&&a.onItemLeave?.()}),onKeyDown:w.composeEventHandlers(i.onKeyDown,x=>{a.searchRef?.current!==""&&x.key===" "||(To.includes(x.key)&&b(),x.key===" "&&x.preventDefault())})})})})});Ze.displayName=ge;const fe="SelectItemText",Je=s.forwardRef((o,l)=>{const{__scopeSelect:e,className:t,style:n,...r}=o,i=Y(fe,e),c=J(fe,e),a=Ut(fe,e),m=No(fe,e),[p,g]=s.useState(null),f=A.useComposedRefs(l,b=>g(b),a.onItemTextChange,b=>c.itemTextRefCallback?.(b,a.value,a.disabled)),d=p?.textContent,h=s.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:C,onNativeOptionRemove:v}=m;return F.useLayoutEffect(()=>(C(h),()=>v(h)),[C,v,h]),u.jsxs(u.Fragment,{children:[u.jsx(R.Primitive.span,{id:a.textId,...r,ref:f}),a.isSelected&&i.valueNode&&!i.valueNodeHasChildren?Ce.createPortal(r.children,i.valueNode):null]})});Je.displayName=fe;const $t="SelectItemIndicator",Qe=s.forwardRef((o,l)=>{const{__scopeSelect:e,children:t,...n}=o,r=Ut($t,e);return typeof t=="function"?u.jsx(R.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t({isSelected:r.isSelected,isIntermediate:r.isIntermediate})}):r.isSelected?u.jsx(R.Primitive.span,{"aria-hidden":!0,...n,ref:l,children:t}):null});Qe.displayName=$t;const Ae="SelectScrollUpButton",et=s.forwardRef((o,l)=>{const e=J(Ae,o.__scopeSelect),t=ze(Ae,o.__scopeSelect),[n,r]=s.useState(!1),i=A.useComposedRefs(l,t.onScrollButtonChange);return F.useLayoutEffect(()=>{if(e.viewport&&e.isPositioned){const c=e.viewport,a=()=>{const m=c.scrollTop>0;r(m)};return a(),c.addEventListener("scroll",a),()=>c.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),n?u.jsx(ot,{...o,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=e;c&&a&&(c.scrollTop-=a.offsetHeight)}}):null});et.displayName=Ae;const Oe="SelectScrollDownButton",tt=s.forwardRef((o,l)=>{const e=J(Oe,o.__scopeSelect),t=ze(Oe,o.__scopeSelect),[n,r]=s.useState(!1),i=A.useComposedRefs(l,t.onScrollButtonChange);return F.useLayoutEffect(()=>{if(e.viewport&&e.isPositioned){const c=e.viewport,a=()=>{const m=c.scrollHeight-c.clientHeight,p=Math.ceil(c.scrollTop)<m;r(p)};return a(),c.addEventListener("scroll",a),()=>c.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),n?u.jsx(ot,{...o,ref:i,onAutoScroll:()=>{const{viewport:c,selectedItem:a}=e;c&&a&&(c.scrollTop+=a.offsetHeight)}}):null});tt.displayName=Oe;const ot=s.forwardRef((o,l)=>{const{__scopeSelect:e,onAutoScroll:t,...n}=o,r=J("SelectScrollButton",e),i=s.useRef(null),c=xe(e),a=s.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return s.useEffect(()=>()=>a(),[a]),F.useLayoutEffect(()=>{c().find(p=>p.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),u.jsx(R.Primitive.div,{"aria-hidden":!0,...n,ref:l,style:{flexShrink:0,...n.style},onPointerMove:w.composeEventHandlers(n.onPointerMove,()=>{r.onItemLeave?.(),i.current===null&&(i.current=window.setInterval(t,50))}),onPointerLeave:w.composeEventHandlers(n.onPointerLeave,()=>{a()})})});ot.displayName="SelectScrollButtonImpl";const Ho="SelectSeparator",nt=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o;return u.jsx(R.Primitive.div,{"aria-hidden":!0,...t,ref:l})});nt.displayName=Ho;const Me="SelectArrow",rt=s.forwardRef((o,l)=>{const{__scopeSelect:e,...t}=o,n=Ie(e),r=Y(Me,e),i=J(Me,e);return r.open&&i.position==="popper"?u.jsx(re.Arrow,{...n,...t,ref:l}):null});rt.displayName=Me;const Bo="BubbleSelect",Uo=s.forwardRef((o,l)=>{const{value:e,...t}=o,n=s.useRef(null),r=A.useComposedRefs(l,n),i=Zt.usePrevious(e),c=Y(Bo,void 0);s.useEffect(()=>{const m=n.current,p=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(p,"value").set;if(i!==e&&f){const d=new Event("change",{bubbles:!0});f.call(m,e),m.dispatchEvent(d)}},[i,e]);let a=e;return c.multi&&!Array.isArray(e)&&(a=[]),u.jsx(Jt.VisuallyHidden,{asChild:!0,children:u.jsx("select",{...t,multiple:c.multi?!0:void 0,ref:r,defaultValue:a})})});Uo.displayName="BubbleSelect";function Wt(o){const l=ft.useCallbackRef(o),e=s.useRef(""),t=s.useRef(0),n=s.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]),r=s.useCallback(()=>{e.current="",window.clearTimeout(t.current)},[]);return s.useEffect(()=>()=>window.clearTimeout(t.current),[]),[e,n,r]}function qt(o,l,e){const n=l.length>1&&Array.from(l).every(m=>m===l[0])?l[0]:l,r=e?o.indexOf(e):-1;let i=$o(o,Math.max(r,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 $o(o,l){return o.map((e,t)=>o[(l+t)%o.length])}const Kt=(o,l=[])=>{if(Array.isArray(o))return o.reduce((t,n)=>Kt(n,t),l);const e=l.indexOf(o);return e===-1?[...l,o]:[...l.slice(0,e),...l.slice(e+1)]},Wo=Be,qo=Ue,Ko=$e,zo=We,Go=qe,Yo=Ke,Xo=Ge,Zo=Ye,Jo=Xe,Qo=Ze,en=Je,tn=Qe,on=et,nn=tt,rn=nt,sn=rt,ln=Object.freeze(Object.defineProperty({__proto__:null,Arrow:sn,Content:Yo,Group:Zo,Icon:zo,Item:Qo,ItemIndicator:tn,ItemText:en,Label:Jo,Portal:Go,Root:Wo,ScrollDownButton:nn,ScrollUpButton:on,Select:Be,SelectArrow:rt,SelectContent:Ke,SelectGroup:Ye,SelectIcon:We,SelectItem:Ze,SelectItemIndicator:Qe,SelectItemText:Je,SelectLabel:Xe,SelectPortal:qe,SelectScrollDownButton:tt,SelectScrollUpButton:et,SelectSeparator:nt,SelectTrigger:Ue,SelectValue:$e,SelectViewport:Ge,Separator:rn,Trigger:qo,Value:Ko,Viewport:Xo,createSelectScope:Eo},Symbol.toStringTag,{value:"Module"}));Object.defineProperty(exports,"composeEventHandlers",{enumerable:!0,get:()=>w.composeEventHandlers});Object.defineProperty(exports,"useCallbackRef",{enumerable:!0,get:()=>ft.useCallbackRef});exports.Combobox=Io;exports.Select=ln;exports.createCollection=mt;exports.useCollator=ht;exports.useFilter=be;
|
package/dist/ui-primitives.mjs
CHANGED