@caoruhua/open-claude-remote 0.3.6 → 0.3.7

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.
File without changes
@@ -50,7 +50,7 @@ Error generating stack: `+s.message+`
50
50
  To pick up a draggable item, press the space bar.
51
51
  While dragging, use the arrow keys to move the item.
52
52
  Press space again to drop the item in its new position, or press escape to cancel.
53
- `},x0={onDragStart(_){let{active:C}=_;return"Picked up draggable item "+C.id+"."},onDragOver(_){let{active:C,over:D}=_;return D?"Draggable item "+C.id+" was moved over droppable area "+D.id+".":"Draggable item "+C.id+" is no longer over a droppable area."},onDragEnd(_){let{active:C,over:D}=_;return D?"Draggable item "+C.id+" was dropped over droppable area "+D.id:"Draggable item "+C.id+" was dropped."},onDragCancel(_){let{active:C}=_;return"Dragging was cancelled. Draggable item "+C.id+" was dropped."}};function E0(_){let{announcements:C=x0,container:D,hiddenTextDescribedById:A,screenReaderInstructions:H=w0}=_;const{announce:N,announcement:z}=S0(),r=Nn("DndLiveRegion"),[u,d]=q.useState(!1);if(q.useEffect(()=>{d(!0)},[]),y0(q.useMemo(()=>({onDragStart(l){let{active:p}=l;N(C.onDragStart({active:p}))},onDragMove(l){let{active:p,over:b}=l;C.onDragMove&&N(C.onDragMove({active:p,over:b}))},onDragOver(l){let{active:p,over:b}=l;N(C.onDragOver({active:p,over:b}))},onDragEnd(l){let{active:p,over:b}=l;N(C.onDragEnd({active:p,over:b}))},onDragCancel(l){let{active:p,over:b}=l;N(C.onDragCancel({active:p,over:b}))}}),[N,C])),!u)return null;const g=xt.createElement(xt.Fragment,null,xt.createElement(m0,{id:A,value:H.draggable}),xt.createElement(b0,{id:r,announcement:z}));return D?Rn.createPortal(g,D):g}var bt;(function(_){_.DragStart="dragStart",_.DragMove="dragMove",_.DragEnd="dragEnd",_.DragCancel="dragCancel",_.DragOver="dragOver",_.RegisterDroppable="registerDroppable",_.SetDroppableDisabled="setDroppableDisabled",_.UnregisterDroppable="unregisterDroppable"})(bt||(bt={}));function no(){}function o_(_,C){return q.useMemo(()=>({sensor:_,options:C??{}}),[_,C])}function R0(){for(var _=arguments.length,C=new Array(_),D=0;D<_;D++)C[D]=arguments[D];return q.useMemo(()=>[...C].filter(A=>A!=null),[...C])}const xi=Object.freeze({x:0,y:0});function Q_(_,C){return Math.sqrt(Math.pow(_.x-C.x,2)+Math.pow(_.y-C.y,2))}function J_(_,C){let{data:{value:D}}=_,{data:{value:A}}=C;return D-A}function A0(_,C){let{data:{value:D}}=_,{data:{value:A}}=C;return A-D}function l_(_){let{left:C,top:D,height:A,width:H}=_;return[{x:C,y:D},{x:C+H,y:D},{x:C,y:D+A},{x:C+H,y:D+A}]}function eg(_,C){if(!_||_.length===0)return null;const[D]=_;return D[C]}function c_(_,C,D){return C===void 0&&(C=_.left),D===void 0&&(D=_.top),{x:C+_.width*.5,y:D+_.height*.5}}const tg=_=>{let{collisionRect:C,droppableRects:D,droppableContainers:A}=_;const H=c_(C,C.left,C.top),N=[];for(const z of A){const{id:r}=z,u=D.get(r);if(u){const d=Q_(c_(u),H);N.push({id:r,data:{droppableContainer:z,value:d}})}}return N.sort(J_)},D0=_=>{let{collisionRect:C,droppableRects:D,droppableContainers:A}=_;const H=l_(C),N=[];for(const z of A){const{id:r}=z,u=D.get(r);if(u){const d=l_(u),g=H.reduce((p,b,w)=>p+Q_(d[w],b),0),l=Number((g/4).toFixed(4));N.push({id:r,data:{droppableContainer:z,value:l}})}}return N.sort(J_)};function L0(_,C){const D=Math.max(C.top,_.top),A=Math.max(C.left,_.left),H=Math.min(C.left+C.width,_.left+_.width),N=Math.min(C.top+C.height,_.top+_.height),z=H-A,r=N-D;if(A<H&&D<N){const u=C.width*C.height,d=_.width*_.height,g=z*r,l=g/(u+d-g);return Number(l.toFixed(4))}return 0}const T0=_=>{let{collisionRect:C,droppableRects:D,droppableContainers:A}=_;const H=[];for(const N of A){const{id:z}=N,r=D.get(z);if(r){const u=L0(r,C);u>0&&H.push({id:z,data:{droppableContainer:N,value:u}})}}return H.sort(A0)};function M0(_,C,D){return{..._,scaleX:C&&D?C.width/D.width:1,scaleY:C&&D?C.height/D.height:1}}function ig(_,C){return _&&C?{x:_.left-C.left,y:_.top-C.top}:xi}function k0(_){return function(D){for(var A=arguments.length,H=new Array(A>1?A-1:0),N=1;N<A;N++)H[N-1]=arguments[N];return H.reduce((z,r)=>({...z,top:z.top+_*r.y,bottom:z.bottom+_*r.y,left:z.left+_*r.x,right:z.right+_*r.x}),{...D})}}const O0=k0(1);function B0(_){if(_.startsWith("matrix3d(")){const C=_.slice(9,-1).split(/, /);return{x:+C[12],y:+C[13],scaleX:+C[0],scaleY:+C[5]}}else if(_.startsWith("matrix(")){const C=_.slice(7,-1).split(/, /);return{x:+C[4],y:+C[5],scaleX:+C[0],scaleY:+C[3]}}return null}function H0(_,C,D){const A=B0(C);if(!A)return _;const{scaleX:H,scaleY:N,x:z,y:r}=A,u=_.left-z-(1-H)*parseFloat(D),d=_.top-r-(1-N)*parseFloat(D.slice(D.indexOf(" ")+1)),g=H?_.width/H:_.width,l=N?_.height/N:_.height;return{width:g,height:l,top:d,right:u+g,bottom:d+l,left:u}}const z0={ignoreTransform:!1};function kr(_,C){C===void 0&&(C=z0);let D=_.getBoundingClientRect();if(C.ignoreTransform){const{transform:d,transformOrigin:g}=Vt(_).getComputedStyle(_);d&&(D=H0(D,d,g))}const{top:A,left:H,width:N,height:z,bottom:r,right:u}=D;return{top:A,left:H,width:N,height:z,bottom:r,right:u}}function u_(_){return kr(_,{ignoreTransform:!0})}function I0(_){const C=_.innerWidth,D=_.innerHeight;return{top:0,left:0,right:C,bottom:D,width:C,height:D}}function N0(_,C){return C===void 0&&(C=Vt(_).getComputedStyle(_)),C.position==="fixed"}function U0(_,C){C===void 0&&(C=Vt(_).getComputedStyle(_));const D=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(H=>{const N=C[H];return typeof N=="string"?D.test(N):!1})}function co(_,C){const D=[];function A(H){if(C!=null&&D.length>=C||!H)return D;if(Xc(H)&&H.scrollingElement!=null&&!D.includes(H.scrollingElement))return D.push(H.scrollingElement),D;if(!zn(H)||X_(H)||D.includes(H))return D;const N=Vt(_).getComputedStyle(H);return H!==_&&U0(H,N)&&D.push(H),N0(H,N)?D:A(H.parentNode)}return _?A(_):D}function sg(_){const[C]=co(_,1);return C??null}function Lc(_){return!lo||!_?null:Tr(_)?_:Vc(_)?Xc(_)||_===Mr(_).scrollingElement?window:zn(_)?_:null:null}function rg(_){return Tr(_)?_.scrollX:_.scrollLeft}function ng(_){return Tr(_)?_.scrollY:_.scrollTop}function Fc(_){return{x:rg(_),y:ng(_)}}var wt;(function(_){_[_.Forward=1]="Forward",_[_.Backward=-1]="Backward"})(wt||(wt={}));function ag(_){return!lo||!_?!1:_===document.scrollingElement}function og(_){const C={x:0,y:0},D=ag(_)?{height:window.innerHeight,width:window.innerWidth}:{height:_.clientHeight,width:_.clientWidth},A={x:_.scrollWidth-D.width,y:_.scrollHeight-D.height},H=_.scrollTop<=C.y,N=_.scrollLeft<=C.x,z=_.scrollTop>=A.y,r=_.scrollLeft>=A.x;return{isTop:H,isLeft:N,isBottom:z,isRight:r,maxScroll:A,minScroll:C}}const j0={x:.2,y:.2};function P0(_,C,D,A,H){let{top:N,left:z,right:r,bottom:u}=D;A===void 0&&(A=10),H===void 0&&(H=j0);const{isTop:d,isBottom:g,isLeft:l,isRight:p}=og(_),b={x:0,y:0},w={x:0,y:0},f={height:C.height*H.y,width:C.width*H.x};return!d&&N<=C.top+f.height?(b.y=wt.Backward,w.y=A*Math.abs((C.top+f.height-N)/f.height)):!g&&u>=C.bottom-f.height&&(b.y=wt.Forward,w.y=A*Math.abs((C.bottom-f.height-u)/f.height)),!p&&r>=C.right-f.width?(b.x=wt.Forward,w.x=A*Math.abs((C.right-f.width-r)/f.width)):!l&&z<=C.left+f.width&&(b.x=wt.Backward,w.x=A*Math.abs((C.left+f.width-z)/f.width)),{direction:b,speed:w}}function F0(_){if(_===document.scrollingElement){const{innerWidth:N,innerHeight:z}=window;return{top:0,left:0,right:N,bottom:z,width:N,height:z}}const{top:C,left:D,right:A,bottom:H}=_.getBoundingClientRect();return{top:C,left:D,right:A,bottom:H,width:_.clientWidth,height:_.clientHeight}}function lg(_){return _.reduce((C,D)=>Dr(C,Fc(D)),xi)}function q0(_){return _.reduce((C,D)=>C+rg(D),0)}function W0(_){return _.reduce((C,D)=>C+ng(D),0)}function $0(_,C){if(C===void 0&&(C=kr),!_)return;const{top:D,left:A,bottom:H,right:N}=C(_);sg(_)&&(H<=0||N<=0||D>=window.innerHeight||A>=window.innerWidth)&&_.scrollIntoView({block:"center",inline:"center"})}const G0=[["x",["left","right"],q0],["y",["top","bottom"],W0]];class Qc{constructor(C,D){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const A=co(D),H=lg(A);this.rect={...C},this.width=C.width,this.height=C.height;for(const[N,z,r]of G0)for(const u of z)Object.defineProperty(this,u,{get:()=>{const d=r(A),g=H[N]-d;return this.rect[u]+g},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Dn{constructor(C){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(D=>{var A;return(A=this.target)==null?void 0:A.removeEventListener(...D)})},this.target=C}add(C,D,A){var H;(H=this.target)==null||H.addEventListener(C,D,A),this.listeners.push([C,D,A])}}function Y0(_){const{EventTarget:C}=Vt(_);return _ instanceof C?_:Mr(_)}function Tc(_,C){const D=Math.abs(_.x),A=Math.abs(_.y);return typeof C=="number"?Math.sqrt(D**2+A**2)>C:"x"in C&&"y"in C?D>C.x&&A>C.y:"x"in C?D>C.x:"y"in C?A>C.y:!1}var mi;(function(_){_.Click="click",_.DragStart="dragstart",_.Keydown="keydown",_.ContextMenu="contextmenu",_.Resize="resize",_.SelectionChange="selectionchange",_.VisibilityChange="visibilitychange"})(mi||(mi={}));function h_(_){_.preventDefault()}function V0(_){_.stopPropagation()}var Ne;(function(_){_.Space="Space",_.Down="ArrowDown",_.Right="ArrowRight",_.Left="ArrowLeft",_.Up="ArrowUp",_.Esc="Escape",_.Enter="Enter",_.Tab="Tab"})(Ne||(Ne={}));const cg={start:[Ne.Space,Ne.Enter],cancel:[Ne.Esc],end:[Ne.Space,Ne.Enter,Ne.Tab]},X0=(_,C)=>{let{currentCoordinates:D}=C;switch(_.code){case Ne.Right:return{...D,x:D.x+25};case Ne.Left:return{...D,x:D.x-25};case Ne.Down:return{...D,y:D.y+25};case Ne.Up:return{...D,y:D.y-25}}};class Jc{constructor(C){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=C;const{event:{target:D}}=C;this.props=C,this.listeners=new Dn(Mr(D)),this.windowListeners=new Dn(Vt(D)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(mi.Resize,this.handleCancel),this.windowListeners.add(mi.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(mi.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:C,onStart:D}=this.props,A=C.node.current;A&&$0(A),D(xi)}handleKeyDown(C){if(Zc(C)){const{active:D,context:A,options:H}=this.props,{keyboardCodes:N=cg,coordinateGetter:z=X0,scrollBehavior:r="smooth"}=H,{code:u}=C;if(N.end.includes(u)){this.handleEnd(C);return}if(N.cancel.includes(u)){this.handleCancel(C);return}const{collisionRect:d}=A.current,g=d?{x:d.left,y:d.top}:xi;this.referenceCoordinates||(this.referenceCoordinates=g);const l=z(C,{active:D,context:A.current,currentCoordinates:g});if(l){const p=On(l,g),b={x:0,y:0},{scrollableAncestors:w}=A.current;for(const f of w){const n=C.code,{isTop:a,isRight:o,isLeft:c,isBottom:S,maxScroll:x,minScroll:m}=og(f),E=F0(f),y={x:Math.min(n===Ne.Right?E.right-E.width/2:E.right,Math.max(n===Ne.Right?E.left:E.left+E.width/2,l.x)),y:Math.min(n===Ne.Down?E.bottom-E.height/2:E.bottom,Math.max(n===Ne.Down?E.top:E.top+E.height/2,l.y))},R=n===Ne.Right&&!o||n===Ne.Left&&!c,T=n===Ne.Down&&!S||n===Ne.Up&&!a;if(R&&y.x!==l.x){const I=f.scrollLeft+p.x,B=n===Ne.Right&&I<=x.x||n===Ne.Left&&I>=m.x;if(B&&!p.y){f.scrollTo({left:I,behavior:r});return}B?b.x=f.scrollLeft-I:b.x=n===Ne.Right?f.scrollLeft-x.x:f.scrollLeft-m.x,b.x&&f.scrollBy({left:-b.x,behavior:r});break}else if(T&&y.y!==l.y){const I=f.scrollTop+p.y,B=n===Ne.Down&&I<=x.y||n===Ne.Up&&I>=m.y;if(B&&!p.x){f.scrollTo({top:I,behavior:r});return}B?b.y=f.scrollTop-I:b.y=n===Ne.Down?f.scrollTop-x.y:f.scrollTop-m.y,b.y&&f.scrollBy({top:-b.y,behavior:r});break}}this.handleMove(C,Dr(On(l,this.referenceCoordinates),b))}}}handleMove(C,D){const{onMove:A}=this.props;C.preventDefault(),A(D)}handleEnd(C){const{onEnd:D}=this.props;C.preventDefault(),this.detach(),D()}handleCancel(C){const{onCancel:D}=this.props;C.preventDefault(),this.detach(),D()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Jc.activators=[{eventName:"onKeyDown",handler:(_,C,D)=>{let{keyboardCodes:A=cg,onActivation:H}=C,{active:N}=D;const{code:z}=_.nativeEvent;if(A.start.includes(z)){const r=N.activatorNode.current;return r&&_.target!==r?!1:(_.preventDefault(),H==null||H({event:_.nativeEvent}),!0)}return!1}}];function d_(_){return!!(_&&"distance"in _)}function f_(_){return!!(_&&"delay"in _)}class eu{constructor(C,D,A){var H;A===void 0&&(A=Y0(C.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=C,this.events=D;const{event:N}=C,{target:z}=N;this.props=C,this.events=D,this.document=Mr(z),this.documentListeners=new Dn(this.document),this.listeners=new Dn(A),this.windowListeners=new Dn(Vt(z)),this.initialCoordinates=(H=Pc(N))!=null?H:xi,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:C,props:{options:{activationConstraint:D,bypassActivationConstraint:A}}}=this;if(this.listeners.add(C.move.name,this.handleMove,{passive:!1}),this.listeners.add(C.end.name,this.handleEnd),C.cancel&&this.listeners.add(C.cancel.name,this.handleCancel),this.windowListeners.add(mi.Resize,this.handleCancel),this.windowListeners.add(mi.DragStart,h_),this.windowListeners.add(mi.VisibilityChange,this.handleCancel),this.windowListeners.add(mi.ContextMenu,h_),this.documentListeners.add(mi.Keydown,this.handleKeydown),D){if(A!=null&&A({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(f_(D)){this.timeoutId=setTimeout(this.handleStart,D.delay),this.handlePending(D);return}if(d_(D)){this.handlePending(D);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(C,D){const{active:A,onPending:H}=this.props;H(A,C,this.initialCoordinates,D)}handleStart(){const{initialCoordinates:C}=this,{onStart:D}=this.props;C&&(this.activated=!0,this.documentListeners.add(mi.Click,V0,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(mi.SelectionChange,this.removeTextSelection),D(C))}handleMove(C){var D;const{activated:A,initialCoordinates:H,props:N}=this,{onMove:z,options:{activationConstraint:r}}=N;if(!H)return;const u=(D=Pc(C))!=null?D:xi,d=On(H,u);if(!A&&r){if(d_(r)){if(r.tolerance!=null&&Tc(d,r.tolerance))return this.handleCancel();if(Tc(d,r.distance))return this.handleStart()}if(f_(r)&&Tc(d,r.tolerance))return this.handleCancel();this.handlePending(r,d);return}C.cancelable&&C.preventDefault(),z(u)}handleEnd(){const{onAbort:C,onEnd:D}=this.props;this.detach(),this.activated||C(this.props.active),D()}handleCancel(){const{onAbort:C,onCancel:D}=this.props;this.detach(),this.activated||C(this.props.active),D()}handleKeydown(C){C.code===Ne.Esc&&this.handleCancel()}removeTextSelection(){var C;(C=this.document.getSelection())==null||C.removeAllRanges()}}const K0={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class tu extends eu{constructor(C){const{event:D}=C,A=Mr(D.target);super(C,K0,A)}}tu.activators=[{eventName:"onPointerDown",handler:(_,C)=>{let{nativeEvent:D}=_,{onActivation:A}=C;return!D.isPrimary||D.button!==0?!1:(A==null||A({event:D}),!0)}}];const Z0={move:{name:"mousemove"},end:{name:"mouseup"}};var qc;(function(_){_[_.RightClick=2]="RightClick"})(qc||(qc={}));class Q0 extends eu{constructor(C){super(C,Z0,Mr(C.event.target))}}Q0.activators=[{eventName:"onMouseDown",handler:(_,C)=>{let{nativeEvent:D}=_,{onActivation:A}=C;return D.button===qc.RightClick?!1:(A==null||A({event:D}),!0)}}];const Mc={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class J0 extends eu{constructor(C){super(C,Mc)}static setup(){return window.addEventListener(Mc.move.name,C,{capture:!1,passive:!1}),function(){window.removeEventListener(Mc.move.name,C)};function C(){}}}J0.activators=[{eventName:"onTouchStart",handler:(_,C)=>{let{nativeEvent:D}=_,{onActivation:A}=C;const{touches:H}=D;return H.length>1?!1:(A==null||A({event:D}),!0)}}];var Ln;(function(_){_[_.Pointer=0]="Pointer",_[_.DraggableRect=1]="DraggableRect"})(Ln||(Ln={}));var ao;(function(_){_[_.TreeOrder=0]="TreeOrder",_[_.ReversedTreeOrder=1]="ReversedTreeOrder"})(ao||(ao={}));function e1(_){let{acceleration:C,activator:D=Ln.Pointer,canScroll:A,draggingRect:H,enabled:N,interval:z=5,order:r=ao.TreeOrder,pointerCoordinates:u,scrollableAncestors:d,scrollableAncestorRects:g,delta:l,threshold:p}=_;const b=i1({delta:l,disabled:!N}),[w,f]=f0(),n=q.useRef({x:0,y:0}),a=q.useRef({x:0,y:0}),o=q.useMemo(()=>{switch(D){case Ln.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case Ln.DraggableRect:return H}},[D,H,u]),c=q.useRef(null),S=q.useCallback(()=>{const m=c.current;if(!m)return;const E=n.current.x*a.current.x,y=n.current.y*a.current.y;m.scrollBy(E,y)},[]),x=q.useMemo(()=>r===ao.TreeOrder?[...d].reverse():d,[r,d]);q.useEffect(()=>{if(!N||!d.length||!o){f();return}for(const m of x){if((A==null?void 0:A(m))===!1)continue;const E=d.indexOf(m),y=g[E];if(!y)continue;const{direction:R,speed:T}=P0(m,y,o,C,p);for(const I of["x","y"])b[I][R[I]]||(T[I]=0,R[I]=0);if(T.x>0||T.y>0){f(),c.current=m,w(S,z),n.current=T,a.current=R;return}}n.current={x:0,y:0},a.current={x:0,y:0},f()},[C,S,A,f,N,z,JSON.stringify(o),JSON.stringify(b),w,d,x,g,JSON.stringify(p)])}const t1={x:{[wt.Backward]:!1,[wt.Forward]:!1},y:{[wt.Backward]:!1,[wt.Forward]:!1}};function i1(_){let{delta:C,disabled:D}=_;const A=jc(C);return In(H=>{if(D||!A||!H)return t1;const N={x:Math.sign(C.x-A.x),y:Math.sign(C.y-A.y)};return{x:{[wt.Backward]:H.x[wt.Backward]||N.x===-1,[wt.Forward]:H.x[wt.Forward]||N.x===1},y:{[wt.Backward]:H.y[wt.Backward]||N.y===-1,[wt.Forward]:H.y[wt.Forward]||N.y===1}}},[D,C,A])}function s1(_,C){const D=C!=null?_.get(C):void 0,A=D?D.node.current:null;return In(H=>{var N;return C==null?null:(N=A??H)!=null?N:null},[A,C])}function r1(_,C){return q.useMemo(()=>_.reduce((D,A)=>{const{sensor:H}=A,N=H.activators.map(z=>({eventName:z.eventName,handler:C(z.handler,A)}));return[...D,...N]},[]),[_,C])}var Hn;(function(_){_[_.Always=0]="Always",_[_.BeforeDragging=1]="BeforeDragging",_[_.WhileDragging=2]="WhileDragging"})(Hn||(Hn={}));var Wc;(function(_){_.Optimized="optimized"})(Wc||(Wc={}));const __=new Map;function n1(_,C){let{dragging:D,dependencies:A,config:H}=C;const[N,z]=q.useState(null),{frequency:r,measure:u,strategy:d}=H,g=q.useRef(_),l=n(),p=kn(l),b=q.useCallback(function(a){a===void 0&&(a=[]),!p.current&&z(o=>o===null?a:o.concat(a.filter(c=>!o.includes(c))))},[p]),w=q.useRef(null),f=In(a=>{if(l&&!D)return __;if(!a||a===__||g.current!==_||N!=null){const o=new Map;for(let c of _){if(!c)continue;if(N&&N.length>0&&!N.includes(c.id)&&c.rect.current){o.set(c.id,c.rect.current);continue}const S=c.node.current,x=S?new Qc(u(S),S):null;c.rect.current=x,x&&o.set(c.id,x)}return o}return a},[_,N,D,l,u]);return q.useEffect(()=>{g.current=_},[_]),q.useEffect(()=>{l||b()},[D,l]),q.useEffect(()=>{N&&N.length>0&&z(null)},[JSON.stringify(N)]),q.useEffect(()=>{l||typeof r!="number"||w.current!==null||(w.current=setTimeout(()=>{b(),w.current=null},r))},[r,l,b,...A]),{droppableRects:f,measureDroppableContainers:b,measuringScheduled:N!=null};function n(){switch(d){case Hn.Always:return!1;case Hn.BeforeDragging:return D;default:return!D}}}function ug(_,C){return In(D=>_?D||(typeof C=="function"?C(_):_):null,[C,_])}function a1(_,C){return ug(_,C)}function o1(_){let{callback:C,disabled:D}=_;const A=Kc(C),H=q.useMemo(()=>{if(D||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:N}=window;return new N(A)},[A,D]);return q.useEffect(()=>()=>H==null?void 0:H.disconnect(),[H]),H}function uo(_){let{callback:C,disabled:D}=_;const A=Kc(C),H=q.useMemo(()=>{if(D||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:N}=window;return new N(A)},[D]);return q.useEffect(()=>()=>H==null?void 0:H.disconnect(),[H]),H}function l1(_){return new Qc(kr(_),_)}function g_(_,C,D){C===void 0&&(C=l1);const[A,H]=q.useState(null);function N(){H(u=>{if(!_)return null;if(_.isConnected===!1){var d;return(d=u??D)!=null?d:null}const g=C(_);return JSON.stringify(u)===JSON.stringify(g)?u:g})}const z=o1({callback(u){if(_)for(const d of u){const{type:g,target:l}=d;if(g==="childList"&&l instanceof HTMLElement&&l.contains(_)){N();break}}}}),r=uo({callback:N});return Ti(()=>{N(),_?(r==null||r.observe(_),z==null||z.observe(document.body,{childList:!0,subtree:!0})):(r==null||r.disconnect(),z==null||z.disconnect())},[_]),A}function c1(_){const C=ug(_);return ig(_,C)}const v_=[];function u1(_){const C=q.useRef(_),D=In(A=>_?A&&A!==v_&&_&&C.current&&_.parentNode===C.current.parentNode?A:co(_):v_,[_]);return q.useEffect(()=>{C.current=_},[_]),D}function h1(_){const[C,D]=q.useState(null),A=q.useRef(_),H=q.useCallback(N=>{const z=Lc(N.target);z&&D(r=>r?(r.set(z,Fc(z)),new Map(r)):null)},[]);return q.useEffect(()=>{const N=A.current;if(_!==N){z(N);const r=_.map(u=>{const d=Lc(u);return d?(d.addEventListener("scroll",H,{passive:!0}),[d,Fc(d)]):null}).filter(u=>u!=null);D(r.length?new Map(r):null),A.current=_}return()=>{z(_),z(N)};function z(r){r.forEach(u=>{const d=Lc(u);d==null||d.removeEventListener("scroll",H)})}},[H,_]),q.useMemo(()=>_.length?C?Array.from(C.values()).reduce((N,z)=>Dr(N,z),xi):lg(_):xi,[_,C])}function p_(_,C){C===void 0&&(C=[]);const D=q.useRef(null);return q.useEffect(()=>{D.current=null},C),q.useEffect(()=>{const A=_!==xi;A&&!D.current&&(D.current=_),!A&&D.current&&(D.current=null)},[_]),D.current?On(_,D.current):xi}function d1(_){q.useEffect(()=>{if(!lo)return;const C=_.map(D=>{let{sensor:A}=D;return A.setup==null?void 0:A.setup()});return()=>{for(const D of C)D==null||D()}},_.map(C=>{let{sensor:D}=C;return D}))}function f1(_,C){return q.useMemo(()=>_.reduce((D,A)=>{let{eventName:H,handler:N}=A;return D[H]=z=>{N(z,C)},D},{}),[_,C])}function hg(_){return q.useMemo(()=>_?I0(_):null,[_])}const m_=[];function _1(_,C){C===void 0&&(C=kr);const[D]=_,A=hg(D?Vt(D):null),[H,N]=q.useState(m_);function z(){N(()=>_.length?_.map(u=>ag(u)?A:new Qc(C(u),u)):m_)}const r=uo({callback:z});return Ti(()=>{r==null||r.disconnect(),z(),_.forEach(u=>r==null?void 0:r.observe(u))},[_]),H}function g1(_){if(!_)return null;if(_.children.length>1)return _;const C=_.children[0];return zn(C)?C:_}function v1(_){let{measure:C}=_;const[D,A]=q.useState(null),H=q.useCallback(d=>{for(const{target:g}of d)if(zn(g)){A(l=>{const p=C(g);return l?{...l,width:p.width,height:p.height}:p});break}},[C]),N=uo({callback:H}),z=q.useCallback(d=>{const g=g1(d);N==null||N.disconnect(),g&&(N==null||N.observe(g)),A(g?C(g):null)},[C,N]),[r,u]=ro(z);return q.useMemo(()=>({nodeRef:r,rect:D,setRef:u}),[D,r,u])}const p1=[{sensor:tu,options:{}},{sensor:Jc,options:{}}],m1={current:{}},io={draggable:{measure:u_},droppable:{measure:u_,strategy:Hn.WhileDragging,frequency:Wc.Optimized},dragOverlay:{measure:kr}};class Tn extends Map{get(C){var D;return C!=null&&(D=super.get(C))!=null?D:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(C=>{let{disabled:D}=C;return!D})}getNodeFor(C){var D,A;return(D=(A=this.get(C))==null?void 0:A.node.current)!=null?D:void 0}}const b1={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Tn,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:no},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:io,measureDroppableContainers:no,windowRect:null,measuringScheduled:!1},S1={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:no,draggableNodes:new Map,over:null,measureDroppableContainers:no},ho=q.createContext(S1),dg=q.createContext(b1);function y1(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Tn}}}function C1(_,C){switch(C.type){case bt.DragStart:return{..._,draggable:{..._.draggable,initialCoordinates:C.initialCoordinates,active:C.active}};case bt.DragMove:return _.draggable.active==null?_:{..._,draggable:{..._.draggable,translate:{x:C.coordinates.x-_.draggable.initialCoordinates.x,y:C.coordinates.y-_.draggable.initialCoordinates.y}}};case bt.DragEnd:case bt.DragCancel:return{..._,draggable:{..._.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case bt.RegisterDroppable:{const{element:D}=C,{id:A}=D,H=new Tn(_.droppable.containers);return H.set(A,D),{..._,droppable:{..._.droppable,containers:H}}}case bt.SetDroppableDisabled:{const{id:D,key:A,disabled:H}=C,N=_.droppable.containers.get(D);if(!N||A!==N.key)return _;const z=new Tn(_.droppable.containers);return z.set(D,{...N,disabled:H}),{..._,droppable:{..._.droppable,containers:z}}}case bt.UnregisterDroppable:{const{id:D,key:A}=C,H=_.droppable.containers.get(D);if(!H||A!==H.key)return _;const N=new Tn(_.droppable.containers);return N.delete(D),{..._,droppable:{..._.droppable,containers:N}}}default:return _}}function w1(_){let{disabled:C}=_;const{active:D,activatorEvent:A,draggableNodes:H}=q.useContext(ho),N=jc(A),z=jc(D==null?void 0:D.id);return q.useEffect(()=>{if(!C&&!A&&N&&z!=null){if(!Zc(N)||document.activeElement===N.target)return;const r=H.get(z);if(!r)return;const{activatorNode:u,node:d}=r;if(!u.current&&!d.current)return;requestAnimationFrame(()=>{for(const g of[u.current,d.current]){if(!g)continue;const l=v0(g);if(l){l.focus();break}}})}},[A,C,H,z,N]),null}function x1(_,C){let{transform:D,...A}=C;return _!=null&&_.length?_.reduce((H,N)=>N({transform:H,...A}),D):D}function E1(_){return q.useMemo(()=>({draggable:{...io.draggable,..._==null?void 0:_.draggable},droppable:{...io.droppable,..._==null?void 0:_.droppable},dragOverlay:{...io.dragOverlay,..._==null?void 0:_.dragOverlay}}),[_==null?void 0:_.draggable,_==null?void 0:_.droppable,_==null?void 0:_.dragOverlay])}function R1(_){let{activeNode:C,measure:D,initialRect:A,config:H=!0}=_;const N=q.useRef(!1),{x:z,y:r}=typeof H=="boolean"?{x:H,y:H}:H;Ti(()=>{if(!z&&!r||!C){N.current=!1;return}if(N.current||!A)return;const d=C==null?void 0:C.node.current;if(!d||d.isConnected===!1)return;const g=D(d),l=ig(g,A);if(z||(l.x=0),r||(l.y=0),N.current=!0,Math.abs(l.x)>0||Math.abs(l.y)>0){const p=sg(d);p&&p.scrollBy({top:l.y,left:l.x})}},[C,z,r,A,D])}const fg=q.createContext({...xi,scaleX:1,scaleY:1});var ws;(function(_){_[_.Uninitialized=0]="Uninitialized",_[_.Initializing=1]="Initializing",_[_.Initialized=2]="Initialized"})(ws||(ws={}));const _g=q.memo(function(C){var D,A,H,N;let{id:z,accessibility:r,autoScroll:u=!0,children:d,sensors:g=p1,collisionDetection:l=T0,measuring:p,modifiers:b,...w}=C;const f=q.useReducer(C1,void 0,y1),[n,a]=f,[o,c]=C0(),[S,x]=q.useState(ws.Uninitialized),m=S===ws.Initialized,{draggable:{active:E,nodes:y,translate:R},droppable:{containers:T}}=n,I=E!=null?y.get(E):null,B=q.useRef({initial:null,translated:null}),M=q.useMemo(()=>{var it;return E!=null?{id:E,data:(it=I==null?void 0:I.data)!=null?it:m1,rect:B}:null},[E,I]),$=q.useRef(null),[Y,G]=q.useState(null),[W,X]=q.useState(null),O=kn(w,Object.values(w)),F=Nn("DndDescribedBy",z),k=q.useMemo(()=>T.getEnabled(),[T]),P=E1(p),{droppableRects:Q,measureDroppableContainers:ee,measuringScheduled:he}=n1(k,{dragging:m,dependencies:[R.x,R.y],config:P.droppable}),oe=s1(y,E),K=q.useMemo(()=>W?Pc(W):null,[W]),U=Mi(),ne=a1(oe,P.draggable.measure);R1({activeNode:E!=null?y.get(E):null,config:U.layoutShiftCompensation,initialRect:ne,measure:P.draggable.measure});const te=g_(oe,P.draggable.measure,ne),_e=g_(oe?oe.parentElement:null),fe=q.useRef({activatorEvent:null,active:null,activeNode:oe,collisionRect:null,collisions:null,droppableRects:Q,draggableNodes:y,draggingNode:null,draggingNodeRect:null,droppableContainers:T,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),be=T.getNodeFor((D=fe.current.over)==null?void 0:D.id),ge=v1({measure:P.dragOverlay.measure}),Te=(A=ge.nodeRef.current)!=null?A:oe,Pe=m?(H=ge.rect)!=null?H:te:null,Se=!!(ge.nodeRef.current&&ge.rect),Mt=c1(Se?null:te),It=hg(Te?Vt(Te):null),xe=u1(m?be??oe:null),Ee=_1(xe),Ae=x1(b,{transform:{x:R.x-Mt.x,y:R.y-Mt.y,scaleX:1,scaleY:1},activatorEvent:W,active:M,activeNodeRect:te,containerNodeRect:_e,draggingNodeRect:Pe,over:fe.current.over,overlayNodeRect:ge.rect,scrollableAncestors:xe,scrollableAncestorRects:Ee,windowRect:It}),ve=K?Dr(K,R):null,we=h1(xe),Ze=p_(we),qe=p_(we,[te]),gt=Dr(Ae,Ze),Qe=Pe?O0(Pe,Ae):null,ct=M&&Qe?l({active:M,collisionRect:Qe,droppableRects:Q,droppableContainers:k,pointerCoordinates:ve}):null,Je=eg(ct,"id"),[ke,De]=q.useState(null),Xt=Se?Ae:Dr(Ae,qe),ut=M0(Xt,(N=ke==null?void 0:ke.rect)!=null?N:null,te),Et=q.useRef(null),vt=q.useCallback((it,rt)=>{let{sensor:St,options:Nt}=rt;if($.current==null)return;const Ut=y.get($.current);if(!Ut)return;const kt=it.nativeEvent,jt=new St({active:$.current,activeNode:Ut,event:kt,options:Nt,context:fe,onAbort(pt){if(!y.get(pt))return;const{onDragAbort:Kt}=O.current,ni={id:pt};Kt==null||Kt(ni),o({type:"onDragAbort",event:ni})},onPending(pt,bi,Kt,ni){if(!y.get(pt))return;const{onDragPending:Oi}=O.current,Si={id:pt,constraint:bi,initialCoordinates:Kt,offset:ni};Oi==null||Oi(Si),o({type:"onDragPending",event:Si})},onStart(pt){const bi=$.current;if(bi==null)return;const Kt=y.get(bi);if(!Kt)return;const{onDragStart:ni}=O.current,ki={activatorEvent:kt,active:{id:bi,data:Kt.data,rect:B}};Rn.unstable_batchedUpdates(()=>{ni==null||ni(ki),x(ws.Initializing),a({type:bt.DragStart,initialCoordinates:pt,active:bi}),o({type:"onDragStart",event:ki}),G(Et.current),X(kt)})},onMove(pt){a({type:bt.DragMove,coordinates:pt})},onEnd:ri(bt.DragEnd),onCancel:ri(bt.DragCancel)});Et.current=jt;function ri(pt){return async function(){const{active:Kt,collisions:ni,over:ki,scrollAdjustedTranslate:Oi}=fe.current;let Si=null;if(Kt&&Oi){const{cancelDrop:Ji}=O.current;Si={activatorEvent:kt,active:Kt,collisions:ni,delta:Oi,over:ki},pt===bt.DragEnd&&typeof Ji=="function"&&await Promise.resolve(Ji(Si))&&(pt=bt.DragCancel)}$.current=null,Rn.unstable_batchedUpdates(()=>{a({type:pt}),x(ws.Uninitialized),De(null),G(null),X(null),Et.current=null;const Ji=pt===bt.DragEnd?"onDragEnd":"onDragCancel";if(Si){const ai=O.current[Ji];ai==null||ai(Si),o({type:Ji,event:Si})}})}}},[y]),Qi=q.useCallback((it,rt)=>(St,Nt)=>{const Ut=St.nativeEvent,kt=y.get(Nt);if($.current!==null||!kt||Ut.dndKit||Ut.defaultPrevented)return;const jt={active:kt};it(St,rt.options,jt)===!0&&(Ut.dndKit={capturedBy:rt.sensor},$.current=Nt,vt(St,rt))},[y,vt]),qs=r1(g,Qi);d1(g),Ti(()=>{te&&S===ws.Initializing&&x(ws.Initialized)},[te,S]),q.useEffect(()=>{const{onDragMove:it}=O.current,{active:rt,activatorEvent:St,collisions:Nt,over:Ut}=fe.current;if(!rt||!St)return;const kt={active:rt,activatorEvent:St,collisions:Nt,delta:{x:gt.x,y:gt.y},over:Ut};Rn.unstable_batchedUpdates(()=>{it==null||it(kt),o({type:"onDragMove",event:kt})})},[gt.x,gt.y]),q.useEffect(()=>{const{active:it,activatorEvent:rt,collisions:St,droppableContainers:Nt,scrollAdjustedTranslate:Ut}=fe.current;if(!it||$.current==null||!rt||!Ut)return;const{onDragOver:kt}=O.current,jt=Nt.get(Je),ri=jt&&jt.rect.current?{id:jt.id,rect:jt.rect.current,data:jt.data,disabled:jt.disabled}:null,pt={active:it,activatorEvent:rt,collisions:St,delta:{x:Ut.x,y:Ut.y},over:ri};Rn.unstable_batchedUpdates(()=>{De(ri),kt==null||kt(pt),o({type:"onDragOver",event:pt})})},[Je]),Ti(()=>{fe.current={activatorEvent:W,active:M,activeNode:oe,collisionRect:Qe,collisions:ct,droppableRects:Q,draggableNodes:y,draggingNode:Te,draggingNodeRect:Pe,droppableContainers:T,over:ke,scrollableAncestors:xe,scrollAdjustedTranslate:gt},B.current={initial:Pe,translated:Qe}},[M,oe,ct,Qe,y,Te,Pe,Q,T,ke,xe,gt]),e1({...U,delta:R,draggingRect:Qe,pointerCoordinates:ve,scrollableAncestors:xe,scrollableAncestorRects:Ee});const Or=q.useMemo(()=>({active:M,activeNode:oe,activeNodeRect:te,activatorEvent:W,collisions:ct,containerNodeRect:_e,dragOverlay:ge,draggableNodes:y,droppableContainers:T,droppableRects:Q,over:ke,measureDroppableContainers:ee,scrollableAncestors:xe,scrollableAncestorRects:Ee,measuringConfiguration:P,measuringScheduled:he,windowRect:It}),[M,oe,te,W,ct,_e,ge,y,T,Q,ke,ee,xe,Ee,P,he,It]),Ei=q.useMemo(()=>({activatorEvent:W,activators:qs,active:M,activeNodeRect:te,ariaDescribedById:{draggable:F},dispatch:a,draggableNodes:y,over:ke,measureDroppableContainers:ee}),[W,qs,M,te,a,F,y,ke,ee]);return xt.createElement(Z_.Provider,{value:c},xt.createElement(ho.Provider,{value:Ei},xt.createElement(dg.Provider,{value:Or},xt.createElement(fg.Provider,{value:ut},d)),xt.createElement(w1,{disabled:(r==null?void 0:r.restoreFocus)===!1})),xt.createElement(E0,{...r,hiddenTextDescribedById:F}));function Mi(){const it=(Y==null?void 0:Y.autoScrollEnabled)===!1,rt=typeof u=="object"?u.enabled===!1:u===!1,St=m&&!it&&!rt;return typeof u=="object"?{...u,enabled:St}:{enabled:St}}}),A1=q.createContext(null),b_="button",D1="Draggable";function L1(_){let{id:C,data:D,disabled:A=!1,attributes:H}=_;const N=Nn(D1),{activators:z,activatorEvent:r,active:u,activeNodeRect:d,ariaDescribedById:g,draggableNodes:l,over:p}=q.useContext(ho),{role:b=b_,roleDescription:w="draggable",tabIndex:f=0}=H??{},n=(u==null?void 0:u.id)===C,a=q.useContext(n?fg:A1),[o,c]=ro(),[S,x]=ro(),m=f1(z,C),E=kn(D);Ti(()=>(l.set(C,{id:C,key:N,node:o,activatorNode:S,data:E}),()=>{const R=l.get(C);R&&R.key===N&&l.delete(C)}),[l,C]);const y=q.useMemo(()=>({role:b,tabIndex:f,"aria-disabled":A,"aria-pressed":n&&b===b_?!0:void 0,"aria-roledescription":w,"aria-describedby":g.draggable}),[A,b,f,n,w,g.draggable]);return{active:u,activatorEvent:r,activeNodeRect:d,attributes:y,isDragging:n,listeners:A?void 0:m,node:o,over:p,setNodeRef:c,setActivatorNodeRef:x,transform:a}}function T1(){return q.useContext(dg)}const M1="Droppable",k1={timeout:25};function O1(_){let{data:C,disabled:D=!1,id:A,resizeObserverConfig:H}=_;const N=Nn(M1),{active:z,dispatch:r,over:u,measureDroppableContainers:d}=q.useContext(ho),g=q.useRef({disabled:D}),l=q.useRef(!1),p=q.useRef(null),b=q.useRef(null),{disabled:w,updateMeasurementsFor:f,timeout:n}={...k1,...H},a=kn(f??A),o=q.useCallback(()=>{if(!l.current){l.current=!0;return}b.current!=null&&clearTimeout(b.current),b.current=setTimeout(()=>{d(Array.isArray(a.current)?a.current:[a.current]),b.current=null},n)},[n]),c=uo({callback:o,disabled:w||!z}),S=q.useCallback((y,R)=>{c&&(R&&(c.unobserve(R),l.current=!1),y&&c.observe(y))},[c]),[x,m]=ro(S),E=kn(C);return q.useEffect(()=>{!c||!x.current||(c.disconnect(),l.current=!1,c.observe(x.current))},[x,c]),q.useEffect(()=>(r({type:bt.RegisterDroppable,element:{id:A,key:N,disabled:D,node:x,rect:p,data:E}}),()=>r({type:bt.UnregisterDroppable,key:N,id:A})),[A]),q.useEffect(()=>{D!==g.current.disabled&&(r({type:bt.SetDroppableDisabled,id:A,key:N,disabled:D}),g.current.disabled=D)},[A,N,D,r]),{active:z,rect:p,isOver:(u==null?void 0:u.id)===A,node:x,over:u,setNodeRef:m}}function gg(_,C,D){const A=_.slice();return A.splice(D<0?A.length+D:D,0,A.splice(C,1)[0]),A}function B1(_,C){return _.reduce((D,A,H)=>{const N=C.get(A);return N&&(D[H]=N),D},Array(_.length))}function Za(_){return _!==null&&_>=0}function H1(_,C){if(_===C)return!0;if(_.length!==C.length)return!1;for(let D=0;D<_.length;D++)if(_[D]!==C[D])return!1;return!0}function z1(_){return typeof _=="boolean"?{draggable:_,droppable:_}:_}const vg=_=>{let{rects:C,activeIndex:D,overIndex:A,index:H}=_;const N=gg(C,A,D),z=C[H],r=N[H];return!r||!z?null:{x:r.left-z.left,y:r.top-z.top,scaleX:r.width/z.width,scaleY:r.height/z.height}},Qa={scaleX:1,scaleY:1},pg=_=>{var C;let{activeIndex:D,activeNodeRect:A,index:H,rects:N,overIndex:z}=_;const r=(C=N[D])!=null?C:A;if(!r)return null;if(H===D){const d=N[z];return d?{x:0,y:D<z?d.top+d.height-(r.top+r.height):d.top-r.top,...Qa}:null}const u=I1(N,H,D);return H>D&&H<=z?{x:0,y:-r.height-u,...Qa}:H<D&&H>=z?{x:0,y:r.height+u,...Qa}:{x:0,y:0,...Qa}};function I1(_,C,D){const A=_[C],H=_[C-1],N=_[C+1];return A?D<C?H?A.top-(H.top+H.height):N?N.top-(A.top+A.height):0:N?N.top-(A.top+A.height):H?A.top-(H.top+H.height):0:0}const mg="Sortable",bg=xt.createContext({activeIndex:-1,containerId:mg,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:vg,disabled:{draggable:!1,droppable:!1}});function Sg(_){let{children:C,id:D,items:A,strategy:H=vg,disabled:N=!1}=_;const{active:z,dragOverlay:r,droppableRects:u,over:d,measureDroppableContainers:g}=T1(),l=Nn(mg,D),p=r.rect!==null,b=q.useMemo(()=>A.map(m=>typeof m=="object"&&"id"in m?m.id:m),[A]),w=z!=null,f=z?b.indexOf(z.id):-1,n=d?b.indexOf(d.id):-1,a=q.useRef(b),o=!H1(b,a.current),c=n!==-1&&f===-1||o,S=z1(N);Ti(()=>{o&&w&&g(b)},[o,b,w,g]),q.useEffect(()=>{a.current=b},[b]);const x=q.useMemo(()=>({activeIndex:f,containerId:l,disabled:S,disableTransforms:c,items:b,overIndex:n,useDragOverlay:p,sortedRects:B1(b,u),strategy:H}),[f,l,S.draggable,S.droppable,c,b,n,u,p,H]);return xt.createElement(bg.Provider,{value:x},C)}const N1=_=>{let{id:C,items:D,activeIndex:A,overIndex:H}=_;return gg(D,A,H).indexOf(C)},U1=_=>{let{containerId:C,isSorting:D,wasDragging:A,index:H,items:N,newIndex:z,previousItems:r,previousContainerId:u,transition:d}=_;return!d||!A||r!==N&&H===z?!1:D?!0:z!==H&&C===u},j1={duration:200,easing:"ease"},yg="transform",P1=Bn.Transition.toString({property:yg,duration:0,easing:"linear"}),F1={roleDescription:"sortable"};function q1(_){let{disabled:C,index:D,node:A,rect:H}=_;const[N,z]=q.useState(null),r=q.useRef(D);return Ti(()=>{if(!C&&D!==r.current&&A.current){const u=H.current;if(u){const d=kr(A.current,{ignoreTransform:!0}),g={x:u.left-d.left,y:u.top-d.top,scaleX:u.width/d.width,scaleY:u.height/d.height};(g.x||g.y)&&z(g)}}D!==r.current&&(r.current=D)},[C,D,A,H]),q.useEffect(()=>{N&&z(null)},[N]),N}function W1(_){let{animateLayoutChanges:C=U1,attributes:D,disabled:A,data:H,getNewIndex:N=N1,id:z,strategy:r,resizeObserverConfig:u,transition:d=j1}=_;const{items:g,containerId:l,activeIndex:p,disabled:b,disableTransforms:w,sortedRects:f,overIndex:n,useDragOverlay:a,strategy:o}=q.useContext(bg),c=$1(A,b),S=g.indexOf(z),x=q.useMemo(()=>({sortable:{containerId:l,index:S,items:g},...H}),[l,H,S,g]),m=q.useMemo(()=>g.slice(g.indexOf(z)),[g,z]),{rect:E,node:y,isOver:R,setNodeRef:T}=O1({id:z,data:x,disabled:c.droppable,resizeObserverConfig:{updateMeasurementsFor:m,...u}}),{active:I,activatorEvent:B,activeNodeRect:M,attributes:$,setNodeRef:Y,listeners:G,isDragging:W,over:X,setActivatorNodeRef:O,transform:F}=L1({id:z,data:x,attributes:{...F1,...D},disabled:c.draggable}),k=d0(T,Y),P=!!I,Q=P&&!w&&Za(p)&&Za(n),ee=!a&&W,he=ee&&Q?F:null,K=Q?he??(r??o)({rects:f,activeNodeRect:M,activeIndex:p,overIndex:n,index:S}):null,U=Za(p)&&Za(n)?N({id:z,items:g,activeIndex:p,overIndex:n}):S,ne=I==null?void 0:I.id,te=q.useRef({activeId:ne,items:g,newIndex:U,containerId:l}),_e=g!==te.current.items,fe=C({active:I,containerId:l,isDragging:W,isSorting:P,id:z,index:S,items:g,newIndex:te.current.newIndex,previousItems:te.current.items,previousContainerId:te.current.containerId,transition:d,wasDragging:te.current.activeId!=null}),be=q1({disabled:!fe,index:S,node:y,rect:E});return q.useEffect(()=>{P&&te.current.newIndex!==U&&(te.current.newIndex=U),l!==te.current.containerId&&(te.current.containerId=l),g!==te.current.items&&(te.current.items=g)},[P,U,l,g]),q.useEffect(()=>{if(ne===te.current.activeId)return;if(ne&&!te.current.activeId){te.current.activeId=ne;return}const Te=setTimeout(()=>{te.current.activeId=ne},50);return()=>clearTimeout(Te)},[ne]),{active:I,activeIndex:p,attributes:$,data:x,rect:E,index:S,newIndex:U,items:g,isOver:R,isSorting:P,isDragging:W,listeners:G,node:y,overIndex:n,over:X,setNodeRef:k,setActivatorNodeRef:O,setDroppableNodeRef:T,setDraggableNodeRef:Y,transform:be??K,transition:ge()};function ge(){if(be||_e&&te.current.newIndex===S)return P1;if(!(ee&&!Zc(B)||!d)&&(P||fe))return Bn.Transition.toString({...d,property:yg})}}function $1(_,C){var D,A;return typeof _=="boolean"?{draggable:_,droppable:!1}:{draggable:(D=_==null?void 0:_.draggable)!=null?D:C.draggable,droppable:(A=_==null?void 0:_.droppable)!=null?A:C.droppable}}function oo(_){if(!_)return!1;const C=_.data.current;return!!(C&&"sortable"in C&&typeof C.sortable=="object"&&"containerId"in C.sortable&&"items"in C.sortable&&"index"in C.sortable)}const G1=[Ne.Down,Ne.Right,Ne.Up,Ne.Left],Y1=(_,C)=>{let{context:{active:D,collisionRect:A,droppableRects:H,droppableContainers:N,over:z,scrollableAncestors:r}}=C;if(G1.includes(_.code)){if(_.preventDefault(),!D||!A)return;const u=[];N.getEnabled().forEach(l=>{if(!l||l!=null&&l.disabled)return;const p=H.get(l.id);if(p)switch(_.code){case Ne.Down:A.top<p.top&&u.push(l);break;case Ne.Up:A.top>p.top&&u.push(l);break;case Ne.Left:A.left>p.left&&u.push(l);break;case Ne.Right:A.left<p.left&&u.push(l);break}});const d=D0({collisionRect:A,droppableRects:H,droppableContainers:u});let g=eg(d,"id");if(g===(z==null?void 0:z.id)&&d.length>1&&(g=d[1].id),g!=null){const l=N.get(D.id),p=N.get(g),b=p?H.get(p.id):null,w=p==null?void 0:p.node.current;if(w&&b&&l&&p){const n=co(w).some((m,E)=>r[E]!==m),a=Cg(l,p),o=V1(l,p),c=n||!a?{x:0,y:0}:{x:o?A.width-b.width:0,y:o?A.height-b.height:0},S={x:b.left,y:b.top};return c.x&&c.y?S:On(S,c)}}}};function Cg(_,C){return!oo(_)||!oo(C)?!1:_.data.current.sortable.containerId===C.data.current.sortable.containerId}function V1(_,C){return!oo(_)||!oo(C)||!Cg(_,C)?!1:_.data.current.sortable.index<C.data.current.sortable.index}function wg(){var _;return((_=crypto.randomUUID)==null?void 0:_.call(crypto))??`id-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function xg({id:_,enabled:C,onToggle:D,onDelete:A,children:H,extraAction:N,onMoveToFirst:z,onMoveToLast:r}){const{attributes:u,listeners:d,setNodeRef:g,transform:l,transition:p,isDragging:b}=W1({id:_}),w={transform:Bn.Transform.toString(l),opacity:b?.5:1};return V.jsx("div",{ref:g,style:{...w,borderRadius:8,background:"var(--bg-tertiary)",overflow:"hidden"},children:V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"12px 12px",minHeight:"var(--min-touch-target, 44px)",overflow:"hidden"},children:[V.jsx("div",{...u,...d,"aria-label":"Drag to reorder",style:{width:24,color:"var(--text-muted)",cursor:"grab",display:"flex",alignItems:"center",justifyContent:"center",fontSize:14,userSelect:"none",touchAction:"none"},children:"⋮⋮"}),V.jsx("button",{role:"switch","aria-checked":C,"aria-label":C?"Enabled, click to disable":"Disabled, click to enable",onClick:D,style:{width:32,height:20,borderRadius:10,border:"none",background:C?"var(--status-running)":"var(--bg-primary)",cursor:"pointer",position:"relative",flexShrink:0},children:V.jsx("span",{style:{position:"absolute",top:2,left:C?14:2,width:16,height:16,borderRadius:"50%",background:"#fff",transition:"left 0.15s ease"}})}),H,N,(z||r)&&V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,flexShrink:0},children:[z&&V.jsx("button",{"aria-label":"Move to first",title:"Move to first",onClick:z,style:{width:32,height:32,borderRadius:6,border:"none",background:"transparent",color:"var(--text-secondary)",cursor:"pointer",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center"},children:"⤒"}),r&&V.jsx("button",{"aria-label":"Move to last",title:"Move to last",onClick:r,style:{width:32,height:32,borderRadius:6,border:"none",background:"transparent",color:"var(--text-secondary)",cursor:"pointer",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center"},children:"⤓"})]}),V.jsx("button",{"aria-label":"Delete",title:"Delete",onClick:A,style:{width:32,height:32,borderRadius:6,border:"none",background:"transparent",color:"var(--text-secondary)",cursor:"pointer",fontSize:18,flexShrink:0},children:"×"})]})})}function Eg(){return R0(o_(tu,{activationConstraint:{distance:8}}),o_(Jc,{coordinateGetter:Y1}))}function X1(){const[_,C]=q.useState(!1);return q.useEffect(()=>{const D=()=>{const A=navigator.userAgent,H=/iPhone|iPad|iPod|Android/i.test(A),N=window.innerWidth<768;C(H||N)};return D(),window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]),_}function K1(_){if(["Control","Alt","Shift","Meta"].includes(_.key))return null;let C="",D="";if(_.ctrlKey||_.altKey||_.metaKey){const A=_.key.toUpperCase(),H=_.ctrlKey?"Ctrl":_.altKey?"Alt":"Meta";if(_.key.length===1)if(C=`${H}+${A}`,_.ctrlKey)D=String.fromCharCode(_.key.toUpperCase().charCodeAt(0)-64);else return null;else return null}else if(_.key.startsWith("Arrow")){const H={ArrowUp:{label:"↑",code:"A"},ArrowDown:{label:"↓",code:"B"},ArrowRight:{label:"→",code:"C"},ArrowLeft:{label:"←",code:"D"}}[_.key];if(H)C=H.label,D=`\x1B[${H.code}`;else return null}else if(_.key==="Escape")C="Esc",D="\x1B";else if(_.key==="Enter")C="Enter",D="\r";else if(_.key==="Tab")C=_.shiftKey?"Shift+Tab":"Tab",D=_.shiftKey?"\x1B[Z":" ";else if(_.key==="Backspace")C="Backspace",D="";else if(_.key==="Delete")C="Delete",D="\x1B[3~";else if(_.key==="Home")C="Home",D="\x1B[H";else if(_.key==="End")C="End",D="\x1B[F";else if(_.key==="PageUp")C="PageUp",D="\x1B[5~";else if(_.key==="PageDown")C="PageDown",D="\x1B[6~";else if(_.key.match(/^F([1-9]|1[0-2])$/)){const A={F1:"\x1BOP",F2:"\x1BOQ",F3:"\x1BOR",F4:"\x1BOS",F5:"\x1B[15~",F6:"\x1B[17~",F7:"\x1B[18~",F8:"\x1B[19~",F9:"\x1B[20~",F10:"\x1B[21~",F11:"\x1B[23~",F12:"\x1B[24~"};C=_.key,D=A[_.key]??""}else if(_.key.length===1)C=_.key.toUpperCase(),D=_.key;else return null;return{label:C,data:D}}function Z1({shortcuts:_,onChange:C}){const[D,A]=q.useState(null),[H,N]=q.useState(!1),z=Eg(),r=X1(),u=(f,n)=>{f.preventDefault(),f.stopPropagation();const a=K1(f);if(a){const o=_.map(c=>c._id===n?{...c,label:a.label,data:a.data}:c);C(o),A(null)}},d=f=>{const n=[..._];n[f]={...n[f],enabled:!n[f].enabled},C(n)},g=()=>{if(r){N(!0),setTimeout(()=>N(!1),3e3);return}const f=wg(),n=[..._,{label:"New",data:"",enabled:!0,_id:f}];C(n),A(f)},l=f=>{const n=_.filter((a,o)=>o!==f);C(n)},p=f=>{const{active:n,over:a}=f;if(a&&n.id!==a.id){const o=_.findIndex(m=>m._id===n.id),c=_.findIndex(m=>m._id===a.id),S=[..._],[x]=S.splice(o,1);S.splice(c,0,x),C(S)}},b=f=>{const n=_.findIndex(c=>c._id===f);if(n<=0)return;const a=[..._],[o]=a.splice(n,1);a.unshift(o),C(a)},w=f=>{const n=_.findIndex(c=>c._id===f);if(n===-1||n===_.length-1)return;const a=[..._],[o]=a.splice(n,1);a.push(o),C(a)};return V.jsxs("div",{"data-testid":"settings--shortcuts--container",style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[V.jsx("span",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:"Shortcuts"}),V.jsx("button",{onClick:g,disabled:r,"data-testid":"settings--shortcuts--button--add",style:{padding:"8px 16px",fontSize:13,borderRadius:6,border:"1px solid var(--border-color)",background:"var(--bg-tertiary)",color:"var(--text-primary)",cursor:r?"not-allowed":"pointer",opacity:r?.5:1},children:"+ Add"})]}),r&&V.jsxs("div",{"data-testid":"settings--shortcuts--mobile-warning",style:{padding:"10px 12px",backgroundColor:"var(--bg-warning, #fff8e6)",border:"1px solid var(--border-warning, #ffd666)",borderRadius:6,fontSize:13,color:"var(--text-warning, #ad6800)",display:"flex",alignItems:"center",gap:8},children:[V.jsx("span",{style:{fontSize:16},children:"⚠️"}),V.jsx("span",{children:"移动端无法新增快捷键,请在PC端浏览器中添加"})]}),_.length===0&&V.jsx("div",{"data-testid":"settings--shortcuts--empty",style:{padding:16,textAlign:"center",color:"var(--text-secondary)",fontSize:13},children:"No shortcuts yet. Click the button above to add one."}),V.jsx(_g,{sensors:z,collisionDetection:tg,onDragEnd:p,children:V.jsx(Sg,{items:_.map(f=>f._id),strategy:pg,children:_.map(f=>V.jsx(xg,{id:f._id,enabled:f.enabled,onToggle:()=>{const n=_.findIndex(a=>a._id===f._id);n!==-1&&d(n)},onDelete:()=>{const n=_.findIndex(a=>a._id===f._id);n!==-1&&l(n)},onMoveToFirst:()=>b(f._id),onMoveToLast:()=>w(f._id),children:V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0},children:[V.jsx("input",{type:"text",value:f.label,readOnly:!0,autoComplete:"off",placeholder:"Press key to capture",onClick:()=>A(f._id),onKeyDown:n=>u(n,f._id),onBlur:()=>A(null),"aria-label":`Shortcut ${f.label}`,style:{flex:1,minWidth:0,height:36,padding:"0 12px",borderRadius:6,border:D===f._id?"2px solid var(--status-running)":"1px solid var(--border-color)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:14,cursor:"pointer",textAlign:"center"}}),V.jsx("span",{title:f.data?f.data.replace(/\x1b/g,"ESC").replace(/\r/g,"CR").replace(/\t/g,"TAB"):"(not set)",style:{display:"inline-flex",alignItems:"center",justifyContent:"flex-end",fontSize:11,color:"var(--text-muted)",fontFamily:"monospace",flexShrink:0,width:35,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:f.data?f.data.replace(/\x1b/g,"ESC").replace(/\r/g,"CR").replace(/\t/g,"TAB"):"(not set)"})]})},f._id))})}),D!==null&&!r&&V.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)",textAlign:"center",marginTop:4},children:"Press a key to capture…"}),H&&V.jsx("div",{style:{position:"fixed",bottom:80,left:"50%",transform:"translateX(-50%)",padding:"12px 20px",backgroundColor:"var(--bg-secondary, #333)",color:"var(--text-inverse, #fff)",borderRadius:8,fontSize:14,boxShadow:"0 4px 12px rgba(0,0,0,0.2)",zIndex:1e3,whiteSpace:"nowrap",animation:"fadeInOut 3s ease"},children:"请在PC端浏览器中新增快捷键"})]})}const Q1={width:"100%",padding:"10px 12px",borderRadius:6,fontSize:14,resize:"none",overflowX:"auto",overflowY:"hidden",whiteSpace:"nowrap",lineHeight:"20px",boxSizing:"border-box"};function Lr(_){return{...Q1,..._}}function J1({autoSend:_,onToggle:C}){const D=_??!0;return V.jsx("button",{onClick:C,"aria-label":"Auto-send toggle",title:"Auto-send toggle",style:{width:32,height:32,padding:0,borderRadius:6,border:"none",background:D?"var(--status-running)":"var(--bg-primary)",color:D?"#fff":"var(--text-secondary)",cursor:"pointer",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:D?"↗":"✎"})}function em({commands:_,onChange:C}){const[D,A]=q.useState(null),[H,N]=q.useState(""),z=Eg(),r=a=>{const o=_.find(c=>c._id===a);o&&(A(a),N(o.command))},u=a=>{if(!a){A(null),N("");return}let o=H.trim();if(!o){b(a);return}o.startsWith("/")||(o="/"+o);const c=_.map(S=>S._id===a?{...S,label:o,command:o}:S);C(c),A(null),N("")},d=a=>{const o=_.map(c=>c._id===a?{...c,enabled:!c.enabled}:c);C(o)},g=We(a=>a.showToast),l=a=>{const o=_.find(x=>x._id===a);if(!o)return;const c=!(o.autoSend??!0),S=_.map(x=>x._id===a?{...x,autoSend:c}:x);C(S),g(c?"Commands will auto-send on tap":"Commands will be inserted for editing")},p=()=>{const a=wg(),o=[..._,{label:"/new",command:"/new",enabled:!0,autoSend:!0,_id:a}];C(o),A(a),N("/new")},b=a=>{const o=_.filter(c=>c._id!==a);C(o)},w=a=>{const{active:o,over:c}=a;if(c&&o.id!==c.id){const S=_.findIndex(y=>y._id===o.id),x=_.findIndex(y=>y._id===c.id),m=[..._],[E]=m.splice(S,1);m.splice(x,0,E),C(m)}},f=a=>{const o=_.findIndex(x=>x._id===a);if(o<=0)return;const c=[..._],[S]=c.splice(o,1);c.unshift(S),C(c)},n=a=>{const o=_.findIndex(x=>x._id===a);if(o===-1||o===_.length-1)return;const c=[..._],[S]=c.splice(o,1);c.push(S),C(c)};return V.jsxs("div",{"data-testid":"settings--commands--container",style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[V.jsx("span",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:"Commands"}),V.jsx("button",{onClick:p,"data-testid":"settings--commands--button--add",style:{padding:"8px 16px",fontSize:13,borderRadius:6,border:"1px solid var(--border-color)",background:"var(--bg-tertiary)",color:"var(--text-primary)",cursor:"pointer"},children:"+ Add"})]}),_.length===0&&V.jsx("div",{"data-testid":"settings--commands--empty",style:{padding:16,textAlign:"center",color:"var(--text-secondary)",fontSize:13},children:"No commands yet. Click the button above to add one."}),V.jsx(_g,{sensors:z,collisionDetection:tg,onDragEnd:w,children:V.jsx(Sg,{items:_.map(a=>a._id),strategy:pg,children:_.map(a=>V.jsx(xg,{id:a._id,enabled:a.enabled,onToggle:()=>d(a._id),onDelete:()=>b(a._id),onMoveToFirst:()=>f(a._id),onMoveToLast:()=>n(a._id),extraAction:V.jsx(J1,{autoSend:a.autoSend??!0,onToggle:()=>l(a._id)}),children:D===a._id?V.jsx("textarea",{value:H,onChange:o=>N(o.target.value),onKeyDown:o=>{o.key==="Enter"&&(o.preventDefault(),u(a._id)),o.key==="Escape"&&(N(""),u(null))},onBlur:()=>u(a._id),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,inputMode:"text",rows:1,placeholder:"Enter command…","aria-label":`Edit ${a.label}`,style:Lr({flex:"1 1 180px",minWidth:0,height:36,padding:"0 12px",border:"2px solid var(--status-running)",background:"var(--bg-primary)",color:"var(--text-primary)",lineHeight:"36px"})}):V.jsx("button",{type:"button",onClick:()=>r(a._id),"aria-label":`Edit command ${a.label}`,style:{flex:"1 1 180px",minWidth:0,height:36,padding:"0 12px",borderRadius:6,border:"1px solid var(--border-color)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:14,display:"flex",alignItems:"center",cursor:"pointer",textAlign:"left",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.label})},a._id))})}),V.jsx("div",{"data-testid":"settings--commands--tip",style:{fontSize:12,color:"var(--text-muted)",marginTop:8},children:"Tip: Commands are auto-prefixed with / (e.g., help → /help)"})]})}function tm({checked:_,onChange:C,disabled:D=!1,"aria-label":A}){return V.jsx("button",{type:"button",role:"switch","aria-checked":_,"aria-label":A,disabled:D,onClick:()=>!D&&C(!_),style:{position:"relative",width:"44px",height:"24px",borderRadius:"12px",border:"none",padding:0,cursor:D?"not-allowed":"pointer",background:_?"var(--status-running)":"var(--bg-tertiary)",opacity:D?.5:1,transition:"background 150ms ease-out",touchAction:"manipulation",WebkitTapHighlightColor:"transparent"},children:V.jsx("span",{style:{position:"absolute",top:"2px",left:_?"22px":"2px",width:"20px",height:"20px",borderRadius:"50%",background:"#ffffff",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.3)",transition:"left 150ms ease-out"}})})}function Ja({channelType:_,status:C,isExpanded:D,onToggle:A,onEnabledChange:H,children:N}){const z=l0[_],r=(z==null?void 0:z.implemented)??!1,u=(C==null?void 0:C.configured)??!1,d=(C==null?void 0:C.enabled)??!0,g={dingtalk:"📱",email:"📧",slack:"💬",wechat_work:"💼"},l=p=>{p.stopPropagation()};return V.jsxs("div",{"data-testid":`settings--channel--card--${_}`,style:{border:"1px solid var(--border-color)",borderRadius:8,background:"var(--bg-tertiary)",overflow:"hidden",opacity:r?1:.6},children:[V.jsxs("button",{"data-testid":`settings--channel--header--${_}`,onClick:r?A:void 0,style:{width:"100%",padding:"16px",border:"none",background:D?"var(--bg-secondary)":"transparent",display:"flex",alignItems:"center",justifyContent:"space-between",cursor:r?"pointer":"default",textAlign:"left"},children:[V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[V.jsx("span",{style:{fontSize:24},children:g[_]??"🔔"}),V.jsxs("div",{children:[V.jsxs("div",{style:{fontSize:16,fontWeight:600,color:"var(--text-primary)",display:"flex",alignItems:"center",gap:8},children:[(z==null?void 0:z.displayName)??_,u&&V.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:d?"var(--status-running)":"var(--text-muted)"},title:d?"Enabled":"Disabled"})]}),V.jsx("div",{style:{fontSize:13,color:"var(--text-secondary)",marginTop:2},children:(z==null?void 0:z.description)??""})]})]}),V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[u&&H&&V.jsx("div",{onClick:l,children:V.jsx(tm,{checked:d,onChange:H,"aria-label":`Toggle ${(z==null?void 0:z.displayName)??_}`})}),!r&&V.jsx("span",{"data-testid":`settings--channel--coming--${_}`,style:{fontSize:12,color:"var(--text-secondary)",background:"var(--bg-secondary)",padding:"4px 10px",borderRadius:12},children:"Coming"}),r&&V.jsx("svg",{style:{width:16,height:16,transform:D?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s",color:"var(--text-secondary)"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:V.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),r&&D&&V.jsx("div",{style:{padding:"16px",borderTop:"1px solid var(--border-color)",background:"var(--bg-primary)"},children:N})]})}function im({webhookUrl:_,onChange:C,configured:D}){const[A,H]=q.useState(!1),N=_===""||q_.test(_),z=A&&!N&&_!=="";return V.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsxs("div",{children:[V.jsx("label",{style:{display:"block",fontSize:14,fontWeight:500,marginBottom:8,color:"var(--text-primary)"},children:"Webhook URL"}),V.jsx("textarea",{"data-testid":"settings--dingtalk--input--webhook",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,inputMode:"text",rows:1,placeholder:"https://oapi.dingtalk.com/robot/send?access_token=...",value:_,onChange:r=>{C(r.target.value)},onBlur:()=>H(!0),style:Lr({border:`1px solid ${z?"var(--status-error)":"var(--border-color)"}`,background:"var(--bg-secondary)",color:"var(--text-primary)"})}),z&&V.jsx("div",{"data-testid":"settings--dingtalk--error",style:{marginTop:6,fontSize:12,color:"var(--status-error)"},children:"Please enter a valid DingTalk Webhook URL starting with https://oapi.dingtalk.com/robot/send?access_token="})]}),D&&!_&&V.jsx("div",{"data-testid":"settings--dingtalk--configured",style:{padding:10,background:"rgba(46, 204, 113, 0.1)",borderRadius:6,fontSize:13,color:"var(--status-running)"},children:"✓ Configured. Enter a new URL to update."}),V.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:V.jsx("a",{href:"https://open.dingtalk.com/document/robots/custom-robot-access",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--status-running)"},children:"How to get DingTalk group bot Webhook?"})})]})}function sm({sendKey:_,onChange:C,configured:D}){const[A,H]=q.useState(!1),N=_===""||W_.test(_),z=A&&!N&&_!=="";return V.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsxs("div",{children:[V.jsx("label",{style:{display:"block",fontSize:14,fontWeight:500,marginBottom:8,color:"var(--text-primary)"},children:"SendKey"}),V.jsx("textarea",{"data-testid":"settings--wechat--input--sendkey",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,inputMode:"text",rows:1,placeholder:"SCTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",value:_,onChange:r=>{C(r.target.value)},onBlur:()=>H(!0),style:Lr({border:`1px solid ${z?"var(--status-error)":"var(--border-color)"}`,background:"var(--bg-secondary)",color:"var(--text-primary)"})}),z&&V.jsx("div",{"data-testid":"settings--wechat--error",style:{marginTop:6,fontSize:12,color:"var(--status-error)"},children:"Please enter a valid SendKey (starts with SCT, at least 13 characters)"})]}),D&&!_&&V.jsx("div",{"data-testid":"settings--wechat--configured",style:{padding:10,background:"rgba(46, 204, 113, 0.1)",borderRadius:6,fontSize:13,color:"var(--status-running)"},children:"✓ Configured. Enter a new SendKey to update."}),V.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:V.jsx("a",{href:"https://sct.ftqq.com/sendkey",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--status-running)"},children:"How to get SendKey?"})})]})}function rm({notificationStatus:_,dingtalkWebhookUrl:C,onDingtalkWebhookChange:D,wechatWorkSendKey:A,onWechatWorkSendKeyChange:H,onChannelEnabledChange:N}){var d,g,l,p;const[z,r]=q.useState("dingtalk"),u=b=>{r(w=>w===b?null:b)};return V.jsxs("div",{"data-testid":"settings--notifications--container",style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsx("div",{"data-testid":"settings--notifications--description",style:{padding:12,background:"var(--bg-tertiary)",borderRadius:8,fontSize:13,color:"var(--text-secondary)"},children:"Configure notification channels to receive alerts when Claude needs your attention."}),V.jsx(Ja,{channelType:"dingtalk",status:_==null?void 0:_.dingtalk,isExpanded:z==="dingtalk",onToggle:()=>u("dingtalk"),onEnabledChange:(d=_==null?void 0:_.dingtalk)!=null&&d.configured?b=>N==null?void 0:N("dingtalk",b):void 0,children:V.jsx(im,{webhookUrl:C,onChange:D,configured:(g=_==null?void 0:_.dingtalk)==null?void 0:g.configured})}),V.jsx(Ja,{channelType:"wechat_work",status:_==null?void 0:_.wechat_work,isExpanded:z==="wechat_work",onToggle:()=>u("wechat_work"),onEnabledChange:(l=_==null?void 0:_.wechat_work)!=null&&l.configured?b=>N==null?void 0:N("wechat_work",b):void 0,children:V.jsx(sm,{sendKey:A,onChange:H,configured:(p=_==null?void 0:_.wechat_work)==null?void 0:p.configured})}),V.jsx(Ja,{channelType:"email",status:_==null?void 0:_.email,isExpanded:z==="email",onToggle:()=>u("email")}),V.jsx(Ja,{channelType:"slack",status:_==null?void 0:_.slack,isExpanded:z==="slack",onToggle:()=>u("slack")})]})}const nm=100,am=300;var H_;const An=typeof window<"u"&&((H_=window.matchMedia)==null?void 0:H_.call(window,"(prefers-reduced-motion: reduce)").matches),kc=An?0:300;function Rg({isOpen:_,onClose:C,title:D,children:A,footer:H,"data-testid":N}){const[z,r]=q.useState(!1),[u,d]=q.useState(!1),[g,l]=q.useState(0),[p,b]=q.useState(!1),w=q.useRef(0),f=q.useRef(0);q.useEffect(()=>{if(_)r(!0),l(0),An?d(!0):requestAnimationFrame(()=>{requestAnimationFrame(()=>d(!0))});else if(z)if(d(!1),An)r(!1);else{const m=setTimeout(()=>r(!1),kc);return()=>clearTimeout(m)}},[_,z]);const n=q.useCallback(m=>{b(!0),w.current=m,f.current=Date.now(),l(0)},[]),a=q.useCallback(m=>{if(!p)return;const E=m-w.current;E>0&&l(E)},[p]),o=q.useCallback(()=>{if(!p)return;const m=g,E=Date.now()-f.current,y=E>0?m/(E/1e3):0;m>nm||m>50&&y>am||m<5?C():l(0),b(!1)},[p,g,C]);if(!z)return null;const c=An||p?"none":`transform ${kc}ms ease-out`,S=An?"none":`background ${kc}ms ease-out`,x=p?`translateY(${g}px)`:u?"translateY(0)":"translateY(100%)";return V.jsx("div",{onClick:C,style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:u?"rgba(0, 0, 0, 0.5)":"rgba(0, 0, 0, 0)",transition:S,display:"flex",alignItems:"flex-end",justifyContent:"center",zIndex:1e3},children:V.jsxs("div",{"data-testid":N,onClick:m=>m.stopPropagation(),style:{width:"100%",maxWidth:480,maxHeight:"calc(85vh - env(safe-area-inset-bottom, 0px))",borderRadius:"16px 16px 0 0",background:"var(--bg-secondary)",boxShadow:"0 -4px 24px rgba(0, 0, 0, 0.3)",display:"flex",flexDirection:"column",overflow:"hidden",transform:x,transition:c,paddingBottom:"var(--safe-bottom)"},children:[V.jsx("div",{style:{height:44,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",flexShrink:0},onTouchStart:m=>n(m.touches[0].clientY),onTouchMove:m=>a(m.touches[0].clientY),onTouchEnd:o,onMouseDown:m=>n(m.clientY),onMouseMove:m=>p&&a(m.clientY),onMouseUp:o,onMouseLeave:o,children:V.jsx("div",{style:{width:36,height:4,background:"var(--text-secondary)",opacity:.5,borderRadius:2}})}),V.jsx("div",{style:{padding:"0 20px 16px 20px",display:"flex",alignItems:"center",flexShrink:0},children:V.jsx("h2",{style:{fontSize:18,fontWeight:600,margin:0},children:D})}),V.jsx("div",{style:{flex:1,overflow:"auto",overscrollBehavior:"contain",padding:"0 16px"},children:A}),H&&V.jsx("div",{style:{padding:"12px 20px",borderTop:"1px solid var(--border-color)",flexShrink:0},children:H})]})})}function om({isOpen:_,onClose:C,onConfigSaved:D}){const[A,H]=q.useState("shortcuts"),[N,z]=q.useState([]),[r,u]=q.useState([]),[d,g]=q.useState(""),[l,p]=q.useState(""),[b,w]=q.useState({}),[f,n]=q.useState(!1),[a,o]=q.useState(null),[c,S]=q.useState(!1),x=Ht(M=>M.activeInstanceId),m=We(M=>M.showToast),E=q.useRef(0);function y(){return String(++E.current)}function R(M){return{...M,_id:y()}}q.useEffect(()=>{_&&T()},[_]);const T=async()=>{try{const{config:M}=await j_(x??void 0);if(M){z(M.shortcuts.map(Y=>R(Y))),u(M.commands.map(Y=>R(Y)));const $=M.notifications||{};w($),g("")}else z($_.map($=>R({...$,enabled:!0}))),u(G_.map($=>R({...$,enabled:!0}))),w({}),g("")}catch(M){o("Failed to load configuration"),console.error(M)}},I=async(M,$)=>{const Y=b;w(W=>({...W,[M]:{...W[M],configured:!0,enabled:$}}));const G=M==="dingtalk"?"DingTalk":"WeChat Work";try{await s0(M,$),m(`${G} notifications ${$?"enabled":"disabled"}`)}catch(W){w(Y),console.error("Failed to update channel enabled status:",W),o(`Failed to update ${G.toLowerCase()}`),m(`Failed to update ${G.toLowerCase()}`),setTimeout(()=>o(null),2e3)}},B=async()=>{var M,$;n(!0),o(null),S(!1);try{const Y={shortcuts:N.map(({_id:F,...k})=>k),commands:r.map(({_id:F,...k})=>k)},G={},W=d.trim();if(W){if(!q_.test(W)){o("Please enter a valid DingTalk Webhook URL (starting with https://oapi.dingtalk.com/robot/send?access_token=)"),n(!1);return}G.dingtalk={webhookUrl:W}}const X=l.trim();if(X){if(!W_.test(X)){o("Please enter a valid SendKey (starts with SCT, at least 13 characters)"),n(!1);return}G.wechat_work={sendKey:X}}if(Object.keys(G).length>0&&(Y.notifications=G),await i0(Y,x??void 0)){S(!0);const F={...b};W&&(F.dingtalk={...b==null?void 0:b.dingtalk,configured:!0,enabled:(M=b==null?void 0:b.dingtalk)==null?void 0:M.enabled},g("")),X&&(F.wechat_work={...b==null?void 0:b.wechat_work,configured:!0,enabled:($=b==null?void 0:b.wechat_work)==null?void 0:$.enabled},p("")),w(F),D==null||D(),setTimeout(()=>S(!1),2e3)}else o("Failed to save")}catch(Y){o("Failed to save"),console.error(Y)}finally{n(!1)}};return V.jsxs(Rg,{isOpen:_,onClose:C,title:"Settings","data-testid":"settings--modal",footer:V.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12},children:[V.jsxs("div",{style:{fontSize:13},children:[a&&V.jsx("span",{"data-testid":"settings--message--error",style:{color:"var(--status-error)"},children:a}),c&&V.jsx("span",{"data-testid":"settings--message--success",style:{color:"var(--status-running)"},children:"Saved"})]}),V.jsxs("div",{style:{display:"flex",gap:8},children:[V.jsx("button",{onClick:C,"data-testid":"settings--button--close",style:{padding:"8px 20px",borderRadius:6,border:"1px solid var(--border-color)",background:"var(--bg-tertiary)",color:"var(--text-primary)",fontSize:14,cursor:"pointer"},children:"Cancel"}),V.jsx("button",{onClick:B,disabled:f,"data-testid":"settings--button--save",style:{padding:"8px 20px",borderRadius:6,border:"none",background:f?"var(--bg-tertiary)":"var(--status-running)",color:"#fff",fontSize:14,fontWeight:600,cursor:f?"default":"pointer",opacity:f?.7:1},children:f?"Saving…":"Save"})]})]}),children:[V.jsx("div",{style:{display:"flex",borderBottom:"1px solid var(--border-color)",margin:"0 -16px",marginBottom:16},children:["shortcuts","commands","notifications"].map(M=>V.jsx("button",{onClick:()=>H(M),"data-testid":`settings--tab--${M}`,style:{flex:1,padding:"12px 16px",border:"none",background:"transparent",color:A===M?"var(--text-primary)":"var(--text-secondary)",borderBottom:A===M?"2px solid var(--status-running)":"2px solid transparent",cursor:"pointer",fontSize:14,fontWeight:A===M?600:400},children:M==="shortcuts"?"Shortcuts":M==="commands"?"Commands":"Notifications"},M))}),A==="shortcuts"?V.jsx(Z1,{shortcuts:N,onChange:z}):A==="commands"?V.jsx(em,{commands:r,onChange:u}):V.jsx(rm,{notificationStatus:b,dingtalkWebhookUrl:d,onDingtalkWebhookChange:g,wechatWorkSendKey:l,onWechatWorkSendKeyChange:p,onChannelEnabledChange:I})]})}const lm={idle:{color:"var(--status-idle)",label:"Idle"},running:{color:"var(--status-running)",label:"Running"},waiting_input:{color:"var(--status-waiting)",label:"Waiting Input"}},cm={connecting:{color:"var(--status-waiting)",label:"Connecting..."},connected:{color:"var(--status-idle)",label:"Connected"},disconnected:{color:"var(--status-error)",label:"Disconnected"}};function um(){const[_,C]=q.useState(!1),D=We(r=>r.sessionStatus),A=Ht(r=>r.activeInstanceId),H=We(r=>A?r.instanceConnectionStatus[A]??"disconnected":r.connectionStatus),N=lm[D],z=cm[H];return V.jsxs(V.Fragment,{children:[V.jsxs("div",{"data-testid":"status-bar",style:{height:"var(--statusbar-height)",background:"var(--bg-secondary)",borderBottom:"1px solid var(--border-color)",display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 16px",paddingTop:"var(--safe-top)",flexShrink:0},children:[V.jsx("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0,overflow:"hidden",flex:"1 1 auto"},children:V.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"Claude Remote"})}),V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[V.jsx("span",{"data-testid":`status--indicator--${D}`,style:{width:8,height:8,borderRadius:"50%",background:N.color,display:"inline-block"}}),V.jsx("span",{"data-testid":"status--label--session",style:{fontSize:12,color:"var(--text-secondary)"},children:N.label})]}),V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[V.jsx("span",{"data-testid":`status--indicator--${H}`,style:{width:8,height:8,borderRadius:"50%",background:z.color,display:"inline-block"}}),V.jsx("span",{"data-testid":"status--label--connection",style:{fontSize:12,color:"var(--text-secondary)"},children:z.label})]}),V.jsx("button",{onClick:()=>C(!0),"aria-label":"Settings","data-testid":"status--button--settings",style:{width:44,height:44,marginRight:-12,borderRadius:8,border:"none",background:"transparent",color:"var(--text-secondary)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:22},children:"⚙"})]})]}),V.jsx(om,{isOpen:_,onClose:()=>C(!1),onConfigSaved:V_})]})}function hm({containerRef:_,onFocusInput:C}){const D=()=>{C==null||C()};return V.jsx("div",{ref:_,onClick:D,"data-testid":"terminal--container",style:{flex:1,overflow:"hidden",background:"var(--bg-primary)"}})}const dm=q.forwardRef(function({onSend:C,disabled:D,isKeyboardOpen:A},H){const[N,z]=q.useState(""),r=q.useRef(null);q.useImperativeHandle(H,()=>({setText:g=>{z(g)},focus:()=>{var g;return(g=r.current)==null?void 0:g.focus()}}),[]);const u=q.useCallback(()=>{const g=N.trim();C(g),z("")},[N,C]),d=q.useCallback(g=>{g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),u())},[u]);return V.jsx("div",{"data-testid":"console--input-bar",style:{height:"var(--inputbar-height)",background:"var(--bg-secondary)",borderTop:"1px solid var(--border-color)",display:"flex",alignItems:"center",padding:"8px 12px",paddingBottom:A?"8px":"calc(8px + var(--safe-bottom))",transition:"padding-bottom 0.25s ease-out",gap:8,flexShrink:0},children:V.jsx("textarea",{ref:r,"data-testid":"console--input--command",value:N,onChange:g=>z(g.target.value),onKeyDown:d,disabled:D,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,inputMode:"text",rows:1,placeholder:"Enter command or number to select…","aria-label":"Command input",style:Lr({flex:1,height:40,borderRadius:8,border:"1px solid var(--border-color)",background:"var(--bg-tertiary)",color:"var(--text-primary)",fontSize:16,fontFamily:"inherit"})})})}),Ag={height:36,borderRadius:6,border:"none",background:"var(--bg-tertiary)",fontFamily:"var(--font-mono)",fontWeight:500,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},fm={...Ag,minWidth:44,flexShrink:0,color:"var(--text-primary)",fontSize:13,padding:"0 12px"},_m={...Ag,minWidth:60,flexShrink:0,color:"var(--text-secondary)",fontSize:12,whiteSpace:"nowrap",padding:"0 12px"};function eo(){document.activeElement instanceof HTMLElement&&document.activeElement.blur()}function Oc(_,C,D){_.preventDefault(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),C(D);const A=()=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur()};requestAnimationFrame(A),setTimeout(A,0)}function gm({onShortcut:_,onCommandSelect:C,onCommandSend:D,visible:A=!0}){const{shortcuts:H,commands:N,isLoading:z}=h0();return!A||z?null:V.jsxs("div",{"data-testid":"console--command-picker",style:{background:"var(--bg-secondary)",borderTop:"1px solid var(--border-color)",flexShrink:0},children:[V.jsx("div",{"data-testid":"console--shortcut-bar","data-scrollable":!0,style:{height:"var(--keybar-height)",display:"flex",alignItems:"center",padding:"6px 12px",gap:6,overflowX:"auto",WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"},children:H.map(r=>V.jsx("button",{type:"button","data-testid":`console--button--shortcut-${r.label.toLowerCase().replace(/\s+/g,"-")}`,className:"cmd-picker-btn",onClick:u=>Oc(u,_,r.data),onTouchStart:eo,onMouseDown:u=>{u.preventDefault(),eo()},style:fm,children:r.label},r.label))}),V.jsx("div",{"data-testid":"console--command-buttons","data-scrollable":!0,style:{height:"var(--keybar-height)",display:"flex",alignItems:"center",padding:"6px 12px",gap:6,overflowX:"auto",WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"},children:N.map(r=>{const u=r.autoSend??!0;return V.jsx("button",{type:"button","data-testid":`console--button--command-${r.label.toLowerCase().replace(/\s+/g,"-")}`,className:"cmd-picker-btn",onClick:d=>{u?Oc(d,D,r.command):Oc(d,C,r.command+" ")},onTouchStart:eo,onMouseDown:d=>{d.preventDefault(),eo()},style:_m,children:r.label},r.label)})}),V.jsx("style",{children:`
53
+ `},x0={onDragStart(_){let{active:C}=_;return"Picked up draggable item "+C.id+"."},onDragOver(_){let{active:C,over:D}=_;return D?"Draggable item "+C.id+" was moved over droppable area "+D.id+".":"Draggable item "+C.id+" is no longer over a droppable area."},onDragEnd(_){let{active:C,over:D}=_;return D?"Draggable item "+C.id+" was dropped over droppable area "+D.id:"Draggable item "+C.id+" was dropped."},onDragCancel(_){let{active:C}=_;return"Dragging was cancelled. Draggable item "+C.id+" was dropped."}};function E0(_){let{announcements:C=x0,container:D,hiddenTextDescribedById:A,screenReaderInstructions:H=w0}=_;const{announce:N,announcement:z}=S0(),r=Nn("DndLiveRegion"),[u,d]=q.useState(!1);if(q.useEffect(()=>{d(!0)},[]),y0(q.useMemo(()=>({onDragStart(l){let{active:p}=l;N(C.onDragStart({active:p}))},onDragMove(l){let{active:p,over:b}=l;C.onDragMove&&N(C.onDragMove({active:p,over:b}))},onDragOver(l){let{active:p,over:b}=l;N(C.onDragOver({active:p,over:b}))},onDragEnd(l){let{active:p,over:b}=l;N(C.onDragEnd({active:p,over:b}))},onDragCancel(l){let{active:p,over:b}=l;N(C.onDragCancel({active:p,over:b}))}}),[N,C])),!u)return null;const g=xt.createElement(xt.Fragment,null,xt.createElement(m0,{id:A,value:H.draggable}),xt.createElement(b0,{id:r,announcement:z}));return D?Rn.createPortal(g,D):g}var bt;(function(_){_.DragStart="dragStart",_.DragMove="dragMove",_.DragEnd="dragEnd",_.DragCancel="dragCancel",_.DragOver="dragOver",_.RegisterDroppable="registerDroppable",_.SetDroppableDisabled="setDroppableDisabled",_.UnregisterDroppable="unregisterDroppable"})(bt||(bt={}));function no(){}function o_(_,C){return q.useMemo(()=>({sensor:_,options:C??{}}),[_,C])}function R0(){for(var _=arguments.length,C=new Array(_),D=0;D<_;D++)C[D]=arguments[D];return q.useMemo(()=>[...C].filter(A=>A!=null),[...C])}const xi=Object.freeze({x:0,y:0});function Q_(_,C){return Math.sqrt(Math.pow(_.x-C.x,2)+Math.pow(_.y-C.y,2))}function J_(_,C){let{data:{value:D}}=_,{data:{value:A}}=C;return D-A}function A0(_,C){let{data:{value:D}}=_,{data:{value:A}}=C;return A-D}function l_(_){let{left:C,top:D,height:A,width:H}=_;return[{x:C,y:D},{x:C+H,y:D},{x:C,y:D+A},{x:C+H,y:D+A}]}function eg(_,C){if(!_||_.length===0)return null;const[D]=_;return D[C]}function c_(_,C,D){return C===void 0&&(C=_.left),D===void 0&&(D=_.top),{x:C+_.width*.5,y:D+_.height*.5}}const tg=_=>{let{collisionRect:C,droppableRects:D,droppableContainers:A}=_;const H=c_(C,C.left,C.top),N=[];for(const z of A){const{id:r}=z,u=D.get(r);if(u){const d=Q_(c_(u),H);N.push({id:r,data:{droppableContainer:z,value:d}})}}return N.sort(J_)},D0=_=>{let{collisionRect:C,droppableRects:D,droppableContainers:A}=_;const H=l_(C),N=[];for(const z of A){const{id:r}=z,u=D.get(r);if(u){const d=l_(u),g=H.reduce((p,b,w)=>p+Q_(d[w],b),0),l=Number((g/4).toFixed(4));N.push({id:r,data:{droppableContainer:z,value:l}})}}return N.sort(J_)};function L0(_,C){const D=Math.max(C.top,_.top),A=Math.max(C.left,_.left),H=Math.min(C.left+C.width,_.left+_.width),N=Math.min(C.top+C.height,_.top+_.height),z=H-A,r=N-D;if(A<H&&D<N){const u=C.width*C.height,d=_.width*_.height,g=z*r,l=g/(u+d-g);return Number(l.toFixed(4))}return 0}const T0=_=>{let{collisionRect:C,droppableRects:D,droppableContainers:A}=_;const H=[];for(const N of A){const{id:z}=N,r=D.get(z);if(r){const u=L0(r,C);u>0&&H.push({id:z,data:{droppableContainer:N,value:u}})}}return H.sort(A0)};function M0(_,C,D){return{..._,scaleX:C&&D?C.width/D.width:1,scaleY:C&&D?C.height/D.height:1}}function ig(_,C){return _&&C?{x:_.left-C.left,y:_.top-C.top}:xi}function k0(_){return function(D){for(var A=arguments.length,H=new Array(A>1?A-1:0),N=1;N<A;N++)H[N-1]=arguments[N];return H.reduce((z,r)=>({...z,top:z.top+_*r.y,bottom:z.bottom+_*r.y,left:z.left+_*r.x,right:z.right+_*r.x}),{...D})}}const O0=k0(1);function B0(_){if(_.startsWith("matrix3d(")){const C=_.slice(9,-1).split(/, /);return{x:+C[12],y:+C[13],scaleX:+C[0],scaleY:+C[5]}}else if(_.startsWith("matrix(")){const C=_.slice(7,-1).split(/, /);return{x:+C[4],y:+C[5],scaleX:+C[0],scaleY:+C[3]}}return null}function H0(_,C,D){const A=B0(C);if(!A)return _;const{scaleX:H,scaleY:N,x:z,y:r}=A,u=_.left-z-(1-H)*parseFloat(D),d=_.top-r-(1-N)*parseFloat(D.slice(D.indexOf(" ")+1)),g=H?_.width/H:_.width,l=N?_.height/N:_.height;return{width:g,height:l,top:d,right:u+g,bottom:d+l,left:u}}const z0={ignoreTransform:!1};function kr(_,C){C===void 0&&(C=z0);let D=_.getBoundingClientRect();if(C.ignoreTransform){const{transform:d,transformOrigin:g}=Vt(_).getComputedStyle(_);d&&(D=H0(D,d,g))}const{top:A,left:H,width:N,height:z,bottom:r,right:u}=D;return{top:A,left:H,width:N,height:z,bottom:r,right:u}}function u_(_){return kr(_,{ignoreTransform:!0})}function I0(_){const C=_.innerWidth,D=_.innerHeight;return{top:0,left:0,right:C,bottom:D,width:C,height:D}}function N0(_,C){return C===void 0&&(C=Vt(_).getComputedStyle(_)),C.position==="fixed"}function U0(_,C){C===void 0&&(C=Vt(_).getComputedStyle(_));const D=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(H=>{const N=C[H];return typeof N=="string"?D.test(N):!1})}function co(_,C){const D=[];function A(H){if(C!=null&&D.length>=C||!H)return D;if(Xc(H)&&H.scrollingElement!=null&&!D.includes(H.scrollingElement))return D.push(H.scrollingElement),D;if(!zn(H)||X_(H)||D.includes(H))return D;const N=Vt(_).getComputedStyle(H);return H!==_&&U0(H,N)&&D.push(H),N0(H,N)?D:A(H.parentNode)}return _?A(_):D}function sg(_){const[C]=co(_,1);return C??null}function Lc(_){return!lo||!_?null:Tr(_)?_:Vc(_)?Xc(_)||_===Mr(_).scrollingElement?window:zn(_)?_:null:null}function rg(_){return Tr(_)?_.scrollX:_.scrollLeft}function ng(_){return Tr(_)?_.scrollY:_.scrollTop}function Fc(_){return{x:rg(_),y:ng(_)}}var wt;(function(_){_[_.Forward=1]="Forward",_[_.Backward=-1]="Backward"})(wt||(wt={}));function ag(_){return!lo||!_?!1:_===document.scrollingElement}function og(_){const C={x:0,y:0},D=ag(_)?{height:window.innerHeight,width:window.innerWidth}:{height:_.clientHeight,width:_.clientWidth},A={x:_.scrollWidth-D.width,y:_.scrollHeight-D.height},H=_.scrollTop<=C.y,N=_.scrollLeft<=C.x,z=_.scrollTop>=A.y,r=_.scrollLeft>=A.x;return{isTop:H,isLeft:N,isBottom:z,isRight:r,maxScroll:A,minScroll:C}}const j0={x:.2,y:.2};function P0(_,C,D,A,H){let{top:N,left:z,right:r,bottom:u}=D;A===void 0&&(A=10),H===void 0&&(H=j0);const{isTop:d,isBottom:g,isLeft:l,isRight:p}=og(_),b={x:0,y:0},w={x:0,y:0},f={height:C.height*H.y,width:C.width*H.x};return!d&&N<=C.top+f.height?(b.y=wt.Backward,w.y=A*Math.abs((C.top+f.height-N)/f.height)):!g&&u>=C.bottom-f.height&&(b.y=wt.Forward,w.y=A*Math.abs((C.bottom-f.height-u)/f.height)),!p&&r>=C.right-f.width?(b.x=wt.Forward,w.x=A*Math.abs((C.right-f.width-r)/f.width)):!l&&z<=C.left+f.width&&(b.x=wt.Backward,w.x=A*Math.abs((C.left+f.width-z)/f.width)),{direction:b,speed:w}}function F0(_){if(_===document.scrollingElement){const{innerWidth:N,innerHeight:z}=window;return{top:0,left:0,right:N,bottom:z,width:N,height:z}}const{top:C,left:D,right:A,bottom:H}=_.getBoundingClientRect();return{top:C,left:D,right:A,bottom:H,width:_.clientWidth,height:_.clientHeight}}function lg(_){return _.reduce((C,D)=>Dr(C,Fc(D)),xi)}function q0(_){return _.reduce((C,D)=>C+rg(D),0)}function W0(_){return _.reduce((C,D)=>C+ng(D),0)}function $0(_,C){if(C===void 0&&(C=kr),!_)return;const{top:D,left:A,bottom:H,right:N}=C(_);sg(_)&&(H<=0||N<=0||D>=window.innerHeight||A>=window.innerWidth)&&_.scrollIntoView({block:"center",inline:"center"})}const G0=[["x",["left","right"],q0],["y",["top","bottom"],W0]];class Qc{constructor(C,D){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const A=co(D),H=lg(A);this.rect={...C},this.width=C.width,this.height=C.height;for(const[N,z,r]of G0)for(const u of z)Object.defineProperty(this,u,{get:()=>{const d=r(A),g=H[N]-d;return this.rect[u]+g},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Dn{constructor(C){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(D=>{var A;return(A=this.target)==null?void 0:A.removeEventListener(...D)})},this.target=C}add(C,D,A){var H;(H=this.target)==null||H.addEventListener(C,D,A),this.listeners.push([C,D,A])}}function Y0(_){const{EventTarget:C}=Vt(_);return _ instanceof C?_:Mr(_)}function Tc(_,C){const D=Math.abs(_.x),A=Math.abs(_.y);return typeof C=="number"?Math.sqrt(D**2+A**2)>C:"x"in C&&"y"in C?D>C.x&&A>C.y:"x"in C?D>C.x:"y"in C?A>C.y:!1}var mi;(function(_){_.Click="click",_.DragStart="dragstart",_.Keydown="keydown",_.ContextMenu="contextmenu",_.Resize="resize",_.SelectionChange="selectionchange",_.VisibilityChange="visibilitychange"})(mi||(mi={}));function h_(_){_.preventDefault()}function V0(_){_.stopPropagation()}var Ne;(function(_){_.Space="Space",_.Down="ArrowDown",_.Right="ArrowRight",_.Left="ArrowLeft",_.Up="ArrowUp",_.Esc="Escape",_.Enter="Enter",_.Tab="Tab"})(Ne||(Ne={}));const cg={start:[Ne.Space,Ne.Enter],cancel:[Ne.Esc],end:[Ne.Space,Ne.Enter,Ne.Tab]},X0=(_,C)=>{let{currentCoordinates:D}=C;switch(_.code){case Ne.Right:return{...D,x:D.x+25};case Ne.Left:return{...D,x:D.x-25};case Ne.Down:return{...D,y:D.y+25};case Ne.Up:return{...D,y:D.y-25}}};class Jc{constructor(C){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=C;const{event:{target:D}}=C;this.props=C,this.listeners=new Dn(Mr(D)),this.windowListeners=new Dn(Vt(D)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(mi.Resize,this.handleCancel),this.windowListeners.add(mi.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(mi.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:C,onStart:D}=this.props,A=C.node.current;A&&$0(A),D(xi)}handleKeyDown(C){if(Zc(C)){const{active:D,context:A,options:H}=this.props,{keyboardCodes:N=cg,coordinateGetter:z=X0,scrollBehavior:r="smooth"}=H,{code:u}=C;if(N.end.includes(u)){this.handleEnd(C);return}if(N.cancel.includes(u)){this.handleCancel(C);return}const{collisionRect:d}=A.current,g=d?{x:d.left,y:d.top}:xi;this.referenceCoordinates||(this.referenceCoordinates=g);const l=z(C,{active:D,context:A.current,currentCoordinates:g});if(l){const p=On(l,g),b={x:0,y:0},{scrollableAncestors:w}=A.current;for(const f of w){const n=C.code,{isTop:a,isRight:o,isLeft:c,isBottom:S,maxScroll:x,minScroll:m}=og(f),E=F0(f),y={x:Math.min(n===Ne.Right?E.right-E.width/2:E.right,Math.max(n===Ne.Right?E.left:E.left+E.width/2,l.x)),y:Math.min(n===Ne.Down?E.bottom-E.height/2:E.bottom,Math.max(n===Ne.Down?E.top:E.top+E.height/2,l.y))},R=n===Ne.Right&&!o||n===Ne.Left&&!c,T=n===Ne.Down&&!S||n===Ne.Up&&!a;if(R&&y.x!==l.x){const I=f.scrollLeft+p.x,B=n===Ne.Right&&I<=x.x||n===Ne.Left&&I>=m.x;if(B&&!p.y){f.scrollTo({left:I,behavior:r});return}B?b.x=f.scrollLeft-I:b.x=n===Ne.Right?f.scrollLeft-x.x:f.scrollLeft-m.x,b.x&&f.scrollBy({left:-b.x,behavior:r});break}else if(T&&y.y!==l.y){const I=f.scrollTop+p.y,B=n===Ne.Down&&I<=x.y||n===Ne.Up&&I>=m.y;if(B&&!p.x){f.scrollTo({top:I,behavior:r});return}B?b.y=f.scrollTop-I:b.y=n===Ne.Down?f.scrollTop-x.y:f.scrollTop-m.y,b.y&&f.scrollBy({top:-b.y,behavior:r});break}}this.handleMove(C,Dr(On(l,this.referenceCoordinates),b))}}}handleMove(C,D){const{onMove:A}=this.props;C.preventDefault(),A(D)}handleEnd(C){const{onEnd:D}=this.props;C.preventDefault(),this.detach(),D()}handleCancel(C){const{onCancel:D}=this.props;C.preventDefault(),this.detach(),D()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Jc.activators=[{eventName:"onKeyDown",handler:(_,C,D)=>{let{keyboardCodes:A=cg,onActivation:H}=C,{active:N}=D;const{code:z}=_.nativeEvent;if(A.start.includes(z)){const r=N.activatorNode.current;return r&&_.target!==r?!1:(_.preventDefault(),H==null||H({event:_.nativeEvent}),!0)}return!1}}];function d_(_){return!!(_&&"distance"in _)}function f_(_){return!!(_&&"delay"in _)}class eu{constructor(C,D,A){var H;A===void 0&&(A=Y0(C.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=C,this.events=D;const{event:N}=C,{target:z}=N;this.props=C,this.events=D,this.document=Mr(z),this.documentListeners=new Dn(this.document),this.listeners=new Dn(A),this.windowListeners=new Dn(Vt(z)),this.initialCoordinates=(H=Pc(N))!=null?H:xi,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:C,props:{options:{activationConstraint:D,bypassActivationConstraint:A}}}=this;if(this.listeners.add(C.move.name,this.handleMove,{passive:!1}),this.listeners.add(C.end.name,this.handleEnd),C.cancel&&this.listeners.add(C.cancel.name,this.handleCancel),this.windowListeners.add(mi.Resize,this.handleCancel),this.windowListeners.add(mi.DragStart,h_),this.windowListeners.add(mi.VisibilityChange,this.handleCancel),this.windowListeners.add(mi.ContextMenu,h_),this.documentListeners.add(mi.Keydown,this.handleKeydown),D){if(A!=null&&A({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(f_(D)){this.timeoutId=setTimeout(this.handleStart,D.delay),this.handlePending(D);return}if(d_(D)){this.handlePending(D);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(C,D){const{active:A,onPending:H}=this.props;H(A,C,this.initialCoordinates,D)}handleStart(){const{initialCoordinates:C}=this,{onStart:D}=this.props;C&&(this.activated=!0,this.documentListeners.add(mi.Click,V0,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(mi.SelectionChange,this.removeTextSelection),D(C))}handleMove(C){var D;const{activated:A,initialCoordinates:H,props:N}=this,{onMove:z,options:{activationConstraint:r}}=N;if(!H)return;const u=(D=Pc(C))!=null?D:xi,d=On(H,u);if(!A&&r){if(d_(r)){if(r.tolerance!=null&&Tc(d,r.tolerance))return this.handleCancel();if(Tc(d,r.distance))return this.handleStart()}if(f_(r)&&Tc(d,r.tolerance))return this.handleCancel();this.handlePending(r,d);return}C.cancelable&&C.preventDefault(),z(u)}handleEnd(){const{onAbort:C,onEnd:D}=this.props;this.detach(),this.activated||C(this.props.active),D()}handleCancel(){const{onAbort:C,onCancel:D}=this.props;this.detach(),this.activated||C(this.props.active),D()}handleKeydown(C){C.code===Ne.Esc&&this.handleCancel()}removeTextSelection(){var C;(C=this.document.getSelection())==null||C.removeAllRanges()}}const K0={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class tu extends eu{constructor(C){const{event:D}=C,A=Mr(D.target);super(C,K0,A)}}tu.activators=[{eventName:"onPointerDown",handler:(_,C)=>{let{nativeEvent:D}=_,{onActivation:A}=C;return!D.isPrimary||D.button!==0?!1:(A==null||A({event:D}),!0)}}];const Z0={move:{name:"mousemove"},end:{name:"mouseup"}};var qc;(function(_){_[_.RightClick=2]="RightClick"})(qc||(qc={}));class Q0 extends eu{constructor(C){super(C,Z0,Mr(C.event.target))}}Q0.activators=[{eventName:"onMouseDown",handler:(_,C)=>{let{nativeEvent:D}=_,{onActivation:A}=C;return D.button===qc.RightClick?!1:(A==null||A({event:D}),!0)}}];const Mc={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class J0 extends eu{constructor(C){super(C,Mc)}static setup(){return window.addEventListener(Mc.move.name,C,{capture:!1,passive:!1}),function(){window.removeEventListener(Mc.move.name,C)};function C(){}}}J0.activators=[{eventName:"onTouchStart",handler:(_,C)=>{let{nativeEvent:D}=_,{onActivation:A}=C;const{touches:H}=D;return H.length>1?!1:(A==null||A({event:D}),!0)}}];var Ln;(function(_){_[_.Pointer=0]="Pointer",_[_.DraggableRect=1]="DraggableRect"})(Ln||(Ln={}));var ao;(function(_){_[_.TreeOrder=0]="TreeOrder",_[_.ReversedTreeOrder=1]="ReversedTreeOrder"})(ao||(ao={}));function e1(_){let{acceleration:C,activator:D=Ln.Pointer,canScroll:A,draggingRect:H,enabled:N,interval:z=5,order:r=ao.TreeOrder,pointerCoordinates:u,scrollableAncestors:d,scrollableAncestorRects:g,delta:l,threshold:p}=_;const b=i1({delta:l,disabled:!N}),[w,f]=f0(),n=q.useRef({x:0,y:0}),a=q.useRef({x:0,y:0}),o=q.useMemo(()=>{switch(D){case Ln.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case Ln.DraggableRect:return H}},[D,H,u]),c=q.useRef(null),S=q.useCallback(()=>{const m=c.current;if(!m)return;const E=n.current.x*a.current.x,y=n.current.y*a.current.y;m.scrollBy(E,y)},[]),x=q.useMemo(()=>r===ao.TreeOrder?[...d].reverse():d,[r,d]);q.useEffect(()=>{if(!N||!d.length||!o){f();return}for(const m of x){if((A==null?void 0:A(m))===!1)continue;const E=d.indexOf(m),y=g[E];if(!y)continue;const{direction:R,speed:T}=P0(m,y,o,C,p);for(const I of["x","y"])b[I][R[I]]||(T[I]=0,R[I]=0);if(T.x>0||T.y>0){f(),c.current=m,w(S,z),n.current=T,a.current=R;return}}n.current={x:0,y:0},a.current={x:0,y:0},f()},[C,S,A,f,N,z,JSON.stringify(o),JSON.stringify(b),w,d,x,g,JSON.stringify(p)])}const t1={x:{[wt.Backward]:!1,[wt.Forward]:!1},y:{[wt.Backward]:!1,[wt.Forward]:!1}};function i1(_){let{delta:C,disabled:D}=_;const A=jc(C);return In(H=>{if(D||!A||!H)return t1;const N={x:Math.sign(C.x-A.x),y:Math.sign(C.y-A.y)};return{x:{[wt.Backward]:H.x[wt.Backward]||N.x===-1,[wt.Forward]:H.x[wt.Forward]||N.x===1},y:{[wt.Backward]:H.y[wt.Backward]||N.y===-1,[wt.Forward]:H.y[wt.Forward]||N.y===1}}},[D,C,A])}function s1(_,C){const D=C!=null?_.get(C):void 0,A=D?D.node.current:null;return In(H=>{var N;return C==null?null:(N=A??H)!=null?N:null},[A,C])}function r1(_,C){return q.useMemo(()=>_.reduce((D,A)=>{const{sensor:H}=A,N=H.activators.map(z=>({eventName:z.eventName,handler:C(z.handler,A)}));return[...D,...N]},[]),[_,C])}var Hn;(function(_){_[_.Always=0]="Always",_[_.BeforeDragging=1]="BeforeDragging",_[_.WhileDragging=2]="WhileDragging"})(Hn||(Hn={}));var Wc;(function(_){_.Optimized="optimized"})(Wc||(Wc={}));const __=new Map;function n1(_,C){let{dragging:D,dependencies:A,config:H}=C;const[N,z]=q.useState(null),{frequency:r,measure:u,strategy:d}=H,g=q.useRef(_),l=n(),p=kn(l),b=q.useCallback(function(a){a===void 0&&(a=[]),!p.current&&z(o=>o===null?a:o.concat(a.filter(c=>!o.includes(c))))},[p]),w=q.useRef(null),f=In(a=>{if(l&&!D)return __;if(!a||a===__||g.current!==_||N!=null){const o=new Map;for(let c of _){if(!c)continue;if(N&&N.length>0&&!N.includes(c.id)&&c.rect.current){o.set(c.id,c.rect.current);continue}const S=c.node.current,x=S?new Qc(u(S),S):null;c.rect.current=x,x&&o.set(c.id,x)}return o}return a},[_,N,D,l,u]);return q.useEffect(()=>{g.current=_},[_]),q.useEffect(()=>{l||b()},[D,l]),q.useEffect(()=>{N&&N.length>0&&z(null)},[JSON.stringify(N)]),q.useEffect(()=>{l||typeof r!="number"||w.current!==null||(w.current=setTimeout(()=>{b(),w.current=null},r))},[r,l,b,...A]),{droppableRects:f,measureDroppableContainers:b,measuringScheduled:N!=null};function n(){switch(d){case Hn.Always:return!1;case Hn.BeforeDragging:return D;default:return!D}}}function ug(_,C){return In(D=>_?D||(typeof C=="function"?C(_):_):null,[C,_])}function a1(_,C){return ug(_,C)}function o1(_){let{callback:C,disabled:D}=_;const A=Kc(C),H=q.useMemo(()=>{if(D||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:N}=window;return new N(A)},[A,D]);return q.useEffect(()=>()=>H==null?void 0:H.disconnect(),[H]),H}function uo(_){let{callback:C,disabled:D}=_;const A=Kc(C),H=q.useMemo(()=>{if(D||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:N}=window;return new N(A)},[D]);return q.useEffect(()=>()=>H==null?void 0:H.disconnect(),[H]),H}function l1(_){return new Qc(kr(_),_)}function g_(_,C,D){C===void 0&&(C=l1);const[A,H]=q.useState(null);function N(){H(u=>{if(!_)return null;if(_.isConnected===!1){var d;return(d=u??D)!=null?d:null}const g=C(_);return JSON.stringify(u)===JSON.stringify(g)?u:g})}const z=o1({callback(u){if(_)for(const d of u){const{type:g,target:l}=d;if(g==="childList"&&l instanceof HTMLElement&&l.contains(_)){N();break}}}}),r=uo({callback:N});return Ti(()=>{N(),_?(r==null||r.observe(_),z==null||z.observe(document.body,{childList:!0,subtree:!0})):(r==null||r.disconnect(),z==null||z.disconnect())},[_]),A}function c1(_){const C=ug(_);return ig(_,C)}const v_=[];function u1(_){const C=q.useRef(_),D=In(A=>_?A&&A!==v_&&_&&C.current&&_.parentNode===C.current.parentNode?A:co(_):v_,[_]);return q.useEffect(()=>{C.current=_},[_]),D}function h1(_){const[C,D]=q.useState(null),A=q.useRef(_),H=q.useCallback(N=>{const z=Lc(N.target);z&&D(r=>r?(r.set(z,Fc(z)),new Map(r)):null)},[]);return q.useEffect(()=>{const N=A.current;if(_!==N){z(N);const r=_.map(u=>{const d=Lc(u);return d?(d.addEventListener("scroll",H,{passive:!0}),[d,Fc(d)]):null}).filter(u=>u!=null);D(r.length?new Map(r):null),A.current=_}return()=>{z(_),z(N)};function z(r){r.forEach(u=>{const d=Lc(u);d==null||d.removeEventListener("scroll",H)})}},[H,_]),q.useMemo(()=>_.length?C?Array.from(C.values()).reduce((N,z)=>Dr(N,z),xi):lg(_):xi,[_,C])}function p_(_,C){C===void 0&&(C=[]);const D=q.useRef(null);return q.useEffect(()=>{D.current=null},C),q.useEffect(()=>{const A=_!==xi;A&&!D.current&&(D.current=_),!A&&D.current&&(D.current=null)},[_]),D.current?On(_,D.current):xi}function d1(_){q.useEffect(()=>{if(!lo)return;const C=_.map(D=>{let{sensor:A}=D;return A.setup==null?void 0:A.setup()});return()=>{for(const D of C)D==null||D()}},_.map(C=>{let{sensor:D}=C;return D}))}function f1(_,C){return q.useMemo(()=>_.reduce((D,A)=>{let{eventName:H,handler:N}=A;return D[H]=z=>{N(z,C)},D},{}),[_,C])}function hg(_){return q.useMemo(()=>_?I0(_):null,[_])}const m_=[];function _1(_,C){C===void 0&&(C=kr);const[D]=_,A=hg(D?Vt(D):null),[H,N]=q.useState(m_);function z(){N(()=>_.length?_.map(u=>ag(u)?A:new Qc(C(u),u)):m_)}const r=uo({callback:z});return Ti(()=>{r==null||r.disconnect(),z(),_.forEach(u=>r==null?void 0:r.observe(u))},[_]),H}function g1(_){if(!_)return null;if(_.children.length>1)return _;const C=_.children[0];return zn(C)?C:_}function v1(_){let{measure:C}=_;const[D,A]=q.useState(null),H=q.useCallback(d=>{for(const{target:g}of d)if(zn(g)){A(l=>{const p=C(g);return l?{...l,width:p.width,height:p.height}:p});break}},[C]),N=uo({callback:H}),z=q.useCallback(d=>{const g=g1(d);N==null||N.disconnect(),g&&(N==null||N.observe(g)),A(g?C(g):null)},[C,N]),[r,u]=ro(z);return q.useMemo(()=>({nodeRef:r,rect:D,setRef:u}),[D,r,u])}const p1=[{sensor:tu,options:{}},{sensor:Jc,options:{}}],m1={current:{}},io={draggable:{measure:u_},droppable:{measure:u_,strategy:Hn.WhileDragging,frequency:Wc.Optimized},dragOverlay:{measure:kr}};class Tn extends Map{get(C){var D;return C!=null&&(D=super.get(C))!=null?D:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(C=>{let{disabled:D}=C;return!D})}getNodeFor(C){var D,A;return(D=(A=this.get(C))==null?void 0:A.node.current)!=null?D:void 0}}const b1={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Tn,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:no},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:io,measureDroppableContainers:no,windowRect:null,measuringScheduled:!1},S1={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:no,draggableNodes:new Map,over:null,measureDroppableContainers:no},ho=q.createContext(S1),dg=q.createContext(b1);function y1(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Tn}}}function C1(_,C){switch(C.type){case bt.DragStart:return{..._,draggable:{..._.draggable,initialCoordinates:C.initialCoordinates,active:C.active}};case bt.DragMove:return _.draggable.active==null?_:{..._,draggable:{..._.draggable,translate:{x:C.coordinates.x-_.draggable.initialCoordinates.x,y:C.coordinates.y-_.draggable.initialCoordinates.y}}};case bt.DragEnd:case bt.DragCancel:return{..._,draggable:{..._.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case bt.RegisterDroppable:{const{element:D}=C,{id:A}=D,H=new Tn(_.droppable.containers);return H.set(A,D),{..._,droppable:{..._.droppable,containers:H}}}case bt.SetDroppableDisabled:{const{id:D,key:A,disabled:H}=C,N=_.droppable.containers.get(D);if(!N||A!==N.key)return _;const z=new Tn(_.droppable.containers);return z.set(D,{...N,disabled:H}),{..._,droppable:{..._.droppable,containers:z}}}case bt.UnregisterDroppable:{const{id:D,key:A}=C,H=_.droppable.containers.get(D);if(!H||A!==H.key)return _;const N=new Tn(_.droppable.containers);return N.delete(D),{..._,droppable:{..._.droppable,containers:N}}}default:return _}}function w1(_){let{disabled:C}=_;const{active:D,activatorEvent:A,draggableNodes:H}=q.useContext(ho),N=jc(A),z=jc(D==null?void 0:D.id);return q.useEffect(()=>{if(!C&&!A&&N&&z!=null){if(!Zc(N)||document.activeElement===N.target)return;const r=H.get(z);if(!r)return;const{activatorNode:u,node:d}=r;if(!u.current&&!d.current)return;requestAnimationFrame(()=>{for(const g of[u.current,d.current]){if(!g)continue;const l=v0(g);if(l){l.focus();break}}})}},[A,C,H,z,N]),null}function x1(_,C){let{transform:D,...A}=C;return _!=null&&_.length?_.reduce((H,N)=>N({transform:H,...A}),D):D}function E1(_){return q.useMemo(()=>({draggable:{...io.draggable,..._==null?void 0:_.draggable},droppable:{...io.droppable,..._==null?void 0:_.droppable},dragOverlay:{...io.dragOverlay,..._==null?void 0:_.dragOverlay}}),[_==null?void 0:_.draggable,_==null?void 0:_.droppable,_==null?void 0:_.dragOverlay])}function R1(_){let{activeNode:C,measure:D,initialRect:A,config:H=!0}=_;const N=q.useRef(!1),{x:z,y:r}=typeof H=="boolean"?{x:H,y:H}:H;Ti(()=>{if(!z&&!r||!C){N.current=!1;return}if(N.current||!A)return;const d=C==null?void 0:C.node.current;if(!d||d.isConnected===!1)return;const g=D(d),l=ig(g,A);if(z||(l.x=0),r||(l.y=0),N.current=!0,Math.abs(l.x)>0||Math.abs(l.y)>0){const p=sg(d);p&&p.scrollBy({top:l.y,left:l.x})}},[C,z,r,A,D])}const fg=q.createContext({...xi,scaleX:1,scaleY:1});var ws;(function(_){_[_.Uninitialized=0]="Uninitialized",_[_.Initializing=1]="Initializing",_[_.Initialized=2]="Initialized"})(ws||(ws={}));const _g=q.memo(function(C){var D,A,H,N;let{id:z,accessibility:r,autoScroll:u=!0,children:d,sensors:g=p1,collisionDetection:l=T0,measuring:p,modifiers:b,...w}=C;const f=q.useReducer(C1,void 0,y1),[n,a]=f,[o,c]=C0(),[S,x]=q.useState(ws.Uninitialized),m=S===ws.Initialized,{draggable:{active:E,nodes:y,translate:R},droppable:{containers:T}}=n,I=E!=null?y.get(E):null,B=q.useRef({initial:null,translated:null}),M=q.useMemo(()=>{var it;return E!=null?{id:E,data:(it=I==null?void 0:I.data)!=null?it:m1,rect:B}:null},[E,I]),$=q.useRef(null),[Y,G]=q.useState(null),[W,X]=q.useState(null),O=kn(w,Object.values(w)),F=Nn("DndDescribedBy",z),k=q.useMemo(()=>T.getEnabled(),[T]),P=E1(p),{droppableRects:Q,measureDroppableContainers:ee,measuringScheduled:he}=n1(k,{dragging:m,dependencies:[R.x,R.y],config:P.droppable}),oe=s1(y,E),K=q.useMemo(()=>W?Pc(W):null,[W]),U=Mi(),ne=a1(oe,P.draggable.measure);R1({activeNode:E!=null?y.get(E):null,config:U.layoutShiftCompensation,initialRect:ne,measure:P.draggable.measure});const te=g_(oe,P.draggable.measure,ne),_e=g_(oe?oe.parentElement:null),fe=q.useRef({activatorEvent:null,active:null,activeNode:oe,collisionRect:null,collisions:null,droppableRects:Q,draggableNodes:y,draggingNode:null,draggingNodeRect:null,droppableContainers:T,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),be=T.getNodeFor((D=fe.current.over)==null?void 0:D.id),ge=v1({measure:P.dragOverlay.measure}),Te=(A=ge.nodeRef.current)!=null?A:oe,Pe=m?(H=ge.rect)!=null?H:te:null,Se=!!(ge.nodeRef.current&&ge.rect),Mt=c1(Se?null:te),It=hg(Te?Vt(Te):null),xe=u1(m?be??oe:null),Ee=_1(xe),Ae=x1(b,{transform:{x:R.x-Mt.x,y:R.y-Mt.y,scaleX:1,scaleY:1},activatorEvent:W,active:M,activeNodeRect:te,containerNodeRect:_e,draggingNodeRect:Pe,over:fe.current.over,overlayNodeRect:ge.rect,scrollableAncestors:xe,scrollableAncestorRects:Ee,windowRect:It}),ve=K?Dr(K,R):null,we=h1(xe),Ze=p_(we),qe=p_(we,[te]),gt=Dr(Ae,Ze),Qe=Pe?O0(Pe,Ae):null,ct=M&&Qe?l({active:M,collisionRect:Qe,droppableRects:Q,droppableContainers:k,pointerCoordinates:ve}):null,Je=eg(ct,"id"),[ke,De]=q.useState(null),Xt=Se?Ae:Dr(Ae,qe),ut=M0(Xt,(N=ke==null?void 0:ke.rect)!=null?N:null,te),Et=q.useRef(null),vt=q.useCallback((it,rt)=>{let{sensor:St,options:Nt}=rt;if($.current==null)return;const Ut=y.get($.current);if(!Ut)return;const kt=it.nativeEvent,jt=new St({active:$.current,activeNode:Ut,event:kt,options:Nt,context:fe,onAbort(pt){if(!y.get(pt))return;const{onDragAbort:Kt}=O.current,ni={id:pt};Kt==null||Kt(ni),o({type:"onDragAbort",event:ni})},onPending(pt,bi,Kt,ni){if(!y.get(pt))return;const{onDragPending:Oi}=O.current,Si={id:pt,constraint:bi,initialCoordinates:Kt,offset:ni};Oi==null||Oi(Si),o({type:"onDragPending",event:Si})},onStart(pt){const bi=$.current;if(bi==null)return;const Kt=y.get(bi);if(!Kt)return;const{onDragStart:ni}=O.current,ki={activatorEvent:kt,active:{id:bi,data:Kt.data,rect:B}};Rn.unstable_batchedUpdates(()=>{ni==null||ni(ki),x(ws.Initializing),a({type:bt.DragStart,initialCoordinates:pt,active:bi}),o({type:"onDragStart",event:ki}),G(Et.current),X(kt)})},onMove(pt){a({type:bt.DragMove,coordinates:pt})},onEnd:ri(bt.DragEnd),onCancel:ri(bt.DragCancel)});Et.current=jt;function ri(pt){return async function(){const{active:Kt,collisions:ni,over:ki,scrollAdjustedTranslate:Oi}=fe.current;let Si=null;if(Kt&&Oi){const{cancelDrop:Ji}=O.current;Si={activatorEvent:kt,active:Kt,collisions:ni,delta:Oi,over:ki},pt===bt.DragEnd&&typeof Ji=="function"&&await Promise.resolve(Ji(Si))&&(pt=bt.DragCancel)}$.current=null,Rn.unstable_batchedUpdates(()=>{a({type:pt}),x(ws.Uninitialized),De(null),G(null),X(null),Et.current=null;const Ji=pt===bt.DragEnd?"onDragEnd":"onDragCancel";if(Si){const ai=O.current[Ji];ai==null||ai(Si),o({type:Ji,event:Si})}})}}},[y]),Qi=q.useCallback((it,rt)=>(St,Nt)=>{const Ut=St.nativeEvent,kt=y.get(Nt);if($.current!==null||!kt||Ut.dndKit||Ut.defaultPrevented)return;const jt={active:kt};it(St,rt.options,jt)===!0&&(Ut.dndKit={capturedBy:rt.sensor},$.current=Nt,vt(St,rt))},[y,vt]),qs=r1(g,Qi);d1(g),Ti(()=>{te&&S===ws.Initializing&&x(ws.Initialized)},[te,S]),q.useEffect(()=>{const{onDragMove:it}=O.current,{active:rt,activatorEvent:St,collisions:Nt,over:Ut}=fe.current;if(!rt||!St)return;const kt={active:rt,activatorEvent:St,collisions:Nt,delta:{x:gt.x,y:gt.y},over:Ut};Rn.unstable_batchedUpdates(()=>{it==null||it(kt),o({type:"onDragMove",event:kt})})},[gt.x,gt.y]),q.useEffect(()=>{const{active:it,activatorEvent:rt,collisions:St,droppableContainers:Nt,scrollAdjustedTranslate:Ut}=fe.current;if(!it||$.current==null||!rt||!Ut)return;const{onDragOver:kt}=O.current,jt=Nt.get(Je),ri=jt&&jt.rect.current?{id:jt.id,rect:jt.rect.current,data:jt.data,disabled:jt.disabled}:null,pt={active:it,activatorEvent:rt,collisions:St,delta:{x:Ut.x,y:Ut.y},over:ri};Rn.unstable_batchedUpdates(()=>{De(ri),kt==null||kt(pt),o({type:"onDragOver",event:pt})})},[Je]),Ti(()=>{fe.current={activatorEvent:W,active:M,activeNode:oe,collisionRect:Qe,collisions:ct,droppableRects:Q,draggableNodes:y,draggingNode:Te,draggingNodeRect:Pe,droppableContainers:T,over:ke,scrollableAncestors:xe,scrollAdjustedTranslate:gt},B.current={initial:Pe,translated:Qe}},[M,oe,ct,Qe,y,Te,Pe,Q,T,ke,xe,gt]),e1({...U,delta:R,draggingRect:Qe,pointerCoordinates:ve,scrollableAncestors:xe,scrollableAncestorRects:Ee});const Or=q.useMemo(()=>({active:M,activeNode:oe,activeNodeRect:te,activatorEvent:W,collisions:ct,containerNodeRect:_e,dragOverlay:ge,draggableNodes:y,droppableContainers:T,droppableRects:Q,over:ke,measureDroppableContainers:ee,scrollableAncestors:xe,scrollableAncestorRects:Ee,measuringConfiguration:P,measuringScheduled:he,windowRect:It}),[M,oe,te,W,ct,_e,ge,y,T,Q,ke,ee,xe,Ee,P,he,It]),Ei=q.useMemo(()=>({activatorEvent:W,activators:qs,active:M,activeNodeRect:te,ariaDescribedById:{draggable:F},dispatch:a,draggableNodes:y,over:ke,measureDroppableContainers:ee}),[W,qs,M,te,a,F,y,ke,ee]);return xt.createElement(Z_.Provider,{value:c},xt.createElement(ho.Provider,{value:Ei},xt.createElement(dg.Provider,{value:Or},xt.createElement(fg.Provider,{value:ut},d)),xt.createElement(w1,{disabled:(r==null?void 0:r.restoreFocus)===!1})),xt.createElement(E0,{...r,hiddenTextDescribedById:F}));function Mi(){const it=(Y==null?void 0:Y.autoScrollEnabled)===!1,rt=typeof u=="object"?u.enabled===!1:u===!1,St=m&&!it&&!rt;return typeof u=="object"?{...u,enabled:St}:{enabled:St}}}),A1=q.createContext(null),b_="button",D1="Draggable";function L1(_){let{id:C,data:D,disabled:A=!1,attributes:H}=_;const N=Nn(D1),{activators:z,activatorEvent:r,active:u,activeNodeRect:d,ariaDescribedById:g,draggableNodes:l,over:p}=q.useContext(ho),{role:b=b_,roleDescription:w="draggable",tabIndex:f=0}=H??{},n=(u==null?void 0:u.id)===C,a=q.useContext(n?fg:A1),[o,c]=ro(),[S,x]=ro(),m=f1(z,C),E=kn(D);Ti(()=>(l.set(C,{id:C,key:N,node:o,activatorNode:S,data:E}),()=>{const R=l.get(C);R&&R.key===N&&l.delete(C)}),[l,C]);const y=q.useMemo(()=>({role:b,tabIndex:f,"aria-disabled":A,"aria-pressed":n&&b===b_?!0:void 0,"aria-roledescription":w,"aria-describedby":g.draggable}),[A,b,f,n,w,g.draggable]);return{active:u,activatorEvent:r,activeNodeRect:d,attributes:y,isDragging:n,listeners:A?void 0:m,node:o,over:p,setNodeRef:c,setActivatorNodeRef:x,transform:a}}function T1(){return q.useContext(dg)}const M1="Droppable",k1={timeout:25};function O1(_){let{data:C,disabled:D=!1,id:A,resizeObserverConfig:H}=_;const N=Nn(M1),{active:z,dispatch:r,over:u,measureDroppableContainers:d}=q.useContext(ho),g=q.useRef({disabled:D}),l=q.useRef(!1),p=q.useRef(null),b=q.useRef(null),{disabled:w,updateMeasurementsFor:f,timeout:n}={...k1,...H},a=kn(f??A),o=q.useCallback(()=>{if(!l.current){l.current=!0;return}b.current!=null&&clearTimeout(b.current),b.current=setTimeout(()=>{d(Array.isArray(a.current)?a.current:[a.current]),b.current=null},n)},[n]),c=uo({callback:o,disabled:w||!z}),S=q.useCallback((y,R)=>{c&&(R&&(c.unobserve(R),l.current=!1),y&&c.observe(y))},[c]),[x,m]=ro(S),E=kn(C);return q.useEffect(()=>{!c||!x.current||(c.disconnect(),l.current=!1,c.observe(x.current))},[x,c]),q.useEffect(()=>(r({type:bt.RegisterDroppable,element:{id:A,key:N,disabled:D,node:x,rect:p,data:E}}),()=>r({type:bt.UnregisterDroppable,key:N,id:A})),[A]),q.useEffect(()=>{D!==g.current.disabled&&(r({type:bt.SetDroppableDisabled,id:A,key:N,disabled:D}),g.current.disabled=D)},[A,N,D,r]),{active:z,rect:p,isOver:(u==null?void 0:u.id)===A,node:x,over:u,setNodeRef:m}}function gg(_,C,D){const A=_.slice();return A.splice(D<0?A.length+D:D,0,A.splice(C,1)[0]),A}function B1(_,C){return _.reduce((D,A,H)=>{const N=C.get(A);return N&&(D[H]=N),D},Array(_.length))}function Za(_){return _!==null&&_>=0}function H1(_,C){if(_===C)return!0;if(_.length!==C.length)return!1;for(let D=0;D<_.length;D++)if(_[D]!==C[D])return!1;return!0}function z1(_){return typeof _=="boolean"?{draggable:_,droppable:_}:_}const vg=_=>{let{rects:C,activeIndex:D,overIndex:A,index:H}=_;const N=gg(C,A,D),z=C[H],r=N[H];return!r||!z?null:{x:r.left-z.left,y:r.top-z.top,scaleX:r.width/z.width,scaleY:r.height/z.height}},Qa={scaleX:1,scaleY:1},pg=_=>{var C;let{activeIndex:D,activeNodeRect:A,index:H,rects:N,overIndex:z}=_;const r=(C=N[D])!=null?C:A;if(!r)return null;if(H===D){const d=N[z];return d?{x:0,y:D<z?d.top+d.height-(r.top+r.height):d.top-r.top,...Qa}:null}const u=I1(N,H,D);return H>D&&H<=z?{x:0,y:-r.height-u,...Qa}:H<D&&H>=z?{x:0,y:r.height+u,...Qa}:{x:0,y:0,...Qa}};function I1(_,C,D){const A=_[C],H=_[C-1],N=_[C+1];return A?D<C?H?A.top-(H.top+H.height):N?N.top-(A.top+A.height):0:N?N.top-(A.top+A.height):H?A.top-(H.top+H.height):0:0}const mg="Sortable",bg=xt.createContext({activeIndex:-1,containerId:mg,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:vg,disabled:{draggable:!1,droppable:!1}});function Sg(_){let{children:C,id:D,items:A,strategy:H=vg,disabled:N=!1}=_;const{active:z,dragOverlay:r,droppableRects:u,over:d,measureDroppableContainers:g}=T1(),l=Nn(mg,D),p=r.rect!==null,b=q.useMemo(()=>A.map(m=>typeof m=="object"&&"id"in m?m.id:m),[A]),w=z!=null,f=z?b.indexOf(z.id):-1,n=d?b.indexOf(d.id):-1,a=q.useRef(b),o=!H1(b,a.current),c=n!==-1&&f===-1||o,S=z1(N);Ti(()=>{o&&w&&g(b)},[o,b,w,g]),q.useEffect(()=>{a.current=b},[b]);const x=q.useMemo(()=>({activeIndex:f,containerId:l,disabled:S,disableTransforms:c,items:b,overIndex:n,useDragOverlay:p,sortedRects:B1(b,u),strategy:H}),[f,l,S.draggable,S.droppable,c,b,n,u,p,H]);return xt.createElement(bg.Provider,{value:x},C)}const N1=_=>{let{id:C,items:D,activeIndex:A,overIndex:H}=_;return gg(D,A,H).indexOf(C)},U1=_=>{let{containerId:C,isSorting:D,wasDragging:A,index:H,items:N,newIndex:z,previousItems:r,previousContainerId:u,transition:d}=_;return!d||!A||r!==N&&H===z?!1:D?!0:z!==H&&C===u},j1={duration:200,easing:"ease"},yg="transform",P1=Bn.Transition.toString({property:yg,duration:0,easing:"linear"}),F1={roleDescription:"sortable"};function q1(_){let{disabled:C,index:D,node:A,rect:H}=_;const[N,z]=q.useState(null),r=q.useRef(D);return Ti(()=>{if(!C&&D!==r.current&&A.current){const u=H.current;if(u){const d=kr(A.current,{ignoreTransform:!0}),g={x:u.left-d.left,y:u.top-d.top,scaleX:u.width/d.width,scaleY:u.height/d.height};(g.x||g.y)&&z(g)}}D!==r.current&&(r.current=D)},[C,D,A,H]),q.useEffect(()=>{N&&z(null)},[N]),N}function W1(_){let{animateLayoutChanges:C=U1,attributes:D,disabled:A,data:H,getNewIndex:N=N1,id:z,strategy:r,resizeObserverConfig:u,transition:d=j1}=_;const{items:g,containerId:l,activeIndex:p,disabled:b,disableTransforms:w,sortedRects:f,overIndex:n,useDragOverlay:a,strategy:o}=q.useContext(bg),c=$1(A,b),S=g.indexOf(z),x=q.useMemo(()=>({sortable:{containerId:l,index:S,items:g},...H}),[l,H,S,g]),m=q.useMemo(()=>g.slice(g.indexOf(z)),[g,z]),{rect:E,node:y,isOver:R,setNodeRef:T}=O1({id:z,data:x,disabled:c.droppable,resizeObserverConfig:{updateMeasurementsFor:m,...u}}),{active:I,activatorEvent:B,activeNodeRect:M,attributes:$,setNodeRef:Y,listeners:G,isDragging:W,over:X,setActivatorNodeRef:O,transform:F}=L1({id:z,data:x,attributes:{...F1,...D},disabled:c.draggable}),k=d0(T,Y),P=!!I,Q=P&&!w&&Za(p)&&Za(n),ee=!a&&W,he=ee&&Q?F:null,K=Q?he??(r??o)({rects:f,activeNodeRect:M,activeIndex:p,overIndex:n,index:S}):null,U=Za(p)&&Za(n)?N({id:z,items:g,activeIndex:p,overIndex:n}):S,ne=I==null?void 0:I.id,te=q.useRef({activeId:ne,items:g,newIndex:U,containerId:l}),_e=g!==te.current.items,fe=C({active:I,containerId:l,isDragging:W,isSorting:P,id:z,index:S,items:g,newIndex:te.current.newIndex,previousItems:te.current.items,previousContainerId:te.current.containerId,transition:d,wasDragging:te.current.activeId!=null}),be=q1({disabled:!fe,index:S,node:y,rect:E});return q.useEffect(()=>{P&&te.current.newIndex!==U&&(te.current.newIndex=U),l!==te.current.containerId&&(te.current.containerId=l),g!==te.current.items&&(te.current.items=g)},[P,U,l,g]),q.useEffect(()=>{if(ne===te.current.activeId)return;if(ne&&!te.current.activeId){te.current.activeId=ne;return}const Te=setTimeout(()=>{te.current.activeId=ne},50);return()=>clearTimeout(Te)},[ne]),{active:I,activeIndex:p,attributes:$,data:x,rect:E,index:S,newIndex:U,items:g,isOver:R,isSorting:P,isDragging:W,listeners:G,node:y,overIndex:n,over:X,setNodeRef:k,setActivatorNodeRef:O,setDroppableNodeRef:T,setDraggableNodeRef:Y,transform:be??K,transition:ge()};function ge(){if(be||_e&&te.current.newIndex===S)return P1;if(!(ee&&!Zc(B)||!d)&&(P||fe))return Bn.Transition.toString({...d,property:yg})}}function $1(_,C){var D,A;return typeof _=="boolean"?{draggable:_,droppable:!1}:{draggable:(D=_==null?void 0:_.draggable)!=null?D:C.draggable,droppable:(A=_==null?void 0:_.droppable)!=null?A:C.droppable}}function oo(_){if(!_)return!1;const C=_.data.current;return!!(C&&"sortable"in C&&typeof C.sortable=="object"&&"containerId"in C.sortable&&"items"in C.sortable&&"index"in C.sortable)}const G1=[Ne.Down,Ne.Right,Ne.Up,Ne.Left],Y1=(_,C)=>{let{context:{active:D,collisionRect:A,droppableRects:H,droppableContainers:N,over:z,scrollableAncestors:r}}=C;if(G1.includes(_.code)){if(_.preventDefault(),!D||!A)return;const u=[];N.getEnabled().forEach(l=>{if(!l||l!=null&&l.disabled)return;const p=H.get(l.id);if(p)switch(_.code){case Ne.Down:A.top<p.top&&u.push(l);break;case Ne.Up:A.top>p.top&&u.push(l);break;case Ne.Left:A.left>p.left&&u.push(l);break;case Ne.Right:A.left<p.left&&u.push(l);break}});const d=D0({collisionRect:A,droppableRects:H,droppableContainers:u});let g=eg(d,"id");if(g===(z==null?void 0:z.id)&&d.length>1&&(g=d[1].id),g!=null){const l=N.get(D.id),p=N.get(g),b=p?H.get(p.id):null,w=p==null?void 0:p.node.current;if(w&&b&&l&&p){const n=co(w).some((m,E)=>r[E]!==m),a=Cg(l,p),o=V1(l,p),c=n||!a?{x:0,y:0}:{x:o?A.width-b.width:0,y:o?A.height-b.height:0},S={x:b.left,y:b.top};return c.x&&c.y?S:On(S,c)}}}};function Cg(_,C){return!oo(_)||!oo(C)?!1:_.data.current.sortable.containerId===C.data.current.sortable.containerId}function V1(_,C){return!oo(_)||!oo(C)||!Cg(_,C)?!1:_.data.current.sortable.index<C.data.current.sortable.index}function wg(){var _;return((_=crypto.randomUUID)==null?void 0:_.call(crypto))??`id-${Date.now()}-${Math.random().toString(36).slice(2,9)}`}function xg({id:_,enabled:C,onToggle:D,onDelete:A,children:H,extraAction:N,onMoveToFirst:z,onMoveToLast:r}){const{attributes:u,listeners:d,setNodeRef:g,transform:l,transition:p,isDragging:b}=W1({id:_}),w={transform:Bn.Transform.toString(l),opacity:b?.5:1};return V.jsx("div",{ref:g,style:{...w,borderRadius:8,background:"var(--bg-tertiary)",overflow:"hidden"},children:V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"12px 12px",minHeight:"var(--min-touch-target, 44px)",overflow:"hidden"},children:[V.jsx("div",{...u,...d,"aria-label":"Drag to reorder",style:{width:24,color:"var(--text-muted)",cursor:"grab",display:"flex",alignItems:"center",justifyContent:"center",fontSize:14,userSelect:"none",touchAction:"none"},children:"⋮⋮"}),V.jsx("button",{role:"switch","aria-checked":C,"aria-label":C?"Enabled, click to disable":"Disabled, click to enable",onClick:D,style:{width:32,height:20,borderRadius:10,border:"none",background:C?"var(--status-running)":"var(--bg-primary)",cursor:"pointer",position:"relative",flexShrink:0},children:V.jsx("span",{style:{position:"absolute",top:2,left:C?14:2,width:16,height:16,borderRadius:"50%",background:"#fff",transition:"left 0.15s ease"}})}),H,N,(z||r)&&V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,flexShrink:0},children:[z&&V.jsx("button",{"aria-label":"Move to first",title:"Move to first",onClick:z,style:{width:32,height:32,borderRadius:6,border:"none",background:"transparent",color:"var(--text-secondary)",cursor:"pointer",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center"},children:"⤒"}),r&&V.jsx("button",{"aria-label":"Move to last",title:"Move to last",onClick:r,style:{width:32,height:32,borderRadius:6,border:"none",background:"transparent",color:"var(--text-secondary)",cursor:"pointer",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center"},children:"⤓"})]}),V.jsx("button",{"aria-label":"Delete",title:"Delete",onClick:A,style:{width:32,height:32,borderRadius:6,border:"none",background:"transparent",color:"var(--text-secondary)",cursor:"pointer",fontSize:18,flexShrink:0},children:"×"})]})})}function Eg(){return R0(o_(tu,{activationConstraint:{distance:8}}),o_(Jc,{coordinateGetter:Y1}))}function X1(){const[_,C]=q.useState(!1);return q.useEffect(()=>{const D=()=>{const A=navigator.userAgent,H=/iPhone|iPad|iPod|Android/i.test(A),N=window.innerWidth<768;C(H||N)};return D(),window.addEventListener("resize",D),()=>window.removeEventListener("resize",D)},[]),_}function K1(_){if(["Control","Alt","Shift","Meta"].includes(_.key))return null;let C="",D="";if(_.ctrlKey||_.altKey||_.metaKey){const A=_.key.toUpperCase(),H=_.ctrlKey?"Ctrl":_.altKey?"Alt":"Meta";if(_.key.length===1)if(C=`${H}+${A}`,_.ctrlKey)D=String.fromCharCode(_.key.toUpperCase().charCodeAt(0)-64);else return null;else return null}else if(_.key.startsWith("Arrow")){const H={ArrowUp:{label:"↑",code:"A"},ArrowDown:{label:"↓",code:"B"},ArrowRight:{label:"→",code:"C"},ArrowLeft:{label:"←",code:"D"}}[_.key];if(H)C=H.label,D=`\x1B[${H.code}`;else return null}else if(_.key==="Escape")C="Esc",D="\x1B";else if(_.key==="Enter")C="Enter",D="\r";else if(_.key==="Tab")C=_.shiftKey?"Shift+Tab":"Tab",D=_.shiftKey?"\x1B[Z":" ";else if(_.key==="Backspace")C="Backspace",D="";else if(_.key==="Delete")C="Delete",D="\x1B[3~";else if(_.key==="Home")C="Home",D="\x1B[H";else if(_.key==="End")C="End",D="\x1B[F";else if(_.key==="PageUp")C="PageUp",D="\x1B[5~";else if(_.key==="PageDown")C="PageDown",D="\x1B[6~";else if(_.key.match(/^F([1-9]|1[0-2])$/)){const A={F1:"\x1BOP",F2:"\x1BOQ",F3:"\x1BOR",F4:"\x1BOS",F5:"\x1B[15~",F6:"\x1B[17~",F7:"\x1B[18~",F8:"\x1B[19~",F9:"\x1B[20~",F10:"\x1B[21~",F11:"\x1B[23~",F12:"\x1B[24~"};C=_.key,D=A[_.key]??""}else if(_.key.length===1)C=_.key.toUpperCase(),D=_.key;else return null;return{label:C,data:D}}function Z1({shortcuts:_,onChange:C}){const[D,A]=q.useState(null),[H,N]=q.useState(!1),z=Eg(),r=X1(),u=(f,n)=>{f.preventDefault(),f.stopPropagation();const a=K1(f);if(a){const o=_.map(c=>c._id===n?{...c,label:a.label,data:a.data}:c);C(o),A(null)}},d=f=>{const n=[..._];n[f]={...n[f],enabled:!n[f].enabled},C(n)},g=()=>{if(r){N(!0),setTimeout(()=>N(!1),3e3);return}const f=wg(),n=[..._,{label:"New",data:"",enabled:!0,_id:f}];C(n),A(f)},l=f=>{const n=_.filter((a,o)=>o!==f);C(n)},p=f=>{const{active:n,over:a}=f;if(a&&n.id!==a.id){const o=_.findIndex(m=>m._id===n.id),c=_.findIndex(m=>m._id===a.id),S=[..._],[x]=S.splice(o,1);S.splice(c,0,x),C(S)}},b=f=>{const n=_.findIndex(c=>c._id===f);if(n<=0)return;const a=[..._],[o]=a.splice(n,1);a.unshift(o),C(a)},w=f=>{const n=_.findIndex(c=>c._id===f);if(n===-1||n===_.length-1)return;const a=[..._],[o]=a.splice(n,1);a.push(o),C(a)};return V.jsxs("div",{"data-testid":"settings--shortcuts--container",style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[V.jsx("span",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:"Shortcuts"}),V.jsx("button",{onClick:g,disabled:r,"data-testid":"settings--shortcuts--button--add",style:{padding:"8px 16px",fontSize:13,borderRadius:6,border:"1px solid var(--border-color)",background:"var(--bg-tertiary)",color:"var(--text-primary)",cursor:r?"not-allowed":"pointer",opacity:r?.5:1},children:"+ Add"})]}),r&&V.jsxs("div",{"data-testid":"settings--shortcuts--mobile-warning",style:{padding:"10px 12px",backgroundColor:"var(--bg-warning, #fff8e6)",border:"1px solid var(--border-warning, #ffd666)",borderRadius:6,fontSize:13,color:"var(--text-warning, #ad6800)",display:"flex",alignItems:"center",gap:8},children:[V.jsx("span",{style:{fontSize:16},children:"⚠️"}),V.jsx("span",{children:"移动端无法新增快捷键,请在PC端浏览器中添加"})]}),_.length===0&&V.jsx("div",{"data-testid":"settings--shortcuts--empty",style:{padding:16,textAlign:"center",color:"var(--text-secondary)",fontSize:13},children:"No shortcuts yet. Click the button above to add one."}),V.jsx(_g,{sensors:z,collisionDetection:tg,onDragEnd:p,children:V.jsx(Sg,{items:_.map(f=>f._id),strategy:pg,children:_.map(f=>V.jsx(xg,{id:f._id,enabled:f.enabled,onToggle:()=>{const n=_.findIndex(a=>a._id===f._id);n!==-1&&d(n)},onDelete:()=>{const n=_.findIndex(a=>a._id===f._id);n!==-1&&l(n)},onMoveToFirst:()=>b(f._id),onMoveToLast:()=>w(f._id),children:V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flex:1,minWidth:0},children:[V.jsx("input",{type:"text",value:f.label,readOnly:!0,autoComplete:"off",placeholder:"Press key to capture",onClick:()=>A(f._id),onKeyDown:n=>u(n,f._id),onBlur:()=>A(null),"aria-label":`Shortcut ${f.label}`,style:{flex:1,minWidth:0,height:36,padding:"0 12px",borderRadius:6,border:D===f._id?"2px solid var(--status-running)":"1px solid var(--border-color)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:14,cursor:"pointer",textAlign:"center"}}),V.jsx("span",{title:f.data?f.data.replace(/\x1b/g,"ESC").replace(/\r/g,"CR").replace(/\t/g,"TAB"):"(not set)",style:{display:"inline-flex",alignItems:"center",justifyContent:"flex-end",fontSize:11,color:"var(--text-muted)",fontFamily:"monospace",flexShrink:0,width:35,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:f.data?f.data.replace(/\x1b/g,"ESC").replace(/\r/g,"CR").replace(/\t/g,"TAB"):"(not set)"})]})},f._id))})}),D!==null&&!r&&V.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)",textAlign:"center",marginTop:4},children:"Press a key to capture…"}),H&&V.jsx("div",{style:{position:"fixed",bottom:80,left:"50%",transform:"translateX(-50%)",padding:"12px 20px",backgroundColor:"var(--bg-secondary, #333)",color:"var(--text-inverse, #fff)",borderRadius:8,fontSize:14,boxShadow:"0 4px 12px rgba(0,0,0,0.2)",zIndex:1e3,whiteSpace:"nowrap",animation:"fadeInOut 3s ease"},children:"请在PC端浏览器中新增快捷键"})]})}const Q1={width:"100%",padding:"10px 12px",borderRadius:6,fontSize:14,resize:"none",overflowX:"auto",overflowY:"hidden",whiteSpace:"nowrap",lineHeight:"20px",boxSizing:"border-box"};function Lr(_){return{...Q1,..._}}function J1({autoSend:_,onToggle:C}){const D=_??!0;return V.jsx("button",{onClick:C,"aria-label":"Auto-send toggle",title:"Auto-send toggle",style:{width:32,height:32,padding:0,borderRadius:6,border:"none",background:D?"var(--status-running)":"var(--bg-primary)",color:D?"#fff":"var(--text-secondary)",cursor:"pointer",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:D?"↗":"✎"})}function em({commands:_,onChange:C}){const[D,A]=q.useState(null),[H,N]=q.useState(""),z=Eg(),r=a=>{const o=_.find(c=>c._id===a);o&&(A(a),N(o.command))},u=a=>{if(!a){A(null),N("");return}let o=H.trim();if(!o){b(a);return}o.startsWith("/")||(o="/"+o);const c=_.map(S=>S._id===a?{...S,label:o,command:o}:S);C(c),A(null),N("")},d=a=>{const o=_.map(c=>c._id===a?{...c,enabled:!c.enabled}:c);C(o)},g=We(a=>a.showToast),l=a=>{const o=_.find(x=>x._id===a);if(!o)return;const c=!(o.autoSend??!0),S=_.map(x=>x._id===a?{...x,autoSend:c}:x);C(S),g(c?"Commands will auto-send on tap":"Commands will be inserted for editing")},p=()=>{const a=wg(),o=[..._,{label:"/new",command:"/new",enabled:!0,autoSend:!0,_id:a}];C(o),A(a),N("/new")},b=a=>{const o=_.filter(c=>c._id!==a);C(o)},w=a=>{const{active:o,over:c}=a;if(c&&o.id!==c.id){const S=_.findIndex(y=>y._id===o.id),x=_.findIndex(y=>y._id===c.id),m=[..._],[E]=m.splice(S,1);m.splice(x,0,E),C(m)}},f=a=>{const o=_.findIndex(x=>x._id===a);if(o<=0)return;const c=[..._],[S]=c.splice(o,1);c.unshift(S),C(c)},n=a=>{const o=_.findIndex(x=>x._id===a);if(o===-1||o===_.length-1)return;const c=[..._],[S]=c.splice(o,1);c.push(S),C(c)};return V.jsxs("div",{"data-testid":"settings--commands--container",style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:8},children:[V.jsx("span",{style:{fontSize:14,fontWeight:600,color:"var(--text-primary)"},children:"Commands"}),V.jsx("button",{onClick:p,"data-testid":"settings--commands--button--add",style:{padding:"8px 16px",fontSize:13,borderRadius:6,border:"1px solid var(--border-color)",background:"var(--bg-tertiary)",color:"var(--text-primary)",cursor:"pointer"},children:"+ Add"})]}),_.length===0&&V.jsx("div",{"data-testid":"settings--commands--empty",style:{padding:16,textAlign:"center",color:"var(--text-secondary)",fontSize:13},children:"No commands yet. Click the button above to add one."}),V.jsx(_g,{sensors:z,collisionDetection:tg,onDragEnd:w,children:V.jsx(Sg,{items:_.map(a=>a._id),strategy:pg,children:_.map(a=>V.jsx(xg,{id:a._id,enabled:a.enabled,onToggle:()=>d(a._id),onDelete:()=>b(a._id),onMoveToFirst:()=>f(a._id),onMoveToLast:()=>n(a._id),extraAction:V.jsx(J1,{autoSend:a.autoSend??!0,onToggle:()=>l(a._id)}),children:D===a._id?V.jsx("textarea",{value:H,onChange:o=>N(o.target.value),onKeyDown:o=>{o.key==="Enter"&&(o.preventDefault(),u(a._id)),o.key==="Escape"&&(N(""),u(null))},onBlur:()=>u(a._id),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,inputMode:"text",rows:1,placeholder:"Enter command…","aria-label":`Edit ${a.label}`,style:Lr({flex:"1 1 180px",minWidth:0,height:36,padding:"0 12px",border:"2px solid var(--status-running)",background:"var(--bg-primary)",color:"var(--text-primary)",lineHeight:"36px"})}):V.jsx("button",{type:"button",onClick:()=>r(a._id),"aria-label":`Edit command ${a.label}`,style:{flex:"1 1 180px",minWidth:0,height:36,padding:"0 12px",borderRadius:6,border:"1px solid var(--border-color)",background:"var(--bg-primary)",color:"var(--text-primary)",fontSize:14,display:"flex",alignItems:"center",cursor:"pointer",textAlign:"left",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.label})},a._id))})}),V.jsx("div",{"data-testid":"settings--commands--tip",style:{fontSize:12,color:"var(--text-muted)",marginTop:8},children:"Tip: Commands are auto-prefixed with / (e.g., help → /help)"})]})}function tm({checked:_,onChange:C,disabled:D=!1,"aria-label":A}){return V.jsx("button",{type:"button",role:"switch","aria-checked":_,"aria-label":A,disabled:D,onClick:()=>!D&&C(!_),style:{position:"relative",width:"44px",height:"24px",borderRadius:"12px",border:"none",padding:0,cursor:D?"not-allowed":"pointer",background:_?"var(--status-running)":"var(--bg-tertiary)",opacity:D?.5:1,transition:"background 150ms ease-out",touchAction:"manipulation",WebkitTapHighlightColor:"transparent"},children:V.jsx("span",{style:{position:"absolute",top:"2px",left:_?"22px":"2px",width:"20px",height:"20px",borderRadius:"50%",background:"#ffffff",boxShadow:"0 1px 3px rgba(0, 0, 0, 0.3)",transition:"left 150ms ease-out"}})})}function Ja({channelType:_,status:C,isExpanded:D,onToggle:A,onEnabledChange:H,children:N}){const z=l0[_],r=(z==null?void 0:z.implemented)??!1,u=(C==null?void 0:C.configured)??!1,d=(C==null?void 0:C.enabled)??!0,g={dingtalk:"📱",email:"📧",slack:"💬",wechat_work:"💼"},l=p=>{p.stopPropagation()};return V.jsxs("div",{"data-testid":`settings--channel--card--${_}`,style:{border:"1px solid var(--border-color)",borderRadius:8,background:"var(--bg-tertiary)",overflow:"hidden",opacity:r?1:.6},children:[V.jsxs("button",{"data-testid":`settings--channel--header--${_}`,onClick:r?A:void 0,style:{width:"100%",padding:"16px",border:"none",background:D?"var(--bg-secondary)":"transparent",display:"flex",alignItems:"center",justifyContent:"space-between",cursor:r?"pointer":"default",textAlign:"left"},children:[V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[V.jsx("span",{style:{fontSize:24},children:g[_]??"🔔"}),V.jsxs("div",{children:[V.jsxs("div",{style:{fontSize:16,fontWeight:600,color:"var(--text-primary)",display:"flex",alignItems:"center",gap:8},children:[(z==null?void 0:z.displayName)??_,u&&V.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:d?"var(--status-running)":"var(--text-muted)"},title:d?"Enabled":"Disabled"})]}),V.jsx("div",{style:{fontSize:13,color:"var(--text-secondary)",marginTop:2},children:(z==null?void 0:z.description)??""})]})]}),V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[u&&H&&V.jsx("div",{onClick:l,children:V.jsx(tm,{checked:d,onChange:H,"aria-label":`Toggle ${(z==null?void 0:z.displayName)??_}`})}),!r&&V.jsx("span",{"data-testid":`settings--channel--coming--${_}`,style:{fontSize:12,color:"var(--text-secondary)",background:"var(--bg-secondary)",padding:"4px 10px",borderRadius:12},children:"Coming"}),r&&V.jsx("svg",{style:{width:16,height:16,transform:D?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s",color:"var(--text-secondary)"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:V.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),r&&D&&V.jsx("div",{style:{padding:"16px",borderTop:"1px solid var(--border-color)",background:"var(--bg-primary)"},children:N})]})}function im({webhookUrl:_,onChange:C,configured:D}){const[A,H]=q.useState(!1),N=_===""||q_.test(_),z=A&&!N&&_!=="";return V.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsxs("div",{children:[V.jsx("label",{style:{display:"block",fontSize:14,fontWeight:500,marginBottom:8,color:"var(--text-primary)"},children:"Webhook URL"}),V.jsx("textarea",{"data-testid":"settings--dingtalk--input--webhook",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,inputMode:"text",rows:1,placeholder:"https://oapi.dingtalk.com/robot/send?access_token=...",value:_,onChange:r=>{C(r.target.value)},onBlur:()=>H(!0),style:Lr({border:`1px solid ${z?"var(--status-error)":"var(--border-color)"}`,background:"var(--bg-secondary)",color:"var(--text-primary)"})}),z&&V.jsx("div",{"data-testid":"settings--dingtalk--error",style:{marginTop:6,fontSize:12,color:"var(--status-error)"},children:"Please enter a valid DingTalk Webhook URL starting with https://oapi.dingtalk.com/robot/send?access_token="})]}),D&&!_&&V.jsx("div",{"data-testid":"settings--dingtalk--configured",style:{padding:10,background:"rgba(46, 204, 113, 0.1)",borderRadius:6,fontSize:13,color:"var(--status-running)"},children:"✓ Configured. Enter a new URL to update."}),V.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:V.jsx("a",{href:"https://open.dingtalk.com/document/robots/custom-robot-access",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--status-running)"},children:"How to get DingTalk group bot Webhook?"})})]})}function sm({sendKey:_,onChange:C,configured:D}){const[A,H]=q.useState(!1),N=_===""||W_.test(_),z=A&&!N&&_!=="";return V.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsxs("div",{children:[V.jsx("label",{style:{display:"block",fontSize:14,fontWeight:500,marginBottom:8,color:"var(--text-primary)"},children:"SendKey"}),V.jsx("textarea",{"data-testid":"settings--wechat--input--sendkey",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,inputMode:"text",rows:1,placeholder:"SCTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",value:_,onChange:r=>{C(r.target.value)},onBlur:()=>H(!0),style:Lr({border:`1px solid ${z?"var(--status-error)":"var(--border-color)"}`,background:"var(--bg-secondary)",color:"var(--text-primary)"})}),z&&V.jsx("div",{"data-testid":"settings--wechat--error",style:{marginTop:6,fontSize:12,color:"var(--status-error)"},children:"Please enter a valid SendKey (starts with SCT, at least 13 characters)"})]}),D&&!_&&V.jsx("div",{"data-testid":"settings--wechat--configured",style:{padding:10,background:"rgba(46, 204, 113, 0.1)",borderRadius:6,fontSize:13,color:"var(--status-running)"},children:"✓ Configured. Enter a new SendKey to update."}),V.jsx("div",{style:{fontSize:12,color:"var(--text-secondary)"},children:V.jsx("a",{href:"https://sct.ftqq.com/sendkey",target:"_blank",rel:"noopener noreferrer",style:{color:"var(--status-running)"},children:"How to get SendKey?"})})]})}function rm({notificationStatus:_,dingtalkWebhookUrl:C,onDingtalkWebhookChange:D,wechatWorkSendKey:A,onWechatWorkSendKeyChange:H,onChannelEnabledChange:N}){var d,g,l,p;const[z,r]=q.useState("dingtalk"),u=b=>{r(w=>w===b?null:b)};return V.jsxs("div",{"data-testid":"settings--notifications--container",style:{display:"flex",flexDirection:"column",gap:12},children:[V.jsx("div",{"data-testid":"settings--notifications--description",style:{padding:12,background:"var(--bg-tertiary)",borderRadius:8,fontSize:13,color:"var(--text-secondary)"},children:"Configure notification channels to receive alerts when Claude needs your attention."}),V.jsx(Ja,{channelType:"dingtalk",status:_==null?void 0:_.dingtalk,isExpanded:z==="dingtalk",onToggle:()=>u("dingtalk"),onEnabledChange:(d=_==null?void 0:_.dingtalk)!=null&&d.configured?b=>N==null?void 0:N("dingtalk",b):void 0,children:V.jsx(im,{webhookUrl:C,onChange:D,configured:(g=_==null?void 0:_.dingtalk)==null?void 0:g.configured})}),V.jsx(Ja,{channelType:"wechat_work",status:_==null?void 0:_.wechat_work,isExpanded:z==="wechat_work",onToggle:()=>u("wechat_work"),onEnabledChange:(l=_==null?void 0:_.wechat_work)!=null&&l.configured?b=>N==null?void 0:N("wechat_work",b):void 0,children:V.jsx(sm,{sendKey:A,onChange:H,configured:(p=_==null?void 0:_.wechat_work)==null?void 0:p.configured})}),V.jsx(Ja,{channelType:"email",status:_==null?void 0:_.email,isExpanded:z==="email",onToggle:()=>u("email")}),V.jsx(Ja,{channelType:"slack",status:_==null?void 0:_.slack,isExpanded:z==="slack",onToggle:()=>u("slack")})]})}const nm=100,am=300;var H_;const An=typeof window<"u"&&((H_=window.matchMedia)==null?void 0:H_.call(window,"(prefers-reduced-motion: reduce)").matches),kc=An?0:300;function Rg({isOpen:_,onClose:C,title:D,children:A,footer:H,"data-testid":N}){const[z,r]=q.useState(!1),[u,d]=q.useState(!1),[g,l]=q.useState(0),[p,b]=q.useState(!1),w=q.useRef(0),f=q.useRef(0);q.useEffect(()=>{if(_)r(!0),l(0),An?d(!0):requestAnimationFrame(()=>{requestAnimationFrame(()=>d(!0))});else if(z)if(d(!1),An)r(!1);else{const m=setTimeout(()=>r(!1),kc);return()=>clearTimeout(m)}},[_,z]);const n=q.useCallback(m=>{b(!0),w.current=m,f.current=Date.now(),l(0)},[]),a=q.useCallback(m=>{if(!p)return;const E=m-w.current;E>0&&l(E)},[p]),o=q.useCallback(()=>{if(!p)return;const m=g,E=Date.now()-f.current,y=E>0?m/(E/1e3):0;m>nm||m>50&&y>am||m<5?C():l(0),b(!1)},[p,g,C]);if(!z)return null;const c=An||p?"none":`transform ${kc}ms ease-out`,S=An?"none":`background ${kc}ms ease-out`,x=p?`translateY(${g}px)`:u?"translateY(0)":"translateY(100%)";return V.jsx("div",{onClick:C,style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:u?"rgba(0, 0, 0, 0.5)":"rgba(0, 0, 0, 0)",transition:S,display:"flex",alignItems:"flex-end",justifyContent:"center",zIndex:1e3},children:V.jsxs("div",{"data-testid":N,onClick:m=>m.stopPropagation(),style:{width:"100%",maxWidth:480,maxHeight:"calc(85vh - env(safe-area-inset-bottom, 0px))",borderRadius:"16px 16px 0 0",background:"var(--bg-secondary)",boxShadow:"0 -4px 24px rgba(0, 0, 0, 0.3)",display:"flex",flexDirection:"column",overflow:"hidden",transform:x,transition:c,paddingBottom:"var(--safe-bottom)"},children:[V.jsx("div",{style:{height:44,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",flexShrink:0},onTouchStart:m=>n(m.touches[0].clientY),onTouchMove:m=>a(m.touches[0].clientY),onTouchEnd:o,onMouseDown:m=>n(m.clientY),onMouseMove:m=>p&&a(m.clientY),onMouseUp:o,onMouseLeave:o,children:V.jsx("div",{style:{width:36,height:4,background:"var(--text-secondary)",opacity:.5,borderRadius:2}})}),V.jsx("div",{style:{padding:"0 20px 16px 20px",display:"flex",alignItems:"center",flexShrink:0},children:V.jsx("h2",{style:{fontSize:18,fontWeight:600,margin:0},children:D})}),V.jsx("div",{style:{flex:1,overflow:"auto",overscrollBehavior:"contain",padding:"0 16px"},children:A}),H&&V.jsx("div",{style:{padding:"12px 20px",borderTop:"1px solid var(--border-color)",flexShrink:0},children:H})]})})}function om({isOpen:_,onClose:C,onConfigSaved:D}){const[A,H]=q.useState("shortcuts"),[N,z]=q.useState([]),[r,u]=q.useState([]),[d,g]=q.useState(""),[l,p]=q.useState(""),[b,w]=q.useState({}),[f,n]=q.useState(!1),[a,o]=q.useState(null),[c,S]=q.useState(!1),x=Ht(M=>M.activeInstanceId),m=We(M=>M.showToast),E=q.useRef(0);function y(){return String(++E.current)}function R(M){return{...M,_id:y()}}q.useEffect(()=>{_&&T()},[_]);const T=async()=>{try{const{config:M}=await j_(x??void 0);if(M){z(M.shortcuts.map(Y=>R(Y))),u(M.commands.map(Y=>R(Y)));const $=M.notifications||{};w($),g("")}else z($_.map($=>R({...$,enabled:!0}))),u(G_.map($=>R({...$,enabled:!0}))),w({}),g("")}catch(M){o("Failed to load configuration"),console.error(M)}},I=async(M,$)=>{const Y=b;w(W=>({...W,[M]:{...W[M],configured:!0,enabled:$}}));const G=M==="dingtalk"?"DingTalk":"WeChat Work";try{await s0(M,$),m(`${G} notifications ${$?"enabled":"disabled"}`)}catch(W){w(Y),console.error("Failed to update channel enabled status:",W),o(`Failed to update ${G.toLowerCase()}`),m(`Failed to update ${G.toLowerCase()}`),setTimeout(()=>o(null),2e3)}},B=async()=>{var M,$;n(!0),o(null),S(!1);try{const Y={shortcuts:N.map(({_id:F,...k})=>k),commands:r.map(({_id:F,...k})=>k)},G={},W=d.trim();if(W){if(!q_.test(W)){o("Please enter a valid DingTalk Webhook URL (starting with https://oapi.dingtalk.com/robot/send?access_token=)"),n(!1);return}G.dingtalk={webhookUrl:W}}const X=l.trim();if(X){if(!W_.test(X)){o("Please enter a valid SendKey (starts with SCT, at least 13 characters)"),n(!1);return}G.wechat_work={sendKey:X}}if(Object.keys(G).length>0&&(Y.notifications=G),await i0(Y,x??void 0)){S(!0);const F={...b};W&&(F.dingtalk={...b==null?void 0:b.dingtalk,configured:!0,enabled:(M=b==null?void 0:b.dingtalk)==null?void 0:M.enabled},g("")),X&&(F.wechat_work={...b==null?void 0:b.wechat_work,configured:!0,enabled:($=b==null?void 0:b.wechat_work)==null?void 0:$.enabled},p("")),w(F),D==null||D(),setTimeout(()=>S(!1),2e3)}else o("Failed to save")}catch(Y){o("Failed to save"),console.error(Y)}finally{n(!1)}};return V.jsxs(Rg,{isOpen:_,onClose:C,title:"Settings","data-testid":"settings--modal",footer:V.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12},children:[V.jsxs("div",{style:{fontSize:13},children:[a&&V.jsx("span",{"data-testid":"settings--message--error",style:{color:"var(--status-error)"},children:a}),c&&V.jsx("span",{"data-testid":"settings--message--success",style:{color:"var(--status-running)"},children:"Saved"})]}),V.jsxs("div",{style:{display:"flex",gap:8},children:[V.jsx("button",{onClick:C,"data-testid":"settings--button--close",style:{padding:"8px 20px",borderRadius:6,border:"1px solid var(--border-color)",background:"var(--bg-tertiary)",color:"var(--text-primary)",fontSize:14,cursor:"pointer"},children:"Cancel"}),V.jsx("button",{onClick:B,disabled:f,"data-testid":"settings--button--save",style:{padding:"8px 20px",borderRadius:6,border:"none",background:f?"var(--bg-tertiary)":"var(--status-running)",color:"#fff",fontSize:14,fontWeight:600,cursor:f?"default":"pointer",opacity:f?.7:1},children:f?"Saving…":"Save"})]})]}),children:[V.jsx("div",{style:{display:"flex",borderBottom:"1px solid var(--border-color)",margin:"0 -16px",marginBottom:16},children:["shortcuts","commands","notifications"].map(M=>V.jsx("button",{onClick:()=>H(M),"data-testid":`settings--tab--${M}`,style:{flex:1,padding:"12px 16px",border:"none",background:"transparent",color:A===M?"var(--text-primary)":"var(--text-secondary)",borderBottom:A===M?"2px solid var(--status-running)":"2px solid transparent",cursor:"pointer",fontSize:14,fontWeight:A===M?600:400},children:M==="shortcuts"?"Shortcuts":M==="commands"?"Commands":"Notifications"},M))}),A==="shortcuts"?V.jsx(Z1,{shortcuts:N,onChange:z}):A==="commands"?V.jsx(em,{commands:r,onChange:u}):V.jsx(rm,{notificationStatus:b,dingtalkWebhookUrl:d,onDingtalkWebhookChange:g,wechatWorkSendKey:l,onWechatWorkSendKeyChange:p,onChannelEnabledChange:I})]})}const lm={idle:{color:"var(--status-idle)",label:"Idle"},running:{color:"var(--status-running)",label:"Running"},waiting_input:{color:"var(--status-waiting)",label:"Waiting Input"}},cm={connecting:{color:"var(--status-waiting)",label:"Connecting..."},connected:{color:"var(--status-idle)",label:"Connected"},disconnected:{color:"var(--status-error)",label:"Disconnected"}};function um(){const[_,C]=q.useState(!1),D=We(r=>r.sessionStatus),A=Ht(r=>r.activeInstanceId),H=We(r=>A?r.instanceConnectionStatus[A]??"disconnected":r.connectionStatus),N=lm[D],z=cm[H];return V.jsxs(V.Fragment,{children:[V.jsxs("div",{"data-testid":"status-bar",style:{height:"var(--statusbar-height)",background:"var(--bg-secondary)",borderBottom:"1px solid var(--border-color)",display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 16px",paddingTop:"var(--safe-top)",flexShrink:0},children:[V.jsx("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0,overflow:"hidden",flex:"1 1 auto"},children:V.jsx("span",{style:{fontSize:13,fontWeight:600,color:"var(--text-primary)"},children:"Claude Remote"})}),V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12},children:[V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[V.jsx("span",{"data-testid":`status--indicator--${D}`,style:{width:8,height:8,borderRadius:"50%",background:N.color,display:"inline-block"}}),V.jsx("span",{"data-testid":"status--label--session",style:{fontSize:12,color:"var(--text-secondary)"},children:N.label})]}),V.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[V.jsx("span",{"data-testid":`status--indicator--${H}`,style:{width:8,height:8,borderRadius:"50%",background:z.color,display:"inline-block"}}),V.jsx("span",{"data-testid":"status--label--connection",style:{fontSize:12,color:"var(--text-secondary)"},children:z.label})]}),V.jsx("button",{onClick:()=>C(!0),"aria-label":"Settings","data-testid":"status--button--settings",style:{width:44,height:44,marginRight:-12,borderRadius:8,border:"none",background:"transparent",color:"var(--text-secondary)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:22},children:"⚙"})]})]}),V.jsx(om,{isOpen:_,onClose:()=>C(!1),onConfigSaved:V_})]})}function hm({containerRef:_,onFocusInput:C}){const D=()=>{C==null||C()};return V.jsx("div",{ref:_,onClick:D,"data-testid":"terminal--container",style:{flex:1,overflow:"hidden",background:"var(--bg-primary)"}})}const dm=q.forwardRef(function({onSend:C,disabled:D,isKeyboardOpen:A},H){const[N,z]=q.useState(""),r=q.useRef(null);q.useImperativeHandle(H,()=>({setText:g=>{z(g)},focus:()=>{var g;return(g=r.current)==null?void 0:g.focus()}}),[]);const u=q.useCallback(()=>{const g=N.trim();C(g),z("")},[N,C]),d=q.useCallback(g=>{g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),u())},[u]);return V.jsxs("div",{"data-testid":"console--input-bar",style:{height:"var(--inputbar-height)",background:"var(--bg-secondary)",borderTop:"1px solid var(--border-color)",display:"flex",alignItems:"center",padding:"8px 12px",paddingBottom:A?"8px":"calc(8px + var(--safe-bottom))",transition:"padding-bottom 0.25s ease-out",gap:8,flexShrink:0},children:[V.jsx("textarea",{ref:r,"data-testid":"console--input--command",value:N,onChange:g=>z(g.target.value),onKeyDown:d,disabled:D,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1,inputMode:"text",rows:1,placeholder:"Enter command or number to select…","aria-label":"Command input",style:Lr({flex:1,height:40,borderRadius:8,border:"1px solid var(--border-color)",background:"var(--bg-tertiary)",color:"var(--text-primary)",fontSize:16,fontFamily:"inherit"})}),V.jsx("button",{"data-testid":"console--input--send-btn",onClick:u,disabled:D||!N.trim(),"aria-label":"Send message",style:{width:40,height:40,borderRadius:8,border:"none",background:N.trim()?"var(--accent-primary, #0066cc)":"var(--bg-tertiary)",color:N.trim()?"#fff":"var(--text-tertiary)",display:"flex",alignItems:"center",justifyContent:"center",cursor:N.trim()&&!D?"pointer":"not-allowed",flexShrink:0,transition:"background 0.2s, color 0.2s",padding:0},children:V.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[V.jsx("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),V.jsx("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})})]})}),Ag={height:36,borderRadius:6,border:"none",background:"var(--bg-tertiary)",fontFamily:"var(--font-mono)",fontWeight:500,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},fm={...Ag,minWidth:44,flexShrink:0,color:"var(--text-primary)",fontSize:13,padding:"0 12px"},_m={...Ag,minWidth:60,flexShrink:0,color:"var(--text-secondary)",fontSize:12,whiteSpace:"nowrap",padding:"0 12px"};function eo(){document.activeElement instanceof HTMLElement&&document.activeElement.blur()}function Oc(_,C,D){_.preventDefault(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),C(D);const A=()=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur()};requestAnimationFrame(A),setTimeout(A,0)}function gm({onShortcut:_,onCommandSelect:C,onCommandSend:D,visible:A=!0}){const{shortcuts:H,commands:N,isLoading:z}=h0();return!A||z?null:V.jsxs("div",{"data-testid":"console--command-picker",style:{background:"var(--bg-secondary)",borderTop:"1px solid var(--border-color)",flexShrink:0},children:[V.jsx("div",{"data-testid":"console--shortcut-bar","data-scrollable":!0,style:{height:"var(--keybar-height)",display:"flex",alignItems:"center",padding:"6px 12px",gap:6,overflowX:"auto",WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"},children:H.map(r=>V.jsx("button",{type:"button","data-testid":`console--button--shortcut-${r.label.toLowerCase().replace(/\s+/g,"-")}`,className:"cmd-picker-btn",onClick:u=>Oc(u,_,r.data),onTouchStart:eo,onMouseDown:u=>{u.preventDefault(),eo()},style:fm,children:r.label},r.label))}),V.jsx("div",{"data-testid":"console--command-buttons","data-scrollable":!0,style:{height:"var(--keybar-height)",display:"flex",alignItems:"center",padding:"6px 12px",gap:6,overflowX:"auto",WebkitOverflowScrolling:"touch",scrollbarWidth:"none",msOverflowStyle:"none"},children:N.map(r=>{const u=r.autoSend??!0;return V.jsx("button",{type:"button","data-testid":`console--button--command-${r.label.toLowerCase().replace(/\s+/g,"-")}`,className:"cmd-picker-btn",onClick:d=>{u?Oc(d,D,r.command):Oc(d,C,r.command+" ")},onTouchStart:eo,onMouseDown:d=>{d.preventDefault(),eo()},style:_m,children:r.label},r.label)})}),V.jsx("style",{children:`
54
54
  [data-scrollable]::-webkit-scrollbar {
55
55
  display: none;
56
56
  }
@@ -6,7 +6,7 @@
6
6
  <meta name="apple-mobile-web-app-capable" content="yes" />
7
7
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
8
8
  <title>Claude Code Remote</title>
9
- <script type="module" crossorigin src="/assets/index-B8v9M65m.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-Biw9Vigh.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="/assets/index-DUvMeUw6.css">
11
11
  </head>
12
12
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caoruhua/open-claude-remote",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "Remote control proxy for Claude Code CLI - control your PC terminal from mobile browser",
5
5
  "keywords": [
6
6
  "claude",