import{r as s,j as d}from"./app-Ajql0Lt4.js";import{c as H,a as p,u as V}from"./index-CS1SDu2T.js";import{c as z,u as q,a as J,b as Q}from"./sheet-iBbRuLZ4.js";import{u as W}from"./createLucideIcon-B_iAwCmA.js";import{P as G}from"./index-em-EQZzp.js";var _="rovingFocusGroup.onEntryFocus",X={bubbles:!1,cancelable:!0},I="RovingFocusGroup",[y,N,Z]=z(I),[$,me]=H(I,[Z]),[ee,oe]=$(I),O=s.forwardRef((e,r)=>d.jsx(y.Provider,{scope:e.__scopeRovingFocusGroup,children:d.jsx(y.Slot,{scope:e.__scopeRovingFocusGroup,children:d.jsx(te,{...e,ref:r})})}));O.displayName=I;var te=s.forwardRef((e,r)=>{const{__scopeRovingFocusGroup:c,orientation:o,loop:T=!1,dir:w,currentTabStopId:v,defaultCurrentTabStopId:C,onCurrentTabStopIdChange:S,onEntryFocus:m,preventScrollOnEntryFocus:a=!1,...b}=e,F=s.useRef(null),g=W(r,F),R=J(w),[E,t]=V({prop:v,defaultProp:C??null,onChange:S,caller:I}),[i,x]=s.useState(!1),u=Q(m),l=N(c),h=s.useRef(!1),[k,P]=s.useState(0);return s.useEffect(()=>{const n=F.current;if(n)return n.addEventListener(_,u),()=>n.removeEventListener(_,u)},[u]),d.jsx(ee,{scope:c,orientation:o,dir:R,loop:T,currentTabStopId:E,onItemFocus:s.useCallback(n=>t(n),[t]),onItemShiftTab:s.useCallback(()=>x(!0),[]),onFocusableItemAdd:s.useCallback(()=>P(n=>n+1),[]),onFocusableItemRemove:s.useCallback(()=>P(n=>n-1),[]),children:d.jsx(G.div,{tabIndex:i||k===0?-1:0,"data-orientation":o,...b,ref:g,style:{outline:"none",...e.style},onMouseDown:p(e.onMouseDown,()=>{h.current=!0}),onFocus:p(e.onFocus,n=>{const L=!h.current;if(n.target===n.currentTarget&&L&&!i){const D=new CustomEvent(_,X);if(n.currentTarget.dispatchEvent(D),!D.defaultPrevented){const A=l().filter(f=>f.focusable),U=A.find(f=>f.active),B=A.find(f=>f.id===E),Y=[U,B,...A].filter(Boolean).map(f=>f.ref.current);M(Y,a)}}h.current=!1}),onBlur:p(e.onBlur,()=>x(!1))})})}),K="RovingFocusGroupItem",j=s.forwardRef((e,r)=>{const{__scopeRovingFocusGroup:c,focusable:o=!0,active:T=!1,tabStopId:w,children:v,...C}=e,S=q(),m=w||S,a=oe(K,c),b=a.currentTabStopId===m,F=N(c),{onFocusableItemAdd:g,onFocusableItemRemove:R,currentTabStopId:E}=a;return s.useEffect(()=>{if(o)return g(),()=>R()},[o,g,R]),d.jsx(y.ItemSlot,{scope:c,id:m,focusable:o,active:T,children:d.jsx(G.span,{tabIndex:b?0:-1,"data-orientation":a.orientation,...C,ref:r,onMouseDown:p(e.onMouseDown,t=>{o?a.onItemFocus(m):t.preventDefault()}),onFocus:p(e.onFocus,()=>a.onItemFocus(m)),onKeyDown:p(e.onKeyDown,t=>{if(t.key==="Tab"&&t.shiftKey){a.onItemShiftTab();return}if(t.target!==t.currentTarget)return;const i=se(t,a.orientation,a.dir);if(i!==void 0){if(t.metaKey||t.ctrlKey||t.altKey||t.shiftKey)return;t.preventDefault();let u=F().filter(l=>l.focusable).map(l=>l.ref.current);if(i==="last")u.reverse();else if(i==="prev"||i==="next"){i==="prev"&&u.reverse();const l=u.indexOf(t.currentTarget);u=a.loop?ce(u,l+1):u.slice(l+1)}setTimeout(()=>M(u))}}),children:typeof v=="function"?v({isCurrentTabStop:b,hasTabStop:E!=null}):v})})});j.displayName=K;var re={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function ne(e,r){return r!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function se(e,r,c){const o=ne(e.key,c);if(!(r==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(r==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return re[o]}function M(e,r=!1){const c=document.activeElement;for(const o of e)if(o===c||(o.focus({preventScroll:r}),document.activeElement!==c))return}function ce(e,r){return e.map((c,o)=>e[(r+o)%e.length])}var pe=O,ve=j;export{ve as I,pe as R,me as c};