agent-relay-server 0.127.0 → 0.127.2

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.
Files changed (70) hide show
  1. package/docs/openapi.json +1 -1
  2. package/package.json +2 -2
  3. package/public/assets/{MessageBubble-D2cnxyTy.js → MessageBubble-DnXnkt4a.js} +2 -2
  4. package/public/assets/{MessageBubble-D2cnxyTy.js.map → MessageBubble-DnXnkt4a.js.map} +1 -1
  5. package/public/assets/{PlanGraphPanel-Cnxt-x7R.js → PlanGraphPanel-D6CPEpQD.js} +2 -2
  6. package/public/assets/{PlanGraphPanel-Cnxt-x7R.js.map → PlanGraphPanel-D6CPEpQD.js.map} +1 -1
  7. package/public/assets/{activity-BEm1BQB1.js → activity-ZPwHcPLK.js} +2 -2
  8. package/public/assets/{activity-BEm1BQB1.js.map → activity-ZPwHcPLK.js.map} +1 -1
  9. package/public/assets/{agent-profiles-C8V_oCiM.js → agent-profiles-CT0E9LV1.js} +2 -2
  10. package/public/assets/{agent-profiles-C8V_oCiM.js.map → agent-profiles-CT0E9LV1.js.map} +1 -1
  11. package/public/assets/{agents-D8mc9X1j.js → agents-Dt5TncjC.js} +2 -2
  12. package/public/assets/{agents-D8mc9X1j.js.map → agents-Dt5TncjC.js.map} +1 -1
  13. package/public/assets/{automation-BEhJZkNQ.js → automation-yzUJbvT2.js} +2 -2
  14. package/public/assets/{automation-BEhJZkNQ.js.map → automation-yzUJbvT2.js.map} +1 -1
  15. package/public/assets/chat-DhYX9BDG.js +2 -0
  16. package/public/assets/chat-DhYX9BDG.js.map +1 -0
  17. package/public/assets/{formatted-body-Rv9RDPsQ.js → formatted-body-D5-1aiyB.js} +3 -3
  18. package/public/assets/{formatted-body-Rv9RDPsQ.js.map → formatted-body-D5-1aiyB.js.map} +1 -1
  19. package/public/assets/{formatted-body-impl-XFU4tPeT.js → formatted-body-impl-Do5NbJUA.js} +2 -2
  20. package/public/assets/{formatted-body-impl-XFU4tPeT.js.map → formatted-body-impl-Do5NbJUA.js.map} +1 -1
  21. package/public/assets/{index-Bhy_jnX4.js → index-BdNafiPz.js} +6 -6
  22. package/public/assets/{index-Bhy_jnX4.js.map → index-BdNafiPz.js.map} +1 -1
  23. package/public/assets/{insights-DpXPAEwH.js → insights-i6AEZT_a.js} +2 -2
  24. package/public/assets/{insights-DpXPAEwH.js.map → insights-i6AEZT_a.js.map} +1 -1
  25. package/public/assets/{maintenance-BrkqfGwx.js → maintenance-CJ6wikpg.js} +2 -2
  26. package/public/assets/{maintenance-BrkqfGwx.js.map → maintenance-CJ6wikpg.js.map} +1 -1
  27. package/public/assets/{managed-agents-CLANxOAN.js → managed-agents-JZn0xNJR.js} +3 -3
  28. package/public/assets/managed-agents-JZn0xNJR.js.map +1 -0
  29. package/public/assets/{markdown-preview-impl-CcZFkjn-.js → markdown-preview-impl-BsvAkpR4.js} +2 -2
  30. package/public/assets/{markdown-preview-impl-CcZFkjn-.js.map → markdown-preview-impl-BsvAkpR4.js.map} +1 -1
  31. package/public/assets/{memory-BoQw8q-i.js → memory-BE9IwCdC.js} +2 -2
  32. package/public/assets/{memory-BoQw8q-i.js.map → memory-BE9IwCdC.js.map} +1 -1
  33. package/public/assets/{messages-DfKNuph2.js → messages-vXgdc3H4.js} +2 -2
  34. package/public/assets/{messages-DfKNuph2.js.map → messages-vXgdc3H4.js.map} +1 -1
  35. package/public/assets/{orchestrators-sQh8e7-V.js → orchestrators-CribhLg-.js} +2 -2
  36. package/public/assets/{orchestrators-sQh8e7-V.js.map → orchestrators-CribhLg-.js.map} +1 -1
  37. package/public/assets/{overview-B0z8ZNtp.js → overview-q3O9K9VK.js} +2 -2
  38. package/public/assets/{overview-B0z8ZNtp.js.map → overview-q3O9K9VK.js.map} +1 -1
  39. package/public/assets/{pairs-B3FhGmn-.js → pairs-BNOnd0IE.js} +2 -2
  40. package/public/assets/{pairs-B3FhGmn-.js.map → pairs-BNOnd0IE.js.map} +1 -1
  41. package/public/assets/{prompt-settings-CCj_s008.js → prompt-settings-Bdz_xCgD.js} +2 -2
  42. package/public/assets/{prompt-settings-CCj_s008.js.map → prompt-settings-Bdz_xCgD.js.map} +1 -1
  43. package/public/assets/{registry-mD_y06Ru.js → registry-DPcyGypi.js} +2 -2
  44. package/public/assets/{registry-mD_y06Ru.js.map → registry-DPcyGypi.js.map} +1 -1
  45. package/public/assets/{security-CTSA9niL.js → security-Z3l3u-Pl.js} +2 -2
  46. package/public/assets/{security-CTSA9niL.js.map → security-Z3l3u-Pl.js.map} +1 -1
  47. package/public/assets/{select-gEQEHCIf.js → select-BX_lW49D.js} +2 -2
  48. package/public/assets/{select-gEQEHCIf.js.map → select-BX_lW49D.js.map} +1 -1
  49. package/public/assets/{settings-ByAR-TYj.js → settings-Y381jZt7.js} +2 -2
  50. package/public/assets/{settings-ByAR-TYj.js.map → settings-Y381jZt7.js.map} +1 -1
  51. package/public/assets/{tasks-CZyJX881.js → tasks-Di6d0_Ch.js} +2 -2
  52. package/public/assets/{tasks-CZyJX881.js.map → tasks-Di6d0_Ch.js.map} +1 -1
  53. package/public/assets/{teams-BrL4sEL7.js → teams-DJv4l-_l.js} +2 -2
  54. package/public/assets/{teams-BrL4sEL7.js.map → teams-DJv4l-_l.js.map} +1 -1
  55. package/public/assets/{terminal-viewer-impl-LjIph8ql.js → terminal-viewer-impl-3zBLpRel.js} +2 -2
  56. package/public/assets/{terminal-viewer-impl-LjIph8ql.js.map → terminal-viewer-impl-3zBLpRel.js.map} +1 -1
  57. package/public/assets/{work-queue-CSu5kRsw.js → work-queue-D73-hP0c.js} +2 -2
  58. package/public/assets/{work-queue-CSu5kRsw.js.map → work-queue-D73-hP0c.js.map} +1 -1
  59. package/public/index.html +2 -2
  60. package/runner/plugins/claude/.claude-plugin/plugin.json +1 -1
  61. package/runner/src/mcp-outbox.ts +13 -1
  62. package/runner/src/provisioning.ts +121 -0
  63. package/runner/src/runner-core.ts +1 -1
  64. package/src/routes/agent-sessions.ts +4 -1
  65. package/src/routes/agents.ts +3 -0
  66. package/src/services/task-entity.ts +32 -1
  67. package/src/workspace-actions.ts +4 -2
  68. package/public/assets/chat-BAH9bEPx.js +0 -2
  69. package/public/assets/chat-BAH9bEPx.js.map +0 -1
  70. package/public/assets/managed-agents-CLANxOAN.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{r as e}from"./chunk-CilyBKbf.js";import{En as t,Sn as n,Tn as r,gr as i,rr as a,tr as o}from"./lucide-react-NXHPIMsX.js";import{t as s}from"./react-dom-8yaD9iJG.js";import{o as c,r as l}from"./dist-BNB3fTO-.js";import{t as u}from"./dist-BD4Xc13v.js";import{i as d,n as f,t as p}from"./dist-BFDfbfNC.js";import{t as m}from"./dist-f6MW74eX.js";import{t as h}from"./dist-DG75bvPp.js";import{a as g,i as _,n as v,o as y,r as b,s as x,t as S}from"./es2015-a6fysEVz.js";import{t as C}from"./dist-BJKxqIQd.js";import{t as w}from"./dist-CHKra2JV.js";import{t as T}from"./dist-G8YBD-wp.js";import{a as E,i as D,n as O,r as k,t as A}from"./dist-C_VOBSaK.js";import{t as j}from"./dist-BiLuYU6G.js";import{jt as M}from"./index-Bhy_jnX4.js";var N=e(i(),1),P=e(s(),1),F=a(),I=[` `,`Enter`,`ArrowUp`,`ArrowDown`],L=[` `,`Enter`],R=`Select`,[z,B,V]=m(R),[H,U]=d(R,[V,E]),W=E(),[G,K]=H(R),[ee,te]=H(R),q=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m}=e,g=W(t),[_,v]=N.useState(null),[y,b]=N.useState(null),[S,w]=N.useState(!1),T=C(l),[E,O]=h({prop:r,defaultProp:i??!1,onChange:a,caller:R}),[k,A]=h({prop:o,defaultProp:s,onChange:c,caller:R}),j=N.useRef(null),M=_?m||!!_.closest(`form`):!0,[P,I]=N.useState(new Set),L=Array.from(P).map(e=>e.props.value).join(`;`);return(0,F.jsx)(D,{...g,children:(0,F.jsxs)(G,{required:p,scope:t,trigger:_,onTriggerChange:v,valueNode:y,onValueNodeChange:b,valueNodeHasChildren:S,onValueNodeHasChildrenChange:w,contentId:x(),value:k,onValueChange:A,open:E,onOpenChange:O,dir:T,triggerPointerDownPosRef:j,disabled:f,children:[(0,F.jsx)(z.Provider,{scope:t,children:(0,F.jsx)(ee,{scope:e.__scopeSelect,onNativeOptionAdd:N.useCallback(e=>{I(t=>new Set(t).add(e))},[]),onNativeOptionRemove:N.useCallback(e=>{I(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),M?(0,F.jsxs)(We,{"aria-hidden":!0,required:p,tabIndex:-1,name:u,autoComplete:d,value:k,onChange:e=>A(e.target.value),disabled:f,form:m,children:[k===void 0?(0,F.jsx)(`option`,{value:``}):null,Array.from(P)]},L):null]})})};q.displayName=R;var ne=`SelectTrigger`,re=N.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=W(n),o=K(ne,n),s=o.disabled||r,l=c(t,o.onTriggerChange),d=B(n),p=N.useRef(`touch`),[m,h,g]=Ke(e=>{let t=d().filter(e=>!e.disabled),n=qe(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),_=e=>{s||(o.onOpenChange(!0),g()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,F.jsx)(A,{asChild:!0,...a,children:(0,F.jsx)(u.button,{type:`button`,role:`combobox`,"aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":Ge(o.value)?``:void 0,...i,ref:l,onClick:f(i.onClick,e=>{e.currentTarget.focus(),p.current!==`mouse`&&_(e)}),onPointerDown:f(i.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(_(e),e.preventDefault())}),onKeyDown:f(i.onKeyDown,e=>{let t=m.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&h(e.key),!(t&&e.key===` `)&&I.includes(e.key)&&(_(),e.preventDefault())})})})});re.displayName=ne;var J=`SelectValue`,ie=N.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,l=K(J,n),{onValueNodeHasChildrenChange:d}=l,f=a!==void 0,m=c(t,l.onValueNodeChange);return p(()=>{d(f)},[d,f]),(0,F.jsx)(u.span,{...s,ref:m,style:{pointerEvents:`none`},children:Ge(l.value)?(0,F.jsx)(F.Fragment,{children:o}):a})});ie.displayName=J;var ae=`SelectIcon`,oe=N.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,F.jsx)(u.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});oe.displayName=ae;var se=`SelectPortal`,ce=e=>(0,F.jsx)(_,{asChild:!0,...e});ce.displayName=se;var Y=`SelectContent`,le=N.forwardRef((e,t)=>{let n=K(Y,e.__scopeSelect),[r,i]=N.useState();if(p(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?P.createPortal((0,F.jsx)(ue,{scope:e.__scopeSelect,children:(0,F.jsx)(z.Slot,{scope:e.__scopeSelect,children:(0,F.jsx)(`div`,{children:e.children})})}),t):null}return(0,F.jsx)(pe,{...e,ref:t})});le.displayName=Y;var X=10,[ue,Z]=H(Y),de=`SelectContentImpl`,fe=l(`SelectContent.RemoveScroll`),pe=N.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:l,align:u,alignOffset:d,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:_,hideWhenDetached:x,avoidCollisions:C,...w}=e,T=K(Y,n),[E,D]=N.useState(null),[O,k]=N.useState(null),A=c(t,e=>D(e)),[j,M]=N.useState(null),[P,I]=N.useState(null),L=B(n),[R,z]=N.useState(!1),V=N.useRef(!1);N.useEffect(()=>{if(E)return S(E)},[E]),b();let H=N.useCallback(e=>{let[t,...n]=L().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[L,O]),U=N.useCallback(()=>H([j,E]),[H,j,E]);N.useEffect(()=>{R&&U()},[R,U]);let{onOpenChange:W,triggerPointerDownPosRef:G}=T;N.useEffect(()=>{if(E){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(G.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(G.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():E.contains(n.target)||W(!1),document.removeEventListener(`pointermove`,t),G.current=null};return G.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,W,G]),N.useEffect(()=>{let e=()=>W(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[W]);let[ee,te]=Ke(e=>{let t=L().filter(e=>!e.disabled),n=qe(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),q=N.useCallback((e,t,n)=>{let r=!V.current&&!n;(T.value!==void 0&&T.value===t||r)&&(M(e),r&&(V.current=!0))},[T.value]),ne=N.useCallback(()=>E?.focus(),[E]),re=N.useCallback((e,t,n)=>{let r=!V.current&&!n;(T.value!==void 0&&T.value===t||r)&&I(e)},[T.value]),J=r===`popper`?_e:he,ie=J===_e?{side:s,sideOffset:l,align:u,alignOffset:d,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:_,hideWhenDetached:x,avoidCollisions:C}:{};return(0,F.jsx)(ue,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:q,selectedItem:j,onItemLeave:ne,itemTextRefCallback:re,focusSelectedItem:U,selectedItemText:P,position:r,isPositioned:R,searchRef:ee,children:(0,F.jsx)(v,{as:fe,allowPinchZoom:!0,children:(0,F.jsx)(g,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:f(i,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,F.jsx)(y,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,F.jsx)(J,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...ie,onPlaced:()=>z(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:f(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&te(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=L().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>H(t)),e.preventDefault()}})})})})})})});pe.displayName=de;var me=`SelectItemAlignedPosition`,he=N.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=K(Y,n),o=Z(Y,n),[s,l]=N.useState(null),[d,f]=N.useState(null),m=c(t,e=>f(e)),h=B(n),g=N.useRef(!1),_=N.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=o,S=N.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&d&&v&&y&&b){let e=a.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-X,d=j(a,[X,Math.max(X,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-X,d=j(a,[X,Math.max(X,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=h(),c=window.innerHeight-X*2,l=v.scrollHeight,u=window.getComputedStyle(d),f=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),m=parseInt(u.borderBottomWidth,10),_=parseInt(u.paddingBottom,10),x=f+p+l+_+m,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-X,D=c-E,O=y.offsetHeight/2,k=y.offsetTop+O,A=f+p+k,M=x-A;if(A<=E){let e=o.length>0&&y===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=d.clientHeight-v.offsetTop-v.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+m);s.style.height=n+`px`}else{let e=o.length>0&&y===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,f+v.offsetTop+(e?w:0)+O)+M;s.style.height=t+`px`,v.scrollTop=A-E+v.offsetTop}s.style.margin=`${X}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>g.current=!0)}},[h,a.trigger,a.valueNode,s,d,v,y,b,a.dir,r]);p(()=>S(),[S]);let[C,w]=N.useState();return p(()=>{d&&w(window.getComputedStyle(d).zIndex)},[d]),(0,F.jsx)(ve,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:g,onScrollButtonChange:N.useCallback(e=>{e&&_.current===!0&&(S(),x?.(),_.current=!1)},[S,x]),children:(0,F.jsx)(`div`,{ref:l,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,F.jsx)(u.div,{...i,ref:m,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});he.displayName=me;var ge=`SelectPopperPosition`,_e=N.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=X,...a}=e,o=W(n);return(0,F.jsx)(k,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.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)`}})});_e.displayName=ge;var[ve,ye]=H(Y,{}),be=`SelectViewport`,xe=N.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=Z(be,n),o=ye(be,n),s=c(t,a.onViewportChange),l=N.useRef(0);return(0,F.jsxs)(F.Fragment,{children:[(0,F.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}`},nonce:r}),(0,F.jsx)(z.Slot,{scope:n,children:(0,F.jsx)(u.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:f(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-X*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})});xe.displayName=be;var Se=`SelectGroup`,[Ce,we]=H(Se),Te=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=x();return(0,F.jsx)(Ce,{scope:n,id:i,children:(0,F.jsx)(u.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});Te.displayName=Se;var Ee=`SelectLabel`,De=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=we(Ee,n);return(0,F.jsx)(u.div,{id:i.id,...r,ref:t})});De.displayName=Ee;var Q=`SelectItem`,[Oe,ke]=H(Q),Ae=N.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=K(Q,n),l=Z(Q,n),d=s.value===r,[p,m]=N.useState(a??``),[h,g]=N.useState(!1),_=c(t,e=>l.itemRefCallback?.(e,r,i)),v=x(),y=N.useRef(`touch`),b=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,F.jsx)(Oe,{scope:n,value:r,disabled:i,textId:v,isSelected:d,onItemTextChange:N.useCallback(e=>{m(t=>t||(e?.textContent??``).trim())},[]),children:(0,F.jsx)(z.ItemSlot,{scope:n,value:r,disabled:i,textValue:p,children:(0,F.jsx)(u.div,{role:`option`,"aria-labelledby":v,"data-highlighted":h?``:void 0,"aria-selected":d&&h,"data-state":d?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:_,onFocus:f(o.onFocus,()=>g(!0)),onBlur:f(o.onBlur,()=>g(!1)),onClick:f(o.onClick,()=>{y.current!==`mouse`&&b()}),onPointerUp:f(o.onPointerUp,()=>{y.current===`mouse`&&b()}),onPointerDown:f(o.onPointerDown,e=>{y.current=e.pointerType}),onPointerMove:f(o.onPointerMove,e=>{y.current=e.pointerType,i?l.onItemLeave?.():y.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:f(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:f(o.onKeyDown,e=>{l.searchRef?.current!==``&&e.key===` `||(L.includes(e.key)&&b(),e.key===` `&&e.preventDefault())})})})})});Ae.displayName=Q;var $=`SelectItemText`,je=N.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=K($,n),s=Z($,n),l=ke($,n),d=te($,n),[f,m]=N.useState(null),h=c(t,e=>m(e),l.onItemTextChange,e=>s.itemTextRefCallback?.(e,l.value,l.disabled)),g=f?.textContent,_=N.useMemo(()=>(0,F.jsx)(`option`,{value:l.value,disabled:l.disabled,children:g},l.value),[l.disabled,l.value,g]),{onNativeOptionAdd:v,onNativeOptionRemove:y}=d;return p(()=>(v(_),()=>y(_)),[v,y,_]),(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(u.span,{id:l.textId,...a,ref:h}),l.isSelected&&o.valueNode&&!o.valueNodeHasChildren?P.createPortal(a.children,o.valueNode):null]})});je.displayName=$;var Me=`SelectItemIndicator`,Ne=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return ke(Me,n).isSelected?(0,F.jsx)(u.span,{"aria-hidden":!0,...r,ref:t}):null});Ne.displayName=Me;var Pe=`SelectScrollUpButton`,Fe=N.forwardRef((e,t)=>{let n=Z(Pe,e.__scopeSelect),r=ye(Pe,e.__scopeSelect),[i,a]=N.useState(!1),o=c(t,r.onScrollButtonChange);return p(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,F.jsx)(Re,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});Fe.displayName=Pe;var Ie=`SelectScrollDownButton`,Le=N.forwardRef((e,t)=>{let n=Z(Ie,e.__scopeSelect),r=ye(Ie,e.__scopeSelect),[i,a]=N.useState(!1),o=c(t,r.onScrollButtonChange);return p(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,F.jsx)(Re,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});Le.displayName=Ie;var Re=N.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Z(`SelectScrollButton`,n),o=N.useRef(null),s=B(n),c=N.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return N.useEffect(()=>()=>c(),[c]),p(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,F.jsx)(u.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:f(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:f(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:f(i.onPointerLeave,()=>{c()})})}),ze=`SelectSeparator`,Be=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,F.jsx)(u.div,{"aria-hidden":!0,...r,ref:t})});Be.displayName=ze;var Ve=`SelectArrow`,He=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=W(n),a=K(Ve,n),o=Z(Ve,n);return a.open&&o.position===`popper`?(0,F.jsx)(O,{...i,...r,ref:t}):null});He.displayName=Ve;var Ue=`SelectBubbleInput`,We=N.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let i=N.useRef(null),a=c(r,i),o=T(t);return N.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,F.jsx)(u.select,{...n,style:{...M,...n.style},ref:a,defaultValue:t})});We.displayName=Ue;function Ge(e){return e===``||e===void 0}function Ke(e){let t=w(e),n=N.useRef(``),r=N.useRef(0),i=N.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=N.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return N.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function qe(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Je(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Je(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Ye=q,Xe=re,Ze=ie,Qe=oe,$e=ce,et=le,tt=xe,nt=Ae,rt=je,it=Ne,at=Fe,ot=Le;function st({...e}){return(0,F.jsx)(Ye,{"data-slot":`select`,...e})}function ct({...e}){return(0,F.jsx)(Ze,{"data-slot":`select-value`,...e})}function lt({className:e,size:t=`default`,children:n,...i}){return(0,F.jsxs)(Xe,{"data-slot":`select-trigger`,"data-size":t,className:o(`flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...i,children:[n,(0,F.jsx)(Qe,{asChild:!0,children:(0,F.jsx)(r,{className:`pointer-events-none size-4 text-muted-foreground`})})]})}function ut({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...i}){return(0,F.jsx)($e,{children:(0,F.jsxs)(et,{"data-slot":`select-content`,"data-align-trigger":n===`item-aligned`,className:o(`relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...i,children:[(0,F.jsx)(ft,{}),(0,F.jsx)(tt,{"data-position":n,className:o(`data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)`,n===`popper`&&``),children:t}),(0,F.jsx)(pt,{})]})})}function dt({className:e,children:n,...r}){return(0,F.jsxs)(nt,{"data-slot":`select-item`,className:o(`relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...r,children:[(0,F.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`,children:(0,F.jsx)(it,{children:(0,F.jsx)(t,{className:`pointer-events-none`})})}),(0,F.jsx)(rt,{children:n})]})}function ft({className:e,...t}){return(0,F.jsx)(at,{"data-slot":`select-scroll-up-button`,className:o(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,F.jsx)(n,{})})}function pt({className:e,...t}){return(0,F.jsx)(ot,{"data-slot":`select-scroll-down-button`,className:o(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,F.jsx)(r,{})})}export{ct as a,lt as i,ut as n,dt as r,st as t};
2
- //# sourceMappingURL=select-gEQEHCIf.js.map
1
+ import{r as e}from"./chunk-CilyBKbf.js";import{En as t,Sn as n,Tn as r,gr as i,rr as a,tr as o}from"./lucide-react-NXHPIMsX.js";import{t as s}from"./react-dom-8yaD9iJG.js";import{o as c,r as l}from"./dist-BNB3fTO-.js";import{t as u}from"./dist-BD4Xc13v.js";import{i as d,n as f,t as p}from"./dist-BFDfbfNC.js";import{t as m}from"./dist-f6MW74eX.js";import{t as h}from"./dist-DG75bvPp.js";import{a as g,i as _,n as v,o as y,r as b,s as x,t as S}from"./es2015-a6fysEVz.js";import{t as C}from"./dist-BJKxqIQd.js";import{t as w}from"./dist-CHKra2JV.js";import{t as T}from"./dist-G8YBD-wp.js";import{a as E,i as D,n as O,r as k,t as A}from"./dist-C_VOBSaK.js";import{t as j}from"./dist-BiLuYU6G.js";import{jt as M}from"./index-BdNafiPz.js";var N=e(i(),1),P=e(s(),1),F=a(),I=[` `,`Enter`,`ArrowUp`,`ArrowDown`],L=[` `,`Enter`],R=`Select`,[z,B,V]=m(R),[H,U]=d(R,[V,E]),W=E(),[G,K]=H(R),[ee,te]=H(R),q=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m}=e,g=W(t),[_,v]=N.useState(null),[y,b]=N.useState(null),[S,w]=N.useState(!1),T=C(l),[E,O]=h({prop:r,defaultProp:i??!1,onChange:a,caller:R}),[k,A]=h({prop:o,defaultProp:s,onChange:c,caller:R}),j=N.useRef(null),M=_?m||!!_.closest(`form`):!0,[P,I]=N.useState(new Set),L=Array.from(P).map(e=>e.props.value).join(`;`);return(0,F.jsx)(D,{...g,children:(0,F.jsxs)(G,{required:p,scope:t,trigger:_,onTriggerChange:v,valueNode:y,onValueNodeChange:b,valueNodeHasChildren:S,onValueNodeHasChildrenChange:w,contentId:x(),value:k,onValueChange:A,open:E,onOpenChange:O,dir:T,triggerPointerDownPosRef:j,disabled:f,children:[(0,F.jsx)(z.Provider,{scope:t,children:(0,F.jsx)(ee,{scope:e.__scopeSelect,onNativeOptionAdd:N.useCallback(e=>{I(t=>new Set(t).add(e))},[]),onNativeOptionRemove:N.useCallback(e=>{I(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),M?(0,F.jsxs)(We,{"aria-hidden":!0,required:p,tabIndex:-1,name:u,autoComplete:d,value:k,onChange:e=>A(e.target.value),disabled:f,form:m,children:[k===void 0?(0,F.jsx)(`option`,{value:``}):null,Array.from(P)]},L):null]})})};q.displayName=R;var ne=`SelectTrigger`,re=N.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=W(n),o=K(ne,n),s=o.disabled||r,l=c(t,o.onTriggerChange),d=B(n),p=N.useRef(`touch`),[m,h,g]=Ke(e=>{let t=d().filter(e=>!e.disabled),n=qe(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),_=e=>{s||(o.onOpenChange(!0),g()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,F.jsx)(A,{asChild:!0,...a,children:(0,F.jsx)(u.button,{type:`button`,role:`combobox`,"aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":Ge(o.value)?``:void 0,...i,ref:l,onClick:f(i.onClick,e=>{e.currentTarget.focus(),p.current!==`mouse`&&_(e)}),onPointerDown:f(i.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(_(e),e.preventDefault())}),onKeyDown:f(i.onKeyDown,e=>{let t=m.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&h(e.key),!(t&&e.key===` `)&&I.includes(e.key)&&(_(),e.preventDefault())})})})});re.displayName=ne;var J=`SelectValue`,ie=N.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,l=K(J,n),{onValueNodeHasChildrenChange:d}=l,f=a!==void 0,m=c(t,l.onValueNodeChange);return p(()=>{d(f)},[d,f]),(0,F.jsx)(u.span,{...s,ref:m,style:{pointerEvents:`none`},children:Ge(l.value)?(0,F.jsx)(F.Fragment,{children:o}):a})});ie.displayName=J;var ae=`SelectIcon`,oe=N.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,F.jsx)(u.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});oe.displayName=ae;var se=`SelectPortal`,ce=e=>(0,F.jsx)(_,{asChild:!0,...e});ce.displayName=se;var Y=`SelectContent`,le=N.forwardRef((e,t)=>{let n=K(Y,e.__scopeSelect),[r,i]=N.useState();if(p(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?P.createPortal((0,F.jsx)(ue,{scope:e.__scopeSelect,children:(0,F.jsx)(z.Slot,{scope:e.__scopeSelect,children:(0,F.jsx)(`div`,{children:e.children})})}),t):null}return(0,F.jsx)(pe,{...e,ref:t})});le.displayName=Y;var X=10,[ue,Z]=H(Y),de=`SelectContentImpl`,fe=l(`SelectContent.RemoveScroll`),pe=N.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:l,align:u,alignOffset:d,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:_,hideWhenDetached:x,avoidCollisions:C,...w}=e,T=K(Y,n),[E,D]=N.useState(null),[O,k]=N.useState(null),A=c(t,e=>D(e)),[j,M]=N.useState(null),[P,I]=N.useState(null),L=B(n),[R,z]=N.useState(!1),V=N.useRef(!1);N.useEffect(()=>{if(E)return S(E)},[E]),b();let H=N.useCallback(e=>{let[t,...n]=L().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[L,O]),U=N.useCallback(()=>H([j,E]),[H,j,E]);N.useEffect(()=>{R&&U()},[R,U]);let{onOpenChange:W,triggerPointerDownPosRef:G}=T;N.useEffect(()=>{if(E){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(G.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(G.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():E.contains(n.target)||W(!1),document.removeEventListener(`pointermove`,t),G.current=null};return G.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,W,G]),N.useEffect(()=>{let e=()=>W(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[W]);let[ee,te]=Ke(e=>{let t=L().filter(e=>!e.disabled),n=qe(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),q=N.useCallback((e,t,n)=>{let r=!V.current&&!n;(T.value!==void 0&&T.value===t||r)&&(M(e),r&&(V.current=!0))},[T.value]),ne=N.useCallback(()=>E?.focus(),[E]),re=N.useCallback((e,t,n)=>{let r=!V.current&&!n;(T.value!==void 0&&T.value===t||r)&&I(e)},[T.value]),J=r===`popper`?_e:he,ie=J===_e?{side:s,sideOffset:l,align:u,alignOffset:d,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:_,hideWhenDetached:x,avoidCollisions:C}:{};return(0,F.jsx)(ue,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:q,selectedItem:j,onItemLeave:ne,itemTextRefCallback:re,focusSelectedItem:U,selectedItemText:P,position:r,isPositioned:R,searchRef:ee,children:(0,F.jsx)(v,{as:fe,allowPinchZoom:!0,children:(0,F.jsx)(g,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:f(i,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,F.jsx)(y,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,F.jsx)(J,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...ie,onPlaced:()=>z(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:f(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&te(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=L().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>H(t)),e.preventDefault()}})})})})})})});pe.displayName=de;var me=`SelectItemAlignedPosition`,he=N.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=K(Y,n),o=Z(Y,n),[s,l]=N.useState(null),[d,f]=N.useState(null),m=c(t,e=>f(e)),h=B(n),g=N.useRef(!1),_=N.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=o,S=N.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&d&&v&&y&&b){let e=a.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-X,d=j(a,[X,Math.max(X,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-X,d=j(a,[X,Math.max(X,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=h(),c=window.innerHeight-X*2,l=v.scrollHeight,u=window.getComputedStyle(d),f=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),m=parseInt(u.borderBottomWidth,10),_=parseInt(u.paddingBottom,10),x=f+p+l+_+m,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-X,D=c-E,O=y.offsetHeight/2,k=y.offsetTop+O,A=f+p+k,M=x-A;if(A<=E){let e=o.length>0&&y===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=d.clientHeight-v.offsetTop-v.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+m);s.style.height=n+`px`}else{let e=o.length>0&&y===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,f+v.offsetTop+(e?w:0)+O)+M;s.style.height=t+`px`,v.scrollTop=A-E+v.offsetTop}s.style.margin=`${X}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>g.current=!0)}},[h,a.trigger,a.valueNode,s,d,v,y,b,a.dir,r]);p(()=>S(),[S]);let[C,w]=N.useState();return p(()=>{d&&w(window.getComputedStyle(d).zIndex)},[d]),(0,F.jsx)(ve,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:g,onScrollButtonChange:N.useCallback(e=>{e&&_.current===!0&&(S(),x?.(),_.current=!1)},[S,x]),children:(0,F.jsx)(`div`,{ref:l,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,F.jsx)(u.div,{...i,ref:m,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});he.displayName=me;var ge=`SelectPopperPosition`,_e=N.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=X,...a}=e,o=W(n);return(0,F.jsx)(k,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.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)`}})});_e.displayName=ge;var[ve,ye]=H(Y,{}),be=`SelectViewport`,xe=N.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=Z(be,n),o=ye(be,n),s=c(t,a.onViewportChange),l=N.useRef(0);return(0,F.jsxs)(F.Fragment,{children:[(0,F.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}`},nonce:r}),(0,F.jsx)(z.Slot,{scope:n,children:(0,F.jsx)(u.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:f(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-X*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})});xe.displayName=be;var Se=`SelectGroup`,[Ce,we]=H(Se),Te=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=x();return(0,F.jsx)(Ce,{scope:n,id:i,children:(0,F.jsx)(u.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});Te.displayName=Se;var Ee=`SelectLabel`,De=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=we(Ee,n);return(0,F.jsx)(u.div,{id:i.id,...r,ref:t})});De.displayName=Ee;var Q=`SelectItem`,[Oe,ke]=H(Q),Ae=N.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=K(Q,n),l=Z(Q,n),d=s.value===r,[p,m]=N.useState(a??``),[h,g]=N.useState(!1),_=c(t,e=>l.itemRefCallback?.(e,r,i)),v=x(),y=N.useRef(`touch`),b=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,F.jsx)(Oe,{scope:n,value:r,disabled:i,textId:v,isSelected:d,onItemTextChange:N.useCallback(e=>{m(t=>t||(e?.textContent??``).trim())},[]),children:(0,F.jsx)(z.ItemSlot,{scope:n,value:r,disabled:i,textValue:p,children:(0,F.jsx)(u.div,{role:`option`,"aria-labelledby":v,"data-highlighted":h?``:void 0,"aria-selected":d&&h,"data-state":d?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:_,onFocus:f(o.onFocus,()=>g(!0)),onBlur:f(o.onBlur,()=>g(!1)),onClick:f(o.onClick,()=>{y.current!==`mouse`&&b()}),onPointerUp:f(o.onPointerUp,()=>{y.current===`mouse`&&b()}),onPointerDown:f(o.onPointerDown,e=>{y.current=e.pointerType}),onPointerMove:f(o.onPointerMove,e=>{y.current=e.pointerType,i?l.onItemLeave?.():y.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:f(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:f(o.onKeyDown,e=>{l.searchRef?.current!==``&&e.key===` `||(L.includes(e.key)&&b(),e.key===` `&&e.preventDefault())})})})})});Ae.displayName=Q;var $=`SelectItemText`,je=N.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=K($,n),s=Z($,n),l=ke($,n),d=te($,n),[f,m]=N.useState(null),h=c(t,e=>m(e),l.onItemTextChange,e=>s.itemTextRefCallback?.(e,l.value,l.disabled)),g=f?.textContent,_=N.useMemo(()=>(0,F.jsx)(`option`,{value:l.value,disabled:l.disabled,children:g},l.value),[l.disabled,l.value,g]),{onNativeOptionAdd:v,onNativeOptionRemove:y}=d;return p(()=>(v(_),()=>y(_)),[v,y,_]),(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(u.span,{id:l.textId,...a,ref:h}),l.isSelected&&o.valueNode&&!o.valueNodeHasChildren?P.createPortal(a.children,o.valueNode):null]})});je.displayName=$;var Me=`SelectItemIndicator`,Ne=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return ke(Me,n).isSelected?(0,F.jsx)(u.span,{"aria-hidden":!0,...r,ref:t}):null});Ne.displayName=Me;var Pe=`SelectScrollUpButton`,Fe=N.forwardRef((e,t)=>{let n=Z(Pe,e.__scopeSelect),r=ye(Pe,e.__scopeSelect),[i,a]=N.useState(!1),o=c(t,r.onScrollButtonChange);return p(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,F.jsx)(Re,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});Fe.displayName=Pe;var Ie=`SelectScrollDownButton`,Le=N.forwardRef((e,t)=>{let n=Z(Ie,e.__scopeSelect),r=ye(Ie,e.__scopeSelect),[i,a]=N.useState(!1),o=c(t,r.onScrollButtonChange);return p(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,F.jsx)(Re,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});Le.displayName=Ie;var Re=N.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Z(`SelectScrollButton`,n),o=N.useRef(null),s=B(n),c=N.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return N.useEffect(()=>()=>c(),[c]),p(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,F.jsx)(u.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:f(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:f(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:f(i.onPointerLeave,()=>{c()})})}),ze=`SelectSeparator`,Be=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,F.jsx)(u.div,{"aria-hidden":!0,...r,ref:t})});Be.displayName=ze;var Ve=`SelectArrow`,He=N.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=W(n),a=K(Ve,n),o=Z(Ve,n);return a.open&&o.position===`popper`?(0,F.jsx)(O,{...i,...r,ref:t}):null});He.displayName=Ve;var Ue=`SelectBubbleInput`,We=N.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let i=N.useRef(null),a=c(r,i),o=T(t);return N.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,F.jsx)(u.select,{...n,style:{...M,...n.style},ref:a,defaultValue:t})});We.displayName=Ue;function Ge(e){return e===``||e===void 0}function Ke(e){let t=w(e),n=N.useRef(``),r=N.useRef(0),i=N.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=N.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return N.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function qe(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Je(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Je(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Ye=q,Xe=re,Ze=ie,Qe=oe,$e=ce,et=le,tt=xe,nt=Ae,rt=je,it=Ne,at=Fe,ot=Le;function st({...e}){return(0,F.jsx)(Ye,{"data-slot":`select`,...e})}function ct({...e}){return(0,F.jsx)(Ze,{"data-slot":`select-value`,...e})}function lt({className:e,size:t=`default`,children:n,...i}){return(0,F.jsxs)(Xe,{"data-slot":`select-trigger`,"data-size":t,className:o(`flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...i,children:[n,(0,F.jsx)(Qe,{asChild:!0,children:(0,F.jsx)(r,{className:`pointer-events-none size-4 text-muted-foreground`})})]})}function ut({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...i}){return(0,F.jsx)($e,{children:(0,F.jsxs)(et,{"data-slot":`select-content`,"data-align-trigger":n===`item-aligned`,className:o(`relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...i,children:[(0,F.jsx)(ft,{}),(0,F.jsx)(tt,{"data-position":n,className:o(`data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)`,n===`popper`&&``),children:t}),(0,F.jsx)(pt,{})]})})}function dt({className:e,children:n,...r}){return(0,F.jsxs)(nt,{"data-slot":`select-item`,className:o(`relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...r,children:[(0,F.jsx)(`span`,{className:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`,children:(0,F.jsx)(it,{children:(0,F.jsx)(t,{className:`pointer-events-none`})})}),(0,F.jsx)(rt,{children:n})]})}function ft({className:e,...t}){return(0,F.jsx)(at,{"data-slot":`select-scroll-up-button`,className:o(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,F.jsx)(n,{})})}function pt({className:e,...t}){return(0,F.jsx)(ot,{"data-slot":`select-scroll-down-button`,className:o(`z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4`,e),...t,children:(0,F.jsx)(r,{})})}export{ct as a,lt as i,ut as n,dt as r,st as t};
2
+ //# sourceMappingURL=select-BX_lW49D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-gEQEHCIf.js","names":["Select","PopperPrimitive.Root","SelectTrigger","PopperPrimitive.Anchor","SelectValue","Fragment","PortalPrimitive","SelectContent","RemoveScroll","PopperPrimitive.Content","SelectItem","SelectScrollUpButton","SelectScrollDownButton","PopperPrimitive.Arrow"],"sources":["../../dashboard/node_modules/@radix-ui/react-select/dist/index.mjs","../../dashboard/src/components/ui/select.tsx"],"sourcesContent":["\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n SelectBubbleInput,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.select,\n {\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\"\nimport { Select as SelectPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from \"lucide-react\"\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n}\n\nfunction SelectGroup({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === \"item-aligned\"}\n className={cn(\"relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", position ===\"popper\"&&\"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\", className )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n \"data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)\",\n position === \"popper\" && \"\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"px-1.5 py-1 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon\n />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon\n />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"select-BX_lW49D.js","names":["Select","PopperPrimitive.Root","SelectTrigger","PopperPrimitive.Anchor","SelectValue","Fragment","PortalPrimitive","SelectContent","RemoveScroll","PopperPrimitive.Content","SelectItem","SelectScrollUpButton","SelectScrollDownButton","PopperPrimitive.Arrow"],"sources":["../../dashboard/node_modules/@radix-ui/react-select/dist/index.mjs","../../dashboard/src/components/ui/select.tsx"],"sourcesContent":["\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n SelectBubbleInput,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.select,\n {\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\"\nimport { Select as SelectPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from \"lucide-react\"\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n}\n\nfunction SelectGroup({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"item-aligned\",\n align = \"center\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n data-align-trigger={position === \"item-aligned\"}\n className={cn(\"relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", position ===\"popper\"&&\"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\", className )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n data-position={position}\n className={cn(\n \"data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)\",\n position === \"popper\" && \"\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"px-1.5 py-1 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon\n />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon\n />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}