@skdx/react 0.38.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import*as m from"react";import{clamp as $}from"../utils/clamp.js";import{createSafeContext as Pt}from"../utils/createContext.js";import{announce as ht}from"../utils/liveAnnouncer.js";import{useCallbackRef as le}from"../utils/useCallbackRef.js";import{useControllableState as G}from"../utils/useControllableState.js";import{useOpenChangeComplete as yt}from"../utils/useOpenChangeComplete.js";import{Glyph as ft}from"../utils/Glyph.js";import{skdxPart as Ne}from"../utils/part.js";import{composeEventHandlers as Ae,Primitive as He}from"../utils/primitive.js";import{jsx as Oe}from"react/jsx-runtime";var q=({ref:e,...o})=>{let n=P("FloatingPanelCloseTrigger");return Oe(He.button,{type:"button",...o,...Ne("floating-panel","close-trigger",o.className),ref:e,onClick:Ae(o.onClick,()=>n.onOpenChange(!1))})};q.displayName="FloatingPanelCloseTrigger";import*as Q from"react";import{useComposedRefs as Le}from"../utils/composeRefs.js";import{skdxPart as ke}from"../utils/part.js";import{usePresence as Ue}from"../utils/presence.js";import{Primitive as Ke}from"../utils/primitive.js";import{useDismiss as Be}from"../utils/useDismiss.js";import{jsx as $e}from"react/jsx-runtime";var j=({forceMount:e,onEscapeKeyDown:o,onPointerDownOutside:n,onFocusOutside:t,onInteractOutside:a,style:g,ref:s,...c})=>{let r=P("FloatingPanelContent"),E=Le(s,r.contentRef),{setContentPresent:h}=r,F=Ue(r.open,r.contentRef);if(Q.useEffect(()=>{h(F)},[F,h]),Q.useEffect(()=>()=>h(!1),[h]),Be({enabled:r.open,onEscapeKeyDown:l=>{o?.(l),l.defaultPrevented||r.onOpenChange(!1)},onInteractOutside:a,onPointerDownOutside:l=>{n?.(l),l.defaultPrevented||r.onOpenChange(!1)},onFocusOutside:t},[r.contentRef,r.triggerRef]),!e&&!F)return null;let{position:x,size:i,stage:d,origin:y,bounded:R,bounds:T}=r,C=d==="maximized"?{x:`${y.x}px`,y:`${y.y}px`,width:R&&T?`${T.width}px`:"100%",height:R&&T?`${T.height}px`:"100%"}:{x:`${y.x+x.x}px`,y:`${y.y+x.y}px`,width:`${i.width}px`,height:d==="minimized"?"auto":`${i.height}px`};return $e(Ke.div,{role:"dialog","aria-modal":!1,"aria-labelledby":r.hasTitle?r.titleId:void 0,id:r.contentId,"data-state":r.open?"open":"closed","data-stage":d,"data-dragging":r.dragging?"":void 0,"data-resizing":r.resizing?"":void 0,"data-disabled":r.disabled?"":void 0,...c,...ke("floating-panel","content",c.className),ref:E,style:{"--skdx-floating-panel-x":C.x,"--skdx-floating-panel-y":C.y,"--skdx-floating-panel-width":C.width,"--skdx-floating-panel-height":C.height,...g}})};j.displayName="FloatingPanelContent";import*as ee from"react";import{directionalKey as Xe,useDirection as _e}from"../utils/direction.js";import{skdxPart as Ge}from"../utils/part.js";import{Primitive as Ye,useComposedEventHandlers as H}from"../utils/primitive.js";import{jsx as We}from"react/jsx-runtime";var Je=10,Ve={ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1}},te=({style:e,ref:o,...n})=>{let t=P("FloatingPanelHeader"),a=_e(),g=ee.useRef(null),s=ee.useRef(!1),c=t.draggable&&!t.disabled,r=i=>{c&&(i.currentTarget.setPointerCapture?.(i.pointerId),g.current={x:i.clientX,y:i.clientY},t.setDragging(!0))},E=i=>{let d=g.current;!c||!d||(t.moveBy(i.clientX-d.x,i.clientY-d.y),g.current={x:i.clientX,y:i.clientY})},h=i=>{g.current&&(i.currentTarget.releasePointerCapture?.(i.pointerId),g.current=null,t.setDragging(!1),t.announceRelease("move"))},F=i=>{if(!c)return;let d=t.step*(i.shiftKey?Je:1),y=Xe(i.key,i.currentTarget,a),R=Ve[y];R&&(i.preventDefault(),s.current=!0,t.moveBy(R.dx*d,R.dy*d))},x=()=>{s.current&&(s.current=!1,t.announceRelease("move"))};return We(Ye.div,{role:"group","aria-disabled":t.disabled||void 0,"aria-keyshortcuts":t.draggable?"ArrowUp ArrowDown ArrowLeft ArrowRight":void 0,"data-dragging":t.dragging?"":void 0,"data-disabled":t.disabled?"":void 0,tabIndex:t.draggable?0:void 0,...n,...Ge("floating-panel","header",n.className),ref:o,onPointerDown:H(n.onPointerDown,r),onPointerMove:H(n.onPointerMove,E),onPointerUp:H(n.onPointerUp,h),onPointerCancel:H(n.onPointerCancel,h),onKeyDown:H(n.onKeyDown,F),onKeyUp:H(n.onKeyUp,x),style:{touchAction:"none",cursor:c?"move":void 0,...e}})};te.displayName="FloatingPanelHeader";import{Portal as Ze}from"../utils/portal.js";import{jsx as qe}from"react/jsx-runtime";var ne=({forceMount:e,children:o,...n})=>{let t=P("FloatingPanelPortal");return e||t.open||t.contentPresent?qe(Ze,{...n,children:o}):null};ne.displayName="FloatingPanelPortal";import*as oe from"react";import{directionalKey as Qe,useDirection as je}from"../utils/direction.js";import{skdxPart as et}from"../utils/part.js";import{Primitive as tt,useComposedEventHandlers as O}from"../utils/primitive.js";import{jsx as rt}from"react/jsx-runtime";var nt=10,ot={ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1}};function at(e){if(e==="e"||e==="w")return"vertical";if(e==="n"||e==="s")return"horizontal"}function it(e,o){let n=o?e.size.width:e.size.height,t=o?e.minSize.width:e.minSize.height,a=o?e.maxSize.width:e.maxSize.height,g=Number.POSITIVE_INFINITY;e.bounds&&(g=o?e.bounds.width-e.position.x:e.bounds.height-e.position.y);let s=Math.max(t,Math.min(a,g));return{current:n,minimum:t,maximum:s}}var ae=({direction:e,style:o,ref:n,...t})=>{let a=P("FloatingPanelResizeTrigger"),g=je(),s=oe.useRef(null),c=oe.useRef(!1),r=a.resizable&&!a.disabled,E=e.includes("e")||e.includes("w"),{current:h,minimum:F,maximum:x}=it(a,E),i=at(e),d=l=>{r&&(l.currentTarget.setPointerCapture?.(l.pointerId),s.current={x:l.clientX,y:l.clientY},a.setResizing(!0))},y=l=>{let b=s.current;!r||!b||(a.resizeBy(e,l.clientX-b.x,l.clientY-b.y),s.current={x:l.clientX,y:l.clientY})},R=l=>{s.current&&(l.currentTarget.releasePointerCapture?.(l.pointerId),s.current=null,a.setResizing(!1),a.announceRelease("resize"))},T=l=>{if(!r)return;let b=a.step*(l.shiftKey?nt:1),L=Qe(l.key,l.currentTarget,g),v=ot[L];v&&(l.preventDefault(),c.current=!0,a.resizeBy(e,v.dx*b,v.dy*b))},C=()=>{c.current&&(c.current=!1,a.announceRelease("resize"))};return rt(tt.div,{role:"separator","aria-orientation":i,"aria-valuenow":Math.round(h),"aria-valuemin":Math.round(F),"aria-valuemax":Number.isFinite(x)?Math.round(x):void 0,"aria-disabled":a.disabled||void 0,"aria-keyshortcuts":a.resizable?"ArrowUp ArrowDown ArrowLeft ArrowRight":void 0,"data-direction":e,"data-resizing":a.resizing?"":void 0,"data-disabled":a.disabled?"":void 0,tabIndex:a.resizable?0:void 0,...t,...et("floating-panel","resize-trigger",t.className),ref:n,onPointerDown:O(t.onPointerDown,d),onPointerMove:O(t.onPointerMove,y),onPointerUp:O(t.onPointerUp,R),onPointerCancel:O(t.onPointerCancel,R),onKeyDown:O(t.onKeyDown,T),onKeyUp:O(t.onKeyUp,C),style:{touchAction:"none",cursor:r?`${e}-resize`:void 0,...o}})};ae.displayName="FloatingPanelResizeTrigger";import{skdxPart as lt}from"../utils/part.js";import{composeEventHandlers as st,Primitive as gt}from"../utils/primitive.js";import{jsx as dt}from"react/jsx-runtime";var ie=({stage:e,ref:o,...n})=>{let t=P("FloatingPanelStageTrigger"),a=t.stage===e;return dt(gt.button,{type:"button","aria-pressed":a,"aria-disabled":t.disabled||void 0,"data-stage":t.stage,"data-state":a?"on":"off","data-disabled":t.disabled?"":void 0,...n,...lt("floating-panel","stage-trigger",n.className),ref:o,onClick:st(n.onClick,()=>{t.disabled||t.onStageChange(a?"default":e)})})};ie.displayName="FloatingPanelStageTrigger";import*as ce from"react";import{skdxPart as ct}from"../utils/part.js";import{Primitive as ut}from"../utils/primitive.js";import{jsx as mt}from"react/jsx-runtime";var re=({ref:e,...o})=>{let n=P("FloatingPanelTitle"),{setHasTitle:t}=n;return ce.useEffect(()=>(t(!0),()=>t(!1)),[t]),mt(ut.h2,{id:n.titleId,...o,...ct("floating-panel","title",o.className),ref:e})};re.displayName="FloatingPanelTitle";import{jsx as I,jsxs as ue}from"react/jsx-runtime";var pt=()=>I(ft,{name:"close"}),me=({title:e,stages:o=[],dismissible:n,resizable:t,children:a,passThrough:g})=>I(ne,{children:ue(j,{...g,children:[ue(te,{"aria-label":"Drag to move panel",children:[e?I(re,{children:e}):null,o.map(s=>I(ie,{stage:s.stage,children:s.label},s.stage)),n?I(q,{"aria-label":"Close",children:I(pt,{})}):null]}),a,t?I(ae,{direction:"se","aria-label":"Resize panel"}):null]})});import{jsx as ge}from"react/jsx-runtime";function fe(e,{position:o,size:n}){return e==="move"?`Panel moved to ${o.x}, ${o.y}`:`Panel resized to ${n.width} by ${n.height}`}var[Rt,P]=Pt("FloatingPanel"),Ft={x:0,y:0},xt={width:320,height:240},bt={width:160,height:120},wt={width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY};function se(e){let o=e?.current;if(o){let n=o.getBoundingClientRect();return{width:n.width,height:n.height}}return{width:window.innerWidth,height:window.innerHeight}}function Y(e,o,n,t){return $(e,o,Math.max(o,Math.min(n,t)))}function Tt(e,o,n){return m.useEffect(()=>{let t=e?.current,a=()=>{o(se(e));let g=t?.getBoundingClientRect(),s=g?{x:g.left||0,y:g.top||0}:{x:0,y:0};n(c=>c.x===s.x&&c.y===s.y?c:s)};if(a(),t&&typeof ResizeObserver<"u"){let g=new ResizeObserver(a);return g.observe(t),window.addEventListener("scroll",a,!0),()=>{g.disconnect(),window.removeEventListener("scroll",a,!0)}}return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[e,o,n]),!!e?.current}function pe({children:e,open:o,defaultOpen:n=!1,onOpenChange:t,onOpenChangeComplete:a,position:g,defaultPosition:s=Ft,onPositionChange:c,onPositionCommit:r,size:E,defaultSize:h=xt,onSizeChange:F,onSizeCommit:x,minSize:i=bt,maxSize:d=wt,boundary:y,stage:R,defaultStage:T="default",onStageChange:C,draggable:l=!0,resizable:b=!0,step:L=10,disabled:v=!1,getGestureAnnouncement:J}){let X=m.useRef(null),k=m.useRef(null),[V,W]=m.useState(!1),[he,ye]=m.useState(!1),[Re,Fe]=m.useState(!1),[xe,be]=m.useState(!1),[S,we]=m.useState(null),[Te,Ce]=m.useState({x:0,y:0}),[M=!1,ze]=G({prop:o,defaultProp:n,onChange:t}),[p=s,_]=G({prop:g,defaultProp:s,onChange:c}),[u=h,Z]=G({prop:E,defaultProp:h,onChange:F}),[Ee="default",ve]=G({prop:R,defaultProp:T,onChange:C});yt(M,k,a);let De=Tt(y,we,Ce);m.useEffect(()=>{if(!S)return;let f=Math.min(u.width,Math.max(i.width,S.width)),z=Math.min(u.height,Math.max(i.height,S.height));(f!==u.width||z!==u.height)&&Z({width:f,height:z});let w=$(p.x,0,Math.max(0,S.width-f)),D=$(p.y,0,Math.max(0,S.height-z));(w!==p.x||D!==p.y)&&_({x:w,y:D})},[S,u,i,p,Z,_]);let de=m.useRef(M);m.useEffect(()=>{if(de.current&&!M){let f=document.activeElement;(!f||f===document.body||k.current?.contains(f))&&X.current?.focus()}de.current=M},[M]);let Se=le((f,z)=>{if(v||!l)return;let w=se(y),D={x:$(p.x+f,0,Math.max(0,w.width-u.width)),y:$(p.y+z,0,Math.max(0,w.height-u.height))};(D.x!==p.x||D.y!==p.y)&&_(D)}),Ie=le((f,z,w)=>{if(v||!b)return;let D=se(y),{x:U,y:K}=p,{width:N,height:A}=u;if(f.includes("e")&&(N=Y(u.width+z,i.width,d.width,D.width-U)),f.includes("w")){let B=U+N;N=Y(u.width-z,i.width,d.width,B),U=B-N}if(f.includes("s")&&(A=Y(u.height+w,i.height,d.height,D.height-K)),f.includes("n")){let B=K+A;A=Y(u.height-w,i.height,d.height,B),K=B-A}(N!==u.width||A!==u.height)&&Z({width:N,height:A}),(U!==p.x||K!==p.y)&&_({x:U,y:K})}),Me=le(f=>{f==="resize"&&x?.(u),r?.(p);let z={position:{x:Math.round(p.x),y:Math.round(p.y)},size:{width:Math.round(u.width),height:Math.round(u.height)}},w=(J??fe)(f,z);w&&ht(w)});return ge(Rt,{triggerRef:X,contentRef:k,contentId:m.useId(),titleId:m.useId(),hasTitle:xe,setHasTitle:be,open:M,onOpenChange:ze,position:p,size:u,minSize:i,maxSize:d,bounds:S,origin:Te,bounded:De,stage:Ee,onStageChange:ve,moveBy:Se,resizeBy:Ie,announceRelease:Me,draggable:l,resizable:b,disabled:v,step:L,dragging:V,setDragging:W,resizing:he,setResizing:ye,contentPresent:Re,setContentPresent:Fe,children:e})}pe.displayName="FloatingPanelRoot";function Pe({children:e,title:o,stages:n,dismissible:t=!0,resizable:a=!0,open:g,defaultOpen:s,onOpenChange:c,onOpenChangeComplete:r,position:E,defaultPosition:h,onPositionChange:F,onPositionCommit:x,size:i,defaultSize:d,onSizeChange:y,onSizeCommit:R,minSize:T,maxSize:C,boundary:l,stage:b,defaultStage:L,onStageChange:v,draggable:J,step:X,disabled:k,getGestureAnnouncement:V,...W}){return ge(pe,{open:g,defaultOpen:s,onOpenChange:c,onOpenChangeComplete:r,position:E,defaultPosition:h,onPositionChange:F,onPositionCommit:x,size:i,defaultSize:d,onSizeChange:y,onSizeCommit:R,minSize:T,maxSize:C,boundary:l,stage:b,defaultStage:L,onStageChange:v,draggable:J,resizable:a,step:X,disabled:k,getGestureAnnouncement:V,children:ge(me,{title:o,stages:n,dismissible:t,resizable:a,passThrough:W,children:e})})}Pe.displayName="FloatingPanel";import{useComposedRefs as Ct}from"../utils/composeRefs.js";import{skdxPart as zt}from"../utils/part.js";import{composeEventHandlers as Et,Primitive as vt}from"../utils/primitive.js";import{jsx as St}from"react/jsx-runtime";var Dt=({ref:e,...o})=>{let n=P("FloatingPanelTrigger"),t=Ct(e,n.triggerRef);return St(vt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":n.open?"open":"closed",...o,...zt("floating-panel","trigger",o.className),ref:t,onClick:Et(o.onClick,()=>n.onOpenChange(!n.open))})};Dt.displayName="FloatingPanelTrigger";export{Pe as FloatingPanel,q as FloatingPanelCloseTrigger,j as FloatingPanelContent,te as FloatingPanelHeader,ne as FloatingPanelPortal,Rt as FloatingPanelProvider,ae as FloatingPanelResizeTrigger,pe as FloatingPanelRoot,ie as FloatingPanelStageTrigger,re as FloatingPanelTitle,Dt as FloatingPanelTrigger,fe as gestureAnnouncement,P as useFloatingPanelContext};
2
+ import*as m from"react";import{clamp as _}from"../utils/clamp.js";import{createSafeContext as ht}from"../utils/createContext.js";import{announce as yt}from"../utils/liveAnnouncer.js";import{useCallbackRef as le}from"../utils/useCallbackRef.js";import{useControllableState as G}from"../utils/useControllableState.js";import{useOpenChangeComplete as Rt}from"../utils/useOpenChangeComplete.js";import{Glyph as pt}from"../utils/Glyph.js";import{skdxPart as Ne}from"../utils/part.js";import{composeEventHandlers as Ae,Primitive as He}from"../utils/primitive.js";import{jsx as Le}from"react/jsx-runtime";var q=({ref:e,...o})=>{let n=P("FloatingPanelCloseTrigger");return Le(He.button,{type:"button",...o,...Ne("floating-panel","close-trigger",o.className),ref:e,onClick:Ae(o.onClick,()=>n.onOpenChange(!1))})};q.displayName="FloatingPanelCloseTrigger";import*as Q from"react";import{useComposedRefs as Oe}from"../utils/composeRefs.js";import{skdxPart as ke}from"../utils/part.js";import{usePresence as Ue}from"../utils/presence.js";import{Primitive as Ke}from"../utils/primitive.js";import{useDismiss as Be}from"../utils/useDismiss.js";import{jsx as _e}from"react/jsx-runtime";var j=({forceMount:e,onEscapeKeyDown:o,onPointerDownOutside:n,onFocusOutside:t,onInteractOutside:a,style:g,ref:s,...c})=>{let r=P("FloatingPanelContent"),E=Oe(s,r.contentRef),{setContentPresent:h}=r,F=Ue(r.open,r.contentRef);if(Q.useEffect(()=>{h(F)},[F,h]),Q.useEffect(()=>()=>h(!1),[h]),Be({enabled:r.open,onEscapeKeyDown:l=>{o?.(l),l.defaultPrevented||r.onOpenChange(!1)},onInteractOutside:a,onPointerDownOutside:l=>{n?.(l),l.defaultPrevented||r.onOpenChange(!1)},onFocusOutside:t},[r.contentRef,r.triggerRef]),!e&&!F)return null;let{position:b,size:i,stage:d,origin:y,bounded:R,bounds:T}=r,C=d==="maximized"?{x:`${y.x}px`,y:`${y.y}px`,width:R&&T?`${T.width}px`:"100%",height:R&&T?`${T.height}px`:"100%"}:{x:`${y.x+b.x}px`,y:`${y.y+b.y}px`,width:`${i.width}px`,height:d==="minimized"?"auto":`${i.height}px`};return _e(Ke.div,{role:"dialog","aria-modal":!1,"aria-labelledby":r.hasTitle?r.titleId:void 0,id:r.contentId,"data-state":r.open?"open":"closed","data-stage":d,"data-dragging":r.dragging?"":void 0,"data-resizing":r.resizing?"":void 0,"data-disabled":r.disabled?"":void 0,...c,...ke("floating-panel","content",c.className),ref:E,style:{"--skdx-floating-panel-x":C.x,"--skdx-floating-panel-y":C.y,"--skdx-floating-panel-width":C.width,"--skdx-floating-panel-height":C.height,...g}})};j.displayName="FloatingPanelContent";import*as ee from"react";import{directionalKey as $e,useDirection as Xe}from"../utils/direction.js";import{skdxPart as Ge}from"../utils/part.js";import{Primitive as Ye,useComposedEventHandlers as H}from"../utils/primitive.js";import{jsx as Ze}from"react/jsx-runtime";var Ve=10,Je='button, a, input, select, textarea, [role="button"]',We={ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1}},te=({style:e,ref:o,...n})=>{let t=P("FloatingPanelHeader"),a=Xe(),g=ee.useRef(null),s=ee.useRef(!1),c=t.draggable&&!t.disabled,r=i=>{c&&(i.target.closest?.(Je)||(i.currentTarget.setPointerCapture?.(i.pointerId),g.current={x:i.clientX,y:i.clientY},t.setDragging(!0)))},E=i=>{let d=g.current;!c||!d||(t.moveBy(i.clientX-d.x,i.clientY-d.y),g.current={x:i.clientX,y:i.clientY})},h=i=>{g.current&&(i.currentTarget.releasePointerCapture?.(i.pointerId),g.current=null,t.setDragging(!1),t.announceRelease("move"))},F=i=>{if(!c)return;let d=t.step*(i.shiftKey?Ve:1),y=$e(i.key,i.currentTarget,a),R=We[y];R&&(i.preventDefault(),s.current=!0,t.moveBy(R.dx*d,R.dy*d))},b=()=>{s.current&&(s.current=!1,t.announceRelease("move"))};return Ze(Ye.div,{role:"group","aria-disabled":t.disabled||void 0,"aria-keyshortcuts":t.draggable?"ArrowUp ArrowDown ArrowLeft ArrowRight":void 0,"data-dragging":t.dragging?"":void 0,"data-disabled":t.disabled?"":void 0,tabIndex:t.draggable?0:void 0,...n,...Ge("floating-panel","header",n.className),ref:o,onPointerDown:H(n.onPointerDown,r),onPointerMove:H(n.onPointerMove,E),onPointerUp:H(n.onPointerUp,h),onPointerCancel:H(n.onPointerCancel,h),onKeyDown:H(n.onKeyDown,F),onKeyUp:H(n.onKeyUp,b),style:{touchAction:"none",cursor:c?"move":void 0,...e}})};te.displayName="FloatingPanelHeader";import{Portal as qe}from"../utils/portal.js";import{jsx as Qe}from"react/jsx-runtime";var ne=({forceMount:e,children:o,...n})=>{let t=P("FloatingPanelPortal");return e||t.open||t.contentPresent?Qe(qe,{...n,children:o}):null};ne.displayName="FloatingPanelPortal";import*as oe from"react";import{directionalKey as je,useDirection as et}from"../utils/direction.js";import{skdxPart as tt}from"../utils/part.js";import{Primitive as nt,useComposedEventHandlers as L}from"../utils/primitive.js";import{jsx as lt}from"react/jsx-runtime";var ot=10,at={ArrowLeft:{dx:-1,dy:0},ArrowRight:{dx:1,dy:0},ArrowUp:{dx:0,dy:-1},ArrowDown:{dx:0,dy:1}};function it(e){if(e==="e"||e==="w")return"vertical";if(e==="n"||e==="s")return"horizontal"}function rt(e,o){let n=o?e.size.width:e.size.height,t=o?e.minSize.width:e.minSize.height,a=o?e.maxSize.width:e.maxSize.height,g=Number.POSITIVE_INFINITY;e.bounds&&(g=o?e.bounds.width-e.position.x:e.bounds.height-e.position.y);let s=Math.max(t,Math.min(a,g));return{current:n,minimum:t,maximum:s}}var ae=({direction:e,style:o,ref:n,...t})=>{let a=P("FloatingPanelResizeTrigger"),g=et(),s=oe.useRef(null),c=oe.useRef(!1),r=a.resizable&&!a.disabled,E=e.includes("e")||e.includes("w"),{current:h,minimum:F,maximum:b}=rt(a,E),i=it(e),d=l=>{r&&(l.currentTarget.setPointerCapture?.(l.pointerId),s.current={x:l.clientX,y:l.clientY},a.setResizing(!0))},y=l=>{let x=s.current;!r||!x||(a.resizeBy(e,l.clientX-x.x,l.clientY-x.y),s.current={x:l.clientX,y:l.clientY})},R=l=>{s.current&&(l.currentTarget.releasePointerCapture?.(l.pointerId),s.current=null,a.setResizing(!1),a.announceRelease("resize"))},T=l=>{if(!r)return;let x=a.step*(l.shiftKey?ot:1),O=je(l.key,l.currentTarget,g),v=at[O];v&&(l.preventDefault(),c.current=!0,a.resizeBy(e,v.dx*x,v.dy*x))},C=()=>{c.current&&(c.current=!1,a.announceRelease("resize"))};return lt(nt.div,{role:"separator","aria-orientation":i,"aria-valuenow":Math.round(h),"aria-valuemin":Math.round(F),"aria-valuemax":Number.isFinite(b)?Math.round(b):void 0,"aria-disabled":a.disabled||void 0,"aria-keyshortcuts":a.resizable?"ArrowUp ArrowDown ArrowLeft ArrowRight":void 0,"data-direction":e,"data-resizing":a.resizing?"":void 0,"data-disabled":a.disabled?"":void 0,tabIndex:a.resizable?0:void 0,...t,...tt("floating-panel","resize-trigger",t.className),ref:n,onPointerDown:L(t.onPointerDown,d),onPointerMove:L(t.onPointerMove,y),onPointerUp:L(t.onPointerUp,R),onPointerCancel:L(t.onPointerCancel,R),onKeyDown:L(t.onKeyDown,T),onKeyUp:L(t.onKeyUp,C),style:{touchAction:"none",cursor:r?`${e}-resize`:void 0,...o}})};ae.displayName="FloatingPanelResizeTrigger";import{skdxPart as st}from"../utils/part.js";import{composeEventHandlers as gt,Primitive as dt}from"../utils/primitive.js";import{jsx as ct}from"react/jsx-runtime";var ie=({stage:e,ref:o,...n})=>{let t=P("FloatingPanelStageTrigger"),a=t.stage===e;return ct(dt.button,{type:"button","aria-pressed":a,"aria-disabled":t.disabled||void 0,"data-stage":t.stage,"data-state":a?"on":"off","data-disabled":t.disabled?"":void 0,...n,...st("floating-panel","stage-trigger",n.className),ref:o,onClick:gt(n.onClick,()=>{t.disabled||t.onStageChange(a?"default":e)})})};ie.displayName="FloatingPanelStageTrigger";import*as ce from"react";import{skdxPart as ut}from"../utils/part.js";import{Primitive as mt}from"../utils/primitive.js";import{jsx as ft}from"react/jsx-runtime";var re=({ref:e,...o})=>{let n=P("FloatingPanelTitle"),{setHasTitle:t}=n;return ce.useEffect(()=>(t(!0),()=>t(!1)),[t]),ft(mt.h2,{id:n.titleId,...o,...ut("floating-panel","title",o.className),ref:e})};re.displayName="FloatingPanelTitle";import{jsx as D,jsxs as ue}from"react/jsx-runtime";var Pt=()=>D(pt,{name:"close"}),me=({title:e,stages:o=[],dismissible:n,resizable:t,children:a,passThrough:g})=>D(ne,{children:ue(j,{...g,children:[ue(te,{"aria-label":"Drag to move panel",children:[e?D(re,{children:e}):null,o.map(s=>D(ie,{stage:s.stage,children:s.label},s.stage)),n?D(q,{"aria-label":"Close",children:D(Pt,{})}):null]}),a,t?D(ae,{direction:"se","aria-label":"Resize panel"}):null]})});import{jsx as ge}from"react/jsx-runtime";function fe(e,{position:o,size:n}){return e==="move"?`Panel moved to ${o.x}, ${o.y}`:`Panel resized to ${n.width} by ${n.height}`}var[Ft,P]=ht("FloatingPanel"),bt={x:0,y:0},xt={width:320,height:240},wt={width:160,height:120},Tt={width:Number.POSITIVE_INFINITY,height:Number.POSITIVE_INFINITY};function se(e){let o=e?.current;if(o){let n=o.getBoundingClientRect();return{width:n.width,height:n.height}}return{width:window.innerWidth,height:window.innerHeight}}function Y(e,o,n,t){return _(e,o,Math.max(o,Math.min(n,t)))}function Ct(e,o,n){return m.useEffect(()=>{let t=e?.current,a=()=>{o(se(e));let g=t?.getBoundingClientRect(),s=g?{x:g.left||0,y:g.top||0}:{x:0,y:0};n(c=>c.x===s.x&&c.y===s.y?c:s)};if(a(),t&&typeof ResizeObserver<"u"){let g=new ResizeObserver(a);return g.observe(t),window.addEventListener("scroll",a,!0),()=>{g.disconnect(),window.removeEventListener("scroll",a,!0)}}return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[e,o,n]),!!e?.current}function pe({children:e,open:o,defaultOpen:n=!1,onOpenChange:t,onOpenChangeComplete:a,position:g,defaultPosition:s=bt,onPositionChange:c,onPositionCommit:r,size:E,defaultSize:h=xt,onSizeChange:F,onSizeCommit:b,minSize:i=wt,maxSize:d=Tt,boundary:y,stage:R,defaultStage:T="default",onStageChange:C,draggable:l=!0,resizable:x=!0,step:O=10,disabled:v=!1,getGestureAnnouncement:V}){let $=m.useRef(null),k=m.useRef(null),[J,W]=m.useState(!1),[he,ye]=m.useState(!1),[Re,Fe]=m.useState(!1),[be,xe]=m.useState(!1),[S,we]=m.useState(null),[Te,Ce]=m.useState({x:0,y:0}),[M=!1,ze]=G({prop:o,defaultProp:n,onChange:t}),[p=s,X]=G({prop:g,defaultProp:s,onChange:c}),[u=h,Z]=G({prop:E,defaultProp:h,onChange:F}),[Ee="default",ve]=G({prop:R,defaultProp:T,onChange:C});Rt(M,k,a);let Ie=Ct(y,we,Ce);m.useEffect(()=>{if(!S)return;let f=Math.min(u.width,Math.max(i.width,S.width)),z=Math.min(u.height,Math.max(i.height,S.height));(f!==u.width||z!==u.height)&&Z({width:f,height:z});let w=_(p.x,0,Math.max(0,S.width-f)),I=_(p.y,0,Math.max(0,S.height-z));(w!==p.x||I!==p.y)&&X({x:w,y:I})},[S,u,i,p,Z,X]);let de=m.useRef(M);m.useEffect(()=>{if(de.current&&!M){let f=document.activeElement;(!f||f===document.body||k.current?.contains(f))&&$.current?.focus()}de.current=M},[M]);let Se=le((f,z)=>{if(v||!l)return;let w=se(y),I={x:_(p.x+f,0,Math.max(0,w.width-u.width)),y:_(p.y+z,0,Math.max(0,w.height-u.height))};(I.x!==p.x||I.y!==p.y)&&X(I)}),De=le((f,z,w)=>{if(v||!x)return;let I=se(y),{x:U,y:K}=p,{width:N,height:A}=u;if(f.includes("e")&&(N=Y(u.width+z,i.width,d.width,I.width-U)),f.includes("w")){let B=U+N;N=Y(u.width-z,i.width,d.width,B),U=B-N}if(f.includes("s")&&(A=Y(u.height+w,i.height,d.height,I.height-K)),f.includes("n")){let B=K+A;A=Y(u.height-w,i.height,d.height,B),K=B-A}(N!==u.width||A!==u.height)&&Z({width:N,height:A}),(U!==p.x||K!==p.y)&&X({x:U,y:K})}),Me=le(f=>{f==="resize"&&b?.(u),r?.(p);let z={position:{x:Math.round(p.x),y:Math.round(p.y)},size:{width:Math.round(u.width),height:Math.round(u.height)}},w=(V??fe)(f,z);w&&yt(w)});return ge(Ft,{triggerRef:$,contentRef:k,contentId:m.useId(),titleId:m.useId(),hasTitle:be,setHasTitle:xe,open:M,onOpenChange:ze,position:p,size:u,minSize:i,maxSize:d,bounds:S,origin:Te,bounded:Ie,stage:Ee,onStageChange:ve,moveBy:Se,resizeBy:De,announceRelease:Me,draggable:l,resizable:x,disabled:v,step:O,dragging:J,setDragging:W,resizing:he,setResizing:ye,contentPresent:Re,setContentPresent:Fe,children:e})}pe.displayName="FloatingPanelRoot";function Pe({children:e,title:o,stages:n,dismissible:t=!0,resizable:a=!0,open:g,defaultOpen:s,onOpenChange:c,onOpenChangeComplete:r,position:E,defaultPosition:h,onPositionChange:F,onPositionCommit:b,size:i,defaultSize:d,onSizeChange:y,onSizeCommit:R,minSize:T,maxSize:C,boundary:l,stage:x,defaultStage:O,onStageChange:v,draggable:V,step:$,disabled:k,getGestureAnnouncement:J,...W}){return ge(pe,{open:g,defaultOpen:s,onOpenChange:c,onOpenChangeComplete:r,position:E,defaultPosition:h,onPositionChange:F,onPositionCommit:b,size:i,defaultSize:d,onSizeChange:y,onSizeCommit:R,minSize:T,maxSize:C,boundary:l,stage:x,defaultStage:O,onStageChange:v,draggable:V,resizable:a,step:$,disabled:k,getGestureAnnouncement:J,children:ge(me,{title:o,stages:n,dismissible:t,resizable:a,passThrough:W,children:e})})}Pe.displayName="FloatingPanel";import{useComposedRefs as zt}from"../utils/composeRefs.js";import{skdxPart as Et}from"../utils/part.js";import{composeEventHandlers as vt,Primitive as It}from"../utils/primitive.js";import{jsx as Dt}from"react/jsx-runtime";var St=({ref:e,...o})=>{let n=P("FloatingPanelTrigger"),t=zt(e,n.triggerRef);return Dt(It.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":n.open?"open":"closed",...o,...Et("floating-panel","trigger",o.className),ref:t,onClick:vt(o.onClick,()=>n.onOpenChange(!n.open))})};St.displayName="FloatingPanelTrigger";export{Pe as FloatingPanel,q as FloatingPanelCloseTrigger,j as FloatingPanelContent,te as FloatingPanelHeader,ne as FloatingPanelPortal,Ft as FloatingPanelProvider,ae as FloatingPanelResizeTrigger,pe as FloatingPanelRoot,ie as FloatingPanelStageTrigger,re as FloatingPanelTitle,St as FloatingPanelTrigger,fe as gestureAnnouncement,P as useFloatingPanelContext};
@@ -33,5 +33,4 @@ export { FloatingPanelTitle } from './FloatingPanelTitle.cjs';
33
33
  export { FloatingPanelCloseTrigger } from './FloatingPanelCloseTrigger.cjs';
34
34
  export { FloatingPanelResizeTrigger } from './FloatingPanelResizeTrigger.cjs';
35
35
  export { FloatingPanelStageTrigger } from './FloatingPanelStageTrigger.cjs';
36
- export type { FloatingPanelRootProps } from './FloatingPanel.cjs';
37
- export type { FloatingPanelTriggerProps, FloatingPanelPortalProps, FloatingPanelContentProps, FloatingPanelHeaderProps, FloatingPanelTitleProps, FloatingPanelCloseTriggerProps, FloatingPanelResizeTriggerProps, FloatingPanelStageTriggerProps, } from './types.cjs';
36
+ export type { FloatingPanelRootProps, FloatingPanelTriggerProps, FloatingPanelPortalProps, FloatingPanelContentProps, FloatingPanelHeaderProps, FloatingPanelTitleProps, FloatingPanelCloseTriggerProps, FloatingPanelResizeTriggerProps, FloatingPanelStageTriggerProps, } from './types.cjs';
@@ -33,5 +33,4 @@ export { FloatingPanelTitle } from './FloatingPanelTitle.js';
33
33
  export { FloatingPanelCloseTrigger } from './FloatingPanelCloseTrigger.js';
34
34
  export { FloatingPanelResizeTrigger } from './FloatingPanelResizeTrigger.js';
35
35
  export { FloatingPanelStageTrigger } from './FloatingPanelStageTrigger.js';
36
- export type { FloatingPanelRootProps } from './FloatingPanel.js';
37
- export type { FloatingPanelTriggerProps, FloatingPanelPortalProps, FloatingPanelContentProps, FloatingPanelHeaderProps, FloatingPanelTitleProps, FloatingPanelCloseTriggerProps, FloatingPanelResizeTriggerProps, FloatingPanelStageTriggerProps, } from './types.js';
36
+ export type { FloatingPanelRootProps, FloatingPanelTriggerProps, FloatingPanelPortalProps, FloatingPanelContentProps, FloatingPanelHeaderProps, FloatingPanelTitleProps, FloatingPanelCloseTriggerProps, FloatingPanelResizeTriggerProps, FloatingPanelStageTriggerProps, } from './types.js';
@@ -249,6 +249,8 @@ export interface FloatingPanelContentProps extends PrimitivePropsWithRef<'div'>
249
249
  */
250
250
  onInteractOutside?: ((event: InteractOutsideEvent) => void) | undefined;
251
251
  }
252
+ /** Props for {@link FloatingPanelRoot}: {@link FloatingPanelProps} minus the derived-anatomy-only props. */
253
+ export type FloatingPanelRootProps = Omit<FloatingPanelProps, 'title' | 'stages' | 'dismissible'>;
252
254
  /** Props for {@link FloatingPanelHeader}, the drag handle. */
253
255
  export interface FloatingPanelHeaderProps extends PrimitivePropsWithRef<'div'> {
254
256
  }
@@ -249,6 +249,8 @@ export interface FloatingPanelContentProps extends PrimitivePropsWithRef<'div'>
249
249
  */
250
250
  onInteractOutside?: ((event: InteractOutsideEvent) => void) | undefined;
251
251
  }
252
+ /** Props for {@link FloatingPanelRoot}: {@link FloatingPanelProps} minus the derived-anatomy-only props. */
253
+ export type FloatingPanelRootProps = Omit<FloatingPanelProps, 'title' | 'stages' | 'dismissible'>;
252
254
  /** Props for {@link FloatingPanelHeader}, the drag handle. */
253
255
  export interface FloatingPanelHeaderProps extends PrimitivePropsWithRef<'div'> {
254
256
  }
@@ -6,6 +6,11 @@ export type { ImageLoadingStatus };
6
6
  export interface ImageProps extends Omit<PrimitivePropsWithRef<'img'>, 'alt'> {
7
7
  /** Accessible description of the image; pass `""` to opt out for a purely decorative one. */
8
8
  alt: string;
9
+ /**
10
+ * Native `loading` hint, forwarded to the rendered `<img>`.
11
+ * @default 'lazy' — the library's own default, not the native `eager`.
12
+ */
13
+ loading?: 'lazy' | 'eager' | undefined;
9
14
  /**
10
15
  * `object-fit`, emitted as an inline declaration.
11
16
  * @default undefined — no inline declaration.
@@ -6,6 +6,11 @@ export type { ImageLoadingStatus };
6
6
  export interface ImageProps extends Omit<PrimitivePropsWithRef<'img'>, 'alt'> {
7
7
  /** Accessible description of the image; pass `""` to opt out for a purely decorative one. */
8
8
  alt: string;
9
+ /**
10
+ * Native `loading` hint, forwarded to the rendered `<img>`.
11
+ * @default 'lazy' — the library's own default, not the native `eager`.
12
+ */
13
+ loading?: 'lazy' | 'eager' | undefined;
9
14
  /**
10
15
  * `object-fit`, emitted as an inline declaration.
11
16
  * @default undefined — no inline declaration.
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var a=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var R=(e,o)=>{for(var t in o)a(e,t,{get:o[t],enumerable:!0})},y=(e,o,t,l)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of T(o))!C.call(e,r)&&r!==t&&a(e,r,{get:()=>o[r],enumerable:!(l=x(o,r))||l.enumerable});return e};var d=e=>y(a({},"__esModule",{value:!0}),e);var z={};R(z,{FloatingPanelCloseTrigger:()=>s.FloatingPanelCloseTrigger,FloatingPanelContent:()=>P.FloatingPanelContent,FloatingPanelHeader:()=>p.FloatingPanelHeader,FloatingPanelPortal:()=>i.FloatingPanelPortal,FloatingPanelResizeTrigger:()=>f.FloatingPanelResizeTrigger,FloatingPanelRoot:()=>n.FloatingPanelRoot,FloatingPanelStageTrigger:()=>m.FloatingPanelStageTrigger,FloatingPanelTitle:()=>F.FloatingPanelTitle,FloatingPanelTrigger:()=>g.FloatingPanelTrigger});module.exports=d(z);var n=require("../floating-panel/FloatingPanel.cjs"),g=require("../floating-panel/FloatingPanel.cjs"),i=require("../floating-panel/FloatingPanel.cjs"),P=require("../floating-panel/FloatingPanel.cjs"),p=require("../floating-panel/FloatingPanel.cjs"),F=require("../floating-panel/FloatingPanel.cjs"),s=require("../floating-panel/FloatingPanel.cjs"),f=require("../floating-panel/FloatingPanel.cjs"),m=require("../floating-panel/FloatingPanel.cjs");0&&(module.exports={FloatingPanelCloseTrigger,FloatingPanelContent,FloatingPanelHeader,FloatingPanelPortal,FloatingPanelResizeTrigger,FloatingPanelRoot,FloatingPanelStageTrigger,FloatingPanelTitle,FloatingPanelTrigger});
2
+ "use strict";var l=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var R=(e,o)=>{for(var a in o)l(e,a,{get:o[a],enumerable:!0})},d=(e,o,a,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of T(o))!C.call(e,r)&&r!==a&&l(e,r,{get:()=>o[r],enumerable:!(t=x(o,r))||t.enumerable});return e};var y=e=>d(l({},"__esModule",{value:!0}),e);var z={};R(z,{FloatingPanelCloseTrigger:()=>s.FloatingPanelCloseTrigger,FloatingPanelContent:()=>P.FloatingPanelContent,FloatingPanelHeader:()=>p.FloatingPanelHeader,FloatingPanelPortal:()=>i.FloatingPanelPortal,FloatingPanelResizeTrigger:()=>f.FloatingPanelResizeTrigger,FloatingPanelRoot:()=>n.FloatingPanelRoot,FloatingPanelStageTrigger:()=>m.FloatingPanelStageTrigger,FloatingPanelTitle:()=>F.FloatingPanelTitle,FloatingPanelTrigger:()=>g.FloatingPanelTrigger});module.exports=y(z);var n=require("../floating-panel/FloatingPanel.cjs"),g=require("../floating-panel/FloatingPanel.cjs"),i=require("../floating-panel/FloatingPanel.cjs"),P=require("../floating-panel/FloatingPanel.cjs"),p=require("../floating-panel/FloatingPanel.cjs"),F=require("../floating-panel/FloatingPanel.cjs"),s=require("../floating-panel/FloatingPanel.cjs"),f=require("../floating-panel/FloatingPanel.cjs"),m=require("../floating-panel/FloatingPanel.cjs");0&&(module.exports={FloatingPanelCloseTrigger,FloatingPanelContent,FloatingPanelHeader,FloatingPanelPortal,FloatingPanelResizeTrigger,FloatingPanelRoot,FloatingPanelStageTrigger,FloatingPanelTitle,FloatingPanelTrigger});
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{FloatingPanelRoot as r}from"../floating-panel/FloatingPanel.js";import{FloatingPanelTrigger as a}from"../floating-panel/FloatingPanel.js";import{FloatingPanelPortal as n}from"../floating-panel/FloatingPanel.js";import{FloatingPanelContent as i}from"../floating-panel/FloatingPanel.js";import{FloatingPanelHeader as p}from"../floating-panel/FloatingPanel.js";import{FloatingPanelTitle as s}from"../floating-panel/FloatingPanel.js";import{FloatingPanelCloseTrigger as m}from"../floating-panel/FloatingPanel.js";import{FloatingPanelResizeTrigger as T}from"../floating-panel/FloatingPanel.js";import{FloatingPanelStageTrigger as R}from"../floating-panel/FloatingPanel.js";export{m as FloatingPanelCloseTrigger,i as FloatingPanelContent,p as FloatingPanelHeader,n as FloatingPanelPortal,T as FloatingPanelResizeTrigger,r as FloatingPanelRoot,R as FloatingPanelStageTrigger,s as FloatingPanelTitle,a as FloatingPanelTrigger};
2
+ import{FloatingPanelRoot as r}from"../floating-panel/FloatingPanel.js";import{FloatingPanelTrigger as l}from"../floating-panel/FloatingPanel.js";import{FloatingPanelPortal as n}from"../floating-panel/FloatingPanel.js";import{FloatingPanelContent as i}from"../floating-panel/FloatingPanel.js";import{FloatingPanelHeader as p}from"../floating-panel/FloatingPanel.js";import{FloatingPanelTitle as s}from"../floating-panel/FloatingPanel.js";import{FloatingPanelCloseTrigger as m}from"../floating-panel/FloatingPanel.js";import{FloatingPanelResizeTrigger as T}from"../floating-panel/FloatingPanel.js";import{FloatingPanelStageTrigger as R}from"../floating-panel/FloatingPanel.js";export{m as FloatingPanelCloseTrigger,i as FloatingPanelContent,p as FloatingPanelHeader,n as FloatingPanelPortal,T as FloatingPanelResizeTrigger,r as FloatingPanelRoot,R as FloatingPanelStageTrigger,s as FloatingPanelTitle,l as FloatingPanelTrigger};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var se=Object.create;var x=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var me=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty;var Re=(e,n)=>{for(var r in n)x(e,r,{get:n[r],enumerable:!0})},G=(e,n,r,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of me(n))!de.call(e,t)&&t!==r&&x(e,t,{get:()=>n[t],enumerable:!(a=ce(n,t))||a.enumerable});return e};var W=(e,n,r)=>(r=e!=null?se(fe(e)):{},G(n||!e||!e.__esModule?x(r,"default",{value:e,enumerable:!0}):r,e)),ge=e=>G(x({},"__esModule",{value:!0}),e);var Ve={};Re(Ve,{Rating:()=>T,RatingItem:()=>S,RatingProvider:()=>ne,useRatingContext:()=>M});module.exports=ge(Ve);var u=W(require("react"),1),U=require("../utils/appearance.cjs"),Q=require("../utils/clamp.cjs"),Y=require("../utils/createContext.cjs"),I=require("../utils/direction.cjs"),L=require("../utils/formControl.cjs"),Z=require("../utils/hiddenInput.cjs"),j=require("../utils/part.cjs"),V=require("../utils/primitive.cjs"),ee=require("../utils/useControllableState.cjs"),te=require("../utils/useRovingFocus.cjs");var B=require("../utils/Glyph.cjs");var X=W(require("react"),1),_=require("../utils/direction.cjs"),q=require("../utils/part.cjs"),l=require("../utils/primitive.cjs");var K=require("react/jsx-runtime");function pe(e,n,r,a,t){return e?{role:"presentation"}:{role:"radio","aria-checked":n,"aria-label":t.itemLabel(a,t.max),tabIndex:r?0:-1}}var S=({value:e,disabled:n,ref:r,...a})=>{let t=M("RatingItem"),{allowHalf:s}=t,g=t.value===e||s&&t.value===e-.5,m=t.disabled||n||!1,d=t.hoverValue??t.value,b=d>=(s?e-.5:e),P=s&&d===e-.5,A=g||t.value===0&&e===1,p=X.useRef(!1),D=(o,f)=>{if(!(m||t.readOnly)){if(t.allowClear&&o===t.value){t.onValueChange(0,f);return}t.onValueChange(o,f)}},v=o=>{if(!s)return e;let f=o.currentTarget.getBoundingClientRect();if(!f.width)return e;let C=(o.clientX-f.left)/f.width;return((0,_.resolveDirection)(o.currentTarget)==="rtl"?1-C:C)<=.5?e-.5:e},k={...pe(s,g,A,e,t),"data-skdx-rating-item":"","data-state":g?"checked":"unchecked","data-half":P?"":void 0,"data-highlighted":b?"":void 0,"data-disabled":m?"":void 0,...a,...(0,q.skdxPart)("rating","item",a.className),onClick:(0,l.composeEventHandlers)(a.onClick,o=>D(v(o),"pointer")),onFocus:(0,l.useComposedEventHandlers)(a.onFocus,()=>{let o=p.current?"pointer":"keyboard";p.current=!1,!s&&!g&&D(e,o)}),onPointerDown:(0,l.useComposedEventHandlers)(a.onPointerDown,()=>{p.current=!0}),onPointerEnter:(0,l.composeEventHandlers)(a.onPointerEnter,o=>{!m&&!t.readOnly&&t.onHoverValueChange(v(o))}),onPointerMove:(0,l.composeEventHandlers)(a.onPointerMove,o=>{!s||m||t.readOnly||t.onHoverValueChange(v(o))}),onKeyDown:(0,l.composeEventHandlers)(a.onKeyDown,o=>{o.key==="Enter"&&o.preventDefault()})};return s?(0,K.jsx)(l.Primitive.span,{...k,ref:r}):(0,K.jsx)(l.Primitive.button,{type:"button",disabled:m,...k,ref:r})};S.displayName="RatingItem";var R=require("react/jsx-runtime");function he(){return(0,R.jsx)(B.Glyph,{name:"star"})}function J({max:e,icon:n}){return(0,R.jsx)(R.Fragment,{children:Array.from({length:e},(r,a)=>(0,R.jsx)(S,{value:a+1,children:n??(0,R.jsx)(he,{})},a))})}var y=require("react/jsx-runtime"),ye="[data-skdx-rating-item]",be=(e,n)=>`${e} of ${n} stars`,[ne,M]=(0,Y.createSafeContext)("Rating");function ve(e,n,r,a){return e?{role:"slider","aria-valuemin":0,"aria-valuemax":n,"aria-valuenow":r,"aria-valuetext":`${r} out of ${n}`,"aria-orientation":"horizontal",tabIndex:a?-1:0}:{role:"radiogroup"}}function Ce(e,n){return{"aria-disabled":e||void 0,"aria-readonly":n||void 0,"data-disabled":e?"":void 0,"data-readonly":n?"":void 0}}var T=({value:e,defaultValue:n=0,onValueChange:r,onHoverValueChange:a,max:t=5,itemLabel:s=be,allowClear:g=!1,allowHalf:m=!1,disabled:d=!1,readOnly:b=!1,name:P,required:A=!1,form:p,icon:D,children:v,ref:F,size:k,...o})=>{let f=u.useRef("programmatic"),C=u.useRef(null),[c=0,N]=(0,ee.useControllableState)({prop:e,defaultProp:n,onChange:i=>r?.({value:i,previousValue:C.current,reason:f.current})}),E=u.useCallback((i,h)=>{f.current=h,C.current=c===0?null:c,N(i)},[c,N]),[oe,ae]=u.useState(null),w=u.useRef(null),O=u.useRef(null);(0,L.useFormValidityHandle)(F,w,O),(0,L.useFormReset)(w,()=>E(n,"programmatic"),p);let re=(0,I.useDirection)(),ie=(0,te.useRovingFocus)({orientation:"horizontal",loop:!1,itemSelector:ye}),$=u.useRef(null),z=u.useCallback(i=>{$.current!==i&&($.current=i,ae(i),a?.(i))},[a]),le=i=>{let h=(0,I.directionalKey)(i.key,w.current,re),H=null;h==="ArrowRight"||h==="ArrowUp"?H=c+.5:(h==="ArrowLeft"||h==="ArrowDown")&&(H=c-.5),H!==null&&(i.preventDefault(),E((0,Q.clamp)(H,0,t),"keyboard"))},ue=ve(m,t,c,d);return(0,y.jsxs)(ne,{value:c,max:t,itemLabel:s,allowClear:g,allowHalf:m,disabled:d,readOnly:b,hoverValue:oe,onValueChange:E,onHoverValueChange:z,children:[(0,y.jsx)(V.Primitive.div,{...ue,...Ce(d,b),...o,...(0,U.appearanceAttrs)({size:k},o),...(0,j.skdxPart)("rating","root",o.className),ref:w,onKeyDown:(0,V.useComposedEventHandlers)(o.onKeyDown,i=>{if(!(d||b)){if(i.key==="Home"||i.key==="End"){i.preventDefault(),E(i.key==="Home"?0:t,"keyboard");return}m?le(i):ie(i)}}),onPointerLeave:(0,V.useComposedEventHandlers)(o.onPointerLeave,()=>z(null)),children:v??(0,y.jsx)(J,{max:t,icon:D})}),P?(0,y.jsx)(Z.HiddenInput,{ref:O,type:"text",name:P,form:p,value:c>0?String(c):"",required:A,disabled:d}):null]})};T.displayName="Rating";0&&(module.exports={Rating,RatingItem,RatingProvider,useRatingContext});
2
+ "use strict";var se=Object.create;var x=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var me=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty;var Re=(e,n)=>{for(var r in n)x(e,r,{get:n[r],enumerable:!0})},G=(e,n,r,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of me(n))!de.call(e,t)&&t!==r&&x(e,t,{get:()=>n[t],enumerable:!(a=ce(n,t))||a.enumerable});return e};var W=(e,n,r)=>(r=e!=null?se(fe(e)):{},G(n||!e||!e.__esModule?x(r,"default",{value:e,enumerable:!0}):r,e)),ge=e=>G(x({},"__esModule",{value:!0}),e);var Pe={};Re(Pe,{Rating:()=>T,RatingItem:()=>S,RatingProvider:()=>ne,useRatingContext:()=>M});module.exports=ge(Pe);var u=W(require("react"),1),U=require("../utils/appearance.cjs"),Q=require("../utils/clamp.cjs"),Y=require("../utils/createContext.cjs"),I=require("../utils/direction.cjs"),L=require("../utils/formControl.cjs"),Z=require("../utils/hiddenInput.cjs"),j=require("../utils/part.cjs"),P=require("../utils/primitive.cjs"),ee=require("../utils/useControllableState.cjs"),te=require("../utils/useRovingFocus.cjs");var B=require("../utils/Glyph.cjs");var X=W(require("react"),1),_=require("../utils/direction.cjs"),q=require("../utils/part.cjs"),l=require("../utils/primitive.cjs");var K=require("react/jsx-runtime");function pe(e,n,r,a,t){return e?{role:"presentation"}:{role:"radio","aria-checked":n,"aria-label":t.itemLabel(a,t.max),tabIndex:r?0:-1}}var S=({value:e,disabled:n,ref:r,...a})=>{let t=M("RatingItem"),{allowHalf:s}=t,g=t.value===e||s&&t.value===e-.5,m=t.disabled||n||!1,d=t.hoverValue??t.value,b=d>=(s?e-.5:e),V=s&&d===e-.5,A=g||t.value===0&&e===1,p=X.useRef(!1),D=(o,f)=>{if(!(m||t.readOnly)){if(t.allowClear&&o===t.value){t.onValueChange(0,f);return}t.onValueChange(o,f)}},v=o=>{if(!s)return e;let f=o.currentTarget.getBoundingClientRect();if(!f.width)return e;let C=(o.clientX-f.left)/f.width;return((0,_.resolveDirection)(o.currentTarget)==="rtl"?1-C:C)<=.5?e-.5:e},k={...pe(s,g,A,e,t),"data-skdx-rating-item":"","data-state":g?"checked":"unchecked","data-half":V?"":void 0,"data-highlighted":b?"":void 0,"data-disabled":m?"":void 0,...a,...(0,q.skdxPart)("rating","item",a.className),onClick:(0,l.composeEventHandlers)(a.onClick,o=>D(v(o),"pointer")),onFocus:(0,l.useComposedEventHandlers)(a.onFocus,()=>{let o=p.current;p.current=!1,!s&&!g&&!o&&D(e,"keyboard")}),onPointerDown:(0,l.useComposedEventHandlers)(a.onPointerDown,()=>{p.current=!0}),onPointerEnter:(0,l.composeEventHandlers)(a.onPointerEnter,o=>{!m&&!t.readOnly&&t.onHoverValueChange(v(o))}),onPointerMove:(0,l.composeEventHandlers)(a.onPointerMove,o=>{!s||m||t.readOnly||t.onHoverValueChange(v(o))}),onKeyDown:(0,l.composeEventHandlers)(a.onKeyDown,o=>{o.key==="Enter"&&o.preventDefault()})};return s?(0,K.jsx)(l.Primitive.span,{...k,ref:r}):(0,K.jsx)(l.Primitive.button,{type:"button",disabled:m,...k,ref:r})};S.displayName="RatingItem";var R=require("react/jsx-runtime");function he(){return(0,R.jsx)(B.Glyph,{name:"star"})}function J({max:e,icon:n}){return(0,R.jsx)(R.Fragment,{children:Array.from({length:e},(r,a)=>(0,R.jsx)(S,{value:a+1,children:n??(0,R.jsx)(he,{})},a))})}var y=require("react/jsx-runtime"),ye="[data-skdx-rating-item]",be=(e,n)=>`${e} of ${n} stars`,[ne,M]=(0,Y.createSafeContext)("Rating");function ve(e,n,r,a){return e?{role:"slider","aria-valuemin":0,"aria-valuemax":n,"aria-valuenow":r,"aria-valuetext":`${r} out of ${n}`,"aria-orientation":"horizontal",tabIndex:a?-1:0}:{role:"radiogroup"}}function Ce(e,n){return{"aria-disabled":e||void 0,"aria-readonly":n||void 0,"data-disabled":e?"":void 0,"data-readonly":n?"":void 0}}var T=({value:e,defaultValue:n=0,onValueChange:r,onHoverValueChange:a,max:t=5,itemLabel:s=be,allowClear:g=!1,allowHalf:m=!1,disabled:d=!1,readOnly:b=!1,name:V,required:A=!1,form:p,icon:D,children:v,ref:F,size:k,...o})=>{let f=u.useRef("programmatic"),C=u.useRef(null),[c=0,N]=(0,ee.useControllableState)({prop:e,defaultProp:n,onChange:i=>r?.({value:i,previousValue:C.current,reason:f.current})}),E=u.useCallback((i,h)=>{f.current=h,C.current=c===0?null:c,N(i)},[c,N]),[oe,ae]=u.useState(null),w=u.useRef(null),O=u.useRef(null);(0,L.useFormValidityHandle)(F,w,O),(0,L.useFormReset)(w,()=>E(n,"programmatic"),p);let re=(0,I.useDirection)(),ie=(0,te.useRovingFocus)({orientation:"horizontal",loop:!1,itemSelector:ye}),$=u.useRef(null),z=u.useCallback(i=>{$.current!==i&&($.current=i,ae(i),a?.(i))},[a]),le=i=>{let h=(0,I.directionalKey)(i.key,w.current,re),H=null;h==="ArrowRight"||h==="ArrowUp"?H=c+.5:(h==="ArrowLeft"||h==="ArrowDown")&&(H=c-.5),H!==null&&(i.preventDefault(),E((0,Q.clamp)(H,0,t),"keyboard"))},ue=ve(m,t,c,d);return(0,y.jsxs)(ne,{value:c,max:t,itemLabel:s,allowClear:g,allowHalf:m,disabled:d,readOnly:b,hoverValue:oe,onValueChange:E,onHoverValueChange:z,children:[(0,y.jsx)(P.Primitive.div,{...ue,...Ce(d,b),...o,...(0,U.appearanceAttrs)({size:k},o),...(0,j.skdxPart)("rating","root",o.className),ref:w,onKeyDown:(0,P.useComposedEventHandlers)(o.onKeyDown,i=>{if(!(d||b)){if(i.key==="Home"||i.key==="End"){i.preventDefault(),E(i.key==="Home"?0:t,"keyboard");return}m?le(i):ie(i)}}),onPointerLeave:(0,P.useComposedEventHandlers)(o.onPointerLeave,()=>z(null)),children:v??(0,y.jsx)(J,{max:t,icon:D})}),V?(0,y.jsx)(Z.HiddenInput,{ref:O,type:"text",name:V,form:p,value:c>0?String(c):"",required:A,disabled:d}):null]})};T.displayName="Rating";0&&(module.exports={Rating,RatingItem,RatingProvider,useRatingContext});
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import*as i from"react";import{appearanceAttrs as te}from"../utils/appearance.js";import{clamp as ne}from"../utils/clamp.js";import{createSafeContext as oe}from"../utils/createContext.js";import{directionalKey as ae,useDirection as re}from"../utils/direction.js";import{useFormReset as ie,useFormValidityHandle as le}from"../utils/formControl.js";import{HiddenInput as ue}from"../utils/hiddenInput.js";import{skdxPart as se}from"../utils/part.js";import{Primitive as ce,useComposedEventHandlers as z}from"../utils/primitive.js";import{useControllableState as me}from"../utils/useControllableState.js";import{useRovingFocus as fe}from"../utils/useRovingFocus.js";import{Glyph as Z}from"../utils/Glyph.js";import*as N from"react";import{resolveDirection as U}from"../utils/direction.js";import{skdxPart as Q}from"../utils/part.js";import{composeEventHandlers as k,Primitive as M,useComposedEventHandlers as T}from"../utils/primitive.js";import{jsx as F}from"react/jsx-runtime";function Y(t,r,l,o,e){return t?{role:"presentation"}:{role:"radio","aria-checked":r,"aria-label":e.itemLabel(o,e.max),tabIndex:l?0:-1}}var H=({value:t,disabled:r,ref:l,...o})=>{let e=O("RatingItem"),{allowHalf:u}=e,d=e.value===t||u&&e.value===t-.5,c=e.disabled||r||!1,f=e.hoverValue??e.value,p=f>=(u?t-.5:t),b=u&&f===t-.5,w=d||e.value===0&&t===1,R=N.useRef(!1),v=(n,m)=>{if(!(c||e.readOnly)){if(e.allowClear&&n===e.value){e.onValueChange(0,m);return}e.onValueChange(n,m)}},h=n=>{if(!u)return t;let m=n.currentTarget.getBoundingClientRect();if(!m.width)return t;let y=(n.clientX-m.left)/m.width;return(U(n.currentTarget)==="rtl"?1-y:y)<=.5?t-.5:t},C={...Y(u,d,w,t,e),"data-skdx-rating-item":"","data-state":d?"checked":"unchecked","data-half":b?"":void 0,"data-highlighted":p?"":void 0,"data-disabled":c?"":void 0,...o,...Q("rating","item",o.className),onClick:k(o.onClick,n=>v(h(n),"pointer")),onFocus:T(o.onFocus,()=>{let n=R.current?"pointer":"keyboard";R.current=!1,!u&&!d&&v(t,n)}),onPointerDown:T(o.onPointerDown,()=>{R.current=!0}),onPointerEnter:k(o.onPointerEnter,n=>{!c&&!e.readOnly&&e.onHoverValueChange(h(n))}),onPointerMove:k(o.onPointerMove,n=>{!u||c||e.readOnly||e.onHoverValueChange(h(n))}),onKeyDown:k(o.onKeyDown,n=>{n.key==="Enter"&&n.preventDefault()})};return u?F(M.span,{...C,ref:l}):F(M.button,{type:"button",disabled:c,...C,ref:l})};H.displayName="RatingItem";import{Fragment as ee,jsx as E}from"react/jsx-runtime";function j(){return E(Z,{name:"star"})}function $({max:t,icon:r}){return E(ee,{children:Array.from({length:t},(l,o)=>E(H,{value:o+1,children:r??E(j,{})},o))})}import{jsx as x,jsxs as ye}from"react/jsx-runtime";var de="[data-skdx-rating-item]",Re=(t,r)=>`${t} of ${r} stars`,[ge,O]=oe("Rating");function pe(t,r,l,o){return t?{role:"slider","aria-valuemin":0,"aria-valuemax":r,"aria-valuenow":l,"aria-valuetext":`${l} out of ${r}`,"aria-orientation":"horizontal",tabIndex:o?-1:0}:{role:"radiogroup"}}function he(t,r){return{"aria-disabled":t||void 0,"aria-readonly":r||void 0,"data-disabled":t?"":void 0,"data-readonly":r?"":void 0}}var G=({value:t,defaultValue:r=0,onValueChange:l,onHoverValueChange:o,max:e=5,itemLabel:u=Re,allowClear:d=!1,allowHalf:c=!1,disabled:f=!1,readOnly:p=!1,name:b,required:w=!1,form:R,icon:v,children:h,ref:S,size:C,...n})=>{let m=i.useRef("programmatic"),y=i.useRef(null),[s=0,I]=me({prop:t,defaultProp:r,onChange:a=>l?.({value:a,previousValue:y.current,reason:m.current})}),V=i.useCallback((a,g)=>{m.current=g,y.current=s===0?null:s,I(a)},[s,I]),[W,X]=i.useState(null),P=i.useRef(null),L=i.useRef(null);le(S,P,L),ie(P,()=>V(r,"programmatic"),R);let _=re(),q=fe({orientation:"horizontal",loop:!1,itemSelector:de}),A=i.useRef(null),K=i.useCallback(a=>{A.current!==a&&(A.current=a,X(a),o?.(a))},[o]),B=a=>{let g=ae(a.key,P.current,_),D=null;g==="ArrowRight"||g==="ArrowUp"?D=s+.5:(g==="ArrowLeft"||g==="ArrowDown")&&(D=s-.5),D!==null&&(a.preventDefault(),V(ne(D,0,e),"keyboard"))},J=pe(c,e,s,f);return ye(ge,{value:s,max:e,itemLabel:u,allowClear:d,allowHalf:c,disabled:f,readOnly:p,hoverValue:W,onValueChange:V,onHoverValueChange:K,children:[x(ce.div,{...J,...he(f,p),...n,...te({size:C},n),...se("rating","root",n.className),ref:P,onKeyDown:z(n.onKeyDown,a=>{if(!(f||p)){if(a.key==="Home"||a.key==="End"){a.preventDefault(),V(a.key==="Home"?0:e,"keyboard");return}c?B(a):q(a)}}),onPointerLeave:z(n.onPointerLeave,()=>K(null)),children:h??x($,{max:e,icon:v})}),b?x(ue,{ref:L,type:"text",name:b,form:R,value:s>0?String(s):"",required:w,disabled:f}):null]})};G.displayName="Rating";export{G as Rating,H as RatingItem,ge as RatingProvider,O as useRatingContext};
2
+ import*as i from"react";import{appearanceAttrs as te}from"../utils/appearance.js";import{clamp as ne}from"../utils/clamp.js";import{createSafeContext as oe}from"../utils/createContext.js";import{directionalKey as ae,useDirection as re}from"../utils/direction.js";import{useFormReset as ie,useFormValidityHandle as le}from"../utils/formControl.js";import{HiddenInput as ue}from"../utils/hiddenInput.js";import{skdxPart as se}from"../utils/part.js";import{Primitive as ce,useComposedEventHandlers as z}from"../utils/primitive.js";import{useControllableState as me}from"../utils/useControllableState.js";import{useRovingFocus as fe}from"../utils/useRovingFocus.js";import{Glyph as Z}from"../utils/Glyph.js";import*as N from"react";import{resolveDirection as U}from"../utils/direction.js";import{skdxPart as Q}from"../utils/part.js";import{composeEventHandlers as k,Primitive as M,useComposedEventHandlers as T}from"../utils/primitive.js";import{jsx as F}from"react/jsx-runtime";function Y(t,r,l,o,e){return t?{role:"presentation"}:{role:"radio","aria-checked":r,"aria-label":e.itemLabel(o,e.max),tabIndex:l?0:-1}}var H=({value:t,disabled:r,ref:l,...o})=>{let e=O("RatingItem"),{allowHalf:u}=e,d=e.value===t||u&&e.value===t-.5,c=e.disabled||r||!1,f=e.hoverValue??e.value,p=f>=(u?t-.5:t),b=u&&f===t-.5,w=d||e.value===0&&t===1,R=N.useRef(!1),v=(n,m)=>{if(!(c||e.readOnly)){if(e.allowClear&&n===e.value){e.onValueChange(0,m);return}e.onValueChange(n,m)}},h=n=>{if(!u)return t;let m=n.currentTarget.getBoundingClientRect();if(!m.width)return t;let y=(n.clientX-m.left)/m.width;return(U(n.currentTarget)==="rtl"?1-y:y)<=.5?t-.5:t},C={...Y(u,d,w,t,e),"data-skdx-rating-item":"","data-state":d?"checked":"unchecked","data-half":b?"":void 0,"data-highlighted":p?"":void 0,"data-disabled":c?"":void 0,...o,...Q("rating","item",o.className),onClick:k(o.onClick,n=>v(h(n),"pointer")),onFocus:T(o.onFocus,()=>{let n=R.current;R.current=!1,!u&&!d&&!n&&v(t,"keyboard")}),onPointerDown:T(o.onPointerDown,()=>{R.current=!0}),onPointerEnter:k(o.onPointerEnter,n=>{!c&&!e.readOnly&&e.onHoverValueChange(h(n))}),onPointerMove:k(o.onPointerMove,n=>{!u||c||e.readOnly||e.onHoverValueChange(h(n))}),onKeyDown:k(o.onKeyDown,n=>{n.key==="Enter"&&n.preventDefault()})};return u?F(M.span,{...C,ref:l}):F(M.button,{type:"button",disabled:c,...C,ref:l})};H.displayName="RatingItem";import{Fragment as ee,jsx as E}from"react/jsx-runtime";function j(){return E(Z,{name:"star"})}function $({max:t,icon:r}){return E(ee,{children:Array.from({length:t},(l,o)=>E(H,{value:o+1,children:r??E(j,{})},o))})}import{jsx as x,jsxs as ye}from"react/jsx-runtime";var de="[data-skdx-rating-item]",Re=(t,r)=>`${t} of ${r} stars`,[ge,O]=oe("Rating");function pe(t,r,l,o){return t?{role:"slider","aria-valuemin":0,"aria-valuemax":r,"aria-valuenow":l,"aria-valuetext":`${l} out of ${r}`,"aria-orientation":"horizontal",tabIndex:o?-1:0}:{role:"radiogroup"}}function he(t,r){return{"aria-disabled":t||void 0,"aria-readonly":r||void 0,"data-disabled":t?"":void 0,"data-readonly":r?"":void 0}}var G=({value:t,defaultValue:r=0,onValueChange:l,onHoverValueChange:o,max:e=5,itemLabel:u=Re,allowClear:d=!1,allowHalf:c=!1,disabled:f=!1,readOnly:p=!1,name:b,required:w=!1,form:R,icon:v,children:h,ref:S,size:C,...n})=>{let m=i.useRef("programmatic"),y=i.useRef(null),[s=0,I]=me({prop:t,defaultProp:r,onChange:a=>l?.({value:a,previousValue:y.current,reason:m.current})}),P=i.useCallback((a,g)=>{m.current=g,y.current=s===0?null:s,I(a)},[s,I]),[W,X]=i.useState(null),V=i.useRef(null),L=i.useRef(null);le(S,V,L),ie(V,()=>P(r,"programmatic"),R);let _=re(),q=fe({orientation:"horizontal",loop:!1,itemSelector:de}),A=i.useRef(null),K=i.useCallback(a=>{A.current!==a&&(A.current=a,X(a),o?.(a))},[o]),B=a=>{let g=ae(a.key,V.current,_),D=null;g==="ArrowRight"||g==="ArrowUp"?D=s+.5:(g==="ArrowLeft"||g==="ArrowDown")&&(D=s-.5),D!==null&&(a.preventDefault(),P(ne(D,0,e),"keyboard"))},J=pe(c,e,s,f);return ye(ge,{value:s,max:e,itemLabel:u,allowClear:d,allowHalf:c,disabled:f,readOnly:p,hoverValue:W,onValueChange:P,onHoverValueChange:K,children:[x(ce.div,{...J,...he(f,p),...n,...te({size:C},n),...se("rating","root",n.className),ref:V,onKeyDown:z(n.onKeyDown,a=>{if(!(f||p)){if(a.key==="Home"||a.key==="End"){a.preventDefault(),P(a.key==="Home"?0:e,"keyboard");return}c?B(a):q(a)}}),onPointerLeave:z(n.onPointerLeave,()=>K(null)),children:h??x($,{max:e,icon:v})}),b?x(ue,{ref:L,type:"text",name:b,form:R,value:s>0?String(s):"",required:w,disabled:f}):null]})};G.displayName="Rating";export{G as Rating,H as RatingItem,ge as RatingProvider,O as useRatingContext};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var Qn=Object.create;var Y=Object.defineProperty;var Yn=Object.getOwnPropertyDescriptor;var Zn=Object.getOwnPropertyNames;var jn=Object.getPrototypeOf,eo=Object.prototype.hasOwnProperty;var to=(e,n)=>{for(var t in n)Y(e,t,{get:n[t],enumerable:!0})},We=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of Zn(n))!eo.call(e,o)&&o!==t&&Y(e,o,{get:()=>n[o],enumerable:!(r=Yn(n,o))||r.enumerable});return e};var D=(e,n,t)=>(t=e!=null?Qn(jn(e)):{},We(n||!e||!e.__esModule?Y(t,"default",{value:e,enumerable:!0}):t,e)),no=e=>We(Y({},"__esModule",{value:!0}),e);var xo={};to(xo,{OPTION_SELECTOR:()=>re,Select:()=>pn,SelectAll:()=>j,SelectClear:()=>te,SelectContent:()=>oe,SelectEmpty:()=>le,SelectGroup:()=>ae,SelectGroupProvider:()=>it,SelectIcon:()=>ce,SelectInput:()=>se,SelectItem:()=>ie,SelectItemIndicator:()=>de,SelectItemProvider:()=>It,SelectItemText:()=>me,SelectLabel:()=>fe,SelectPortal:()=>pe,SelectProvider:()=>fn,SelectSeparator:()=>yn,SelectTag:()=>Se,SelectTagList:()=>ge,SelectTagRemove:()=>ye,SelectTrigger:()=>Re,SelectValue:()=>be,SelectViewport:()=>he,defaultGetSelectionLabel:()=>mn,selectSelectionKeyAction:()=>$,useSelectContext:()=>C,useSelectGroupContext:()=>Ee,useSelectItemContext:()=>_});module.exports=no(xo);var c=D(require("react"),1),rn=require("../utils/createContext.cjs"),ln=require("../utils/dismissal.cjs"),Ce=require("../utils/formControl.cjs"),an=require("../utils/hiddenInput.cjs"),cn=require("../utils/liveAnnouncer.cjs"),sn=require("../utils/popper.cjs"),G=require("../utils/recipeAxis.cjs"),J=require("../utils/scoredFilter.cjs"),Ie=require("../utils/selection.cjs"),He=require("../utils/useControllableState.cjs"),dn=require("../utils/useOpenChangeComplete.cjs"),un=require("../utils/useSelection.cjs");var tn=require("../utils/Glyph.cjs");var Je=require("../utils/part.cjs"),Z=require("../utils/primitive.cjs");var Xe=require("react/jsx-runtime"),j=({ref:e,...n})=>{let t=C("SelectAll");if(!t.multiple||!t.allowSelectAll)return null;let r=t.orderedOptions().map(l=>l.dataset.value??"").filter(Boolean),o=r.length>0&&r.every(l=>t.selectedValues.includes(l));return(0,Xe.jsx)(Z.Primitive.div,{role:"option","aria-selected":o,"data-state":o?"checked":"unchecked",...n,...(0,Je.skdxPart)("select","select-all",n.className),ref:e,onClick:(0,Z.composeEventHandlers)(n.onClick,()=>t.selectAllOrClear())})};j.displayName="SelectAll";var $e=require("../utils/part.cjs"),ee=require("../utils/primitive.cjs");var Ue=require("react/jsx-runtime"),te=({ref:e,...n})=>{let t=C("SelectClear"),r=t.selectedValues.length===0&&t.inputValue==="",o=n["aria-label"]!==void 0||n["aria-labelledby"]!==void 0;return(0,Ue.jsx)(ee.Primitive.button,{type:"button","aria-label":o?void 0:"Clear selection",disabled:t.disabled||t.readOnly||r,"data-disabled":t.disabled?"":void 0,"data-readonly":t.readOnly?"":void 0,...n,...(0,$e.skdxPart)("select","clear",n.className),ref:e,onClick:(0,ee.composeEventHandlers)(n.onClick,()=>{t.clear(),(t.inputRef.current??t.triggerRef.current)?.focus()})})};te.displayName="SelectClear";var ne=D(require("react"),1),_e=require("../utils/appearance.cjs"),Qe=require("../utils/composeRefs.cjs"),Ye=require("../utils/part.cjs"),Ze=require("../utils/popper.cjs"),je=require("../utils/primitive.cjs"),et=require("../utils/useDismiss.cjs");var tt=require("react/jsx-runtime");function oo(e,n){let t=e.querySelector('[data-part="viewport"]')??e;if(t===n||!t.contains(n))return;let r=t.getBoundingClientRect(),o=n.getBoundingClientRect();t.scrollTop+=o.top-r.top-(r.height-o.height)/2}var oe=({forceMount:e,side:n="bottom",align:t="start",sideOffset:r=4,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:p,onInteractOutside:S,onCloseAutoFocus:f,ref:u,matchWidth:b,...d})=>{let a=C("SelectContent"),s=(0,Qe.useComposedRefs)(u,a.contentRef),{closeAutoFocusRef:g}=a;ne.useInsertionEffect(()=>{g.current=f}),(0,et.useDismiss)({enabled:a.open,onEscapeKeyDown:I=>{o?.(I),!I.defaultPrevented&&(a.onOpenChange(!1),a.focusTrigger())},onInteractOutside:S,onPointerDownOutside:I=>{l?.(I),I.defaultPrevented||a.onOpenChange(!1)},onFocusOutside:I=>{p?.(I),I.defaultPrevented||a.onOpenChange(!1)}},[a.contentRef,a.triggerRef,a.inputRef]);let{setActiveId:y,openIntentRef:v,filterable:O}=a;return ne.useEffect(()=>{if(!a.open)return;let I=requestAnimationFrame(()=>{let i=a.contentRef.current;if(!i)return;let E=v.current;if(v.current="selected",O&&E==="selected")return;let k=Array.from(i.querySelectorAll(re)),w=k[0],m=k[k.length-1],x=i.querySelector('[role="option"][data-state="checked"]')??w;E==="first"?x=w:E==="last"&&(x=m),x&&(y(x.id),oo(i,x))});return()=>cancelAnimationFrame(I)},[a.open,a.contentRef,y,v,O]),e||a.open?(0,tt.jsx)(Ze.PopperContent,{component:"select",role:"listbox",id:a.contentId,"aria-multiselectable":a.multiple?!0:void 0,"aria-busy":a.loading?!0:void 0,"data-state":a.open?"open":"closed","data-multiple":a.multiple?"":void 0,"data-loading":a.loading?"":void 0,tabIndex:-1,side:n,align:t,sideOffset:r,...d,...(0,_e.appearanceAttrs)({matchWidth:b},d),...(0,Ye.skdxPart)("select","content",d.className),ref:s,onMouseDown:(0,je.composeEventHandlers)(d.onMouseDown,I=>I.preventDefault())}):null};oe.displayName="SelectContent";var nt=require("../utils/part.cjs"),ot=require("../utils/primitive.cjs");var rt=require("react/jsx-runtime"),le=({ref:e,...n})=>{let t=C("SelectEmpty");return t.open&&t.itemCount===0?(0,rt.jsx)(ot.Primitive.div,{role:"presentation","aria-live":"polite",...n,...(0,nt.skdxPart)("select","empty",n.className),ref:e}):null};le.displayName="SelectEmpty";var lt=D(require("react"),1),at=require("../utils/createContext.cjs"),ct=require("../utils/part.cjs"),st=require("../utils/primitive.cjs"),Te=require("react/jsx-runtime"),[it,Ee]=(0,at.createSafeContext)("SelectGroup",{labelId:null}),ae=({ref:e,...n})=>{let t=lt.useId();return(0,Te.jsx)(it,{labelId:t,children:(0,Te.jsx)(st.Primitive.div,{role:"group","aria-labelledby":t,...n,...(0,ct.skdxPart)("select","group",n.className),ref:e})})};ae.displayName="SelectGroup";var dt=require("../utils/part.cjs"),ut=require("../utils/primitive.cjs"),mt=require("react/jsx-runtime"),ce=({children:e,ref:n,...t})=>(0,mt.jsx)(ut.Primitive.span,{"aria-hidden":!0,...t,...(0,dt.skdxPart)("select","icon",t.className),ref:n,children:e??"\u25BE"});ce.displayName="SelectIcon";var ft=require("../utils/composeRefs.cjs"),pt=require("../utils/part.cjs"),St=require("../utils/popper.cjs"),F=require("../utils/primitive.cjs");var Ae=require("react/jsx-runtime");function gt(e){return e.scrollIntoView?.({block:"nearest"}),e.id}function yt(e,n){let t=e.orderedOptions();if(t.length===0)return null;let r=t.findIndex(p=>p.id===e.activeId),o=Math.min(t.length-1,Math.max(0,r+n)),l=t[o];return e.setActiveId(l.id),gt(l)}function ro(e,n){let t=e.orderedOptions();if(t.length===0)return;let r=n==="last"?t[t.length-1]:t[0];e.setActiveId(r.id),gt(r)}function lo(e,n){let t=e.activeId,r=yt(e,n);if(r===null||r===t)return;let o=e.getItem(r);o&&e.selectItem(o.value,"keyboard")}function ao(e,n){if(!e.open||!e.multiple)return!1;let t=$(n,{allowSelectAll:e.allowSelectAll,hasActive:e.activeId!==null});return t?(n.preventDefault(),t.kind==="extend"?lo(e,t.direction):t.kind==="range"?e.selectRange():t.kind==="sweep"?e.selectToEdge(t.edge):e.selectAllOrClear(),!0):!1}function co(e,n){if(n.key!=="ArrowDown"&&n.key!=="ArrowUp")return!1;n.preventDefault();let t=n.key==="ArrowDown"?1:-1;return e.open?(yt(e,t),!0):(e.openIntentRef.current=t===1?"first":"last",e.onOpenChange(!0),!0)}function so(e,n){if(n.key==="Home"||n.key==="End"){if(!e.open)return;n.preventDefault(),ro(e,n.key==="Home"?"first":"last")}else if(n.key==="Enter"){let t=e.activeId?e.getItem(e.activeId):void 0;if(!t)return;n.preventDefault(),e.selectItem(t.value,"keyboard"),e.closeOnSelect&&e.onOpenChange(!1)}else n.key==="Escape"?e.open&&!e.contentRef.current&&(n.preventDefault(),e.onOpenChange(!1)):n.key==="Backspace"&&e.inputValue===""&&e.removeLast()}var se=({ref:e,...n})=>{let t=C("SelectInput"),r=(0,ft.useComposedRefs)(e,t.inputRef);return(0,Ae.jsx)(St.PopperAnchor,{asChild:!0,children:(0,Ae.jsx)(F.Primitive.input,{type:"text",role:"combobox","aria-haspopup":"listbox","aria-expanded":t.open,"aria-controls":t.contentId,"aria-autocomplete":"list","aria-activedescendant":t.activeId??void 0,autoComplete:"off",disabled:t.disabled,readOnly:t.readOnly,"aria-required":t.required||void 0,"aria-invalid":t.invalid?!0:void 0,"aria-readonly":t.readOnly?!0:void 0,"aria-busy":t.loading?!0:void 0,"data-invalid":t.invalid?"":void 0,"data-readonly":t.readOnly?"":void 0,"data-disabled":t.disabled?"":void 0,"data-loading":t.loading?"":void 0,"data-multiple":t.multiple?"":void 0,"data-state":t.open?"open":"closed",...n,...(0,pt.skdxPart)("select","input",n.className),ref:r,value:t.inputValue,onChange:(0,F.composeEventHandlers)(n.onChange,o=>{t.setInputValue(o.target.value),t.open||t.onOpenChange(!0)}),onBlur:(0,F.composeEventHandlers)(n.onBlur,()=>{t.open&&t.onOpenChange(!1)}),onKeyDown:(0,F.composeEventHandlers)(n.onKeyDown,o=>{t.disabled||ao(t,o)||co(t,o)||so(t,o)})})})};se.displayName="SelectInput";var M=D(require("react"),1),Rt=require("../utils/composeRefs.cjs"),bt=require("../utils/createContext.cjs"),ht=require("../utils/part.cjs"),U=require("../utils/primitive.cjs"),Ct=require("../utils/useOptionCollection.cjs");var Le=require("react/jsx-runtime"),[It,_]=(0,bt.createSafeContext)("SelectItem"),ie=({value:e,disabled:n,textValue:t,ref:r,...o})=>{let l=C("SelectItem"),p=M.useId(),S=M.useRef(null),f=(0,Rt.useComposedRefs)(r,S),u=l.isSelected(e),b=l.activeId===p,[d,a]=M.useState(void 0),{registerOptionLabel:s}=l,g=M.useCallback(i=>{s(e,t??i),a(i)},[s,e,t]),{visible:y}=(0,Ct.useOptionEntry)({id:p,value:e,textValue:t??d,itemRef:S,matchesFilter:l.matchesFilter,registerItem:l.registerItem,unregisterItem:l.unregisterItem}),v=n||l.atMax&&!u,O=l.itemOrder?.get(p),I=()=>{v||(l.selectItem(e,"pointer"),l.closeOnSelect&&(l.onOpenChange(!1),l.focusTrigger()))};return y?(0,Le.jsx)(It,{value:e,selected:u,registerText:g,children:(0,Le.jsx)(U.Primitive.div,{role:"option",id:p,"data-value":e,"aria-selected":u,"data-state":u?"checked":"unchecked","data-highlighted":b?"":void 0,"data-text-value":t,"aria-disabled":v||void 0,"data-disabled":v?"":void 0,...o,...(0,ht.skdxPart)("select","item",o.className),ref:f,onClick:(0,U.composeEventHandlers)(o.onClick,I),onPointerEnter:(0,U.composeEventHandlers)(o.onPointerEnter,()=>{v||l.setActiveId(p)}),style:O!==void 0?{order:O,...o.style}:o.style})}):null};ie.displayName="SelectItem";var vt=require("../utils/part.cjs"),xt=require("../utils/primitive.cjs");var Pt=require("react/jsx-runtime"),de=({forceMount:e,ref:n,...t})=>{let r=_("SelectItemIndicator");return e||r.selected?(0,Pt.jsx)(xt.Primitive.span,{"aria-hidden":!0,...t,...(0,vt.skdxPart)("select","item-indicator",t.className),ref:n}):null};de.displayName="SelectItemIndicator";var ue=D(require("react"),1),Ot=require("../utils/composeRefs.cjs"),kt=require("../utils/part.cjs"),Tt=require("../utils/primitive.cjs");var Et=require("react/jsx-runtime"),me=({children:e,ref:n,...t})=>{let r=_("SelectItemText"),o=ue.useRef(null),l=(0,Ot.useComposedRefs)(n,o);return ue.useLayoutEffect(()=>{r.registerText(o.current?.textContent??"")}),(0,Et.jsx)(Tt.Primitive.span,{...t,...(0,kt.skdxPart)("select","item-text",t.className),ref:l,children:e})};me.displayName="SelectItemText";var At=require("../utils/part.cjs"),Lt=require("../utils/primitive.cjs");var wt=require("react/jsx-runtime"),fe=({ref:e,...n})=>{let t=Ee("SelectLabel");return(0,wt.jsx)(Lt.Primitive.div,{id:t.labelId??void 0,...n,...(0,At.skdxPart)("select","label",n.className),ref:e})};fe.displayName="SelectLabel";var Nt=require("../utils/portal.cjs");var Vt=require("react/jsx-runtime"),pe=({forceMount:e,children:n,...t})=>{let r=C("SelectPortal");return e||r.open?(0,Vt.jsx)(Nt.Portal,{...t,children:n}):null};pe.displayName="SelectPortal";var Mt=require("../badge/Badge.cjs"),Ht=require("../utils/part.cjs");var Dt=require("react/jsx-runtime"),Se=({value:e,ref:n,...t})=>{let r=C("SelectTag"),o=r.selectedValues.indexOf(e);return(0,Dt.jsx)(Mt.Badge,{index:o,label:e,"data-value":e,"data-skdx-select-tag":"",onDelete:()=>r.deselect(e),...t,...(0,Ht.skdxPart)("select","tag",t.className),ref:n})};Se.displayName="SelectTag";var Kt=require("../tag-group/TagGroup.cjs"),Gt=require("../utils/part.cjs");var Bt=require("react/jsx-runtime"),ge=({ref:e,...n})=>{let t=C("SelectTagList");return(0,Bt.jsx)(Kt.TagGroup,{disabled:t.disabled||t.readOnly,...n,...(0,Gt.skdxPart)("select","tag-list",n.className),ref:e})};ge.displayName="SelectTagList";var Ft=require("../badge/Badge.cjs"),qt=require("../utils/part.cjs"),zt=require("react/jsx-runtime"),ye=({ref:e,...n})=>(0,zt.jsx)(Ft.BadgeDelete,{...n,...(0,qt.skdxPart)("select","tag-remove",n.className),ref:e});ye.displayName="SelectTagRemove";var L=D(require("react"),1),Wt=require("../utils/appearance.cjs"),Jt=require("../utils/composeRefs.cjs"),Xt=require("../utils/part.cjs"),$t=require("../utils/popper.cjs"),q=require("../utils/primitive.cjs"),K=require("../utils/select-keyboard.cjs"),Ut=require("../utils/typeahead.cjs"),we=require("../utils/useTypeahead.cjs");var Ne=require("react/jsx-runtime"),io=0;function uo(e){if(!e)return null;let n=e.getRootNode(),r=(e.id?Array.from(n.querySelectorAll("[for]")).find(o=>o.getAttribute("for")===e.id):void 0)??e.closest("label");return r?(r.id||(r.id=`skdx-select-label-${++io}`),r.id):null}var Re=({ref:e,shape:n,size:t,...r})=>{let o=C("SelectTrigger"),{openIntentRef:l}=o,[p,S]=L.useState(null),f=L.useCallback(m=>{S(m&&uo(m))},[]),u=(0,Jt.useComposedRefs)(e,o.triggerRef,f),b=o.disabled||r.disabled,d=L.useRef(o.collection);L.useInsertionEffect(()=>{d.current=o.collection.filter(m=>!m.disabled)});let a=(0,we.useTypeahead)(L.useCallback(()=>d.current.map(m=>m.label??m.value),[])),s=L.useRef([]),g=(0,we.useTypeahead)(L.useCallback(()=>s.current.map(m=>(0,Ut.itemText)(m)),[])),y=m=>{m&&(o.setActiveId(m.id),m.scrollIntoView?.({block:"nearest"}))},v=m=>{let R=m?.getAttribute("data-value");R!=null&&(o.selectItem(R,"keyboard"),o.closeOnSelect&&o.onOpenChange(!1))},O=m=>{let R=m?.getAttribute("data-value");R!=null&&(o.multiple&&o.isSelected(R)||o.selectItem(R,"keyboard"))},I=(m,R,x)=>{let P=Math.min(m.length-1,Math.max(0,R+x)),A=m[P];if(!A||P===R)return;y(A);let N=A.getAttribute("data-value");N!==null&&o.selectItem(N,"keyboard")},i=(m,R,x)=>{if(!o.multiple)return!1;let P=$(m,{allowSelectAll:o.allowSelectAll,hasActive:o.activeId!==null});return P?(m.preventDefault(),P.kind==="extend"?I(R,x,P.direction):P.kind==="range"?o.selectRange():P.kind==="sweep"?o.selectToEdge(P.edge):o.selectAllOrClear(),!0):!1},E=m=>{let R=o.orderedOptions();s.current=R;let x=R.findIndex(A=>A.id===o.activeId);if(i(m,R,x))return;let P=(0,K.selectOpenAction)(m,x,R.length);switch((0,K.selectKeyPrevented)(P)&&m.preventDefault(),P.kind){case"activate":y(R[P.index]);return;case"commit":v(R[x]);return;case"commit-and-close":v(R[x]),o.onOpenChange(!1);return;case"commit-on-exit":O(R[x]),o.onOpenChange(!1);return;case"typeahead":{let A=g(m.key,x);A!==-1&&y(R[A]);return}case"ignore":case"claim":return}},w=r["aria-label"]===void 0&&o.hasValuePart?[p,r["aria-labelledby"],o.valueId].filter(Boolean).join(" "):r["aria-labelledby"];return(0,Ne.jsx)($t.PopperAnchor,{asChild:!0,children:(0,Ne.jsx)(q.Primitive.button,{type:"button",role:"combobox","aria-haspopup":"listbox","aria-expanded":o.open,"aria-controls":o.contentId,"aria-activedescendant":o.activeId??void 0,"aria-required":o.required||void 0,"aria-invalid":o.invalid?!0:void 0,"aria-readonly":o.readOnly?!0:void 0,"data-state":o.open?"open":"closed","data-disabled":b?"":void 0,"data-readonly":o.readOnly?"":void 0,"data-invalid":o.invalid?"":void 0,"data-placeholder":o.selectedValues.length===0?"":void 0,"data-multiple":o.multiple?"":void 0,...r,disabled:b,"aria-labelledby":w,...(0,Wt.appearanceAttrs)({shape:n,size:t},r),...(0,Xt.skdxPart)("select","trigger",r.className),ref:u,onClick:(0,q.composeEventHandlers)(r.onClick,()=>o.onOpenChange(!o.open)),onKeyDown:(0,q.useComposedEventHandlers)(r.onKeyDown,m=>{if(o.open){E(m);return}let R=(0,K.selectClosedAction)(m,o.multiple);switch((0,K.selectKeyPrevented)(R)&&m.preventDefault(),R.kind){case"open":l.current=R.intent,o.onOpenChange(!0);return;case"open-for-typeahead":o.onOpenChange(!0);return;case"typeahead":{let x=d.current.findIndex(A=>o.isSelected(A.value)),P=a(m.key,x);P!==-1&&o.selectItem(d.current[P].value,"keyboard");return}case"ignore":return}})})})};Re.displayName="SelectTrigger";var z=D(require("react"),1),_t=require("../utils/part.cjs"),Qt=require("../utils/primitive.cjs");var Ve=require("react/jsx-runtime"),be=({placeholder:e,children:n,ref:t,...r})=>{let{selectedValues:o,multiple:l,getOptionLabel:p,valueId:S,setHasValuePart:f}=C("SelectValue");z.useEffect(()=>(f(!0),()=>f(!1)),[f]);let u,b=!1;return!r.asChild&&n!==void 0?u=n:o.length===0?(u=e,b=!0):l?u=o.map(d=>(0,Ve.jsx)("span",{"data-chip":"","data-value":d,children:p(d)},d)):u=p(o[0]),(0,Ve.jsx)(Qt.Primitive.span,{id:S,"data-multiple":l?"":void 0,"data-placeholder":b?"":void 0,...r,...(0,_t.skdxPart)("select","value",r.className),ref:t,style:{pointerEvents:"none",...r.style},children:r.asChild&&z.isValidElement(n)?z.cloneElement(n,void 0,u):u})};be.displayName="SelectValue";var Yt=require("../utils/part.cjs"),Zt=require("../utils/primitive.cjs"),jt=require("react/jsx-runtime"),he=({ref:e,...n})=>(0,jt.jsx)(Zt.Primitive.div,{...n,...(0,Yt.skdxPart)("select","viewport",n.className),ref:e,style:{overflow:"auto",...n.style}});he.displayName="SelectViewport";var h=require("react/jsx-runtime"),nn=e=>"options"in e;function mo(e){let n=new Map;for(let t of e)for(let r of nn(t)?t.options:[t])n.set(r.value,r);return n}var en=()=>(0,h.jsx)(tn.Glyph,{name:"close"}),on=({shape:e,size:n,status:t,density:r,matchWidth:o,options:l,renderOption:p,renderValue:S,renderTag:f,placeholder:u,clearable:b,ariaLabel:d,passThrough:a})=>{let s=C("Select"),g=mo(l),y=d??u,v=i=>(0,h.jsxs)(ie,{value:i.value,disabled:i.disabled,textValue:i.label,children:[(0,h.jsx)(me,{children:p?p(i,{selected:s.isSelected(i.value)}):i.label??i.value}),(0,h.jsx)(de,{children:"\u2713"})]},i.value),O;if(S){let i=s.multiple?s.selectedValues.map(E=>g.get(E)??{value:E}):g.get(s.selectedValues[0]??"")??(s.selectedValues[0]?{value:s.selectedValues[0]}:null);O=S(i)}let I=i=>f?f(i):i.label??i.value;return(0,h.jsxs)(h.Fragment,{children:[s.multiple?(0,h.jsx)(ge,{density:r,"aria-label":y?`${y} \u2014 selected`:void 0,children:s.selectedValues.map(i=>(0,h.jsxs)(Se,{value:i,shape:e,size:n,status:t,children:[I(g.get(i)??{value:i}),(0,h.jsx)(ye,{children:(0,h.jsx)(en,{})})]},i))}):null,s.filterable?(0,h.jsx)(se,{...a,"data-match-width":void 0,"data-shape":void 0,"data-size":void 0,"data-status":void 0,"data-density":void 0,"aria-label":d,placeholder:u}):(0,h.jsxs)(Re,{...a,"data-match-width":void 0,"data-status":void 0,"data-density":void 0,"aria-label":d,shape:e,size:n,children:[(0,h.jsx)(be,{placeholder:u,children:O}),(0,h.jsx)(ce,{})]}),b?(0,h.jsx)(te,{"aria-label":"Clear selection",children:(0,h.jsx)(en,{})}):null,(0,h.jsxs)(pe,{children:[(0,h.jsx)(oe,{matchWidth:o,children:(0,h.jsxs)(he,{children:[(0,h.jsx)(j,{children:"Select all"}),l.map(i=>nn(i)?(0,h.jsxs)(ae,{children:[(0,h.jsx)(fe,{children:i.label}),i.options.map(v)]},i.label):v(i))]})}),(0,h.jsx)(le,{children:"No results found"})]})]})};var W=require("react/jsx-runtime");function fo(e){let n=[];for(let t of e)for(let r of"options"in t?t.options:[t])n.push(r);return n}var re='[role="option"]:not([data-disabled]):not([data-part="select-all"])';function mn(e){return e===0?"none selected":`${e} selected`}function $(e,{allowSelectAll:n,hasActive:t}){return po(e,n)??So(e,t)}function po(e,n){return e.ctrlKey&&e.shiftKey&&(e.key==="Home"||e.key==="End")?{kind:"sweep",edge:e.key==="Home"?"first":"last"}:(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==="a"&&n?{kind:"select-all"}:null}function So(e,n){return e.shiftKey?e.key===" "?n?{kind:"range"}:null:e.key==="ArrowDown"||e.key==="ArrowUp"?{kind:"extend",direction:e.key==="ArrowDown"?1:-1}:null:null}var[fn,C]=(0,rn.createSafeContext)("Select");function go({filterable:e,filter:n,inputValue:t,contentRef:r}){let[o,l]=c.useState(()=>new Map),p=c.useCallback((a,s)=>{l(g=>{let y=g.get(a);if(y?.value===s.value&&y.text===s.text)return g;let v=new Map(g);return v.set(a,s),v})},[]),S=c.useCallback(a=>{l(s=>{if(!s.has(a))return s;let g=new Map(s);return g.delete(a),g})},[]),f=c.useCallback(a=>o.get(a),[o]),u=c.useCallback(a=>!e||n===void 0||(0,J.filterKeeps)(n(a,t)),[e,n,t]),b=c.useMemo(()=>!e||n===void 0?null:(0,J.rankByScore)([...o.keys()],a=>{let s=o.get(a);if(!s)return null;let g=n(s.text,t);return typeof g=="number"?g:null}),[e,n,t,o]),d=c.useCallback(()=>(0,J.sortByOrder)(Array.from(r.current?.querySelectorAll(re)??[]),b),[r,b]);return{itemCount:o.size,itemOrder:b,registerItem:p,unregisterItem:S,getItem:f,matchesFilter:u,orderedOptions:d}}var Me=e=>e.map(n=>n.dataset.value??"");function yo({enabled:e,maxSelected:n,selectedValues:t,activeId:r,orderedOptions:o,commitSweep:l,rangeAnchorRef:p}){let S=c.useCallback(d=>{let a=[...t];for(let s of d)if(!a.includes(s)){if(n!==void 0&&a.length>=n)break;a.push(s)}return a},[n,t]),f=c.useCallback(()=>{if(!e)return;let d=o(),a=d.findIndex(O=>O.id===r);if(a===-1)return;let s=d.findIndex(O=>O.dataset.value===p.current),g=s===-1?a:s,[y,v]=g<=a?[g,a]:[a,g];l(S(Me(d.slice(y,v+1))))},[e,r,o,l,S,p]),u=c.useCallback(d=>{if(!e)return;let a=o(),s=a.findIndex(y=>y.id===r);if(s===-1)return;let g=d==="first"?a.slice(0,s+1):a.slice(s);l(S(Me(g)))},[e,r,o,l,S]),b=c.useCallback(()=>{if(!e)return;let d=Me(o()),a=d.length>0&&d.every(s=>t.includes(s));l(a?t.filter(s=>!d.includes(s)):S(d))},[e,t,o,l,S]);return{selectRange:f,selectToEdge:u,selectAllOrClear:b}}function Ro(e,n,t,r=mn){let o=c.useRef(!0),l=c.useRef(r);c.useInsertionEffect(()=>{l.current=r}),c.useEffect(()=>{if(o.current){o.current=!1;return}!n||t||(0,cn.announce)(l.current(e))},[e,n,t])}function bo({open:e,defaultOpen:n=!1,onOpenChange:t,readOnly:r}){let[o=!1,l]=(0,He.useControllableState)({prop:e,defaultProp:n,onChange:t}),p=c.useCallback(S=>{r&&S||l(S)},[r,l]);return[o,p]}function ho({inputValue:e,defaultInputValue:n="",onInputValueChange:t,filterable:r}){let[o="",l]=(0,He.useControllableState)({prop:e,defaultProp:n,onChange:t}),p=c.useCallback(()=>{r&&l("")},[r,l]),S=c.useCallback(()=>{l(n)},[n,l]);return{inputValue:o,setInputValue:l,clearDraft:p,resetDraft:S}}function Co({open:e,filterable:n,contentRef:t,orderedOptions:r}){let[o,l]=c.useState(null),[p,S]=c.useState(e);return e!==p&&(S(e),e||l(null)),c.useLayoutEffect(()=>{if(!n||!t.current)return;let f=r();l(u=>u===null||f.some(b=>b.id===u)?u:f[0]?.id??null)},[n,t,r]),[o,l]}function Io({items:e,options:n}){let[t,r]=c.useState(new Map),o=c.useCallback((f,u)=>{r(b=>{if(b.get(f)===u)return b;let d=new Map(b);return d.set(f,u),d})},[]),l=c.useMemo(()=>e??(n?fo(n):void 0),[e,n]),p=c.useMemo(()=>l?l.map(f=>({...f,label:t.get(f.value)??f.label??f.value})):[...t].map(([f,u])=>({value:f,label:u})),[l,t]),S=c.useCallback(f=>t.get(f)??l?.find(u=>u.value===f)?.label??f,[t,l]);return{collection:p,registerOptionLabel:o,getOptionLabel:S}}function vo({value:e,defaultValue:n,onValueChange:t,multiple:r,deselectable:o=!1,maxSelected:l,closeOnSelect:p=!r,disabled:S,readOnly:f,activeId:u,orderedOptions:b,clearDraft:d,setInputValue:a,setOpen:s}){let g=c.useRef("programmatic"),{selectedValues:y,isSelected:v,selectItem:O,setSelection:I}=(0,un.useSelection)({value:e,defaultValue:n,onValueChange:T=>t?.({...T,reason:g.current}),multiple:r,deselectable:o,label:"Select"}),i=S||f,E=r&&l!==void 0&&y.length>=l,k=c.useCallback((T,V)=>{(0,Ie.sameSelection)(T,y)||(g.current=V,I(T))},[y,I]),w=c.useRef(null),m=c.useCallback((T,V="programmatic")=>{i||E&&!y.includes(T)||(w.current=T,g.current=V,O(T,V),d())},[i,E,y,O,d]),R=c.useCallback(T=>{k(T,"keyboard"),d(),p&&s(!1)},[k,d,p,s]),x=yo({enabled:r&&!i,maxSelected:l,selectedValues:y,activeId:u,orderedOptions:b,commitSweep:R,rangeAnchorRef:w}),P=c.useCallback(T=>{i||k(y.filter(V=>V!==T),"pointer")},[i,k,y]),A=c.useCallback(()=>{i||k(y.slice(0,-1),"keyboard")},[i,k,y]),N=c.useCallback(()=>{i||(k([],"pointer"),a(""))},[i,k,a]),X=c.useCallback(()=>{n!==void 0&&k((0,Ie.toSelectionValues)(n,{multiple:r,label:"Select value"}),"programmatic")},[n,r,k]);return{...x,selectedValues:y,isSelected:v,selectItem:m,deselect:P,removeLast:A,clear:N,resetSelection:X,atMax:E,closeOnSelect:p}}var pn=function({children:n,value:t,defaultValue:r,onValueChange:o,multiple:l=!1,deselectable:p,maxSelected:S,allowSelectAll:f=!0,filterable:u=!1,inputValue:b,defaultInputValue:d,onInputValueChange:a,filter:s,loading:g=!1,clearable:y=!1,getSelectionLabel:v,items:O,options:I,renderOption:i,renderValue:E,renderTag:k,placeholder:w,closeOnSelect:m,open:R,defaultOpen:x,onOpenChange:P,onOpenChangeComplete:A,disabled:N=!1,readOnly:X=!1,required:T=!1,invalid:V=!1,name:De,form:bn,autoComplete:hn,shape:Cn,size:In,status:vn,density:xn,matchWidth:Pn,"aria-label":On,ref:kn,...B}){let ve=c.useRef(null),xe=c.useRef(null),Q=c.useRef(null),Ke=c.useRef(null),[Pe,Ge]=bo({open:R,defaultOpen:x,onOpenChange:P,readOnly:X}),{inputValue:Be,setInputValue:Fe,clearDraft:Tn,resetDraft:En}=ho({inputValue:b,defaultInputValue:d,onInputValueChange:a,filterable:u}),H=go({filterable:u,filter:s,inputValue:Be,contentRef:Q}),{orderedOptions:Oe}=H,[qe,An]=Co({open:Pe,filterable:u,contentRef:Q,orderedOptions:Oe}),{selectedValues:ke,isSelected:Ln,selectItem:wn,selectRange:Nn,selectToEdge:Vn,selectAllOrClear:Mn,deselect:Hn,removeLast:Dn,clear:Kn,resetSelection:Gn,atMax:Bn,closeOnSelect:Fn}=vo({value:t,defaultValue:r,onValueChange:o,multiple:l,deselectable:p,maxSelected:S,closeOnSelect:m,disabled:N,readOnly:X,activeId:qe,orderedOptions:Oe,clearDraft:Tn,setInputValue:Fe,setOpen:Ge});Ro(ke.length,l,g,v),(0,dn.useOpenChangeComplete)(Pe,Q,A);let ze=c.useRef(void 0),qn=c.useCallback(()=>{(0,ln.autoFocusEvent)("close-auto-focus",ze.current)&&(xe.current??ve.current)?.focus()},[]),zn=c.useRef("selected"),Wn=c.useId(),[Jn,Xn]=c.useState(!1),{collection:$n,registerOptionLabel:Un,getOptionLabel:_n}=Io({items:O,options:I});return c.useImperativeHandle(kn,()=>(0,Ce.formValidityHandle)(Ke),[]),(0,Ce.useFormReset)(u?xe:ve,()=>{Gn(),En()}),(0,W.jsx)(sn.PopperRoot,{children:(0,W.jsxs)(fn,{triggerRef:ve,inputRef:xe,focusTrigger:qn,closeAutoFocusRef:ze,contentRef:Q,contentId:c.useId(),valueId:Wn,hasValuePart:Jn,setHasValuePart:Xn,activeId:qe,setActiveId:An,openIntentRef:zn,multiple:l,filterable:u,loading:g,allowSelectAll:f,atMax:Bn,inputValue:Be,setInputValue:Fe,closeOnSelect:Fn,selectedValues:ke,isSelected:Ln,selectItem:wn,selectRange:Nn,selectToEdge:Vn,selectAllOrClear:Mn,clear:Kn,removeLast:Dn,deselect:Hn,open:Pe,onOpenChange:Ge,disabled:N,readOnly:X,required:T,invalid:V,name:De,registerOptionLabel:Un,getOptionLabel:_n,collection:$n,itemCount:H.itemCount,registerItem:H.registerItem,unregisterItem:H.unregisterItem,getItem:H.getItem,matchesFilter:H.matchesFilter,itemOrder:H.itemOrder,orderedOptions:Oe,children:[n??(0,W.jsx)(on,{shape:(0,G.recipeAxis)(Cn,B,"data-shape"),size:(0,G.recipeAxis)(In,B,"data-size"),status:(0,G.recipeAxis)(vn,B,"data-status"),density:(0,G.recipeAxis)(xn,B,"data-density"),matchWidth:(0,G.recipeFlag)(Pn,B,"data-match-width"),options:I??[],renderOption:i,renderValue:E,renderTag:k,placeholder:w,clearable:y,ariaLabel:On,passThrough:B}),(0,W.jsx)(an.MirroredValues,{name:De,values:ke,required:T,disabled:N,form:bn,autoComplete:hn,singleValued:!l,controlRef:Ke})]})})};pn.displayName="Select";var Sn=require("../utils/part.cjs"),gn=require("../utils/primitive.cjs"),Rn=require("react/jsx-runtime"),yn=({ref:e,...n})=>(0,Rn.jsx)(gn.Primitive.div,{"aria-hidden":!0,...n,...(0,Sn.skdxPart)("select","separator",n.className),ref:e});yn.displayName="SelectSeparator";0&&(module.exports={OPTION_SELECTOR,Select,SelectAll,SelectClear,SelectContent,SelectEmpty,SelectGroup,SelectGroupProvider,SelectIcon,SelectInput,SelectItem,SelectItemIndicator,SelectItemProvider,SelectItemText,SelectLabel,SelectPortal,SelectProvider,SelectSeparator,SelectTag,SelectTagList,SelectTagRemove,SelectTrigger,SelectValue,SelectViewport,defaultGetSelectionLabel,selectSelectionKeyAction,useSelectContext,useSelectGroupContext,useSelectItemContext});
2
+ "use strict";var Qn=Object.create;var Y=Object.defineProperty;var Yn=Object.getOwnPropertyDescriptor;var Zn=Object.getOwnPropertyNames;var jn=Object.getPrototypeOf,eo=Object.prototype.hasOwnProperty;var to=(e,n)=>{for(var t in n)Y(e,t,{get:n[t],enumerable:!0})},We=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of Zn(n))!eo.call(e,o)&&o!==t&&Y(e,o,{get:()=>n[o],enumerable:!(r=Yn(n,o))||r.enumerable});return e};var D=(e,n,t)=>(t=e!=null?Qn(jn(e)):{},We(n||!e||!e.__esModule?Y(t,"default",{value:e,enumerable:!0}):t,e)),no=e=>We(Y({},"__esModule",{value:!0}),e);var xo={};to(xo,{OPTION_SELECTOR:()=>re,Select:()=>pn,SelectAll:()=>j,SelectClear:()=>te,SelectContent:()=>oe,SelectEmpty:()=>le,SelectGroup:()=>ae,SelectGroupProvider:()=>it,SelectIcon:()=>ce,SelectInput:()=>se,SelectItem:()=>ie,SelectItemIndicator:()=>de,SelectItemProvider:()=>It,SelectItemText:()=>me,SelectLabel:()=>fe,SelectPortal:()=>pe,SelectProvider:()=>fn,SelectSeparator:()=>yn,SelectTag:()=>Se,SelectTagList:()=>ge,SelectTagRemove:()=>ye,SelectTrigger:()=>Re,SelectValue:()=>be,SelectViewport:()=>he,defaultGetSelectionLabel:()=>mn,selectSelectionKeyAction:()=>$,useSelectContext:()=>C,useSelectGroupContext:()=>Ee,useSelectItemContext:()=>_});module.exports=no(xo);var c=D(require("react"),1),rn=require("../utils/createContext.cjs"),ln=require("../utils/dismissal.cjs"),Ce=require("../utils/formControl.cjs"),an=require("../utils/hiddenInput.cjs"),cn=require("../utils/liveAnnouncer.cjs"),sn=require("../utils/popper.cjs"),B=require("../utils/recipeAxis.cjs"),J=require("../utils/scoredFilter.cjs"),Ie=require("../utils/selection.cjs"),He=require("../utils/useControllableState.cjs"),dn=require("../utils/useOpenChangeComplete.cjs"),un=require("../utils/useSelection.cjs");var tn=require("../utils/Glyph.cjs");var Je=require("../utils/part.cjs"),Z=require("../utils/primitive.cjs");var Xe=require("react/jsx-runtime"),j=({ref:e,...n})=>{let t=C("SelectAll");if(!t.multiple||!t.allowSelectAll)return null;let r=t.orderedOptions().map(l=>l.dataset.value??"").filter(Boolean),o=r.length>0&&r.every(l=>t.selectedValues.includes(l));return(0,Xe.jsx)(Z.Primitive.div,{role:"option","aria-selected":o,"data-state":o?"checked":"unchecked",...n,...(0,Je.skdxPart)("select","select-all",n.className),ref:e,onClick:(0,Z.composeEventHandlers)(n.onClick,()=>t.selectAllOrClear())})};j.displayName="SelectAll";var $e=require("../utils/part.cjs"),ee=require("../utils/primitive.cjs");var Ue=require("react/jsx-runtime"),te=({ref:e,...n})=>{let t=C("SelectClear"),r=t.selectedValues.length===0&&t.inputValue==="",o=n["aria-label"]!==void 0||n["aria-labelledby"]!==void 0;return(0,Ue.jsx)(ee.Primitive.button,{type:"button","aria-label":o?void 0:"Clear selection",disabled:t.disabled||t.readOnly||r,"data-disabled":t.disabled?"":void 0,"data-readonly":t.readOnly?"":void 0,...n,...(0,$e.skdxPart)("select","clear",n.className),ref:e,onClick:(0,ee.composeEventHandlers)(n.onClick,()=>{t.clear(),(t.inputRef.current??t.triggerRef.current)?.focus()})})};te.displayName="SelectClear";var ne=D(require("react"),1),_e=require("../utils/appearance.cjs"),Qe=require("../utils/composeRefs.cjs"),Ye=require("../utils/part.cjs"),Ze=require("../utils/popper.cjs"),je=require("../utils/primitive.cjs"),et=require("../utils/useDismiss.cjs");var tt=require("react/jsx-runtime");function oo(e,n){let t=e.querySelector('[data-part="viewport"]')??e;if(t===n||!t.contains(n))return;let r=t.getBoundingClientRect(),o=n.getBoundingClientRect();t.scrollTop+=o.top-r.top-(r.height-o.height)/2}var oe=({forceMount:e,side:n="bottom",align:t="start",sideOffset:r=4,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:p,onInteractOutside:S,onCloseAutoFocus:f,ref:u,matchWidth:b,...d})=>{let a=C("SelectContent"),s=(0,Qe.useComposedRefs)(u,a.contentRef),{closeAutoFocusRef:g}=a;ne.useInsertionEffect(()=>{g.current=f}),(0,et.useDismiss)({enabled:a.open,onEscapeKeyDown:I=>{o?.(I),!I.defaultPrevented&&(a.onOpenChange(!1),a.focusTrigger())},onInteractOutside:S,onPointerDownOutside:I=>{l?.(I),I.defaultPrevented||a.onOpenChange(!1)},onFocusOutside:I=>{p?.(I),I.defaultPrevented||a.onOpenChange(!1)}},[a.contentRef,a.triggerRef,a.inputRef]);let{setActiveId:y,openIntentRef:v,filterable:O}=a;return ne.useEffect(()=>{if(!a.open)return;let I=requestAnimationFrame(()=>{let i=a.contentRef.current;if(!i)return;let E=v.current;if(v.current="selected",O&&E==="selected")return;let k=Array.from(i.querySelectorAll(re)),w=k[0],m=k[k.length-1],x=i.querySelector('[role="option"][data-state="checked"]')??w;E==="first"?x=w:E==="last"&&(x=m),x&&(y(x.id),oo(i,x))});return()=>cancelAnimationFrame(I)},[a.open,a.contentRef,y,v,O]),e||a.open?(0,tt.jsx)(Ze.PopperContent,{component:"select",role:"listbox",id:a.contentId,"aria-multiselectable":a.multiple?!0:void 0,"aria-busy":a.loading?!0:void 0,"data-state":a.open?"open":"closed","data-multiple":a.multiple?"":void 0,"data-loading":a.loading?"":void 0,tabIndex:-1,side:n,align:t,sideOffset:r,...d,...(0,_e.appearanceAttrs)({matchWidth:b},d),...(0,Ye.skdxPart)("select","content",d.className),ref:s,onMouseDown:(0,je.composeEventHandlers)(d.onMouseDown,I=>I.preventDefault())}):null};oe.displayName="SelectContent";var nt=require("../utils/part.cjs"),ot=require("../utils/primitive.cjs");var rt=require("react/jsx-runtime"),le=({ref:e,...n})=>{let t=C("SelectEmpty");return t.open&&t.itemCount===0?(0,rt.jsx)(ot.Primitive.div,{role:"presentation","aria-live":"polite",...n,...(0,nt.skdxPart)("select","empty",n.className),ref:e}):null};le.displayName="SelectEmpty";var lt=D(require("react"),1),at=require("../utils/createContext.cjs"),ct=require("../utils/part.cjs"),st=require("../utils/primitive.cjs"),Te=require("react/jsx-runtime"),[it,Ee]=(0,at.createSafeContext)("SelectGroup",{labelId:null}),ae=({ref:e,...n})=>{let t=lt.useId();return(0,Te.jsx)(it,{labelId:t,children:(0,Te.jsx)(st.Primitive.div,{role:"group","aria-labelledby":t,...n,...(0,ct.skdxPart)("select","group",n.className),ref:e})})};ae.displayName="SelectGroup";var dt=require("../utils/part.cjs"),ut=require("../utils/primitive.cjs"),mt=require("react/jsx-runtime"),ce=({children:e,ref:n,...t})=>(0,mt.jsx)(ut.Primitive.span,{"aria-hidden":!0,...t,...(0,dt.skdxPart)("select","icon",t.className),ref:n,children:e??"\u25BE"});ce.displayName="SelectIcon";var ft=require("../utils/composeRefs.cjs"),pt=require("../utils/part.cjs"),St=require("../utils/popper.cjs"),K=require("../utils/primitive.cjs");var Ae=require("react/jsx-runtime");function gt(e){return e.scrollIntoView?.({block:"nearest"}),e.id}function yt(e,n){let t=e.orderedOptions();if(t.length===0)return null;let r=t.findIndex(p=>p.id===e.activeId),o=Math.min(t.length-1,Math.max(0,r+n)),l=t[o];return e.setActiveId(l.id),gt(l)}function ro(e,n){let t=e.orderedOptions();if(t.length===0)return;let r=n==="last"?t[t.length-1]:t[0];e.setActiveId(r.id),gt(r)}function lo(e,n){let t=e.activeId,r=yt(e,n);if(r===null||r===t)return;let o=e.getItem(r);o&&e.selectItem(o.value,"keyboard")}function ao(e,n){if(!e.open||!e.multiple)return!1;let t=$(n,{allowSelectAll:e.allowSelectAll,hasActive:e.activeId!==null});return t?(n.preventDefault(),t.kind==="extend"?lo(e,t.direction):t.kind==="range"?e.selectRange():t.kind==="sweep"?e.selectToEdge(t.edge):e.selectAllOrClear(),!0):!1}function co(e,n){if(n.key!=="ArrowDown"&&n.key!=="ArrowUp")return!1;n.preventDefault();let t=n.key==="ArrowDown"?1:-1;return e.open?(yt(e,t),!0):(e.openIntentRef.current=t===1?"first":"last",e.onOpenChange(!0),!0)}function so(e,n){if(n.key==="Home"||n.key==="End"){if(!e.open)return;n.preventDefault(),ro(e,n.key==="Home"?"first":"last")}else if(n.key==="Enter"){let t=e.activeId?e.getItem(e.activeId):void 0;if(!t)return;n.preventDefault(),e.selectItem(t.value,"keyboard"),e.closeOnSelect&&e.onOpenChange(!1)}else n.key==="Escape"?e.open&&!e.contentRef.current&&(n.preventDefault(),e.onOpenChange(!1)):n.key==="Backspace"&&e.inputValue===""&&e.removeLast()}var se=({ref:e,...n})=>{let t=C("SelectInput"),r=(0,ft.useComposedRefs)(e,t.inputRef);return(0,Ae.jsx)(St.PopperAnchor,{asChild:!0,children:(0,Ae.jsx)(K.Primitive.input,{type:"text",role:"combobox","aria-haspopup":"listbox","aria-expanded":t.open,"aria-controls":t.contentId,"aria-autocomplete":"list","aria-activedescendant":t.activeId??void 0,autoComplete:"off",disabled:t.disabled,readOnly:t.readOnly,"aria-required":t.required||void 0,"aria-invalid":t.invalid?!0:void 0,"aria-readonly":t.readOnly?!0:void 0,"aria-busy":t.loading?!0:void 0,"data-invalid":t.invalid?"":void 0,"data-readonly":t.readOnly?"":void 0,"data-disabled":t.disabled?"":void 0,"data-loading":t.loading?"":void 0,"data-multiple":t.multiple?"":void 0,"data-state":t.open?"open":"closed",...n,...(0,pt.skdxPart)("select","input",n.className),ref:r,value:t.inputValue,onChange:(0,K.composeEventHandlers)(n.onChange,o=>{t.setInputValue(o.target.value),t.open||t.onOpenChange(!0)}),onClick:(0,K.composeEventHandlers)(n.onClick,()=>{t.readOnly||t.open||t.onOpenChange(!0)}),onBlur:(0,K.composeEventHandlers)(n.onBlur,()=>{t.open&&t.onOpenChange(!1)}),onKeyDown:(0,K.composeEventHandlers)(n.onKeyDown,o=>{t.disabled||ao(t,o)||co(t,o)||so(t,o)})})})};se.displayName="SelectInput";var M=D(require("react"),1),Rt=require("../utils/composeRefs.cjs"),bt=require("../utils/createContext.cjs"),ht=require("../utils/part.cjs"),U=require("../utils/primitive.cjs"),Ct=require("../utils/useOptionCollection.cjs");var Le=require("react/jsx-runtime"),[It,_]=(0,bt.createSafeContext)("SelectItem"),ie=({value:e,disabled:n,textValue:t,ref:r,...o})=>{let l=C("SelectItem"),p=M.useId(),S=M.useRef(null),f=(0,Rt.useComposedRefs)(r,S),u=l.isSelected(e),b=l.activeId===p,[d,a]=M.useState(void 0),{registerOptionLabel:s}=l,g=M.useCallback(i=>{s(e,t??i),a(i)},[s,e,t]),{visible:y}=(0,Ct.useOptionEntry)({id:p,value:e,textValue:t??d,itemRef:S,matchesFilter:l.matchesFilter,registerItem:l.registerItem,unregisterItem:l.unregisterItem}),v=n||l.atMax&&!u,O=l.itemOrder?.get(p),I=()=>{v||(l.selectItem(e,"pointer"),l.closeOnSelect&&(l.onOpenChange(!1),l.focusTrigger()))};return y?(0,Le.jsx)(It,{value:e,selected:u,registerText:g,children:(0,Le.jsx)(U.Primitive.div,{role:"option",id:p,"data-value":e,"aria-selected":u,"data-state":u?"checked":"unchecked","data-highlighted":b?"":void 0,"data-text-value":t,"aria-disabled":v||void 0,"data-disabled":v?"":void 0,...o,...(0,ht.skdxPart)("select","item",o.className),ref:f,onClick:(0,U.composeEventHandlers)(o.onClick,I),onPointerEnter:(0,U.composeEventHandlers)(o.onPointerEnter,()=>{v||l.setActiveId(p)}),style:O!==void 0?{order:O,...o.style}:o.style})}):null};ie.displayName="SelectItem";var vt=require("../utils/part.cjs"),xt=require("../utils/primitive.cjs");var Pt=require("react/jsx-runtime"),de=({forceMount:e,ref:n,...t})=>{let r=_("SelectItemIndicator");return e||r.selected?(0,Pt.jsx)(xt.Primitive.span,{"aria-hidden":!0,...t,...(0,vt.skdxPart)("select","item-indicator",t.className),ref:n}):null};de.displayName="SelectItemIndicator";var ue=D(require("react"),1),Ot=require("../utils/composeRefs.cjs"),kt=require("../utils/part.cjs"),Tt=require("../utils/primitive.cjs");var Et=require("react/jsx-runtime"),me=({children:e,ref:n,...t})=>{let r=_("SelectItemText"),o=ue.useRef(null),l=(0,Ot.useComposedRefs)(n,o);return ue.useLayoutEffect(()=>{r.registerText(o.current?.textContent??"")}),(0,Et.jsx)(Tt.Primitive.span,{...t,...(0,kt.skdxPart)("select","item-text",t.className),ref:l,children:e})};me.displayName="SelectItemText";var At=require("../utils/part.cjs"),Lt=require("../utils/primitive.cjs");var wt=require("react/jsx-runtime"),fe=({ref:e,...n})=>{let t=Ee("SelectLabel");return(0,wt.jsx)(Lt.Primitive.div,{id:t.labelId??void 0,...n,...(0,At.skdxPart)("select","label",n.className),ref:e})};fe.displayName="SelectLabel";var Nt=require("../utils/portal.cjs");var Vt=require("react/jsx-runtime"),pe=({forceMount:e,children:n,...t})=>{let r=C("SelectPortal");return e||r.open?(0,Vt.jsx)(Nt.Portal,{...t,children:n}):null};pe.displayName="SelectPortal";var Mt=require("../badge/Badge.cjs"),Ht=require("../utils/part.cjs");var Dt=require("react/jsx-runtime"),Se=({value:e,ref:n,...t})=>{let r=C("SelectTag"),o=r.selectedValues.indexOf(e);return(0,Dt.jsx)(Mt.Badge,{index:o,label:e,"data-value":e,"data-skdx-select-tag":"",onDelete:()=>r.deselect(e),...t,...(0,Ht.skdxPart)("select","tag",t.className),ref:n})};Se.displayName="SelectTag";var Kt=require("../tag-group/TagGroup.cjs"),Gt=require("../utils/part.cjs");var Bt=require("react/jsx-runtime"),ge=({ref:e,...n})=>{let t=C("SelectTagList");return(0,Bt.jsx)(Kt.TagGroup,{disabled:t.disabled||t.readOnly,...n,...(0,Gt.skdxPart)("select","tag-list",n.className),ref:e})};ge.displayName="SelectTagList";var Ft=require("../badge/Badge.cjs"),qt=require("../utils/part.cjs"),zt=require("react/jsx-runtime"),ye=({ref:e,...n})=>(0,zt.jsx)(Ft.BadgeDelete,{...n,...(0,qt.skdxPart)("select","tag-remove",n.className),ref:e});ye.displayName="SelectTagRemove";var L=D(require("react"),1),Wt=require("../utils/appearance.cjs"),Jt=require("../utils/composeRefs.cjs"),Xt=require("../utils/part.cjs"),$t=require("../utils/popper.cjs"),q=require("../utils/primitive.cjs"),G=require("../utils/select-keyboard.cjs"),Ut=require("../utils/typeahead.cjs"),we=require("../utils/useTypeahead.cjs");var Ne=require("react/jsx-runtime"),io=0;function uo(e){if(!e)return null;let n=e.getRootNode(),r=(e.id?Array.from(n.querySelectorAll("[for]")).find(o=>o.getAttribute("for")===e.id):void 0)??e.closest("label");return r?(r.id||(r.id=`skdx-select-label-${++io}`),r.id):null}var Re=({ref:e,shape:n,size:t,...r})=>{let o=C("SelectTrigger"),{openIntentRef:l}=o,[p,S]=L.useState(null),f=L.useCallback(m=>{S(m&&uo(m))},[]),u=(0,Jt.useComposedRefs)(e,o.triggerRef,f),b=o.disabled||r.disabled,d=L.useRef(o.collection);L.useInsertionEffect(()=>{d.current=o.collection.filter(m=>!m.disabled)});let a=(0,we.useTypeahead)(L.useCallback(()=>d.current.map(m=>m.label??m.value),[])),s=L.useRef([]),g=(0,we.useTypeahead)(L.useCallback(()=>s.current.map(m=>(0,Ut.itemText)(m)),[])),y=m=>{m&&(o.setActiveId(m.id),m.scrollIntoView?.({block:"nearest"}))},v=m=>{let R=m?.getAttribute("data-value");R!=null&&(o.selectItem(R,"keyboard"),o.closeOnSelect&&o.onOpenChange(!1))},O=m=>{let R=m?.getAttribute("data-value");R!=null&&(o.multiple&&o.isSelected(R)||o.selectItem(R,"keyboard"))},I=(m,R,x)=>{let P=Math.min(m.length-1,Math.max(0,R+x)),A=m[P];if(!A||P===R)return;y(A);let N=A.getAttribute("data-value");N!==null&&o.selectItem(N,"keyboard")},i=(m,R,x)=>{if(!o.multiple)return!1;let P=$(m,{allowSelectAll:o.allowSelectAll,hasActive:o.activeId!==null});return P?(m.preventDefault(),P.kind==="extend"?I(R,x,P.direction):P.kind==="range"?o.selectRange():P.kind==="sweep"?o.selectToEdge(P.edge):o.selectAllOrClear(),!0):!1},E=m=>{let R=o.orderedOptions();s.current=R;let x=R.findIndex(A=>A.id===o.activeId);if(i(m,R,x))return;let P=(0,G.selectOpenAction)(m,x,R.length);switch((0,G.selectKeyPrevented)(P)&&m.preventDefault(),P.kind){case"activate":y(R[P.index]);return;case"commit":v(R[x]);return;case"commit-and-close":v(R[x]),o.onOpenChange(!1);return;case"commit-on-exit":O(R[x]),o.onOpenChange(!1);return;case"typeahead":{let A=g(m.key,x);A!==-1&&y(R[A]);return}case"ignore":case"claim":return}},w=r["aria-label"]===void 0&&o.hasValuePart?[p,r["aria-labelledby"],o.valueId].filter(Boolean).join(" "):r["aria-labelledby"];return(0,Ne.jsx)($t.PopperAnchor,{asChild:!0,children:(0,Ne.jsx)(q.Primitive.button,{type:"button",role:"combobox","aria-haspopup":"listbox","aria-expanded":o.open,"aria-controls":o.contentId,"aria-activedescendant":o.activeId??void 0,"aria-required":o.required||void 0,"aria-invalid":o.invalid?!0:void 0,"aria-readonly":o.readOnly?!0:void 0,"data-state":o.open?"open":"closed","data-disabled":b?"":void 0,"data-readonly":o.readOnly?"":void 0,"data-invalid":o.invalid?"":void 0,"data-placeholder":o.selectedValues.length===0?"":void 0,"data-multiple":o.multiple?"":void 0,...r,disabled:b,"aria-labelledby":w,...(0,Wt.appearanceAttrs)({shape:n,size:t},r),...(0,Xt.skdxPart)("select","trigger",r.className),ref:u,onClick:(0,q.composeEventHandlers)(r.onClick,()=>o.onOpenChange(!o.open)),onKeyDown:(0,q.useComposedEventHandlers)(r.onKeyDown,m=>{if(o.open){E(m);return}let R=(0,G.selectClosedAction)(m,o.multiple);switch((0,G.selectKeyPrevented)(R)&&m.preventDefault(),R.kind){case"open":l.current=R.intent,o.onOpenChange(!0);return;case"open-for-typeahead":o.onOpenChange(!0);return;case"typeahead":{let x=d.current.findIndex(A=>o.isSelected(A.value)),P=a(m.key,x);P!==-1&&o.selectItem(d.current[P].value,"keyboard");return}case"ignore":return}})})})};Re.displayName="SelectTrigger";var z=D(require("react"),1),_t=require("../utils/part.cjs"),Qt=require("../utils/primitive.cjs");var Ve=require("react/jsx-runtime"),be=({placeholder:e,children:n,ref:t,...r})=>{let{selectedValues:o,multiple:l,getOptionLabel:p,valueId:S,setHasValuePart:f}=C("SelectValue");z.useEffect(()=>(f(!0),()=>f(!1)),[f]);let u,b=!1;return!r.asChild&&n!==void 0?u=n:o.length===0?(u=e,b=!0):l?u=o.map(d=>(0,Ve.jsx)("span",{"data-chip":"","data-value":d,children:p(d)},d)):u=p(o[0]),(0,Ve.jsx)(Qt.Primitive.span,{id:S,"data-multiple":l?"":void 0,"data-placeholder":b?"":void 0,...r,...(0,_t.skdxPart)("select","value",r.className),ref:t,style:{pointerEvents:"none",...r.style},children:r.asChild&&z.isValidElement(n)?z.cloneElement(n,void 0,u):u})};be.displayName="SelectValue";var Yt=require("../utils/part.cjs"),Zt=require("../utils/primitive.cjs"),jt=require("react/jsx-runtime"),he=({ref:e,...n})=>(0,jt.jsx)(Zt.Primitive.div,{...n,...(0,Yt.skdxPart)("select","viewport",n.className),ref:e,style:{overflow:"auto",...n.style}});he.displayName="SelectViewport";var h=require("react/jsx-runtime"),nn=e=>"options"in e;function mo(e){let n=new Map;for(let t of e)for(let r of nn(t)?t.options:[t])n.set(r.value,r);return n}var en=()=>(0,h.jsx)(tn.Glyph,{name:"close"}),on=({shape:e,size:n,status:t,density:r,matchWidth:o,options:l,renderOption:p,renderValue:S,renderTag:f,placeholder:u,clearable:b,ariaLabel:d,passThrough:a})=>{let s=C("Select"),g=mo(l),y=d??u,v=i=>(0,h.jsxs)(ie,{value:i.value,disabled:i.disabled,textValue:i.label,children:[(0,h.jsx)(me,{children:p?p(i,{selected:s.isSelected(i.value)}):i.label??i.value}),(0,h.jsx)(de,{children:"\u2713"})]},i.value),O;if(S){let i=s.multiple?s.selectedValues.map(E=>g.get(E)??{value:E}):g.get(s.selectedValues[0]??"")??(s.selectedValues[0]?{value:s.selectedValues[0]}:null);O=S(i)}let I=i=>f?f(i):i.label??i.value;return(0,h.jsxs)(h.Fragment,{children:[s.multiple?(0,h.jsx)(ge,{density:r,"aria-label":y?`${y} \u2014 selected`:void 0,children:s.selectedValues.map(i=>(0,h.jsxs)(Se,{value:i,shape:e,size:n,status:t,children:[I(g.get(i)??{value:i}),(0,h.jsx)(ye,{children:(0,h.jsx)(en,{})})]},i))}):null,s.filterable?(0,h.jsx)(se,{...a,"data-match-width":void 0,"data-shape":void 0,"data-size":void 0,"data-status":void 0,"data-density":void 0,"aria-label":d,placeholder:u}):(0,h.jsxs)(Re,{...a,"data-match-width":void 0,"data-status":void 0,"data-density":void 0,"aria-label":d,shape:e,size:n,children:[(0,h.jsx)(be,{placeholder:u,children:O}),(0,h.jsx)(ce,{})]}),b?(0,h.jsx)(te,{"aria-label":"Clear selection",children:(0,h.jsx)(en,{})}):null,(0,h.jsxs)(pe,{children:[(0,h.jsx)(oe,{matchWidth:o,children:(0,h.jsxs)(he,{children:[(0,h.jsx)(j,{children:"Select all"}),l.map(i=>nn(i)?(0,h.jsxs)(ae,{children:[(0,h.jsx)(fe,{children:i.label}),i.options.map(v)]},i.label):v(i))]})}),(0,h.jsx)(le,{children:"No results found"})]})]})};var W=require("react/jsx-runtime");function fo(e){let n=[];for(let t of e)for(let r of"options"in t?t.options:[t])n.push(r);return n}var re='[role="option"]:not([data-disabled]):not([data-part="select-all"])';function mn(e){return e===0?"none selected":`${e} selected`}function $(e,{allowSelectAll:n,hasActive:t}){return po(e,n)??So(e,t)}function po(e,n){return e.ctrlKey&&e.shiftKey&&(e.key==="Home"||e.key==="End")?{kind:"sweep",edge:e.key==="Home"?"first":"last"}:(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==="a"&&n?{kind:"select-all"}:null}function So(e,n){return e.shiftKey?e.key===" "?n?{kind:"range"}:null:e.key==="ArrowDown"||e.key==="ArrowUp"?{kind:"extend",direction:e.key==="ArrowDown"?1:-1}:null:null}var[fn,C]=(0,rn.createSafeContext)("Select");function go({filterable:e,filter:n,inputValue:t,contentRef:r}){let[o,l]=c.useState(()=>new Map),p=c.useCallback((a,s)=>{l(g=>{let y=g.get(a);if(y?.value===s.value&&y.text===s.text)return g;let v=new Map(g);return v.set(a,s),v})},[]),S=c.useCallback(a=>{l(s=>{if(!s.has(a))return s;let g=new Map(s);return g.delete(a),g})},[]),f=c.useCallback(a=>o.get(a),[o]),u=c.useCallback(a=>!e||n===void 0||(0,J.filterKeeps)(n(a,t)),[e,n,t]),b=c.useMemo(()=>!e||n===void 0?null:(0,J.rankByScore)([...o.keys()],a=>{let s=o.get(a);if(!s)return null;let g=n(s.text,t);return typeof g=="number"?g:null}),[e,n,t,o]),d=c.useCallback(()=>(0,J.sortByOrder)(Array.from(r.current?.querySelectorAll(re)??[]),b),[r,b]);return{itemCount:o.size,itemOrder:b,registerItem:p,unregisterItem:S,getItem:f,matchesFilter:u,orderedOptions:d}}var Me=e=>e.map(n=>n.dataset.value??"");function yo({enabled:e,maxSelected:n,selectedValues:t,activeId:r,orderedOptions:o,commitSweep:l,rangeAnchorRef:p}){let S=c.useCallback(d=>{let a=[...t];for(let s of d)if(!a.includes(s)){if(n!==void 0&&a.length>=n)break;a.push(s)}return a},[n,t]),f=c.useCallback(()=>{if(!e)return;let d=o(),a=d.findIndex(O=>O.id===r);if(a===-1)return;let s=d.findIndex(O=>O.dataset.value===p.current),g=s===-1?a:s,[y,v]=g<=a?[g,a]:[a,g];l(S(Me(d.slice(y,v+1))))},[e,r,o,l,S,p]),u=c.useCallback(d=>{if(!e)return;let a=o(),s=a.findIndex(y=>y.id===r);if(s===-1)return;let g=d==="first"?a.slice(0,s+1):a.slice(s);l(S(Me(g)))},[e,r,o,l,S]),b=c.useCallback(()=>{if(!e)return;let d=Me(o()),a=d.length>0&&d.every(s=>t.includes(s));l(a?t.filter(s=>!d.includes(s)):S(d))},[e,t,o,l,S]);return{selectRange:f,selectToEdge:u,selectAllOrClear:b}}function Ro(e,n,t,r=mn){let o=c.useRef(!0),l=c.useRef(r);c.useInsertionEffect(()=>{l.current=r}),c.useEffect(()=>{if(o.current){o.current=!1;return}!n||t||(0,cn.announce)(l.current(e))},[e,n,t])}function bo({open:e,defaultOpen:n=!1,onOpenChange:t,readOnly:r}){let[o=!1,l]=(0,He.useControllableState)({prop:e,defaultProp:n,onChange:t}),p=c.useCallback(S=>{r&&S||l(S)},[r,l]);return[o,p]}function ho({inputValue:e,defaultInputValue:n="",onInputValueChange:t,filterable:r}){let[o="",l]=(0,He.useControllableState)({prop:e,defaultProp:n,onChange:t}),p=c.useCallback(()=>{r&&l("")},[r,l]),S=c.useCallback(()=>{l(n)},[n,l]);return{inputValue:o,setInputValue:l,clearDraft:p,resetDraft:S}}function Co({open:e,filterable:n,contentRef:t,orderedOptions:r}){let[o,l]=c.useState(null),[p,S]=c.useState(e);return e!==p&&(S(e),e||l(null)),c.useLayoutEffect(()=>{if(!n||!t.current)return;let f=r();l(u=>u===null||f.some(b=>b.id===u)?u:f[0]?.id??null)},[n,t,r]),[o,l]}function Io({items:e,options:n}){let[t,r]=c.useState(new Map),o=c.useCallback((f,u)=>{r(b=>{if(b.get(f)===u)return b;let d=new Map(b);return d.set(f,u),d})},[]),l=c.useMemo(()=>e??(n?fo(n):void 0),[e,n]),p=c.useMemo(()=>l?l.map(f=>({...f,label:t.get(f.value)??f.label??f.value})):[...t].map(([f,u])=>({value:f,label:u})),[l,t]),S=c.useCallback(f=>t.get(f)??l?.find(u=>u.value===f)?.label??f,[t,l]);return{collection:p,registerOptionLabel:o,getOptionLabel:S}}function vo({value:e,defaultValue:n,onValueChange:t,multiple:r,deselectable:o=!1,maxSelected:l,closeOnSelect:p=!r,disabled:S,readOnly:f,activeId:u,orderedOptions:b,clearDraft:d,setInputValue:a,setOpen:s}){let g=c.useRef("programmatic"),{selectedValues:y,isSelected:v,selectItem:O,setSelection:I}=(0,un.useSelection)({value:e,defaultValue:n,onValueChange:T=>t?.({...T,reason:g.current}),multiple:r,deselectable:o,label:"Select"}),i=S||f,E=r&&l!==void 0&&y.length>=l,k=c.useCallback((T,V)=>{(0,Ie.sameSelection)(T,y)||(g.current=V,I(T))},[y,I]),w=c.useRef(null),m=c.useCallback((T,V="programmatic")=>{i||E&&!y.includes(T)||(w.current=T,g.current=V,O(T,V),d())},[i,E,y,O,d]),R=c.useCallback(T=>{k(T,"keyboard"),d(),p&&s(!1)},[k,d,p,s]),x=yo({enabled:r&&!i,maxSelected:l,selectedValues:y,activeId:u,orderedOptions:b,commitSweep:R,rangeAnchorRef:w}),P=c.useCallback(T=>{i||k(y.filter(V=>V!==T),"pointer")},[i,k,y]),A=c.useCallback(()=>{i||k(y.slice(0,-1),"keyboard")},[i,k,y]),N=c.useCallback(()=>{i||(k([],"pointer"),a(""))},[i,k,a]),X=c.useCallback(()=>{n!==void 0&&k((0,Ie.toSelectionValues)(n,{multiple:r,label:"Select value"}),"programmatic")},[n,r,k]);return{...x,selectedValues:y,isSelected:v,selectItem:m,deselect:P,removeLast:A,clear:N,resetSelection:X,atMax:E,closeOnSelect:p}}var pn=function({children:n,value:t,defaultValue:r,onValueChange:o,multiple:l=!1,deselectable:p,maxSelected:S,allowSelectAll:f=!0,filterable:u=!1,inputValue:b,defaultInputValue:d,onInputValueChange:a,filter:s,loading:g=!1,clearable:y=!1,getSelectionLabel:v,items:O,options:I,renderOption:i,renderValue:E,renderTag:k,placeholder:w,closeOnSelect:m,open:R,defaultOpen:x,onOpenChange:P,onOpenChangeComplete:A,disabled:N=!1,readOnly:X=!1,required:T=!1,invalid:V=!1,name:De,form:bn,autoComplete:hn,shape:Cn,size:In,status:vn,density:xn,matchWidth:Pn,"aria-label":On,ref:kn,...F}){let ve=c.useRef(null),xe=c.useRef(null),Q=c.useRef(null),Ke=c.useRef(null),[Pe,Ge]=bo({open:R,defaultOpen:x,onOpenChange:P,readOnly:X}),{inputValue:Be,setInputValue:Fe,clearDraft:Tn,resetDraft:En}=ho({inputValue:b,defaultInputValue:d,onInputValueChange:a,filterable:u}),H=go({filterable:u,filter:s,inputValue:Be,contentRef:Q}),{orderedOptions:Oe}=H,[qe,An]=Co({open:Pe,filterable:u,contentRef:Q,orderedOptions:Oe}),{selectedValues:ke,isSelected:Ln,selectItem:wn,selectRange:Nn,selectToEdge:Vn,selectAllOrClear:Mn,deselect:Hn,removeLast:Dn,clear:Kn,resetSelection:Gn,atMax:Bn,closeOnSelect:Fn}=vo({value:t,defaultValue:r,onValueChange:o,multiple:l,deselectable:p,maxSelected:S,closeOnSelect:m,disabled:N,readOnly:X,activeId:qe,orderedOptions:Oe,clearDraft:Tn,setInputValue:Fe,setOpen:Ge});Ro(ke.length,l,g,v),(0,dn.useOpenChangeComplete)(Pe,Q,A);let ze=c.useRef(void 0),qn=c.useCallback(()=>{(0,ln.autoFocusEvent)("close-auto-focus",ze.current)&&(xe.current??ve.current)?.focus()},[]),zn=c.useRef("selected"),Wn=c.useId(),[Jn,Xn]=c.useState(!1),{collection:$n,registerOptionLabel:Un,getOptionLabel:_n}=Io({items:O,options:I});return c.useImperativeHandle(kn,()=>(0,Ce.formValidityHandle)(Ke),[]),(0,Ce.useFormReset)(u?xe:ve,()=>{Gn(),En()}),(0,W.jsx)(sn.PopperRoot,{children:(0,W.jsxs)(fn,{triggerRef:ve,inputRef:xe,focusTrigger:qn,closeAutoFocusRef:ze,contentRef:Q,contentId:c.useId(),valueId:Wn,hasValuePart:Jn,setHasValuePart:Xn,activeId:qe,setActiveId:An,openIntentRef:zn,multiple:l,filterable:u,loading:g,allowSelectAll:f,atMax:Bn,inputValue:Be,setInputValue:Fe,closeOnSelect:Fn,selectedValues:ke,isSelected:Ln,selectItem:wn,selectRange:Nn,selectToEdge:Vn,selectAllOrClear:Mn,clear:Kn,removeLast:Dn,deselect:Hn,open:Pe,onOpenChange:Ge,disabled:N,readOnly:X,required:T,invalid:V,name:De,registerOptionLabel:Un,getOptionLabel:_n,collection:$n,itemCount:H.itemCount,registerItem:H.registerItem,unregisterItem:H.unregisterItem,getItem:H.getItem,matchesFilter:H.matchesFilter,itemOrder:H.itemOrder,orderedOptions:Oe,children:[n??(0,W.jsx)(on,{shape:(0,B.recipeAxis)(Cn,F,"data-shape"),size:(0,B.recipeAxis)(In,F,"data-size"),status:(0,B.recipeAxis)(vn,F,"data-status"),density:(0,B.recipeAxis)(xn,F,"data-density"),matchWidth:(0,B.recipeFlag)(Pn,F,"data-match-width"),options:I??[],renderOption:i,renderValue:E,renderTag:k,placeholder:w,clearable:y,ariaLabel:On,passThrough:F}),(0,W.jsx)(an.MirroredValues,{name:De,values:ke,required:T,disabled:N,form:bn,autoComplete:hn,singleValued:!l,controlRef:Ke})]})})};pn.displayName="Select";var Sn=require("../utils/part.cjs"),gn=require("../utils/primitive.cjs"),Rn=require("react/jsx-runtime"),yn=({ref:e,...n})=>(0,Rn.jsx)(gn.Primitive.div,{"aria-hidden":!0,...n,...(0,Sn.skdxPart)("select","separator",n.className),ref:e});yn.displayName="SelectSeparator";0&&(module.exports={OPTION_SELECTOR,Select,SelectAll,SelectClear,SelectContent,SelectEmpty,SelectGroup,SelectGroupProvider,SelectIcon,SelectInput,SelectItem,SelectItemIndicator,SelectItemProvider,SelectItemText,SelectLabel,SelectPortal,SelectProvider,SelectSeparator,SelectTag,SelectTagList,SelectTagRemove,SelectTrigger,SelectValue,SelectViewport,defaultGetSelectionLabel,selectSelectionKeyAction,useSelectContext,useSelectGroupContext,useSelectItemContext});
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import*as c from"react";import{createSafeContext as _n}from"../utils/createContext.js";import{autoFocusEvent as Qn}from"../utils/dismissal.js";import{formValidityHandle as Yn,useFormReset as Zn}from"../utils/formControl.js";import{MirroredValues as jn}from"../utils/hiddenInput.js";import{announce as eo}from"../utils/liveAnnouncer.js";import{PopperRoot as to}from"../utils/popper.js";import{recipeAxis as X,recipeFlag as no}from"../utils/recipeAxis.js";import{filterKeeps as oo,rankByScore as ro,sortByOrder as lo}from"../utils/scoredFilter.js";import{sameSelection as ao,toSelectionValues as co}from"../utils/selection.js";import{useControllableState as qe}from"../utils/useControllableState.js";import{useOpenChangeComplete as so}from"../utils/useOpenChangeComplete.js";import{useSelection as io}from"../utils/useSelection.js";import{Glyph as Xn}from"../utils/Glyph.js";import{skdxPart as ht}from"../utils/part.js";import{composeEventHandlers as Ct,Primitive as It}from"../utils/primitive.js";import{jsx as vt}from"react/jsx-runtime";var Z=({ref:e,...n})=>{let t=C("SelectAll");if(!t.multiple||!t.allowSelectAll)return null;let r=t.orderedOptions().map(l=>l.dataset.value??"").filter(Boolean),o=r.length>0&&r.every(l=>t.selectedValues.includes(l));return vt(It.div,{role:"option","aria-selected":o,"data-state":o?"checked":"unchecked",...n,...ht("select","select-all",n.className),ref:e,onClick:Ct(n.onClick,()=>t.selectAllOrClear())})};Z.displayName="SelectAll";import{skdxPart as xt}from"../utils/part.js";import{composeEventHandlers as Pt,Primitive as Ot}from"../utils/primitive.js";import{jsx as kt}from"react/jsx-runtime";var j=({ref:e,...n})=>{let t=C("SelectClear"),r=t.selectedValues.length===0&&t.inputValue==="",o=n["aria-label"]!==void 0||n["aria-labelledby"]!==void 0;return kt(Ot.button,{type:"button","aria-label":o?void 0:"Clear selection",disabled:t.disabled||t.readOnly||r,"data-disabled":t.disabled?"":void 0,"data-readonly":t.readOnly?"":void 0,...n,...xt("select","clear",n.className),ref:e,onClick:Pt(n.onClick,()=>{t.clear(),(t.inputRef.current??t.triggerRef.current)?.focus()})})};j.displayName="SelectClear";import*as q from"react";import{appearanceAttrs as Tt}from"../utils/appearance.js";import{useComposedRefs as Et}from"../utils/composeRefs.js";import{skdxPart as At}from"../utils/part.js";import{PopperContent as Lt}from"../utils/popper.js";import{composeEventHandlers as wt}from"../utils/primitive.js";import{useDismiss as Nt}from"../utils/useDismiss.js";import{jsx as Mt}from"react/jsx-runtime";function Vt(e,n){let t=e.querySelector('[data-part="viewport"]')??e;if(t===n||!t.contains(n))return;let r=t.getBoundingClientRect(),o=n.getBoundingClientRect();t.scrollTop+=o.top-r.top-(r.height-o.height)/2}var ee=({forceMount:e,side:n="bottom",align:t="start",sideOffset:r=4,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:p,onInteractOutside:S,onCloseAutoFocus:f,ref:u,matchWidth:b,...d})=>{let a=C("SelectContent"),s=Et(u,a.contentRef),{closeAutoFocusRef:g}=a;q.useInsertionEffect(()=>{g.current=f}),Nt({enabled:a.open,onEscapeKeyDown:h=>{o?.(h),!h.defaultPrevented&&(a.onOpenChange(!1),a.focusTrigger())},onInteractOutside:S,onPointerDownOutside:h=>{l?.(h),h.defaultPrevented||a.onOpenChange(!1)},onFocusOutside:h=>{p?.(h),h.defaultPrevented||a.onOpenChange(!1)}},[a.contentRef,a.triggerRef,a.inputRef]);let{setActiveId:y,openIntentRef:I,filterable:P}=a;return q.useEffect(()=>{if(!a.open)return;let h=requestAnimationFrame(()=>{let i=a.contentRef.current;if(!i)return;let E=I.current;if(I.current="selected",P&&E==="selected")return;let O=Array.from(i.querySelectorAll(te)),w=O[0],m=O[O.length-1],v=i.querySelector('[role="option"][data-state="checked"]')??w;E==="first"?v=w:E==="last"&&(v=m),v&&(y(v.id),Vt(i,v))});return()=>cancelAnimationFrame(h)},[a.open,a.contentRef,y,I,P]),e||a.open?Mt(Lt,{component:"select",role:"listbox",id:a.contentId,"aria-multiselectable":a.multiple?!0:void 0,"aria-busy":a.loading?!0:void 0,"data-state":a.open?"open":"closed","data-multiple":a.multiple?"":void 0,"data-loading":a.loading?"":void 0,tabIndex:-1,side:n,align:t,sideOffset:r,...d,...Tt({matchWidth:b},d),...At("select","content",d.className),ref:s,onMouseDown:wt(d.onMouseDown,h=>h.preventDefault())}):null};ee.displayName="SelectContent";import{skdxPart as Ht}from"../utils/part.js";import{Primitive as Dt}from"../utils/primitive.js";import{jsx as Kt}from"react/jsx-runtime";var ne=({ref:e,...n})=>{let t=C("SelectEmpty");return t.open&&t.itemCount===0?Kt(Dt.div,{role:"presentation","aria-live":"polite",...n,...Ht("select","empty",n.className),ref:e}):null};ne.displayName="SelectEmpty";import*as Te from"react";import{createSafeContext as Gt}from"../utils/createContext.js";import{skdxPart as Bt}from"../utils/part.js";import{Primitive as Ft}from"../utils/primitive.js";import{jsx as ke}from"react/jsx-runtime";var[qt,Ee]=Gt("SelectGroup",{labelId:null}),oe=({ref:e,...n})=>{let t=Te.useId();return ke(qt,{labelId:t,children:ke(Ft.div,{role:"group","aria-labelledby":t,...n,...Bt("select","group",n.className),ref:e})})};oe.displayName="SelectGroup";import{skdxPart as zt}from"../utils/part.js";import{Primitive as Wt}from"../utils/primitive.js";import{jsx as Jt}from"react/jsx-runtime";var re=({children:e,ref:n,...t})=>Jt(Wt.span,{"aria-hidden":!0,...t,...zt("select","icon",t.className),ref:n,children:e??"\u25BE"});re.displayName="SelectIcon";import{useComposedRefs as Xt}from"../utils/composeRefs.js";import{skdxPart as $t}from"../utils/part.js";import{PopperAnchor as Ut}from"../utils/popper.js";import{composeEventHandlers as le,Primitive as _t}from"../utils/primitive.js";import{jsx as Ae}from"react/jsx-runtime";function Le(e){return e.scrollIntoView?.({block:"nearest"}),e.id}function we(e,n){let t=e.orderedOptions();if(t.length===0)return null;let r=t.findIndex(p=>p.id===e.activeId),o=Math.min(t.length-1,Math.max(0,r+n)),l=t[o];return e.setActiveId(l.id),Le(l)}function Qt(e,n){let t=e.orderedOptions();if(t.length===0)return;let r=n==="last"?t[t.length-1]:t[0];e.setActiveId(r.id),Le(r)}function Yt(e,n){let t=e.activeId,r=we(e,n);if(r===null||r===t)return;let o=e.getItem(r);o&&e.selectItem(o.value,"keyboard")}function Zt(e,n){if(!e.open||!e.multiple)return!1;let t=z(n,{allowSelectAll:e.allowSelectAll,hasActive:e.activeId!==null});return t?(n.preventDefault(),t.kind==="extend"?Yt(e,t.direction):t.kind==="range"?e.selectRange():t.kind==="sweep"?e.selectToEdge(t.edge):e.selectAllOrClear(),!0):!1}function jt(e,n){if(n.key!=="ArrowDown"&&n.key!=="ArrowUp")return!1;n.preventDefault();let t=n.key==="ArrowDown"?1:-1;return e.open?(we(e,t),!0):(e.openIntentRef.current=t===1?"first":"last",e.onOpenChange(!0),!0)}function en(e,n){if(n.key==="Home"||n.key==="End"){if(!e.open)return;n.preventDefault(),Qt(e,n.key==="Home"?"first":"last")}else if(n.key==="Enter"){let t=e.activeId?e.getItem(e.activeId):void 0;if(!t)return;n.preventDefault(),e.selectItem(t.value,"keyboard"),e.closeOnSelect&&e.onOpenChange(!1)}else n.key==="Escape"?e.open&&!e.contentRef.current&&(n.preventDefault(),e.onOpenChange(!1)):n.key==="Backspace"&&e.inputValue===""&&e.removeLast()}var ae=({ref:e,...n})=>{let t=C("SelectInput"),r=Xt(e,t.inputRef);return Ae(Ut,{asChild:!0,children:Ae(_t.input,{type:"text",role:"combobox","aria-haspopup":"listbox","aria-expanded":t.open,"aria-controls":t.contentId,"aria-autocomplete":"list","aria-activedescendant":t.activeId??void 0,autoComplete:"off",disabled:t.disabled,readOnly:t.readOnly,"aria-required":t.required||void 0,"aria-invalid":t.invalid?!0:void 0,"aria-readonly":t.readOnly?!0:void 0,"aria-busy":t.loading?!0:void 0,"data-invalid":t.invalid?"":void 0,"data-readonly":t.readOnly?"":void 0,"data-disabled":t.disabled?"":void 0,"data-loading":t.loading?"":void 0,"data-multiple":t.multiple?"":void 0,"data-state":t.open?"open":"closed",...n,...$t("select","input",n.className),ref:r,value:t.inputValue,onChange:le(n.onChange,o=>{t.setInputValue(o.target.value),t.open||t.onOpenChange(!0)}),onBlur:le(n.onBlur,()=>{t.open&&t.onOpenChange(!1)}),onKeyDown:le(n.onKeyDown,o=>{t.disabled||Zt(t,o)||jt(t,o)||en(t,o)})})})};ae.displayName="SelectInput";import*as M from"react";import{useComposedRefs as tn}from"../utils/composeRefs.js";import{createSafeContext as nn}from"../utils/createContext.js";import{skdxPart as on}from"../utils/part.js";import{composeEventHandlers as Ne,Primitive as rn}from"../utils/primitive.js";import{useOptionEntry as ln}from"../utils/useOptionCollection.js";import{jsx as Ve}from"react/jsx-runtime";var[an,W]=nn("SelectItem"),ce=({value:e,disabled:n,textValue:t,ref:r,...o})=>{let l=C("SelectItem"),p=M.useId(),S=M.useRef(null),f=tn(r,S),u=l.isSelected(e),b=l.activeId===p,[d,a]=M.useState(void 0),{registerOptionLabel:s}=l,g=M.useCallback(i=>{s(e,t??i),a(i)},[s,e,t]),{visible:y}=ln({id:p,value:e,textValue:t??d,itemRef:S,matchesFilter:l.matchesFilter,registerItem:l.registerItem,unregisterItem:l.unregisterItem}),I=n||l.atMax&&!u,P=l.itemOrder?.get(p),h=()=>{I||(l.selectItem(e,"pointer"),l.closeOnSelect&&(l.onOpenChange(!1),l.focusTrigger()))};return y?Ve(an,{value:e,selected:u,registerText:g,children:Ve(rn.div,{role:"option",id:p,"data-value":e,"aria-selected":u,"data-state":u?"checked":"unchecked","data-highlighted":b?"":void 0,"data-text-value":t,"aria-disabled":I||void 0,"data-disabled":I?"":void 0,...o,...on("select","item",o.className),ref:f,onClick:Ne(o.onClick,h),onPointerEnter:Ne(o.onPointerEnter,()=>{I||l.setActiveId(p)}),style:P!==void 0?{order:P,...o.style}:o.style})}):null};ce.displayName="SelectItem";import{skdxPart as cn}from"../utils/part.js";import{Primitive as sn}from"../utils/primitive.js";import{jsx as dn}from"react/jsx-runtime";var se=({forceMount:e,ref:n,...t})=>{let r=W("SelectItemIndicator");return e||r.selected?dn(sn.span,{"aria-hidden":!0,...t,...cn("select","item-indicator",t.className),ref:n}):null};se.displayName="SelectItemIndicator";import*as J from"react";import{useComposedRefs as un}from"../utils/composeRefs.js";import{skdxPart as mn}from"../utils/part.js";import{Primitive as fn}from"../utils/primitive.js";import{jsx as pn}from"react/jsx-runtime";var ie=({children:e,ref:n,...t})=>{let r=W("SelectItemText"),o=J.useRef(null),l=un(n,o);return J.useLayoutEffect(()=>{r.registerText(o.current?.textContent??"")}),pn(fn.span,{...t,...mn("select","item-text",t.className),ref:l,children:e})};ie.displayName="SelectItemText";import{skdxPart as Sn}from"../utils/part.js";import{Primitive as gn}from"../utils/primitive.js";import{jsx as yn}from"react/jsx-runtime";var de=({ref:e,...n})=>{let t=Ee("SelectLabel");return yn(gn.div,{id:t.labelId??void 0,...n,...Sn("select","label",n.className),ref:e})};de.displayName="SelectLabel";import{Portal as Rn}from"../utils/portal.js";import{jsx as bn}from"react/jsx-runtime";var ue=({forceMount:e,children:n,...t})=>{let r=C("SelectPortal");return e||r.open?bn(Rn,{...t,children:n}):null};ue.displayName="SelectPortal";import{Badge as hn}from"../badge/Badge.js";import{skdxPart as Cn}from"../utils/part.js";import{jsx as In}from"react/jsx-runtime";var me=({value:e,ref:n,...t})=>{let r=C("SelectTag"),o=r.selectedValues.indexOf(e);return In(hn,{index:o,label:e,"data-value":e,"data-skdx-select-tag":"",onDelete:()=>r.deselect(e),...t,...Cn("select","tag",t.className),ref:n})};me.displayName="SelectTag";import{TagGroup as vn}from"../tag-group/TagGroup.js";import{skdxPart as xn}from"../utils/part.js";import{jsx as Pn}from"react/jsx-runtime";var fe=({ref:e,...n})=>{let t=C("SelectTagList");return Pn(vn,{disabled:t.disabled||t.readOnly,...n,...xn("select","tag-list",n.className),ref:e})};fe.displayName="SelectTagList";import{BadgeDelete as On}from"../badge/Badge.js";import{skdxPart as kn}from"../utils/part.js";import{jsx as Tn}from"react/jsx-runtime";var pe=({ref:e,...n})=>Tn(On,{...n,...kn("select","tag-remove",n.className),ref:e});pe.displayName="SelectTagRemove";import*as L from"react";import{appearanceAttrs as En}from"../utils/appearance.js";import{useComposedRefs as An}from"../utils/composeRefs.js";import{skdxPart as Ln}from"../utils/part.js";import{PopperAnchor as wn}from"../utils/popper.js";import{composeEventHandlers as Nn,Primitive as Vn,useComposedEventHandlers as Mn}from"../utils/primitive.js";import{selectClosedAction as Hn,selectKeyPrevented as Me,selectOpenAction as Dn}from"../utils/select-keyboard.js";import{itemText as Kn}from"../utils/typeahead.js";import{useTypeahead as He}from"../utils/useTypeahead.js";import{jsx as De}from"react/jsx-runtime";var Gn=0;function Bn(e){if(!e)return null;let n=e.getRootNode(),r=(e.id?Array.from(n.querySelectorAll("[for]")).find(o=>o.getAttribute("for")===e.id):void 0)??e.closest("label");return r?(r.id||(r.id=`skdx-select-label-${++Gn}`),r.id):null}var Se=({ref:e,shape:n,size:t,...r})=>{let o=C("SelectTrigger"),{openIntentRef:l}=o,[p,S]=L.useState(null),f=L.useCallback(m=>{S(m&&Bn(m))},[]),u=An(e,o.triggerRef,f),b=o.disabled||r.disabled,d=L.useRef(o.collection);L.useInsertionEffect(()=>{d.current=o.collection.filter(m=>!m.disabled)});let a=He(L.useCallback(()=>d.current.map(m=>m.label??m.value),[])),s=L.useRef([]),g=He(L.useCallback(()=>s.current.map(m=>Kn(m)),[])),y=m=>{m&&(o.setActiveId(m.id),m.scrollIntoView?.({block:"nearest"}))},I=m=>{let R=m?.getAttribute("data-value");R!=null&&(o.selectItem(R,"keyboard"),o.closeOnSelect&&o.onOpenChange(!1))},P=m=>{let R=m?.getAttribute("data-value");R!=null&&(o.multiple&&o.isSelected(R)||o.selectItem(R,"keyboard"))},h=(m,R,v)=>{let x=Math.min(m.length-1,Math.max(0,R+v)),A=m[x];if(!A||x===R)return;y(A);let N=A.getAttribute("data-value");N!==null&&o.selectItem(N,"keyboard")},i=(m,R,v)=>{if(!o.multiple)return!1;let x=z(m,{allowSelectAll:o.allowSelectAll,hasActive:o.activeId!==null});return x?(m.preventDefault(),x.kind==="extend"?h(R,v,x.direction):x.kind==="range"?o.selectRange():x.kind==="sweep"?o.selectToEdge(x.edge):o.selectAllOrClear(),!0):!1},E=m=>{let R=o.orderedOptions();s.current=R;let v=R.findIndex(A=>A.id===o.activeId);if(i(m,R,v))return;let x=Dn(m,v,R.length);switch(Me(x)&&m.preventDefault(),x.kind){case"activate":y(R[x.index]);return;case"commit":I(R[v]);return;case"commit-and-close":I(R[v]),o.onOpenChange(!1);return;case"commit-on-exit":P(R[v]),o.onOpenChange(!1);return;case"typeahead":{let A=g(m.key,v);A!==-1&&y(R[A]);return}case"ignore":case"claim":return}},w=r["aria-label"]===void 0&&o.hasValuePart?[p,r["aria-labelledby"],o.valueId].filter(Boolean).join(" "):r["aria-labelledby"];return De(wn,{asChild:!0,children:De(Vn.button,{type:"button",role:"combobox","aria-haspopup":"listbox","aria-expanded":o.open,"aria-controls":o.contentId,"aria-activedescendant":o.activeId??void 0,"aria-required":o.required||void 0,"aria-invalid":o.invalid?!0:void 0,"aria-readonly":o.readOnly?!0:void 0,"data-state":o.open?"open":"closed","data-disabled":b?"":void 0,"data-readonly":o.readOnly?"":void 0,"data-invalid":o.invalid?"":void 0,"data-placeholder":o.selectedValues.length===0?"":void 0,"data-multiple":o.multiple?"":void 0,...r,disabled:b,"aria-labelledby":w,...En({shape:n,size:t},r),...Ln("select","trigger",r.className),ref:u,onClick:Nn(r.onClick,()=>o.onOpenChange(!o.open)),onKeyDown:Mn(r.onKeyDown,m=>{if(o.open){E(m);return}let R=Hn(m,o.multiple);switch(Me(R)&&m.preventDefault(),R.kind){case"open":l.current=R.intent,o.onOpenChange(!0);return;case"open-for-typeahead":o.onOpenChange(!0);return;case"typeahead":{let v=d.current.findIndex(A=>o.isSelected(A.value)),x=a(m.key,v);x!==-1&&o.selectItem(d.current[x].value,"keyboard");return}case"ignore":return}})})})};Se.displayName="SelectTrigger";import*as G from"react";import{skdxPart as Fn}from"../utils/part.js";import{Primitive as qn}from"../utils/primitive.js";import{jsx as Ke}from"react/jsx-runtime";var ge=({placeholder:e,children:n,ref:t,...r})=>{let{selectedValues:o,multiple:l,getOptionLabel:p,valueId:S,setHasValuePart:f}=C("SelectValue");G.useEffect(()=>(f(!0),()=>f(!1)),[f]);let u,b=!1;return!r.asChild&&n!==void 0?u=n:o.length===0?(u=e,b=!0):l?u=o.map(d=>Ke("span",{"data-chip":"","data-value":d,children:p(d)},d)):u=p(o[0]),Ke(qn.span,{id:S,"data-multiple":l?"":void 0,"data-placeholder":b?"":void 0,...r,...Fn("select","value",r.className),ref:t,style:{pointerEvents:"none",...r.style},children:r.asChild&&G.isValidElement(n)?G.cloneElement(n,void 0,u):u})};ge.displayName="SelectValue";import{skdxPart as zn}from"../utils/part.js";import{Primitive as Wn}from"../utils/primitive.js";import{jsx as Jn}from"react/jsx-runtime";var ye=({ref:e,...n})=>Jn(Wn.div,{...n,...zn("select","viewport",n.className),ref:e,style:{overflow:"auto",...n.style}});ye.displayName="SelectViewport";import{Fragment as Un,jsx as T,jsxs as D}from"react/jsx-runtime";var Be=e=>"options"in e;function $n(e){let n=new Map;for(let t of e)for(let r of Be(t)?t.options:[t])n.set(r.value,r);return n}var Ge=()=>T(Xn,{name:"close"}),Fe=({shape:e,size:n,status:t,density:r,matchWidth:o,options:l,renderOption:p,renderValue:S,renderTag:f,placeholder:u,clearable:b,ariaLabel:d,passThrough:a})=>{let s=C("Select"),g=$n(l),y=d??u,I=i=>D(ce,{value:i.value,disabled:i.disabled,textValue:i.label,children:[T(ie,{children:p?p(i,{selected:s.isSelected(i.value)}):i.label??i.value}),T(se,{children:"\u2713"})]},i.value),P;if(S){let i=s.multiple?s.selectedValues.map(E=>g.get(E)??{value:E}):g.get(s.selectedValues[0]??"")??(s.selectedValues[0]?{value:s.selectedValues[0]}:null);P=S(i)}let h=i=>f?f(i):i.label??i.value;return D(Un,{children:[s.multiple?T(fe,{density:r,"aria-label":y?`${y} \u2014 selected`:void 0,children:s.selectedValues.map(i=>D(me,{value:i,shape:e,size:n,status:t,children:[h(g.get(i)??{value:i}),T(pe,{children:T(Ge,{})})]},i))}):null,s.filterable?T(ae,{...a,"data-match-width":void 0,"data-shape":void 0,"data-size":void 0,"data-status":void 0,"data-density":void 0,"aria-label":d,placeholder:u}):D(Se,{...a,"data-match-width":void 0,"data-status":void 0,"data-density":void 0,"aria-label":d,shape:e,size:n,children:[T(ge,{placeholder:u,children:P}),T(re,{})]}),b?T(j,{"aria-label":"Clear selection",children:T(Ge,{})}):null,D(ue,{children:[T(ee,{matchWidth:o,children:D(ye,{children:[T(Z,{children:"Select all"}),l.map(i=>Be(i)?D(oe,{children:[T(de,{children:i.label}),i.options.map(I)]},i.label):I(i))]})}),T(ne,{children:"No results found"})]})]})};import{jsx as be,jsxs as Po}from"react/jsx-runtime";function uo(e){let n=[];for(let t of e)for(let r of"options"in t?t.options:[t])n.push(r);return n}var te='[role="option"]:not([data-disabled]):not([data-part="select-all"])';function mo(e){return e===0?"none selected":`${e} selected`}function z(e,{allowSelectAll:n,hasActive:t}){return fo(e,n)??po(e,t)}function fo(e,n){return e.ctrlKey&&e.shiftKey&&(e.key==="Home"||e.key==="End")?{kind:"sweep",edge:e.key==="Home"?"first":"last"}:(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==="a"&&n?{kind:"select-all"}:null}function po(e,n){return e.shiftKey?e.key===" "?n?{kind:"range"}:null:e.key==="ArrowDown"||e.key==="ArrowUp"?{kind:"extend",direction:e.key==="ArrowDown"?1:-1}:null:null}var[So,C]=_n("Select");function go({filterable:e,filter:n,inputValue:t,contentRef:r}){let[o,l]=c.useState(()=>new Map),p=c.useCallback((a,s)=>{l(g=>{let y=g.get(a);if(y?.value===s.value&&y.text===s.text)return g;let I=new Map(g);return I.set(a,s),I})},[]),S=c.useCallback(a=>{l(s=>{if(!s.has(a))return s;let g=new Map(s);return g.delete(a),g})},[]),f=c.useCallback(a=>o.get(a),[o]),u=c.useCallback(a=>!e||n===void 0||oo(n(a,t)),[e,n,t]),b=c.useMemo(()=>!e||n===void 0?null:ro([...o.keys()],a=>{let s=o.get(a);if(!s)return null;let g=n(s.text,t);return typeof g=="number"?g:null}),[e,n,t,o]),d=c.useCallback(()=>lo(Array.from(r.current?.querySelectorAll(te)??[]),b),[r,b]);return{itemCount:o.size,itemOrder:b,registerItem:p,unregisterItem:S,getItem:f,matchesFilter:u,orderedOptions:d}}var Re=e=>e.map(n=>n.dataset.value??"");function yo({enabled:e,maxSelected:n,selectedValues:t,activeId:r,orderedOptions:o,commitSweep:l,rangeAnchorRef:p}){let S=c.useCallback(d=>{let a=[...t];for(let s of d)if(!a.includes(s)){if(n!==void 0&&a.length>=n)break;a.push(s)}return a},[n,t]),f=c.useCallback(()=>{if(!e)return;let d=o(),a=d.findIndex(P=>P.id===r);if(a===-1)return;let s=d.findIndex(P=>P.dataset.value===p.current),g=s===-1?a:s,[y,I]=g<=a?[g,a]:[a,g];l(S(Re(d.slice(y,I+1))))},[e,r,o,l,S,p]),u=c.useCallback(d=>{if(!e)return;let a=o(),s=a.findIndex(y=>y.id===r);if(s===-1)return;let g=d==="first"?a.slice(0,s+1):a.slice(s);l(S(Re(g)))},[e,r,o,l,S]),b=c.useCallback(()=>{if(!e)return;let d=Re(o()),a=d.length>0&&d.every(s=>t.includes(s));l(a?t.filter(s=>!d.includes(s)):S(d))},[e,t,o,l,S]);return{selectRange:f,selectToEdge:u,selectAllOrClear:b}}function Ro(e,n,t,r=mo){let o=c.useRef(!0),l=c.useRef(r);c.useInsertionEffect(()=>{l.current=r}),c.useEffect(()=>{if(o.current){o.current=!1;return}!n||t||eo(l.current(e))},[e,n,t])}function bo({open:e,defaultOpen:n=!1,onOpenChange:t,readOnly:r}){let[o=!1,l]=qe({prop:e,defaultProp:n,onChange:t}),p=c.useCallback(S=>{r&&S||l(S)},[r,l]);return[o,p]}function ho({inputValue:e,defaultInputValue:n="",onInputValueChange:t,filterable:r}){let[o="",l]=qe({prop:e,defaultProp:n,onChange:t}),p=c.useCallback(()=>{r&&l("")},[r,l]),S=c.useCallback(()=>{l(n)},[n,l]);return{inputValue:o,setInputValue:l,clearDraft:p,resetDraft:S}}function Co({open:e,filterable:n,contentRef:t,orderedOptions:r}){let[o,l]=c.useState(null),[p,S]=c.useState(e);return e!==p&&(S(e),e||l(null)),c.useLayoutEffect(()=>{if(!n||!t.current)return;let f=r();l(u=>u===null||f.some(b=>b.id===u)?u:f[0]?.id??null)},[n,t,r]),[o,l]}function Io({items:e,options:n}){let[t,r]=c.useState(new Map),o=c.useCallback((f,u)=>{r(b=>{if(b.get(f)===u)return b;let d=new Map(b);return d.set(f,u),d})},[]),l=c.useMemo(()=>e??(n?uo(n):void 0),[e,n]),p=c.useMemo(()=>l?l.map(f=>({...f,label:t.get(f.value)??f.label??f.value})):[...t].map(([f,u])=>({value:f,label:u})),[l,t]),S=c.useCallback(f=>t.get(f)??l?.find(u=>u.value===f)?.label??f,[t,l]);return{collection:p,registerOptionLabel:o,getOptionLabel:S}}function vo({value:e,defaultValue:n,onValueChange:t,multiple:r,deselectable:o=!1,maxSelected:l,closeOnSelect:p=!r,disabled:S,readOnly:f,activeId:u,orderedOptions:b,clearDraft:d,setInputValue:a,setOpen:s}){let g=c.useRef("programmatic"),{selectedValues:y,isSelected:I,selectItem:P,setSelection:h}=io({value:e,defaultValue:n,onValueChange:k=>t?.({...k,reason:g.current}),multiple:r,deselectable:o,label:"Select"}),i=S||f,E=r&&l!==void 0&&y.length>=l,O=c.useCallback((k,V)=>{ao(k,y)||(g.current=V,h(k))},[y,h]),w=c.useRef(null),m=c.useCallback((k,V="programmatic")=>{i||E&&!y.includes(k)||(w.current=k,g.current=V,P(k,V),d())},[i,E,y,P,d]),R=c.useCallback(k=>{O(k,"keyboard"),d(),p&&s(!1)},[O,d,p,s]),v=yo({enabled:r&&!i,maxSelected:l,selectedValues:y,activeId:u,orderedOptions:b,commitSweep:R,rangeAnchorRef:w}),x=c.useCallback(k=>{i||O(y.filter(V=>V!==k),"pointer")},[i,O,y]),A=c.useCallback(()=>{i||O(y.slice(0,-1),"keyboard")},[i,O,y]),N=c.useCallback(()=>{i||(O([],"pointer"),a(""))},[i,O,a]),B=c.useCallback(()=>{n!==void 0&&O(co(n,{multiple:r,label:"Select value"}),"programmatic")},[n,r,O]);return{...v,selectedValues:y,isSelected:I,selectItem:m,deselect:x,removeLast:A,clear:N,resetSelection:B,atMax:E,closeOnSelect:p}}var xo=function({children:n,value:t,defaultValue:r,onValueChange:o,multiple:l=!1,deselectable:p,maxSelected:S,allowSelectAll:f=!0,filterable:u=!1,inputValue:b,defaultInputValue:d,onInputValueChange:a,filter:s,loading:g=!1,clearable:y=!1,getSelectionLabel:I,items:P,options:h,renderOption:i,renderValue:E,renderTag:O,placeholder:w,closeOnSelect:m,open:R,defaultOpen:v,onOpenChange:x,onOpenChangeComplete:A,disabled:N=!1,readOnly:B=!1,required:k=!1,invalid:V=!1,name:he,form:ze,autoComplete:We,shape:Je,size:Xe,status:$e,density:Ue,matchWidth:_e,"aria-label":Qe,ref:Ye,...K}){let $=c.useRef(null),U=c.useRef(null),F=c.useRef(null),Ce=c.useRef(null),[_,Ie]=bo({open:R,defaultOpen:v,onOpenChange:x,readOnly:B}),{inputValue:ve,setInputValue:xe,clearDraft:Ze,resetDraft:je}=ho({inputValue:b,defaultInputValue:d,onInputValueChange:a,filterable:u}),H=go({filterable:u,filter:s,inputValue:ve,contentRef:F}),{orderedOptions:Q}=H,[Pe,et]=Co({open:_,filterable:u,contentRef:F,orderedOptions:Q}),{selectedValues:Y,isSelected:tt,selectItem:nt,selectRange:ot,selectToEdge:rt,selectAllOrClear:lt,deselect:at,removeLast:ct,clear:st,resetSelection:it,atMax:dt,closeOnSelect:ut}=vo({value:t,defaultValue:r,onValueChange:o,multiple:l,deselectable:p,maxSelected:S,closeOnSelect:m,disabled:N,readOnly:B,activeId:Pe,orderedOptions:Q,clearDraft:Ze,setInputValue:xe,setOpen:Ie});Ro(Y.length,l,g,I),so(_,F,A);let Oe=c.useRef(void 0),mt=c.useCallback(()=>{Qn("close-auto-focus",Oe.current)&&(U.current??$.current)?.focus()},[]),ft=c.useRef("selected"),pt=c.useId(),[St,gt]=c.useState(!1),{collection:yt,registerOptionLabel:Rt,getOptionLabel:bt}=Io({items:P,options:h});return c.useImperativeHandle(Ye,()=>Yn(Ce),[]),Zn(u?U:$,()=>{it(),je()}),be(to,{children:Po(So,{triggerRef:$,inputRef:U,focusTrigger:mt,closeAutoFocusRef:Oe,contentRef:F,contentId:c.useId(),valueId:pt,hasValuePart:St,setHasValuePart:gt,activeId:Pe,setActiveId:et,openIntentRef:ft,multiple:l,filterable:u,loading:g,allowSelectAll:f,atMax:dt,inputValue:ve,setInputValue:xe,closeOnSelect:ut,selectedValues:Y,isSelected:tt,selectItem:nt,selectRange:ot,selectToEdge:rt,selectAllOrClear:lt,clear:st,removeLast:ct,deselect:at,open:_,onOpenChange:Ie,disabled:N,readOnly:B,required:k,invalid:V,name:he,registerOptionLabel:Rt,getOptionLabel:bt,collection:yt,itemCount:H.itemCount,registerItem:H.registerItem,unregisterItem:H.unregisterItem,getItem:H.getItem,matchesFilter:H.matchesFilter,itemOrder:H.itemOrder,orderedOptions:Q,children:[n??be(Fe,{shape:X(Je,K,"data-shape"),size:X(Xe,K,"data-size"),status:X($e,K,"data-status"),density:X(Ue,K,"data-density"),matchWidth:no(_e,K,"data-match-width"),options:h??[],renderOption:i,renderValue:E,renderTag:O,placeholder:w,clearable:y,ariaLabel:Qe,passThrough:K}),be(jn,{name:he,values:Y,required:k,disabled:N,form:ze,autoComplete:We,singleValued:!l,controlRef:Ce})]})})};xo.displayName="Select";import{skdxPart as Oo}from"../utils/part.js";import{Primitive as ko}from"../utils/primitive.js";import{jsx as Eo}from"react/jsx-runtime";var To=({ref:e,...n})=>Eo(ko.div,{"aria-hidden":!0,...n,...Oo("select","separator",n.className),ref:e});To.displayName="SelectSeparator";export{te as OPTION_SELECTOR,xo as Select,Z as SelectAll,j as SelectClear,ee as SelectContent,ne as SelectEmpty,oe as SelectGroup,qt as SelectGroupProvider,re as SelectIcon,ae as SelectInput,ce as SelectItem,se as SelectItemIndicator,an as SelectItemProvider,ie as SelectItemText,de as SelectLabel,ue as SelectPortal,So as SelectProvider,To as SelectSeparator,me as SelectTag,fe as SelectTagList,pe as SelectTagRemove,Se as SelectTrigger,ge as SelectValue,ye as SelectViewport,mo as defaultGetSelectionLabel,z as selectSelectionKeyAction,C as useSelectContext,Ee as useSelectGroupContext,W as useSelectItemContext};
2
+ import*as c from"react";import{createSafeContext as _n}from"../utils/createContext.js";import{autoFocusEvent as Qn}from"../utils/dismissal.js";import{formValidityHandle as Yn,useFormReset as Zn}from"../utils/formControl.js";import{MirroredValues as jn}from"../utils/hiddenInput.js";import{announce as eo}from"../utils/liveAnnouncer.js";import{PopperRoot as to}from"../utils/popper.js";import{recipeAxis as $,recipeFlag as no}from"../utils/recipeAxis.js";import{filterKeeps as oo,rankByScore as ro,sortByOrder as lo}from"../utils/scoredFilter.js";import{sameSelection as ao,toSelectionValues as co}from"../utils/selection.js";import{useControllableState as qe}from"../utils/useControllableState.js";import{useOpenChangeComplete as so}from"../utils/useOpenChangeComplete.js";import{useSelection as io}from"../utils/useSelection.js";import{Glyph as Xn}from"../utils/Glyph.js";import{skdxPart as ht}from"../utils/part.js";import{composeEventHandlers as Ct,Primitive as It}from"../utils/primitive.js";import{jsx as vt}from"react/jsx-runtime";var j=({ref:e,...n})=>{let t=C("SelectAll");if(!t.multiple||!t.allowSelectAll)return null;let r=t.orderedOptions().map(l=>l.dataset.value??"").filter(Boolean),o=r.length>0&&r.every(l=>t.selectedValues.includes(l));return vt(It.div,{role:"option","aria-selected":o,"data-state":o?"checked":"unchecked",...n,...ht("select","select-all",n.className),ref:e,onClick:Ct(n.onClick,()=>t.selectAllOrClear())})};j.displayName="SelectAll";import{skdxPart as xt}from"../utils/part.js";import{composeEventHandlers as Pt,Primitive as Ot}from"../utils/primitive.js";import{jsx as kt}from"react/jsx-runtime";var ee=({ref:e,...n})=>{let t=C("SelectClear"),r=t.selectedValues.length===0&&t.inputValue==="",o=n["aria-label"]!==void 0||n["aria-labelledby"]!==void 0;return kt(Ot.button,{type:"button","aria-label":o?void 0:"Clear selection",disabled:t.disabled||t.readOnly||r,"data-disabled":t.disabled?"":void 0,"data-readonly":t.readOnly?"":void 0,...n,...xt("select","clear",n.className),ref:e,onClick:Pt(n.onClick,()=>{t.clear(),(t.inputRef.current??t.triggerRef.current)?.focus()})})};ee.displayName="SelectClear";import*as q from"react";import{appearanceAttrs as Tt}from"../utils/appearance.js";import{useComposedRefs as Et}from"../utils/composeRefs.js";import{skdxPart as At}from"../utils/part.js";import{PopperContent as Lt}from"../utils/popper.js";import{composeEventHandlers as wt}from"../utils/primitive.js";import{useDismiss as Nt}from"../utils/useDismiss.js";import{jsx as Mt}from"react/jsx-runtime";function Vt(e,n){let t=e.querySelector('[data-part="viewport"]')??e;if(t===n||!t.contains(n))return;let r=t.getBoundingClientRect(),o=n.getBoundingClientRect();t.scrollTop+=o.top-r.top-(r.height-o.height)/2}var te=({forceMount:e,side:n="bottom",align:t="start",sideOffset:r=4,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:p,onInteractOutside:S,onCloseAutoFocus:f,ref:u,matchWidth:b,...d})=>{let a=C("SelectContent"),s=Et(u,a.contentRef),{closeAutoFocusRef:g}=a;q.useInsertionEffect(()=>{g.current=f}),Nt({enabled:a.open,onEscapeKeyDown:h=>{o?.(h),!h.defaultPrevented&&(a.onOpenChange(!1),a.focusTrigger())},onInteractOutside:S,onPointerDownOutside:h=>{l?.(h),h.defaultPrevented||a.onOpenChange(!1)},onFocusOutside:h=>{p?.(h),h.defaultPrevented||a.onOpenChange(!1)}},[a.contentRef,a.triggerRef,a.inputRef]);let{setActiveId:y,openIntentRef:I,filterable:P}=a;return q.useEffect(()=>{if(!a.open)return;let h=requestAnimationFrame(()=>{let i=a.contentRef.current;if(!i)return;let E=I.current;if(I.current="selected",P&&E==="selected")return;let O=Array.from(i.querySelectorAll(ne)),w=O[0],m=O[O.length-1],v=i.querySelector('[role="option"][data-state="checked"]')??w;E==="first"?v=w:E==="last"&&(v=m),v&&(y(v.id),Vt(i,v))});return()=>cancelAnimationFrame(h)},[a.open,a.contentRef,y,I,P]),e||a.open?Mt(Lt,{component:"select",role:"listbox",id:a.contentId,"aria-multiselectable":a.multiple?!0:void 0,"aria-busy":a.loading?!0:void 0,"data-state":a.open?"open":"closed","data-multiple":a.multiple?"":void 0,"data-loading":a.loading?"":void 0,tabIndex:-1,side:n,align:t,sideOffset:r,...d,...Tt({matchWidth:b},d),...At("select","content",d.className),ref:s,onMouseDown:wt(d.onMouseDown,h=>h.preventDefault())}):null};te.displayName="SelectContent";import{skdxPart as Ht}from"../utils/part.js";import{Primitive as Dt}from"../utils/primitive.js";import{jsx as Kt}from"react/jsx-runtime";var oe=({ref:e,...n})=>{let t=C("SelectEmpty");return t.open&&t.itemCount===0?Kt(Dt.div,{role:"presentation","aria-live":"polite",...n,...Ht("select","empty",n.className),ref:e}):null};oe.displayName="SelectEmpty";import*as Te from"react";import{createSafeContext as Gt}from"../utils/createContext.js";import{skdxPart as Bt}from"../utils/part.js";import{Primitive as Ft}from"../utils/primitive.js";import{jsx as ke}from"react/jsx-runtime";var[qt,Ee]=Gt("SelectGroup",{labelId:null}),re=({ref:e,...n})=>{let t=Te.useId();return ke(qt,{labelId:t,children:ke(Ft.div,{role:"group","aria-labelledby":t,...n,...Bt("select","group",n.className),ref:e})})};re.displayName="SelectGroup";import{skdxPart as zt}from"../utils/part.js";import{Primitive as Wt}from"../utils/primitive.js";import{jsx as Jt}from"react/jsx-runtime";var le=({children:e,ref:n,...t})=>Jt(Wt.span,{"aria-hidden":!0,...t,...zt("select","icon",t.className),ref:n,children:e??"\u25BE"});le.displayName="SelectIcon";import{useComposedRefs as Xt}from"../utils/composeRefs.js";import{skdxPart as $t}from"../utils/part.js";import{PopperAnchor as Ut}from"../utils/popper.js";import{composeEventHandlers as z,Primitive as _t}from"../utils/primitive.js";import{jsx as Ae}from"react/jsx-runtime";function Le(e){return e.scrollIntoView?.({block:"nearest"}),e.id}function we(e,n){let t=e.orderedOptions();if(t.length===0)return null;let r=t.findIndex(p=>p.id===e.activeId),o=Math.min(t.length-1,Math.max(0,r+n)),l=t[o];return e.setActiveId(l.id),Le(l)}function Qt(e,n){let t=e.orderedOptions();if(t.length===0)return;let r=n==="last"?t[t.length-1]:t[0];e.setActiveId(r.id),Le(r)}function Yt(e,n){let t=e.activeId,r=we(e,n);if(r===null||r===t)return;let o=e.getItem(r);o&&e.selectItem(o.value,"keyboard")}function Zt(e,n){if(!e.open||!e.multiple)return!1;let t=W(n,{allowSelectAll:e.allowSelectAll,hasActive:e.activeId!==null});return t?(n.preventDefault(),t.kind==="extend"?Yt(e,t.direction):t.kind==="range"?e.selectRange():t.kind==="sweep"?e.selectToEdge(t.edge):e.selectAllOrClear(),!0):!1}function jt(e,n){if(n.key!=="ArrowDown"&&n.key!=="ArrowUp")return!1;n.preventDefault();let t=n.key==="ArrowDown"?1:-1;return e.open?(we(e,t),!0):(e.openIntentRef.current=t===1?"first":"last",e.onOpenChange(!0),!0)}function en(e,n){if(n.key==="Home"||n.key==="End"){if(!e.open)return;n.preventDefault(),Qt(e,n.key==="Home"?"first":"last")}else if(n.key==="Enter"){let t=e.activeId?e.getItem(e.activeId):void 0;if(!t)return;n.preventDefault(),e.selectItem(t.value,"keyboard"),e.closeOnSelect&&e.onOpenChange(!1)}else n.key==="Escape"?e.open&&!e.contentRef.current&&(n.preventDefault(),e.onOpenChange(!1)):n.key==="Backspace"&&e.inputValue===""&&e.removeLast()}var ae=({ref:e,...n})=>{let t=C("SelectInput"),r=Xt(e,t.inputRef);return Ae(Ut,{asChild:!0,children:Ae(_t.input,{type:"text",role:"combobox","aria-haspopup":"listbox","aria-expanded":t.open,"aria-controls":t.contentId,"aria-autocomplete":"list","aria-activedescendant":t.activeId??void 0,autoComplete:"off",disabled:t.disabled,readOnly:t.readOnly,"aria-required":t.required||void 0,"aria-invalid":t.invalid?!0:void 0,"aria-readonly":t.readOnly?!0:void 0,"aria-busy":t.loading?!0:void 0,"data-invalid":t.invalid?"":void 0,"data-readonly":t.readOnly?"":void 0,"data-disabled":t.disabled?"":void 0,"data-loading":t.loading?"":void 0,"data-multiple":t.multiple?"":void 0,"data-state":t.open?"open":"closed",...n,...$t("select","input",n.className),ref:r,value:t.inputValue,onChange:z(n.onChange,o=>{t.setInputValue(o.target.value),t.open||t.onOpenChange(!0)}),onClick:z(n.onClick,()=>{t.readOnly||t.open||t.onOpenChange(!0)}),onBlur:z(n.onBlur,()=>{t.open&&t.onOpenChange(!1)}),onKeyDown:z(n.onKeyDown,o=>{t.disabled||Zt(t,o)||jt(t,o)||en(t,o)})})})};ae.displayName="SelectInput";import*as M from"react";import{useComposedRefs as tn}from"../utils/composeRefs.js";import{createSafeContext as nn}from"../utils/createContext.js";import{skdxPart as on}from"../utils/part.js";import{composeEventHandlers as Ne,Primitive as rn}from"../utils/primitive.js";import{useOptionEntry as ln}from"../utils/useOptionCollection.js";import{jsx as Ve}from"react/jsx-runtime";var[an,J]=nn("SelectItem"),ce=({value:e,disabled:n,textValue:t,ref:r,...o})=>{let l=C("SelectItem"),p=M.useId(),S=M.useRef(null),f=tn(r,S),u=l.isSelected(e),b=l.activeId===p,[d,a]=M.useState(void 0),{registerOptionLabel:s}=l,g=M.useCallback(i=>{s(e,t??i),a(i)},[s,e,t]),{visible:y}=ln({id:p,value:e,textValue:t??d,itemRef:S,matchesFilter:l.matchesFilter,registerItem:l.registerItem,unregisterItem:l.unregisterItem}),I=n||l.atMax&&!u,P=l.itemOrder?.get(p),h=()=>{I||(l.selectItem(e,"pointer"),l.closeOnSelect&&(l.onOpenChange(!1),l.focusTrigger()))};return y?Ve(an,{value:e,selected:u,registerText:g,children:Ve(rn.div,{role:"option",id:p,"data-value":e,"aria-selected":u,"data-state":u?"checked":"unchecked","data-highlighted":b?"":void 0,"data-text-value":t,"aria-disabled":I||void 0,"data-disabled":I?"":void 0,...o,...on("select","item",o.className),ref:f,onClick:Ne(o.onClick,h),onPointerEnter:Ne(o.onPointerEnter,()=>{I||l.setActiveId(p)}),style:P!==void 0?{order:P,...o.style}:o.style})}):null};ce.displayName="SelectItem";import{skdxPart as cn}from"../utils/part.js";import{Primitive as sn}from"../utils/primitive.js";import{jsx as dn}from"react/jsx-runtime";var se=({forceMount:e,ref:n,...t})=>{let r=J("SelectItemIndicator");return e||r.selected?dn(sn.span,{"aria-hidden":!0,...t,...cn("select","item-indicator",t.className),ref:n}):null};se.displayName="SelectItemIndicator";import*as X from"react";import{useComposedRefs as un}from"../utils/composeRefs.js";import{skdxPart as mn}from"../utils/part.js";import{Primitive as fn}from"../utils/primitive.js";import{jsx as pn}from"react/jsx-runtime";var ie=({children:e,ref:n,...t})=>{let r=J("SelectItemText"),o=X.useRef(null),l=un(n,o);return X.useLayoutEffect(()=>{r.registerText(o.current?.textContent??"")}),pn(fn.span,{...t,...mn("select","item-text",t.className),ref:l,children:e})};ie.displayName="SelectItemText";import{skdxPart as Sn}from"../utils/part.js";import{Primitive as gn}from"../utils/primitive.js";import{jsx as yn}from"react/jsx-runtime";var de=({ref:e,...n})=>{let t=Ee("SelectLabel");return yn(gn.div,{id:t.labelId??void 0,...n,...Sn("select","label",n.className),ref:e})};de.displayName="SelectLabel";import{Portal as Rn}from"../utils/portal.js";import{jsx as bn}from"react/jsx-runtime";var ue=({forceMount:e,children:n,...t})=>{let r=C("SelectPortal");return e||r.open?bn(Rn,{...t,children:n}):null};ue.displayName="SelectPortal";import{Badge as hn}from"../badge/Badge.js";import{skdxPart as Cn}from"../utils/part.js";import{jsx as In}from"react/jsx-runtime";var me=({value:e,ref:n,...t})=>{let r=C("SelectTag"),o=r.selectedValues.indexOf(e);return In(hn,{index:o,label:e,"data-value":e,"data-skdx-select-tag":"",onDelete:()=>r.deselect(e),...t,...Cn("select","tag",t.className),ref:n})};me.displayName="SelectTag";import{TagGroup as vn}from"../tag-group/TagGroup.js";import{skdxPart as xn}from"../utils/part.js";import{jsx as Pn}from"react/jsx-runtime";var fe=({ref:e,...n})=>{let t=C("SelectTagList");return Pn(vn,{disabled:t.disabled||t.readOnly,...n,...xn("select","tag-list",n.className),ref:e})};fe.displayName="SelectTagList";import{BadgeDelete as On}from"../badge/Badge.js";import{skdxPart as kn}from"../utils/part.js";import{jsx as Tn}from"react/jsx-runtime";var pe=({ref:e,...n})=>Tn(On,{...n,...kn("select","tag-remove",n.className),ref:e});pe.displayName="SelectTagRemove";import*as L from"react";import{appearanceAttrs as En}from"../utils/appearance.js";import{useComposedRefs as An}from"../utils/composeRefs.js";import{skdxPart as Ln}from"../utils/part.js";import{PopperAnchor as wn}from"../utils/popper.js";import{composeEventHandlers as Nn,Primitive as Vn,useComposedEventHandlers as Mn}from"../utils/primitive.js";import{selectClosedAction as Hn,selectKeyPrevented as Me,selectOpenAction as Dn}from"../utils/select-keyboard.js";import{itemText as Kn}from"../utils/typeahead.js";import{useTypeahead as He}from"../utils/useTypeahead.js";import{jsx as De}from"react/jsx-runtime";var Gn=0;function Bn(e){if(!e)return null;let n=e.getRootNode(),r=(e.id?Array.from(n.querySelectorAll("[for]")).find(o=>o.getAttribute("for")===e.id):void 0)??e.closest("label");return r?(r.id||(r.id=`skdx-select-label-${++Gn}`),r.id):null}var Se=({ref:e,shape:n,size:t,...r})=>{let o=C("SelectTrigger"),{openIntentRef:l}=o,[p,S]=L.useState(null),f=L.useCallback(m=>{S(m&&Bn(m))},[]),u=An(e,o.triggerRef,f),b=o.disabled||r.disabled,d=L.useRef(o.collection);L.useInsertionEffect(()=>{d.current=o.collection.filter(m=>!m.disabled)});let a=He(L.useCallback(()=>d.current.map(m=>m.label??m.value),[])),s=L.useRef([]),g=He(L.useCallback(()=>s.current.map(m=>Kn(m)),[])),y=m=>{m&&(o.setActiveId(m.id),m.scrollIntoView?.({block:"nearest"}))},I=m=>{let R=m?.getAttribute("data-value");R!=null&&(o.selectItem(R,"keyboard"),o.closeOnSelect&&o.onOpenChange(!1))},P=m=>{let R=m?.getAttribute("data-value");R!=null&&(o.multiple&&o.isSelected(R)||o.selectItem(R,"keyboard"))},h=(m,R,v)=>{let x=Math.min(m.length-1,Math.max(0,R+v)),A=m[x];if(!A||x===R)return;y(A);let N=A.getAttribute("data-value");N!==null&&o.selectItem(N,"keyboard")},i=(m,R,v)=>{if(!o.multiple)return!1;let x=W(m,{allowSelectAll:o.allowSelectAll,hasActive:o.activeId!==null});return x?(m.preventDefault(),x.kind==="extend"?h(R,v,x.direction):x.kind==="range"?o.selectRange():x.kind==="sweep"?o.selectToEdge(x.edge):o.selectAllOrClear(),!0):!1},E=m=>{let R=o.orderedOptions();s.current=R;let v=R.findIndex(A=>A.id===o.activeId);if(i(m,R,v))return;let x=Dn(m,v,R.length);switch(Me(x)&&m.preventDefault(),x.kind){case"activate":y(R[x.index]);return;case"commit":I(R[v]);return;case"commit-and-close":I(R[v]),o.onOpenChange(!1);return;case"commit-on-exit":P(R[v]),o.onOpenChange(!1);return;case"typeahead":{let A=g(m.key,v);A!==-1&&y(R[A]);return}case"ignore":case"claim":return}},w=r["aria-label"]===void 0&&o.hasValuePart?[p,r["aria-labelledby"],o.valueId].filter(Boolean).join(" "):r["aria-labelledby"];return De(wn,{asChild:!0,children:De(Vn.button,{type:"button",role:"combobox","aria-haspopup":"listbox","aria-expanded":o.open,"aria-controls":o.contentId,"aria-activedescendant":o.activeId??void 0,"aria-required":o.required||void 0,"aria-invalid":o.invalid?!0:void 0,"aria-readonly":o.readOnly?!0:void 0,"data-state":o.open?"open":"closed","data-disabled":b?"":void 0,"data-readonly":o.readOnly?"":void 0,"data-invalid":o.invalid?"":void 0,"data-placeholder":o.selectedValues.length===0?"":void 0,"data-multiple":o.multiple?"":void 0,...r,disabled:b,"aria-labelledby":w,...En({shape:n,size:t},r),...Ln("select","trigger",r.className),ref:u,onClick:Nn(r.onClick,()=>o.onOpenChange(!o.open)),onKeyDown:Mn(r.onKeyDown,m=>{if(o.open){E(m);return}let R=Hn(m,o.multiple);switch(Me(R)&&m.preventDefault(),R.kind){case"open":l.current=R.intent,o.onOpenChange(!0);return;case"open-for-typeahead":o.onOpenChange(!0);return;case"typeahead":{let v=d.current.findIndex(A=>o.isSelected(A.value)),x=a(m.key,v);x!==-1&&o.selectItem(d.current[x].value,"keyboard");return}case"ignore":return}})})})};Se.displayName="SelectTrigger";import*as G from"react";import{skdxPart as Fn}from"../utils/part.js";import{Primitive as qn}from"../utils/primitive.js";import{jsx as Ke}from"react/jsx-runtime";var ge=({placeholder:e,children:n,ref:t,...r})=>{let{selectedValues:o,multiple:l,getOptionLabel:p,valueId:S,setHasValuePart:f}=C("SelectValue");G.useEffect(()=>(f(!0),()=>f(!1)),[f]);let u,b=!1;return!r.asChild&&n!==void 0?u=n:o.length===0?(u=e,b=!0):l?u=o.map(d=>Ke("span",{"data-chip":"","data-value":d,children:p(d)},d)):u=p(o[0]),Ke(qn.span,{id:S,"data-multiple":l?"":void 0,"data-placeholder":b?"":void 0,...r,...Fn("select","value",r.className),ref:t,style:{pointerEvents:"none",...r.style},children:r.asChild&&G.isValidElement(n)?G.cloneElement(n,void 0,u):u})};ge.displayName="SelectValue";import{skdxPart as zn}from"../utils/part.js";import{Primitive as Wn}from"../utils/primitive.js";import{jsx as Jn}from"react/jsx-runtime";var ye=({ref:e,...n})=>Jn(Wn.div,{...n,...zn("select","viewport",n.className),ref:e,style:{overflow:"auto",...n.style}});ye.displayName="SelectViewport";import{Fragment as Un,jsx as T,jsxs as D}from"react/jsx-runtime";var Be=e=>"options"in e;function $n(e){let n=new Map;for(let t of e)for(let r of Be(t)?t.options:[t])n.set(r.value,r);return n}var Ge=()=>T(Xn,{name:"close"}),Fe=({shape:e,size:n,status:t,density:r,matchWidth:o,options:l,renderOption:p,renderValue:S,renderTag:f,placeholder:u,clearable:b,ariaLabel:d,passThrough:a})=>{let s=C("Select"),g=$n(l),y=d??u,I=i=>D(ce,{value:i.value,disabled:i.disabled,textValue:i.label,children:[T(ie,{children:p?p(i,{selected:s.isSelected(i.value)}):i.label??i.value}),T(se,{children:"\u2713"})]},i.value),P;if(S){let i=s.multiple?s.selectedValues.map(E=>g.get(E)??{value:E}):g.get(s.selectedValues[0]??"")??(s.selectedValues[0]?{value:s.selectedValues[0]}:null);P=S(i)}let h=i=>f?f(i):i.label??i.value;return D(Un,{children:[s.multiple?T(fe,{density:r,"aria-label":y?`${y} \u2014 selected`:void 0,children:s.selectedValues.map(i=>D(me,{value:i,shape:e,size:n,status:t,children:[h(g.get(i)??{value:i}),T(pe,{children:T(Ge,{})})]},i))}):null,s.filterable?T(ae,{...a,"data-match-width":void 0,"data-shape":void 0,"data-size":void 0,"data-status":void 0,"data-density":void 0,"aria-label":d,placeholder:u}):D(Se,{...a,"data-match-width":void 0,"data-status":void 0,"data-density":void 0,"aria-label":d,shape:e,size:n,children:[T(ge,{placeholder:u,children:P}),T(le,{})]}),b?T(ee,{"aria-label":"Clear selection",children:T(Ge,{})}):null,D(ue,{children:[T(te,{matchWidth:o,children:D(ye,{children:[T(j,{children:"Select all"}),l.map(i=>Be(i)?D(re,{children:[T(de,{children:i.label}),i.options.map(I)]},i.label):I(i))]})}),T(oe,{children:"No results found"})]})]})};import{jsx as be,jsxs as Po}from"react/jsx-runtime";function uo(e){let n=[];for(let t of e)for(let r of"options"in t?t.options:[t])n.push(r);return n}var ne='[role="option"]:not([data-disabled]):not([data-part="select-all"])';function mo(e){return e===0?"none selected":`${e} selected`}function W(e,{allowSelectAll:n,hasActive:t}){return fo(e,n)??po(e,t)}function fo(e,n){return e.ctrlKey&&e.shiftKey&&(e.key==="Home"||e.key==="End")?{kind:"sweep",edge:e.key==="Home"?"first":"last"}:(e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==="a"&&n?{kind:"select-all"}:null}function po(e,n){return e.shiftKey?e.key===" "?n?{kind:"range"}:null:e.key==="ArrowDown"||e.key==="ArrowUp"?{kind:"extend",direction:e.key==="ArrowDown"?1:-1}:null:null}var[So,C]=_n("Select");function go({filterable:e,filter:n,inputValue:t,contentRef:r}){let[o,l]=c.useState(()=>new Map),p=c.useCallback((a,s)=>{l(g=>{let y=g.get(a);if(y?.value===s.value&&y.text===s.text)return g;let I=new Map(g);return I.set(a,s),I})},[]),S=c.useCallback(a=>{l(s=>{if(!s.has(a))return s;let g=new Map(s);return g.delete(a),g})},[]),f=c.useCallback(a=>o.get(a),[o]),u=c.useCallback(a=>!e||n===void 0||oo(n(a,t)),[e,n,t]),b=c.useMemo(()=>!e||n===void 0?null:ro([...o.keys()],a=>{let s=o.get(a);if(!s)return null;let g=n(s.text,t);return typeof g=="number"?g:null}),[e,n,t,o]),d=c.useCallback(()=>lo(Array.from(r.current?.querySelectorAll(ne)??[]),b),[r,b]);return{itemCount:o.size,itemOrder:b,registerItem:p,unregisterItem:S,getItem:f,matchesFilter:u,orderedOptions:d}}var Re=e=>e.map(n=>n.dataset.value??"");function yo({enabled:e,maxSelected:n,selectedValues:t,activeId:r,orderedOptions:o,commitSweep:l,rangeAnchorRef:p}){let S=c.useCallback(d=>{let a=[...t];for(let s of d)if(!a.includes(s)){if(n!==void 0&&a.length>=n)break;a.push(s)}return a},[n,t]),f=c.useCallback(()=>{if(!e)return;let d=o(),a=d.findIndex(P=>P.id===r);if(a===-1)return;let s=d.findIndex(P=>P.dataset.value===p.current),g=s===-1?a:s,[y,I]=g<=a?[g,a]:[a,g];l(S(Re(d.slice(y,I+1))))},[e,r,o,l,S,p]),u=c.useCallback(d=>{if(!e)return;let a=o(),s=a.findIndex(y=>y.id===r);if(s===-1)return;let g=d==="first"?a.slice(0,s+1):a.slice(s);l(S(Re(g)))},[e,r,o,l,S]),b=c.useCallback(()=>{if(!e)return;let d=Re(o()),a=d.length>0&&d.every(s=>t.includes(s));l(a?t.filter(s=>!d.includes(s)):S(d))},[e,t,o,l,S]);return{selectRange:f,selectToEdge:u,selectAllOrClear:b}}function Ro(e,n,t,r=mo){let o=c.useRef(!0),l=c.useRef(r);c.useInsertionEffect(()=>{l.current=r}),c.useEffect(()=>{if(o.current){o.current=!1;return}!n||t||eo(l.current(e))},[e,n,t])}function bo({open:e,defaultOpen:n=!1,onOpenChange:t,readOnly:r}){let[o=!1,l]=qe({prop:e,defaultProp:n,onChange:t}),p=c.useCallback(S=>{r&&S||l(S)},[r,l]);return[o,p]}function ho({inputValue:e,defaultInputValue:n="",onInputValueChange:t,filterable:r}){let[o="",l]=qe({prop:e,defaultProp:n,onChange:t}),p=c.useCallback(()=>{r&&l("")},[r,l]),S=c.useCallback(()=>{l(n)},[n,l]);return{inputValue:o,setInputValue:l,clearDraft:p,resetDraft:S}}function Co({open:e,filterable:n,contentRef:t,orderedOptions:r}){let[o,l]=c.useState(null),[p,S]=c.useState(e);return e!==p&&(S(e),e||l(null)),c.useLayoutEffect(()=>{if(!n||!t.current)return;let f=r();l(u=>u===null||f.some(b=>b.id===u)?u:f[0]?.id??null)},[n,t,r]),[o,l]}function Io({items:e,options:n}){let[t,r]=c.useState(new Map),o=c.useCallback((f,u)=>{r(b=>{if(b.get(f)===u)return b;let d=new Map(b);return d.set(f,u),d})},[]),l=c.useMemo(()=>e??(n?uo(n):void 0),[e,n]),p=c.useMemo(()=>l?l.map(f=>({...f,label:t.get(f.value)??f.label??f.value})):[...t].map(([f,u])=>({value:f,label:u})),[l,t]),S=c.useCallback(f=>t.get(f)??l?.find(u=>u.value===f)?.label??f,[t,l]);return{collection:p,registerOptionLabel:o,getOptionLabel:S}}function vo({value:e,defaultValue:n,onValueChange:t,multiple:r,deselectable:o=!1,maxSelected:l,closeOnSelect:p=!r,disabled:S,readOnly:f,activeId:u,orderedOptions:b,clearDraft:d,setInputValue:a,setOpen:s}){let g=c.useRef("programmatic"),{selectedValues:y,isSelected:I,selectItem:P,setSelection:h}=io({value:e,defaultValue:n,onValueChange:k=>t?.({...k,reason:g.current}),multiple:r,deselectable:o,label:"Select"}),i=S||f,E=r&&l!==void 0&&y.length>=l,O=c.useCallback((k,V)=>{ao(k,y)||(g.current=V,h(k))},[y,h]),w=c.useRef(null),m=c.useCallback((k,V="programmatic")=>{i||E&&!y.includes(k)||(w.current=k,g.current=V,P(k,V),d())},[i,E,y,P,d]),R=c.useCallback(k=>{O(k,"keyboard"),d(),p&&s(!1)},[O,d,p,s]),v=yo({enabled:r&&!i,maxSelected:l,selectedValues:y,activeId:u,orderedOptions:b,commitSweep:R,rangeAnchorRef:w}),x=c.useCallback(k=>{i||O(y.filter(V=>V!==k),"pointer")},[i,O,y]),A=c.useCallback(()=>{i||O(y.slice(0,-1),"keyboard")},[i,O,y]),N=c.useCallback(()=>{i||(O([],"pointer"),a(""))},[i,O,a]),B=c.useCallback(()=>{n!==void 0&&O(co(n,{multiple:r,label:"Select value"}),"programmatic")},[n,r,O]);return{...v,selectedValues:y,isSelected:I,selectItem:m,deselect:x,removeLast:A,clear:N,resetSelection:B,atMax:E,closeOnSelect:p}}var xo=function({children:n,value:t,defaultValue:r,onValueChange:o,multiple:l=!1,deselectable:p,maxSelected:S,allowSelectAll:f=!0,filterable:u=!1,inputValue:b,defaultInputValue:d,onInputValueChange:a,filter:s,loading:g=!1,clearable:y=!1,getSelectionLabel:I,items:P,options:h,renderOption:i,renderValue:E,renderTag:O,placeholder:w,closeOnSelect:m,open:R,defaultOpen:v,onOpenChange:x,onOpenChangeComplete:A,disabled:N=!1,readOnly:B=!1,required:k=!1,invalid:V=!1,name:he,form:ze,autoComplete:We,shape:Je,size:Xe,status:$e,density:Ue,matchWidth:_e,"aria-label":Qe,ref:Ye,...K}){let U=c.useRef(null),_=c.useRef(null),F=c.useRef(null),Ce=c.useRef(null),[Q,Ie]=bo({open:R,defaultOpen:v,onOpenChange:x,readOnly:B}),{inputValue:ve,setInputValue:xe,clearDraft:Ze,resetDraft:je}=ho({inputValue:b,defaultInputValue:d,onInputValueChange:a,filterable:u}),H=go({filterable:u,filter:s,inputValue:ve,contentRef:F}),{orderedOptions:Y}=H,[Pe,et]=Co({open:Q,filterable:u,contentRef:F,orderedOptions:Y}),{selectedValues:Z,isSelected:tt,selectItem:nt,selectRange:ot,selectToEdge:rt,selectAllOrClear:lt,deselect:at,removeLast:ct,clear:st,resetSelection:it,atMax:dt,closeOnSelect:ut}=vo({value:t,defaultValue:r,onValueChange:o,multiple:l,deselectable:p,maxSelected:S,closeOnSelect:m,disabled:N,readOnly:B,activeId:Pe,orderedOptions:Y,clearDraft:Ze,setInputValue:xe,setOpen:Ie});Ro(Z.length,l,g,I),so(Q,F,A);let Oe=c.useRef(void 0),mt=c.useCallback(()=>{Qn("close-auto-focus",Oe.current)&&(_.current??U.current)?.focus()},[]),ft=c.useRef("selected"),pt=c.useId(),[St,gt]=c.useState(!1),{collection:yt,registerOptionLabel:Rt,getOptionLabel:bt}=Io({items:P,options:h});return c.useImperativeHandle(Ye,()=>Yn(Ce),[]),Zn(u?_:U,()=>{it(),je()}),be(to,{children:Po(So,{triggerRef:U,inputRef:_,focusTrigger:mt,closeAutoFocusRef:Oe,contentRef:F,contentId:c.useId(),valueId:pt,hasValuePart:St,setHasValuePart:gt,activeId:Pe,setActiveId:et,openIntentRef:ft,multiple:l,filterable:u,loading:g,allowSelectAll:f,atMax:dt,inputValue:ve,setInputValue:xe,closeOnSelect:ut,selectedValues:Z,isSelected:tt,selectItem:nt,selectRange:ot,selectToEdge:rt,selectAllOrClear:lt,clear:st,removeLast:ct,deselect:at,open:Q,onOpenChange:Ie,disabled:N,readOnly:B,required:k,invalid:V,name:he,registerOptionLabel:Rt,getOptionLabel:bt,collection:yt,itemCount:H.itemCount,registerItem:H.registerItem,unregisterItem:H.unregisterItem,getItem:H.getItem,matchesFilter:H.matchesFilter,itemOrder:H.itemOrder,orderedOptions:Y,children:[n??be(Fe,{shape:$(Je,K,"data-shape"),size:$(Xe,K,"data-size"),status:$($e,K,"data-status"),density:$(Ue,K,"data-density"),matchWidth:no(_e,K,"data-match-width"),options:h??[],renderOption:i,renderValue:E,renderTag:O,placeholder:w,clearable:y,ariaLabel:Qe,passThrough:K}),be(jn,{name:he,values:Z,required:k,disabled:N,form:ze,autoComplete:We,singleValued:!l,controlRef:Ce})]})})};xo.displayName="Select";import{skdxPart as Oo}from"../utils/part.js";import{Primitive as ko}from"../utils/primitive.js";import{jsx as Eo}from"react/jsx-runtime";var To=({ref:e,...n})=>Eo(ko.div,{"aria-hidden":!0,...n,...Oo("select","separator",n.className),ref:e});To.displayName="SelectSeparator";export{ne as OPTION_SELECTOR,xo as Select,j as SelectAll,ee as SelectClear,te as SelectContent,oe as SelectEmpty,re as SelectGroup,qt as SelectGroupProvider,le as SelectIcon,ae as SelectInput,ce as SelectItem,se as SelectItemIndicator,an as SelectItemProvider,ie as SelectItemText,de as SelectLabel,ue as SelectPortal,So as SelectProvider,To as SelectSeparator,me as SelectTag,fe as SelectTagList,pe as SelectTagRemove,Se as SelectTrigger,ge as SelectValue,ye as SelectViewport,mo as defaultGetSelectionLabel,W as selectSelectionKeyAction,C as useSelectContext,Ee as useSelectGroupContext,J as useSelectItemContext};