@mdspl/mds-shared-ui 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -7,4 +7,4 @@ React keys must be passed directly to JSX without using spread:
7
7
  To pick up a draggable item, press the space bar.
8
8
  While dragging, use the arrow keys to move the item.
9
9
  Press space again to drop the item in its new position, or press escape to cancel.
10
- `},Fr={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Hr(e){let{announcements:t=Fr,container:n,hiddenTextDescribedById:r,screenReaderInstructions:o=Br}=e;const{announce:s,announcement:i}=zr(),a=Ke("DndLiveRegion"),[l,u]=c.useState(!1);if(c.useEffect(()=>{u(!0)},[]),$r(c.useMemo(()=>({onDragStart(v){let{active:b}=v;s(t.onDragStart({active:b}))},onDragMove(v){let{active:b,over:f}=v;t.onDragMove&&s(t.onDragMove({active:b,over:f}))},onDragOver(v){let{active:b,over:f}=v;s(t.onDragOver({active:b,over:f}))},onDragEnd(v){let{active:b,over:f}=v;s(t.onDragEnd({active:b,over:f}))},onDragCancel(v){let{active:b,over:f}=v;s(t.onDragCancel({active:b,over:f}))}}),[s,t])),!l)return null;const h=c.createElement(c.Fragment,null,c.createElement(Lr,{id:r,value:o.draggable}),c.createElement(Pr,{id:a,announcement:i}));return n?Be.createPortal(h,n):h}var $;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})($||($={}));function dt(){}function Wr(e,t){return c.useMemo(()=>({sensor:e,options:{}}),[e,t])}function Ur(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return c.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const se=Object.freeze({x:0,y:0});function Yr(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Gr(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function qr(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function Xr(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function vn(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const An=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=vn(t,t.left,t.top),s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const u=Yr(vn(l),o);s.push({id:a,data:{droppableContainer:i,value:u}})}}return s.sort(Gr)};function Jr(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),s=Math.min(t.top+t.height,e.top+e.height),i=o-r,a=s-n;if(r<o&&n<s){const l=t.width*t.height,u=e.width*e.height,h=i*a,v=h/(l+u-h);return Number(v.toFixed(4))}return 0}const Kr=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=[];for(const s of r){const{id:i}=s,a=n.get(i);if(a){const l=Jr(a,t);l>0&&o.push({id:i,data:{droppableContainer:s,value:l}})}}return o.sort(qr)};function Zr(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Mn(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:se}function Qr(e){return function(n){for(var r=arguments.length,o=new Array(r>1?r-1:0),s=1;s<r;s++)o[s-1]=arguments[s];return o.reduce((i,a)=>({...i,top:i.top+e*a.y,bottom:i.bottom+e*a.y,left:i.left+e*a.x,right:i.right+e*a.x}),{...n})}}const eo=Qr(1);function to(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function no(e,t,n){const r=to(t);if(!r)return e;const{scaleX:o,scaleY:s,x:i,y:a}=r,l=e.left-i-(1-o)*parseFloat(n),u=e.top-a-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),h=o?e.width/o:e.width,v=s?e.height/s:e.height;return{width:h,height:v,top:u,right:l+h,bottom:u+v,left:l}}const ro={ignoreTransform:!1};function Ae(e,t){t===void 0&&(t=ro);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:h}=q(e).getComputedStyle(e);u&&(n=no(n,u,h))}const{top:r,left:o,width:s,height:i,bottom:a,right:l}=n;return{top:r,left:o,width:s,height:i,bottom:a,right:l}}function gn(e){return Ae(e,{ignoreTransform:!0})}function oo(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function so(e,t){return t===void 0&&(t=q(e).getComputedStyle(e)),t.position==="fixed"}function io(e,t){t===void 0&&(t=q(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(o=>{const s=t[o];return typeof s=="string"?n.test(s):!1})}function Ft(e,t){const n=[];function r(o){if(t!=null&&n.length>=t||!o)return n;if($t(o)&&o.scrollingElement!=null&&!n.includes(o.scrollingElement))return n.push(o.scrollingElement),n;if(!Xe(o)||jn(o)||n.includes(o))return n;const s=q(e).getComputedStyle(o);return o!==e&&io(o,s)&&n.push(o),so(o,s)?n:r(o.parentNode)}return e?r(e):n}function Nn(e){const[t]=Ft(e,1);return t??null}function _t(e){return!ht||!e?null:ke(e)?e:zt(e)?$t(e)||e===Ie(e).scrollingElement?window:Xe(e)?e:null:null}function Ln(e){return ke(e)?e.scrollX:e.scrollLeft}function Pn(e){return ke(e)?e.scrollY:e.scrollTop}function Nt(e){return{x:Ln(e),y:Pn(e)}}var V;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(V||(V={}));function zn(e){return!ht||!e?!1:e===document.scrollingElement}function $n(e){const t={x:0,y:0},n=zn(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},o=e.scrollTop<=t.y,s=e.scrollLeft<=t.x,i=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:o,isLeft:s,isBottom:i,isRight:a,maxScroll:r,minScroll:t}}const ao={x:.2,y:.2};function co(e,t,n,r,o){let{top:s,left:i,right:a,bottom:l}=n;r===void 0&&(r=10),o===void 0&&(o=ao);const{isTop:u,isBottom:h,isLeft:v,isRight:b}=$n(e),f={x:0,y:0},y={x:0,y:0},m={height:t.height*o.y,width:t.width*o.x};return!u&&s<=t.top+m.height?(f.y=V.Backward,y.y=r*Math.abs((t.top+m.height-s)/m.height)):!h&&l>=t.bottom-m.height&&(f.y=V.Forward,y.y=r*Math.abs((t.bottom-m.height-l)/m.height)),!b&&a>=t.right-m.width?(f.x=V.Forward,y.x=r*Math.abs((t.right-m.width-a)/m.width)):!v&&i<=t.left+m.width&&(f.x=V.Backward,y.x=r*Math.abs((t.left+m.width-i)/m.width)),{direction:f,speed:y}}function lo(e){if(e===document.scrollingElement){const{innerWidth:s,innerHeight:i}=window;return{top:0,left:0,right:s,bottom:i,width:s,height:i}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function Vn(e){return e.reduce((t,n)=>Te(t,Nt(n)),se)}function uo(e){return e.reduce((t,n)=>t+Ln(n),0)}function fo(e){return e.reduce((t,n)=>t+Pn(n),0)}function ho(e,t){if(t===void 0&&(t=Ae),!e)return;const{top:n,left:r,bottom:o,right:s}=t(e);Nn(e)&&(o<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const vo=[["x",["left","right"],uo],["y",["top","bottom"],fo]];class Ht{constructor(t,n){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 r=Ft(n),o=Vn(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[s,i,a]of vo)for(const l of i)Object.defineProperty(this,l,{get:()=>{const u=a(r),h=o[s]-u;return this.rect[l]+h},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Fe{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var o;(o=this.target)==null||o.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function go(e){const{EventTarget:t}=q(e);return e instanceof t?e:Ie(e)}function Ot(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var oe;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(oe||(oe={}));function pn(e){e.preventDefault()}function po(e){e.stopPropagation()}var I;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(I||(I={}));const Bn={start:[I.Space,I.Enter],cancel:[I.Esc],end:[I.Space,I.Enter,I.Tab]},bo=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case I.Right:return{...n,x:n.x+25};case I.Left:return{...n,x:n.x-25};case I.Down:return{...n,y:n.y+25};case I.Up:return{...n,y:n.y-25}}};class Fn{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Fe(Ie(n)),this.windowListeners=new Fe(q(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(oe.Resize,this.handleCancel),this.windowListeners.add(oe.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(oe.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&ho(r),n(se)}handleKeyDown(t){if(Bt(t)){const{active:n,context:r,options:o}=this.props,{keyboardCodes:s=Bn,coordinateGetter:i=bo,scrollBehavior:a="smooth"}=o,{code:l}=t;if(s.end.includes(l)){this.handleEnd(t);return}if(s.cancel.includes(l)){this.handleCancel(t);return}const{collisionRect:u}=r.current,h=u?{x:u.left,y:u.top}:se;this.referenceCoordinates||(this.referenceCoordinates=h);const v=i(t,{active:n,context:r.current,currentCoordinates:h});if(v){const b=ut(v,h),f={x:0,y:0},{scrollableAncestors:y}=r.current;for(const m of y){const x=t.code,{isTop:w,isRight:C,isLeft:E,isBottom:O,maxScroll:j,minScroll:R}=$n(m),D=lo(m),T={x:Math.min(x===I.Right?D.right-D.width/2:D.right,Math.max(x===I.Right?D.left:D.left+D.width/2,v.x)),y:Math.min(x===I.Down?D.bottom-D.height/2:D.bottom,Math.max(x===I.Down?D.top:D.top+D.height/2,v.y))},L=x===I.Right&&!C||x===I.Left&&!E,z=x===I.Down&&!O||x===I.Up&&!w;if(L&&T.x!==v.x){const N=m.scrollLeft+b.x,U=x===I.Right&&N<=j.x||x===I.Left&&N>=R.x;if(U&&!b.y){m.scrollTo({left:N,behavior:a});return}U?f.x=m.scrollLeft-N:f.x=x===I.Right?m.scrollLeft-j.x:m.scrollLeft-R.x,f.x&&m.scrollBy({left:-f.x,behavior:a});break}else if(z&&T.y!==v.y){const N=m.scrollTop+b.y,U=x===I.Down&&N<=j.y||x===I.Up&&N>=R.y;if(U&&!b.x){m.scrollTo({top:N,behavior:a});return}U?f.y=m.scrollTop-N:f.y=x===I.Down?m.scrollTop-j.y:m.scrollTop-R.y,f.y&&m.scrollBy({top:-f.y,behavior:a});break}}this.handleMove(t,Te(ut(v,this.referenceCoordinates),f))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Fn.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=Bn,onActivation:o}=t,{active:s}=n;const{code:i}=e.nativeEvent;if(r.start.includes(i)){const a=s.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),o?.({event:e.nativeEvent}),!0)}return!1}}];function bn(e){return!!(e&&"distance"in e)}function mn(e){return!!(e&&"delay"in e)}class Wt{constructor(t,n,r){var o;r===void 0&&(r=go(t.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=t,this.events=n;const{event:s}=t,{target:i}=s;this.props=t,this.events=n,this.document=Ie(i),this.documentListeners=new Fe(this.document),this.listeners=new Fe(r),this.windowListeners=new Fe(q(i)),this.initialCoordinates=(o=Mt(s))!=null?o:se,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:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(oe.Resize,this.handleCancel),this.windowListeners.add(oe.DragStart,pn),this.windowListeners.add(oe.VisibilityChange,this.handleCancel),this.windowListeners.add(oe.ContextMenu,pn),this.documentListeners.add(oe.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(mn(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(bn(n)){this.handlePending(n);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(t,n){const{active:r,onPending:o}=this.props;o(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(oe.Click,po,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(oe.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:o,props:s}=this,{onMove:i,options:{activationConstraint:a}}=s;if(!o)return;const l=(n=Mt(t))!=null?n:se,u=ut(o,l);if(!r&&a){if(bn(a)){if(a.tolerance!=null&&Ot(u,a.tolerance))return this.handleCancel();if(Ot(u,a.distance))return this.handleStart()}if(mn(a)&&Ot(u,a.tolerance))return this.handleCancel();this.handlePending(a,u);return}t.cancelable&&t.preventDefault(),i(l)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===I.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const mo={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ut extends Wt{constructor(t){const{event:n}=t,r=Ie(n.target);super(t,mo,r)}}Ut.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];const xo={move:{name:"mousemove"},end:{name:"mouseup"}};var Lt;(function(e){e[e.RightClick=2]="RightClick"})(Lt||(Lt={}));class yo extends Wt{constructor(t){super(t,xo,Ie(t.event.target))}}yo.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Lt.RightClick?!1:(r?.({event:n}),!0)}}];const Tt={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class wo extends Wt{constructor(t){super(t,Tt)}static setup(){return window.addEventListener(Tt.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(Tt.move.name,t)};function t(){}}}wo.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:o}=n;return o.length>1?!1:(r?.({event:n}),!0)}}];var He;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(He||(He={}));var ft;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(ft||(ft={}));function So(e){let{acceleration:t,activator:n=He.Pointer,canScroll:r,draggingRect:o,enabled:s,interval:i=5,order:a=ft.TreeOrder,pointerCoordinates:l,scrollableAncestors:u,scrollableAncestorRects:h,delta:v,threshold:b}=e;const f=Ro({delta:v,disabled:!s}),[y,m]=kr(),x=c.useRef({x:0,y:0}),w=c.useRef({x:0,y:0}),C=c.useMemo(()=>{switch(n){case He.Pointer:return l?{top:l.y,bottom:l.y,left:l.x,right:l.x}:null;case He.DraggableRect:return o}},[n,o,l]),E=c.useRef(null),O=c.useCallback(()=>{const R=E.current;if(!R)return;const D=x.current.x*w.current.x,T=x.current.y*w.current.y;R.scrollBy(D,T)},[]),j=c.useMemo(()=>a===ft.TreeOrder?[...u].reverse():u,[a,u]);c.useEffect(()=>{if(!s||!u.length||!C){m();return}for(const R of j){if(r?.(R)===!1)continue;const D=u.indexOf(R),T=h[D];if(!T)continue;const{direction:L,speed:z}=co(R,T,C,t,b);for(const N of["x","y"])f[N][L[N]]||(z[N]=0,L[N]=0);if(z.x>0||z.y>0){m(),E.current=R,y(O,i),x.current=z,w.current=L;return}}x.current={x:0,y:0},w.current={x:0,y:0},m()},[t,O,r,m,s,i,JSON.stringify(C),JSON.stringify(f),y,u,j,h,JSON.stringify(b)])}const Co={x:{[V.Backward]:!1,[V.Forward]:!1},y:{[V.Backward]:!1,[V.Forward]:!1}};function Ro(e){let{delta:t,disabled:n}=e;const r=At(t);return Je(o=>{if(n||!r||!o)return Co;const s={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[V.Backward]:o.x[V.Backward]||s.x===-1,[V.Forward]:o.x[V.Forward]||s.x===1},y:{[V.Backward]:o.y[V.Backward]||s.y===-1,[V.Forward]:o.y[V.Forward]||s.y===1}}},[n,t,r])}function Eo(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Je(o=>{var s;return t==null?null:(s=r??o)!=null?s:null},[r,t])}function Do(e,t){return c.useMemo(()=>e.reduce((n,r)=>{const{sensor:o}=r,s=o.activators.map(i=>({eventName:i.eventName,handler:t(i.handler,r)}));return[...n,...s]},[]),[e,t])}var Ye;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Ye||(Ye={}));var Pt;(function(e){e.Optimized="optimized"})(Pt||(Pt={}));const xn=new Map;function _o(e,t){let{dragging:n,dependencies:r,config:o}=t;const[s,i]=c.useState(null),{frequency:a,measure:l,strategy:u}=o,h=c.useRef(e),v=x(),b=Ue(v),f=c.useCallback(function(w){w===void 0&&(w=[]),!b.current&&i(C=>C===null?w:C.concat(w.filter(E=>!C.includes(E))))},[b]),y=c.useRef(null),m=Je(w=>{if(v&&!n)return xn;if(!w||w===xn||h.current!==e||s!=null){const C=new Map;for(let E of e){if(!E)continue;if(s&&s.length>0&&!s.includes(E.id)&&E.rect.current){C.set(E.id,E.rect.current);continue}const O=E.node.current,j=O?new Ht(l(O),O):null;E.rect.current=j,j&&C.set(E.id,j)}return C}return w},[e,s,n,v,l]);return c.useEffect(()=>{h.current=e},[e]),c.useEffect(()=>{v||f()},[n,v]),c.useEffect(()=>{s&&s.length>0&&i(null)},[JSON.stringify(s)]),c.useEffect(()=>{v||typeof a!="number"||y.current!==null||(y.current=setTimeout(()=>{f(),y.current=null},a))},[a,v,f,...r]),{droppableRects:m,measureDroppableContainers:f,measuringScheduled:s!=null};function x(){switch(u){case Ye.Always:return!1;case Ye.BeforeDragging:return n;default:return!n}}}function Hn(e,t){return Je(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function Oo(e,t){return Hn(e,t)}function To(e){let{callback:t,disabled:n}=e;const r=Vt(t),o=c.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return c.useEffect(()=>()=>o?.disconnect(),[o]),o}function vt(e){let{callback:t,disabled:n}=e;const r=Vt(t),o=c.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return c.useEffect(()=>()=>o?.disconnect(),[o]),o}function jo(e){return new Ht(Ae(e),e)}function yn(e,t,n){t===void 0&&(t=jo);const[r,o]=c.useState(null);function s(){o(l=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=l??n)!=null?u:null}const h=t(e);return JSON.stringify(l)===JSON.stringify(h)?l:h})}const i=To({callback(l){if(e)for(const u of l){const{type:h,target:v}=u;if(h==="childList"&&v instanceof HTMLElement&&v.contains(e)){s();break}}}}),a=vt({callback:s});return ue(()=>{s(),e?(a?.observe(e),i?.observe(document.body,{childList:!0,subtree:!0})):(a?.disconnect(),i?.disconnect())},[e]),r}function ko(e){const t=Hn(e);return Mn(e,t)}const wn=[];function Io(e){const t=c.useRef(e),n=Je(r=>e?r&&r!==wn&&e&&t.current&&e.parentNode===t.current.parentNode?r:Ft(e):wn,[e]);return c.useEffect(()=>{t.current=e},[e]),n}function Ao(e){const[t,n]=c.useState(null),r=c.useRef(e),o=c.useCallback(s=>{const i=_t(s.target);i&&n(a=>a?(a.set(i,Nt(i)),new Map(a)):null)},[]);return c.useEffect(()=>{const s=r.current;if(e!==s){i(s);const a=e.map(l=>{const u=_t(l);return u?(u.addEventListener("scroll",o,{passive:!0}),[u,Nt(u)]):null}).filter(l=>l!=null);n(a.length?new Map(a):null),r.current=e}return()=>{i(e),i(s)};function i(a){a.forEach(l=>{const u=_t(l);u?.removeEventListener("scroll",o)})}},[o,e]),c.useMemo(()=>e.length?t?Array.from(t.values()).reduce((s,i)=>Te(s,i),se):Vn(e):se,[e,t])}function Sn(e,t){t===void 0&&(t=[]);const n=c.useRef(null);return c.useEffect(()=>{n.current=null},t),c.useEffect(()=>{const r=e!==se;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?ut(e,n.current):se}function Mo(e){c.useEffect(()=>{if(!ht)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n?.()}},e.map(t=>{let{sensor:n}=t;return n}))}function No(e,t){return c.useMemo(()=>e.reduce((n,r)=>{let{eventName:o,handler:s}=r;return n[o]=i=>{s(i,t)},n},{}),[e,t])}function Wn(e){return c.useMemo(()=>e?oo(e):null,[e])}const Cn=[];function Lo(e,t){t===void 0&&(t=Ae);const[n]=e,r=Wn(n?q(n):null),[o,s]=c.useState(Cn);function i(){s(()=>e.length?e.map(l=>zn(l)?r:new Ht(t(l),l)):Cn)}const a=vt({callback:i});return ue(()=>{a?.disconnect(),i(),e.forEach(l=>a?.observe(l))},[e]),o}function Po(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Xe(t)?t:e}function zo(e){let{measure:t}=e;const[n,r]=c.useState(null),o=c.useCallback(u=>{for(const{target:h}of u)if(Xe(h)){r(v=>{const b=t(h);return v?{...v,width:b.width,height:b.height}:b});break}},[t]),s=vt({callback:o}),i=c.useCallback(u=>{const h=Po(u);s?.disconnect(),h&&s?.observe(h),r(h?t(h):null)},[t,s]),[a,l]=lt(i);return c.useMemo(()=>({nodeRef:a,rect:n,setRef:l}),[n,a,l])}const $o=[{sensor:Ut,options:{}},{sensor:Fn,options:{}}],Vo={current:{}},at={draggable:{measure:gn},droppable:{measure:gn,strategy:Ye.WhileDragging,frequency:Pt.Optimized},dragOverlay:{measure:Ae}};class We extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Bo={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new We,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:dt},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:at,measureDroppableContainers:dt,windowRect:null,measuringScheduled:!1},Fo={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:dt,draggableNodes:new Map,over:null,measureDroppableContainers:dt},gt=c.createContext(Fo),Un=c.createContext(Bo);function Ho(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new We}}}function Wo(e,t){switch(t.type){case $.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case $.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case $.DragEnd:case $.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case $.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new We(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case $.SetDroppableDisabled:{const{id:n,key:r,disabled:o}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new We(e.droppable.containers);return i.set(n,{...s,disabled:o}),{...e,droppable:{...e.droppable,containers:i}}}case $.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const s=new We(e.droppable.containers);return s.delete(n),{...e,droppable:{...e.droppable,containers:s}}}default:return e}}function Uo(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:o}=c.useContext(gt),s=At(r),i=At(n?.id);return c.useEffect(()=>{if(!t&&!r&&s&&i!=null){if(!Bt(s)||document.activeElement===s.target)return;const a=o.get(i);if(!a)return;const{activatorNode:l,node:u}=a;if(!l.current&&!u.current)return;requestAnimationFrame(()=>{for(const h of[l.current,u.current]){if(!h)continue;const v=Mr(h);if(v){v.focus();break}}})}},[r,t,o,i,s]),null}function Yo(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((o,s)=>s({transform:o,...r}),n):n}function Go(e){return c.useMemo(()=>({draggable:{...at.draggable,...e?.draggable},droppable:{...at.droppable,...e?.droppable},dragOverlay:{...at.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function qo(e){let{activeNode:t,measure:n,initialRect:r,config:o=!0}=e;const s=c.useRef(!1),{x:i,y:a}=typeof o=="boolean"?{x:o,y:o}:o;ue(()=>{if(!i&&!a||!t){s.current=!1;return}if(s.current||!r)return;const u=t?.node.current;if(!u||u.isConnected===!1)return;const h=n(u),v=Mn(h,r);if(i||(v.x=0),a||(v.y=0),s.current=!0,Math.abs(v.x)>0||Math.abs(v.y)>0){const b=Nn(u);b&&b.scrollBy({top:v.y,left:v.x})}},[t,i,a,r,n])}const Yn=c.createContext({...se,scaleX:1,scaleY:1});var ye;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(ye||(ye={}));const Gn=c.memo(function(t){var n,r,o,s;let{id:i,accessibility:a,autoScroll:l=!0,children:u,sensors:h=$o,collisionDetection:v=Kr,measuring:b,modifiers:f,...y}=t;const m=c.useReducer(Wo,void 0,Ho),[x,w]=m,[C,E]=Vr(),[O,j]=c.useState(ye.Uninitialized),R=O===ye.Initialized,{draggable:{active:D,nodes:T,translate:L},droppable:{containers:z}}=x,N=D!=null?T.get(D):null,U=c.useRef({initial:null,translated:null}),G=c.useMemo(()=>{var W;return D!=null?{id:D,data:(W=N?.data)!=null?W:Vo,rect:U}:null},[D,N]),te=c.useRef(null),[de,we]=c.useState(null),[F,Se]=c.useState(null),ne=Ue(y,Object.values(y)),ve=Ke("DndDescribedBy",i),p=c.useMemo(()=>z.getEnabled(),[z]),S=Go(b),{droppableRects:k,measureDroppableContainers:M,measuringScheduled:ie}=_o(p,{dragging:R,dependencies:[L.x,L.y],config:S.droppable}),H=Eo(T,D),P=c.useMemo(()=>F?Mt(F):null,[F]),Y=vr(),X=Oo(H,S.draggable.measure);qo({activeNode:D!=null?T.get(D):null,config:Y.layoutShiftCompensation,initialRect:X,measure:S.draggable.measure});const A=yn(H,S.draggable.measure,X),Me=yn(H?H.parentElement:null),ae=c.useRef({activatorEvent:null,active:null,activeNode:H,collisionRect:null,collisions:null,droppableRects:k,draggableNodes:T,draggingNode:null,draggingNodeRect:null,droppableContainers:z,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),Ce=z.getNodeFor((n=ae.current.over)==null?void 0:n.id),fe=zo({measure:S.dragOverlay.measure}),Re=(r=fe.nodeRef.current)!=null?r:H,Ee=R?(o=fe.rect)!=null?o:A:null,Gt=!!(fe.nodeRef.current&&fe.rect),qt=ko(Gt?null:A),mt=Wn(Re?q(Re):null),ge=Io(R?Ce??H:null),Ze=Lo(ge),Qe=Yo(f,{transform:{x:L.x-qt.x,y:L.y-qt.y,scaleX:1,scaleY:1},activatorEvent:F,active:G,activeNodeRect:A,containerNodeRect:Me,draggingNodeRect:Ee,over:ae.current.over,overlayNodeRect:fe.rect,scrollableAncestors:ge,scrollableAncestorRects:Ze,windowRect:mt}),Xt=P?Te(P,L):null,Jt=Ao(ge),ar=Sn(Jt),cr=Sn(Jt,[A]),De=Te(Qe,ar),_e=Ee?eo(Ee,Qe):null,Ne=G&&_e?v({active:G,collisionRect:_e,droppableRects:k,droppableContainers:p,pointerCoordinates:Xt}):null,Kt=Xr(Ne,"id"),[pe,Zt]=c.useState(null),lr=Gt?Qe:Te(Qe,cr),ur=Zr(lr,(s=pe?.rect)!=null?s:null,A),xt=c.useRef(null),Qt=c.useCallback((W,J)=>{let{sensor:K,options:be}=J;if(te.current==null)return;const re=T.get(te.current);if(!re)return;const Z=W.nativeEvent,ce=new K({active:te.current,activeNode:re,event:Z,options:be,context:ae,onAbort(B){if(!T.get(B))return;const{onDragAbort:le}=ne.current,he={id:B};le?.(he),C({type:"onDragAbort",event:he})},onPending(B,me,le,he){if(!T.get(B))return;const{onDragPending:Pe}=ne.current,xe={id:B,constraint:me,initialCoordinates:le,offset:he};Pe?.(xe),C({type:"onDragPending",event:xe})},onStart(B){const me=te.current;if(me==null)return;const le=T.get(me);if(!le)return;const{onDragStart:he}=ne.current,Le={activatorEvent:Z,active:{id:me,data:le.data,rect:U}};Be.unstable_batchedUpdates(()=>{he?.(Le),j(ye.Initializing),w({type:$.DragStart,initialCoordinates:B,active:me}),C({type:"onDragStart",event:Le}),we(xt.current),Se(Z)})},onMove(B){w({type:$.DragMove,coordinates:B})},onEnd:Oe($.DragEnd),onCancel:Oe($.DragCancel)});xt.current=ce;function Oe(B){return async function(){const{active:le,collisions:he,over:Le,scrollAdjustedTranslate:Pe}=ae.current;let xe=null;if(le&&Pe){const{cancelDrop:ze}=ne.current;xe={activatorEvent:Z,active:le,collisions:he,delta:Pe,over:Le},B===$.DragEnd&&typeof ze=="function"&&await Promise.resolve(ze(xe))&&(B=$.DragCancel)}te.current=null,Be.unstable_batchedUpdates(()=>{w({type:B}),j(ye.Uninitialized),Zt(null),we(null),Se(null),xt.current=null;const ze=B===$.DragEnd?"onDragEnd":"onDragCancel";if(xe){const yt=ne.current[ze];yt?.(xe),C({type:ze,event:xe})}})}}},[T]),dr=c.useCallback((W,J)=>(K,be)=>{const re=K.nativeEvent,Z=T.get(be);if(te.current!==null||!Z||re.dndKit||re.defaultPrevented)return;const ce={active:Z};W(K,J.options,ce)===!0&&(re.dndKit={capturedBy:J.sensor},te.current=be,Qt(K,J))},[T,Qt]),en=Do(h,dr);Mo(h),ue(()=>{A&&O===ye.Initializing&&j(ye.Initialized)},[A,O]),c.useEffect(()=>{const{onDragMove:W}=ne.current,{active:J,activatorEvent:K,collisions:be,over:re}=ae.current;if(!J||!K)return;const Z={active:J,activatorEvent:K,collisions:be,delta:{x:De.x,y:De.y},over:re};Be.unstable_batchedUpdates(()=>{W?.(Z),C({type:"onDragMove",event:Z})})},[De.x,De.y]),c.useEffect(()=>{const{active:W,activatorEvent:J,collisions:K,droppableContainers:be,scrollAdjustedTranslate:re}=ae.current;if(!W||te.current==null||!J||!re)return;const{onDragOver:Z}=ne.current,ce=be.get(Kt),Oe=ce&&ce.rect.current?{id:ce.id,rect:ce.rect.current,data:ce.data,disabled:ce.disabled}:null,B={active:W,activatorEvent:J,collisions:K,delta:{x:re.x,y:re.y},over:Oe};Be.unstable_batchedUpdates(()=>{Zt(Oe),Z?.(B),C({type:"onDragOver",event:B})})},[Kt]),ue(()=>{ae.current={activatorEvent:F,active:G,activeNode:H,collisionRect:_e,collisions:Ne,droppableRects:k,draggableNodes:T,draggingNode:Re,draggingNodeRect:Ee,droppableContainers:z,over:pe,scrollableAncestors:ge,scrollAdjustedTranslate:De},U.current={initial:Ee,translated:_e}},[G,H,Ne,_e,T,Re,Ee,k,z,pe,ge,De]),So({...Y,delta:L,draggingRect:_e,pointerCoordinates:Xt,scrollableAncestors:ge,scrollableAncestorRects:Ze});const fr=c.useMemo(()=>({active:G,activeNode:H,activeNodeRect:A,activatorEvent:F,collisions:Ne,containerNodeRect:Me,dragOverlay:fe,draggableNodes:T,droppableContainers:z,droppableRects:k,over:pe,measureDroppableContainers:M,scrollableAncestors:ge,scrollableAncestorRects:Ze,measuringConfiguration:S,measuringScheduled:ie,windowRect:mt}),[G,H,A,F,Ne,Me,fe,T,z,k,pe,M,ge,Ze,S,ie,mt]),hr=c.useMemo(()=>({activatorEvent:F,activators:en,active:G,activeNodeRect:A,ariaDescribedById:{draggable:ve},dispatch:w,draggableNodes:T,over:pe,measureDroppableContainers:M}),[F,en,G,A,w,ve,T,pe,M]);return c.createElement(In.Provider,{value:E},c.createElement(gt.Provider,{value:hr},c.createElement(Un.Provider,{value:fr},c.createElement(Yn.Provider,{value:ur},u)),c.createElement(Uo,{disabled:a?.restoreFocus===!1})),c.createElement(Hr,{...a,hiddenTextDescribedById:ve}));function vr(){const W=de?.autoScrollEnabled===!1,J=typeof l=="object"?l.enabled===!1:l===!1,K=R&&!W&&!J;return typeof l=="object"?{...l,enabled:K}:{enabled:K}}}),Xo=c.createContext(null),Rn="button",Jo="Draggable";function Ko(e){let{id:t,data:n,disabled:r=!1,attributes:o}=e;const s=Ke(Jo),{activators:i,activatorEvent:a,active:l,activeNodeRect:u,ariaDescribedById:h,draggableNodes:v,over:b}=c.useContext(gt),{role:f=Rn,roleDescription:y="draggable",tabIndex:m=0}=o??{},x=l?.id===t,w=c.useContext(x?Yn:Xo),[C,E]=lt(),[O,j]=lt(),R=No(i,t),D=Ue(n);ue(()=>(v.set(t,{id:t,key:s,node:C,activatorNode:O,data:D}),()=>{const L=v.get(t);L&&L.key===s&&v.delete(t)}),[v,t]);const T=c.useMemo(()=>({role:f,tabIndex:m,"aria-disabled":r,"aria-pressed":x&&f===Rn?!0:void 0,"aria-roledescription":y,"aria-describedby":h.draggable}),[r,f,m,x,y,h.draggable]);return{active:l,activatorEvent:a,activeNodeRect:u,attributes:T,isDragging:x,listeners:r?void 0:R,node:C,over:b,setNodeRef:E,setActivatorNodeRef:j,transform:w}}function Zo(){return c.useContext(Un)}const Qo="Droppable",es={timeout:25};function ts(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:o}=e;const s=Ke(Qo),{active:i,dispatch:a,over:l,measureDroppableContainers:u}=c.useContext(gt),h=c.useRef({disabled:n}),v=c.useRef(!1),b=c.useRef(null),f=c.useRef(null),{disabled:y,updateMeasurementsFor:m,timeout:x}={...es,...o},w=Ue(m??r),C=c.useCallback(()=>{if(!v.current){v.current=!0;return}f.current!=null&&clearTimeout(f.current),f.current=setTimeout(()=>{u(Array.isArray(w.current)?w.current:[w.current]),f.current=null},x)},[x]),E=vt({callback:C,disabled:y||!i}),O=c.useCallback((T,L)=>{E&&(L&&(E.unobserve(L),v.current=!1),T&&E.observe(T))},[E]),[j,R]=lt(O),D=Ue(t);return c.useEffect(()=>{!E||!j.current||(E.disconnect(),v.current=!1,E.observe(j.current))},[j,E]),c.useEffect(()=>(a({type:$.RegisterDroppable,element:{id:r,key:s,disabled:n,node:j,rect:b,data:D}}),()=>a({type:$.UnregisterDroppable,key:s,id:r})),[r]),c.useEffect(()=>{n!==h.current.disabled&&(a({type:$.SetDroppableDisabled,id:r,key:s,disabled:n}),h.current.disabled=n)},[r,s,n,a]),{active:i,rect:b,isOver:l?.id===r,node:j,over:l,setNodeRef:R}}function pt(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function ns(e,t){return e.reduce((n,r,o)=>{const s=t.get(r);return s&&(n[o]=s),n},Array(e.length))}function ot(e){return e!==null&&e>=0}function rs(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function os(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const st={scaleX:1,scaleY:1},ss=e=>{var t;let{rects:n,activeNodeRect:r,activeIndex:o,overIndex:s,index:i}=e;const a=(t=n[o])!=null?t:r;if(!a)return null;const l=is(n,i,o);if(i===o){const u=n[s];return u?{x:o<s?u.left+u.width-(a.left+a.width):u.left-a.left,y:0,...st}:null}return i>o&&i<=s?{x:-a.width-l,y:0,...st}:i<o&&i>=s?{x:a.width+l,y:0,...st}:{x:0,y:0,...st}};function is(e,t,n){const r=e[t],o=e[t-1],s=e[t+1];return!r||!o&&!s?0:n<t?o?r.left-(o.left+o.width):s.left-(r.left+r.width):s?s.left-(r.left+r.width):r.left-(o.left+o.width)}const qn=e=>{let{rects:t,activeIndex:n,overIndex:r,index:o}=e;const s=pt(t,r,n),i=t[o],a=s[o];return!a||!i?null:{x:a.left-i.left,y:a.top-i.top,scaleX:a.width/i.width,scaleY:a.height/i.height}},it={scaleX:1,scaleY:1},as=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:o,rects:s,overIndex:i}=e;const a=(t=s[n])!=null?t:r;if(!a)return null;if(o===n){const u=s[i];return u?{x:0,y:n<i?u.top+u.height-(a.top+a.height):u.top-a.top,...it}:null}const l=cs(s,o,n);return o>n&&o<=i?{x:0,y:-a.height-l,...it}:o<n&&o>=i?{x:0,y:a.height+l,...it}:{x:0,y:0,...it}};function cs(e,t,n){const r=e[t],o=e[t-1],s=e[t+1];return r?n<t?o?r.top-(o.top+o.height):s?s.top-(r.top+r.height):0:s?s.top-(r.top+r.height):o?r.top-(o.top+o.height):0:0}const Xn="Sortable",Jn=c.createContext({activeIndex:-1,containerId:Xn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:qn,disabled:{draggable:!1,droppable:!1}});function Kn(e){let{children:t,id:n,items:r,strategy:o=qn,disabled:s=!1}=e;const{active:i,dragOverlay:a,droppableRects:l,over:u,measureDroppableContainers:h}=Zo(),v=Ke(Xn,n),b=a.rect!==null,f=c.useMemo(()=>r.map(R=>typeof R=="object"&&"id"in R?R.id:R),[r]),y=i!=null,m=i?f.indexOf(i.id):-1,x=u?f.indexOf(u.id):-1,w=c.useRef(f),C=!rs(f,w.current),E=x!==-1&&m===-1||C,O=os(s);ue(()=>{C&&y&&h(f)},[C,f,y,h]),c.useEffect(()=>{w.current=f},[f]);const j=c.useMemo(()=>({activeIndex:m,containerId:v,disabled:O,disableTransforms:E,items:f,overIndex:x,useDragOverlay:b,sortedRects:ns(f,l),strategy:o}),[m,v,O.draggable,O.droppable,E,f,x,l,b,o]);return c.createElement(Jn.Provider,{value:j},t)}const ls=e=>{let{id:t,items:n,activeIndex:r,overIndex:o}=e;return pt(n,r,o).indexOf(t)},us=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:o,items:s,newIndex:i,previousItems:a,previousContainerId:l,transition:u}=e;return!u||!r||a!==s&&o===i?!1:n?!0:i!==o&&t===l},ds={duration:200,easing:"ease"},Zn="transform",fs=je.Transition.toString({property:Zn,duration:0,easing:"linear"}),hs={roleDescription:"sortable"};function vs(e){let{disabled:t,index:n,node:r,rect:o}=e;const[s,i]=c.useState(null),a=c.useRef(n);return ue(()=>{if(!t&&n!==a.current&&r.current){const l=o.current;if(l){const u=Ae(r.current,{ignoreTransform:!0}),h={x:l.left-u.left,y:l.top-u.top,scaleX:l.width/u.width,scaleY:l.height/u.height};(h.x||h.y)&&i(h)}}n!==a.current&&(a.current=n)},[t,n,r,o]),c.useEffect(()=>{s&&i(null)},[s]),s}function Qn(e){let{animateLayoutChanges:t=us,attributes:n,disabled:r,data:o,getNewIndex:s=ls,id:i,strategy:a,resizeObserverConfig:l,transition:u=ds}=e;const{items:h,containerId:v,activeIndex:b,disabled:f,disableTransforms:y,sortedRects:m,overIndex:x,useDragOverlay:w,strategy:C}=c.useContext(Jn),E=gs(r,f),O=h.indexOf(i),j=c.useMemo(()=>({sortable:{containerId:v,index:O,items:h},...o}),[v,o,O,h]),R=c.useMemo(()=>h.slice(h.indexOf(i)),[h,i]),{rect:D,node:T,isOver:L,setNodeRef:z}=ts({id:i,data:j,disabled:E.droppable,resizeObserverConfig:{updateMeasurementsFor:R,...l}}),{active:N,activatorEvent:U,activeNodeRect:G,attributes:te,setNodeRef:de,listeners:we,isDragging:F,over:Se,setActivatorNodeRef:ne,transform:ve}=Ko({id:i,data:j,attributes:{...hs,...n},disabled:E.draggable}),p=jr(z,de),S=!!N,k=S&&!y&&ot(b)&&ot(x),M=!w&&F,ie=M&&k?ve:null,P=k?ie??(a??C)({rects:m,activeNodeRect:G,activeIndex:b,overIndex:x,index:O}):null,Y=ot(b)&&ot(x)?s({id:i,items:h,activeIndex:b,overIndex:x}):O,X=N?.id,A=c.useRef({activeId:X,items:h,newIndex:Y,containerId:v}),Me=h!==A.current.items,ae=t({active:N,containerId:v,isDragging:F,isSorting:S,id:i,index:O,items:h,newIndex:A.current.newIndex,previousItems:A.current.items,previousContainerId:A.current.containerId,transition:u,wasDragging:A.current.activeId!=null}),Ce=vs({disabled:!ae,index:O,node:T,rect:D});return c.useEffect(()=>{S&&A.current.newIndex!==Y&&(A.current.newIndex=Y),v!==A.current.containerId&&(A.current.containerId=v),h!==A.current.items&&(A.current.items=h)},[S,Y,v,h]),c.useEffect(()=>{if(X===A.current.activeId)return;if(X!=null&&A.current.activeId==null){A.current.activeId=X;return}const Re=setTimeout(()=>{A.current.activeId=X},50);return()=>clearTimeout(Re)},[X]),{active:N,activeIndex:b,attributes:te,data:j,rect:D,index:O,newIndex:Y,items:h,isOver:L,isSorting:S,isDragging:F,listeners:we,node:T,overIndex:x,over:Se,setNodeRef:p,setActivatorNodeRef:ne,setDroppableNodeRef:z,setDraggableNodeRef:de,transform:Ce??P,transition:fe()};function fe(){if(Ce||Me&&A.current.newIndex===O)return fs;if(!(M&&!Bt(U)||!u)&&(S||ae))return je.Transition.toString({...u,property:Zn})}}function gs(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e?.draggable)!=null?n:t.draggable,droppable:(r=e?.droppable)!=null?r:t.droppable}}I.Down,I.Right,I.Up,I.Left;const ps=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),bs=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),En=e=>{const t=bs(e);return t.charAt(0).toUpperCase()+t.slice(1)},er=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),ms=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var xs={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const ys=c.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o="",children:s,iconNode:i,...a},l)=>c.createElement("svg",{ref:l,...xs,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:er("lucide",o),...!s&&!ms(a)&&{"aria-hidden":"true"},...a},[...i.map(([u,h])=>c.createElement(u,h)),...Array.isArray(s)?s:[s]]));const ee=(e,t)=>{const n=c.forwardRef(({className:r,...o},s)=>c.createElement(ys,{ref:s,iconNode:t,className:er(`lucide-${ps(En(e))}`,`lucide-${e}`,r),...o}));return n.displayName=En(e),n};const ws=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Ss=ee("arrow-down",ws);const Cs=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],Rs=ee("arrow-up-down",Cs);const Es=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Ds=ee("arrow-up",Es);const _s=[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]],Os=ee("bookmark",_s);const Ts=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],js=ee("chevron-left",Ts);const ks=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Is=ee("chevron-right",ks);const As=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],Ms=ee("columns-2",As);const Ns=[["path",{d:"M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z",key:"1yo7s0"}],["path",{d:"m12 9 6 6",key:"anjzzh"}],["path",{d:"m18 9-6 6",key:"1fp51s"}]],Ls=ee("delete",Ns);const Ps=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],zs=ee("ellipsis",Ps);const $s=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Vs=ee("funnel",$s);const Bs=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],Fs=ee("grip-vertical",Bs);const Hs=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],Ws=ee("pen",Hs);const Us=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ys=ee("settings",Us);function _(e){return c.forwardRef((t,n)=>{const{children:r,...o}=t;return d.jsx(e,{ref:n,...o,children:r})})}const tr=e=>`table_column_order_v1:${e}`,Gs=e=>{const{tableId:t}=Q.state;localStorage.setItem(tr(t),JSON.stringify(e.map(n=>n.id))),Q.setState(n=>({...n,columnOrder:e})),Q.setState(n=>({...n,columnOrder:e}))},qs=e=>{Q.setState(t=>({...t,visibility:{...t.visibility,[e]:!t.visibility[e]}}))};function Xs(e){Q.setState(t=>t.sortColumn===e?{...t,sortDirection:t.sortDirection==="asc"?"desc":"asc"}:{...t,sortColumn:e,sortDirection:"asc"})}const Q=new Tn({tableId:"",sortColumn:null,sortDirection:"asc",visibility:{},columnOrder:[],data:[],sortableColumns:[]});function nr(e,t){const n=e[0]??{},o=(t&&t.length?t:Object.keys(n).map(l=>({id:l,label:l}))).filter(l=>Object.prototype.hasOwnProperty.call(n,l.id)),{tableId:s}=Q.state,i=JSON.parse(localStorage.getItem(tr(s))||"[]"),a=[...i.map(l=>o.find(u=>u.id===l)).filter(Boolean),...o.filter(l=>!i.includes(l.id))];Q.setState(l=>({...l,data:e,columnOrder:a,visibility:a.reduce((u,h)=>(u[h.id]=!0,u),{}),sortableColumns:a.map(u=>({id:u.id,label:u.label,sortable:!0}))}))}function rr(e){Q.setState(t=>({...t,tableId:e}))}const Js=_(g.Menu.Trigger),Ks=_(g.Menu.Positioner),Zs=_(g.Menu.Content),Qs=_(g.Menu.Item),ei=_(g.Checkbox.Label),ti=_(g.Checkbox.HiddenInput),ni=_(g.Checkbox.Control);function ri({visibility:e,onToggle:t}){const{sortableColumns:n}=qe(Q);return d.jsxs(g.Menu.Root,{closeOnSelect:!1,children:[d.jsx(Js,{asChild:!0,children:d.jsx(g.IconButton,{"aria-label":"Toggle columns",variant:"outline",size:"sm",ml:"1",children:d.jsx(Ms,{size:18})})}),d.jsx(g.Portal,{children:d.jsx(Ks,{children:d.jsx(Zs,{minW:"220px",children:n.map(r=>{const o=!!e[r.id];return d.jsx(Qs,{value:r.id,closeOnSelect:!1,children:d.jsxs(g.Checkbox.Root,{checked:o,onCheckedChange:()=>t(r.id),children:[d.jsx(ti,{}),d.jsx(ni,{}),d.jsx(ei,{children:r.label})]})},r.id)})})})})]})}function oi({id:e,children:t,onClick:n,cursor:r,borderRight:o,borderRightColor:s}){const{setNodeRef:i,attributes:a,listeners:l,transform:u,transition:h}=Qn({id:e});return d.jsx(g.Table.ColumnHeader,{ref:i,onClick:n,w:e==="id"?"80px":void 0,style:{transform:je.Transform.toString(u),transition:h,cursor:r,borderRight:o,borderRightColor:s},...a,children:d.jsxs(g.HStack,{justify:"space-between",children:[t,d.jsx("span",{...l,children:d.jsx(Fs,{size:12})})]})})}function si(){const{columnOrder:e,visibility:t,sortColumn:n,sortDirection:r,sortableColumns:o}=qe(Q),s=e.map(a=>o.find(l=>l.id===a.id)).filter(a=>a!==void 0).filter(a=>t[a.id]),i=a=>{const{active:l,over:u}=a;if(!u||l.id===u.id)return;const h=e.findIndex(f=>f.id===l.id),v=e.findIndex(f=>f.id===u.id),b=pt(e,h,v);Gs(b)};return d.jsx(g.Table.Header,{background:"gray.100",position:"sticky",top:0,p:"0",children:d.jsx(Gn,{collisionDetection:An,onDragEnd:i,children:d.jsx(Kn,{items:e.map(a=>a.id),strategy:ss,children:d.jsxs(g.Table.Row,{height:"28px",children:[s.map((a,l)=>{const u=n===a?.id;return d.jsx(oi,{id:a?.id,onClick:()=>a?.sortable&&Xs(a?.id),cursor:a?.sortable?"pointer":"default",borderRight:"2px solid #dcdcdc",children:d.jsxs("span",{style:{display:"flex",alignItems:"center",gap:6,userSelect:"none"},children:[a?.label,a?.sortable&&(u?r==="asc"?d.jsx(Ds,{size:14}):d.jsx(Ss,{size:14}):d.jsx(Rs,{size:14,opacity:.4}))]})},a?.id)}),d.jsx(g.Table.ColumnHeader,{borderRight:"2px solid #dcdcdc",children:"Actions"}),d.jsx(g.Table.ColumnHeader,{boxSize:"0.5",children:d.jsx(ri,{visibility:t,onToggle:qs})})]})})})})}const Dn=g.createListCollection({items:[{label:"10",value:"10"},{label:"20",value:"20"},{label:"50",value:"50"},{label:"100",value:"100"}]}),ii=_(g.Select.Positioner),ai=_(g.Select.Content),ci=_(g.Select.Item),li=_(g.Pagination.PrevTrigger),ui=_(g.Pagination.NextTrigger),di=_(g.Select.HiddenSelect),fi=_(g.Select.Control),hi=_(g.Select.Trigger),vi=_(g.Select.ValueText),gi=_(g.Select.IndicatorGroup),pi=_(g.Select.Indicator);function bi({totalCount:e,pageSize:t,currentPage:n,onPageChange:r,onPageSizeChange:o,siblingCount:s=2}){return d.jsx(g.Box,{width:"100%",children:d.jsxs(g.HStack,{justify:"space-between",mx:"auto",flexWrap:"wrap",children:[d.jsxs(g.HStack,{children:[d.jsx(g.Text,{fontSize:"sm",color:"gray.600",_dark:{color:"gray.400"},children:"Rows per page:"}),d.jsxs(g.Select.Root,{collection:Dn,size:"sm",width:"60px",onValueChange:i=>o&&o(Number(i.items[0].value)),value:[String(t)],children:[d.jsx(di,{}),d.jsxs(fi,{children:[d.jsx(hi,{children:d.jsx(vi,{placeholder:""})}),d.jsx(gi,{children:d.jsx(pi,{})})]}),d.jsx(g.Portal,{children:d.jsx(ii,{children:d.jsx(ai,{children:Dn.items.map(i=>d.jsxs(ci,{item:i.value,children:[i.label,d.jsx(g.Select.ItemIndicator,{})]},i.value))})})})]})]}),d.jsx(g.Pagination.Root,{count:e,pageSize:t,page:n,siblingCount:s,onPageChange:i=>r&&r(i.page),children:d.jsxs(g.ButtonGroup,{size:"sm",variant:"ghost",children:[d.jsx(li,{asChild:!0,children:d.jsx(g.IconButton,{"aria-label":"Previous page",children:d.jsx(js,{size:18})})}),d.jsx(g.Pagination.Items,{render:i=>d.jsx(g.IconButton,{variant:i.type==="page"&&i.value===n?"outline":"ghost","aria-current":i.type==="page"&&i.value===n?"page":void 0,children:i.type==="page"?i.value:"…"},i.value??i.type)}),d.jsx(ui,{asChild:!0,children:d.jsx(g.IconButton,{"aria-label":"Next page",children:d.jsx(Is,{size:18})})})]})})]})})}const mi=_(g.Menu.Item),xi=_(g.Menu.Content),yi=_(g.Menu.Positioner),wi=_(g.Menu.Trigger);function Si({data:e=[],actions:t=[]}){const{columnOrder:n,visibility:r}=qe(Q);return d.jsx(g.Table.Body,{children:e.map(o=>d.jsxs(g.Table.Row,{children:[n.filter(s=>r[s.id]).map(s=>d.jsx(g.Table.Cell,{children:o[s.id]},s.id)),d.jsx(g.Table.Cell,{textAlign:"center",display:"flex",gap:2,children:d.jsxs(g.Menu.Root,{children:[d.jsx(wi,{asChild:!0,children:d.jsx(g.IconButton,{"aria-label":"Open",variant:"ghost",size:"sm",children:d.jsx(zs,{size:16})})}),d.jsx(g.Portal,{children:d.jsx(yi,{children:d.jsx(xi,{children:t.map(s=>d.jsxs(mi,{onClick:()=>s.onClick(o),colorScheme:s.colorScheme,value:s.label,children:[s.icon,s.label]},s.label))})})})]})})]},o.id))})}function Ci({tableId:e,data:t=[],headers:n=[],loading:r=!1,emptyMessage:o="No data",actions:s,page:i=1,pageSize:a=10,onPageChange:l,onPageSizeChange:u,density:h="sm",totalCount:v=0}){c.useEffect(()=>{rr(e)},[e]),c.useEffect(()=>{nr(t,n)},[t,n]);const{sortColumn:b,sortDirection:f,data:y}=qe(Q),m=c.useMemo(()=>{const x=[...y];b&&x.sort((C,E)=>f==="asc"?String(C[b]).localeCompare(String(E[b])):String(E[b]).localeCompare(String(C[b])));const w=(i-1)*a;return x.slice(w,w+a)},[i,a,b,f,y]);return d.jsxs(g.Box,{h:"100%",display:"flex",flexDirection:"column",p:2,pt:2,minHeight:0,children:[d.jsx(g.Box,{flex:"1",minHeight:0,overflow:"auto",children:r?d.jsx(g.Box,{display:"flex",alignItems:"center",justifyContent:"center",h:"100%",color:"gray.500",children:"Loading..."}):m.length===0?d.jsx(g.Box,{display:"flex",alignItems:"center",justifyContent:"center",h:"100%",color:"gray.500",children:o}):d.jsxs(g.Table.Root,{variant:"outline",w:"100%",size:h,children:[d.jsx(si,{}),d.jsx(Si,{data:m,actions:s})]})}),d.jsx(g.Box,{mt:.5,children:d.jsx(bi,{totalCount:v,pageSize:a,currentPage:i,onPageChange:l,onPageSizeChange:x=>{u&&u(x),i>1&&l&&l(1)}})})]})}const or=e=>`FILTER_PRESETS_${e??"default"}`;function Ri(e){try{return JSON.parse(localStorage.getItem(or(e))||"[]")}catch{return[]}}const Ge=new Tn({}),bt=e=>{const t=Ge.state[e];if(t)return t;const n=Ri(e);return Ge.setState(r=>({...r,[e]:n})),n},Yt=(e,t)=>{Ge.setState(n=>({...n,[e]:t})),localStorage.setItem(or(e),JSON.stringify(t))},sr=(e,t)=>{const n=bt(e).filter(r=>r.id!==t);Yt(e,n)},ir=(e,t)=>{const n=[t,...bt(e)];Yt(e,n)},Ei=_(g.Checkbox.Root),Di=_(g.Checkbox.HiddenInput),_i=_(g.Checkbox.Control),Oi=_(g.Slider.Root),Ti=_(g.Slider.Track),ji=_(g.Slider.Range),ki=_(g.Slider.Thumbs),Ii=_(g.Slider.Control),Ai=({filter:e,onVisibilityChange:t,onSizeChange:n})=>{const{attributes:r,listeners:o,setNodeRef:s,transform:i,transition:a}=Qn({id:e.id}),l={transform:je.Transform.toString(i),transition:a,cursor:"grab"};return d.jsxs(g.VStack,{ref:s,style:l,align:"stretch",border:"1px solid",borderColor:"gray.200",rounded:"md",p:3,mb:3,...r,...o,children:[d.jsx(g.Text,{fontWeight:"bold",children:e.label}),d.jsxs(g.HStack,{justify:"space-between",children:[d.jsx(g.Text,{fontSize:"sm",children:"Visible"}),d.jsxs(Ei,{checked:e.visible,onCheckedChange:u=>t&&t(e.id,!!u),size:"sm",children:[d.jsx(Di,{}),d.jsx(_i,{})]})]}),d.jsxs(g.VStack,{align:"stretch",gap:1,children:[d.jsx(g.Text,{fontSize:"sm",children:"Size"}),d.jsx(Oi,{width:"200px",min:1,max:5,step:.5,value:[e.size??1],onChange:u=>n&&n(e.id,u[0]),children:d.jsxs(Ii,{children:[d.jsx(Ti,{children:d.jsx(ji,{})}),d.jsx(ki,{})]})})]})]})},Mi=_(g.Drawer.Root),Ni=_(g.Drawer.Trigger),Li=_(g.Drawer.Backdrop),Pi=_(g.Drawer.Positioner),zi=_(g.Drawer.Content),$i=_(g.Drawer.Header),Vi=_(g.Drawer.Title),Bi=_(g.Drawer.Body),Fi=_(g.Drawer.Footer),Hi=_(g.Drawer.CloseTrigger),Wi=_(g.Tabs.Root),Ui=_(g.Tabs.List),jt=_(g.Tabs.Trigger),kt=_(g.Tabs.Content),Yi=({filterDrawerSize:e="sm",onVisibilityChange:t,onSizeChange:n,onClear:r,filters:o,pageKey:s="default",currentFilters:i={},onLoadPreset:a,activePresetName:l,onReorder:u})=>{const v=qe(Ge)[s]??bt(s),b=()=>{const f=prompt("Preset name?");f&&ir(s,{id:crypto.randomUUID(),name:f,date:new Date().toISOString(),filters:i})};return d.jsx(g.HStack,{wrap:"wrap",children:d.jsxs(Mi,{size:e,children:[d.jsx(Ni,{asChild:!0,children:d.jsxs(g.IconButton,{"aria-label":"Open filters",variant:"outline",size:"xs",ml:2,p:2,children:[d.jsx(Vs,{size:16}),"Filters"]})}),d.jsxs(g.Portal,{children:[d.jsx(Li,{}),d.jsx(Pi,{children:d.jsxs(zi,{children:[d.jsx($i,{children:d.jsx(Vi,{children:"Filters"})}),d.jsx(Bi,{overflowY:"auto",pt:1,children:d.jsxs(Wi,{defaultValue:"view",children:[d.jsxs(Ui,{mb:4,children:[d.jsxs(jt,{value:"view",children:[d.jsx(Ws,{size:16}),"Edit"]}),d.jsxs(jt,{value:"settings",children:[d.jsx(Ys,{size:16}),"Settings"]}),d.jsxs(jt,{value:"presets",children:[d.jsx(Os,{size:16}),"Presets"]})]}),d.jsx(kt,{value:"view",children:o.filter(f=>f.visible).map(f=>d.jsxs(g.VStack,{align:"stretch",border:"1px solid",borderColor:"gray.200",rounded:"md",p:3,mb:3,children:[d.jsx(g.Text,{fontWeight:"bold",children:f.label}),f.customComponent]},f.id))}),d.jsx(kt,{value:"settings",children:d.jsx(Gn,{sensors:Ur(Wr(Ut)),collisionDetection:An,onDragEnd:({active:f,over:y})=>{if(!y||f.id===y.id)return;const m=o.findIndex(C=>C.id===f.id),x=o.findIndex(C=>C.id===y.id),w=pt(o,m,x);console.log(w),u?.(w)},children:d.jsx(Kn,{items:o.map(f=>f.id),strategy:as,children:o.map(f=>d.jsx(Ai,{filter:f,onVisibilityChange:t,onSizeChange:n},f.id))})})}),d.jsx(kt,{value:"presets",children:d.jsxs(g.VStack,{align:"stretch",mb:3,children:[d.jsx(g.Button,{size:"sm",colorScheme:"blue",onClick:b,children:"Save Current Filters"}),v.length===0&&d.jsx(g.Text,{fontSize:"xs",color:"gray.500",children:"No presets saved yet."}),v.map(f=>d.jsxs(g.HStack,{justify:"space-between",border:"1px solid",borderColor:l===f.name?"blue.300":"gray.200",rounded:"md",p:2,children:[d.jsxs(g.VStack,{align:"start",gap:0,children:[d.jsx(g.Text,{fontWeight:"bold",fontSize:"sm",children:f.name}),d.jsx(g.Text,{fontSize:"xs",color:"gray.500",children:new Date(f.date).toLocaleDateString()})]}),d.jsxs(g.HStack,{children:[d.jsx(g.Button,{size:"xs",variant:"ghost",onClick:()=>a?.(f.filters,f.name),children:"Load"}),d.jsx(g.IconButton,{size:"xs","aria-label":"Delete preset",variant:"ghost",onClick:()=>sr(s,f.id),children:d.jsx(Ls,{size:14})})]})]},f.id))]})})]})}),d.jsxs(Fi,{justify:"space-between",children:[d.jsx(g.Button,{size:"sm",variant:"ghost",colorScheme:"red",onClick:()=>r&&r(),children:"Clear All"}),d.jsx(Hi,{asChild:!0,children:d.jsx(g.CloseButton,{})})]})]})})]})]})})},Gi=({title:e,filters:t,onVisibilityChange:n,onReorder:r,onSizeChange:o,onClear:s,maxToolbarUnits:i,pageKey:a,currentFilters:l,onLoadPreset:u,activePresetName:h,filterDrawerSize:v="sm"})=>d.jsxs(g.HStack,{wrap:"wrap",pl:2,pr:2,width:"100%",justify:"space-between",children:[e,d.jsxs(g.HStack,{children:[t.length>0&&t.filter(b=>b.visible).map(b=>d.jsx(g.HStack,{children:b.customComponent},b.id)),d.jsx(Yi,{filterDrawerSize:v,onVisibilityChange:n?(b,f)=>n(b,f):void 0,onReorder:r,onSizeChange:o?(b,f)=>o(b,f):void 0,onClear:s,maxToolbarUnits:i,pageKey:a,filters:t,currentFilters:l,onLoadPreset:u,activePresetName:h})]})]}),qi=(e,t)=>{localStorage.setItem(`FILTER_ORDER_${e}`,JSON.stringify(t))},Xi=e=>{try{return JSON.parse(localStorage.getItem(`FILTER_ORDER_${e}`)||"[]")}catch{return[]}};exports.DataTable=Ci;exports.Filters=Gi;exports.addPreset=ir;exports.deletePreset=sr;exports.getPresets=bt;exports.loadOrder=Xi;exports.presetStore=Ge;exports.saveOrder=qi;exports.savePresets=Yt;exports.setData=nr;exports.setTableId=rr;exports.tableStore=Q;exports.withChildren=_;
10
+ `},Fr={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Hr(e){let{announcements:t=Fr,container:n,hiddenTextDescribedById:r,screenReaderInstructions:o=Br}=e;const{announce:s,announcement:i}=zr(),a=Ke("DndLiveRegion"),[l,u]=c.useState(!1);if(c.useEffect(()=>{u(!0)},[]),$r(c.useMemo(()=>({onDragStart(v){let{active:b}=v;s(t.onDragStart({active:b}))},onDragMove(v){let{active:b,over:f}=v;t.onDragMove&&s(t.onDragMove({active:b,over:f}))},onDragOver(v){let{active:b,over:f}=v;s(t.onDragOver({active:b,over:f}))},onDragEnd(v){let{active:b,over:f}=v;s(t.onDragEnd({active:b,over:f}))},onDragCancel(v){let{active:b,over:f}=v;s(t.onDragCancel({active:b,over:f}))}}),[s,t])),!l)return null;const h=c.createElement(c.Fragment,null,c.createElement(Lr,{id:r,value:o.draggable}),c.createElement(Pr,{id:a,announcement:i}));return n?Be.createPortal(h,n):h}var $;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})($||($={}));function dt(){}function Wr(e,t){return c.useMemo(()=>({sensor:e,options:{}}),[e,t])}function Ur(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return c.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const se=Object.freeze({x:0,y:0});function Yr(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Gr(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function qr(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function Xr(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function vn(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const An=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=vn(t,t.left,t.top),s=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const u=Yr(vn(l),o);s.push({id:a,data:{droppableContainer:i,value:u}})}}return s.sort(Gr)};function Jr(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),s=Math.min(t.top+t.height,e.top+e.height),i=o-r,a=s-n;if(r<o&&n<s){const l=t.width*t.height,u=e.width*e.height,h=i*a,v=h/(l+u-h);return Number(v.toFixed(4))}return 0}const Kr=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=[];for(const s of r){const{id:i}=s,a=n.get(i);if(a){const l=Jr(a,t);l>0&&o.push({id:i,data:{droppableContainer:s,value:l}})}}return o.sort(qr)};function Zr(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Mn(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:se}function Qr(e){return function(n){for(var r=arguments.length,o=new Array(r>1?r-1:0),s=1;s<r;s++)o[s-1]=arguments[s];return o.reduce((i,a)=>({...i,top:i.top+e*a.y,bottom:i.bottom+e*a.y,left:i.left+e*a.x,right:i.right+e*a.x}),{...n})}}const eo=Qr(1);function to(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function no(e,t,n){const r=to(t);if(!r)return e;const{scaleX:o,scaleY:s,x:i,y:a}=r,l=e.left-i-(1-o)*parseFloat(n),u=e.top-a-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),h=o?e.width/o:e.width,v=s?e.height/s:e.height;return{width:h,height:v,top:u,right:l+h,bottom:u+v,left:l}}const ro={ignoreTransform:!1};function Ae(e,t){t===void 0&&(t=ro);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:h}=q(e).getComputedStyle(e);u&&(n=no(n,u,h))}const{top:r,left:o,width:s,height:i,bottom:a,right:l}=n;return{top:r,left:o,width:s,height:i,bottom:a,right:l}}function gn(e){return Ae(e,{ignoreTransform:!0})}function oo(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function so(e,t){return t===void 0&&(t=q(e).getComputedStyle(e)),t.position==="fixed"}function io(e,t){t===void 0&&(t=q(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(o=>{const s=t[o];return typeof s=="string"?n.test(s):!1})}function Ft(e,t){const n=[];function r(o){if(t!=null&&n.length>=t||!o)return n;if($t(o)&&o.scrollingElement!=null&&!n.includes(o.scrollingElement))return n.push(o.scrollingElement),n;if(!Xe(o)||jn(o)||n.includes(o))return n;const s=q(e).getComputedStyle(o);return o!==e&&io(o,s)&&n.push(o),so(o,s)?n:r(o.parentNode)}return e?r(e):n}function Nn(e){const[t]=Ft(e,1);return t??null}function _t(e){return!ht||!e?null:ke(e)?e:zt(e)?$t(e)||e===Ie(e).scrollingElement?window:Xe(e)?e:null:null}function Ln(e){return ke(e)?e.scrollX:e.scrollLeft}function Pn(e){return ke(e)?e.scrollY:e.scrollTop}function Nt(e){return{x:Ln(e),y:Pn(e)}}var V;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(V||(V={}));function zn(e){return!ht||!e?!1:e===document.scrollingElement}function $n(e){const t={x:0,y:0},n=zn(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},o=e.scrollTop<=t.y,s=e.scrollLeft<=t.x,i=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:o,isLeft:s,isBottom:i,isRight:a,maxScroll:r,minScroll:t}}const ao={x:.2,y:.2};function co(e,t,n,r,o){let{top:s,left:i,right:a,bottom:l}=n;r===void 0&&(r=10),o===void 0&&(o=ao);const{isTop:u,isBottom:h,isLeft:v,isRight:b}=$n(e),f={x:0,y:0},y={x:0,y:0},m={height:t.height*o.y,width:t.width*o.x};return!u&&s<=t.top+m.height?(f.y=V.Backward,y.y=r*Math.abs((t.top+m.height-s)/m.height)):!h&&l>=t.bottom-m.height&&(f.y=V.Forward,y.y=r*Math.abs((t.bottom-m.height-l)/m.height)),!b&&a>=t.right-m.width?(f.x=V.Forward,y.x=r*Math.abs((t.right-m.width-a)/m.width)):!v&&i<=t.left+m.width&&(f.x=V.Backward,y.x=r*Math.abs((t.left+m.width-i)/m.width)),{direction:f,speed:y}}function lo(e){if(e===document.scrollingElement){const{innerWidth:s,innerHeight:i}=window;return{top:0,left:0,right:s,bottom:i,width:s,height:i}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function Vn(e){return e.reduce((t,n)=>Te(t,Nt(n)),se)}function uo(e){return e.reduce((t,n)=>t+Ln(n),0)}function fo(e){return e.reduce((t,n)=>t+Pn(n),0)}function ho(e,t){if(t===void 0&&(t=Ae),!e)return;const{top:n,left:r,bottom:o,right:s}=t(e);Nn(e)&&(o<=0||s<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const vo=[["x",["left","right"],uo],["y",["top","bottom"],fo]];class Ht{constructor(t,n){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 r=Ft(n),o=Vn(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[s,i,a]of vo)for(const l of i)Object.defineProperty(this,l,{get:()=>{const u=a(r),h=o[s]-u;return this.rect[l]+h},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Fe{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var o;(o=this.target)==null||o.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function go(e){const{EventTarget:t}=q(e);return e instanceof t?e:Ie(e)}function Ot(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var oe;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(oe||(oe={}));function pn(e){e.preventDefault()}function po(e){e.stopPropagation()}var I;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(I||(I={}));const Bn={start:[I.Space,I.Enter],cancel:[I.Esc],end:[I.Space,I.Enter,I.Tab]},bo=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case I.Right:return{...n,x:n.x+25};case I.Left:return{...n,x:n.x-25};case I.Down:return{...n,y:n.y+25};case I.Up:return{...n,y:n.y-25}}};class Fn{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Fe(Ie(n)),this.windowListeners=new Fe(q(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(oe.Resize,this.handleCancel),this.windowListeners.add(oe.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(oe.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&ho(r),n(se)}handleKeyDown(t){if(Bt(t)){const{active:n,context:r,options:o}=this.props,{keyboardCodes:s=Bn,coordinateGetter:i=bo,scrollBehavior:a="smooth"}=o,{code:l}=t;if(s.end.includes(l)){this.handleEnd(t);return}if(s.cancel.includes(l)){this.handleCancel(t);return}const{collisionRect:u}=r.current,h=u?{x:u.left,y:u.top}:se;this.referenceCoordinates||(this.referenceCoordinates=h);const v=i(t,{active:n,context:r.current,currentCoordinates:h});if(v){const b=ut(v,h),f={x:0,y:0},{scrollableAncestors:y}=r.current;for(const m of y){const x=t.code,{isTop:w,isRight:C,isLeft:E,isBottom:O,maxScroll:j,minScroll:R}=$n(m),D=lo(m),T={x:Math.min(x===I.Right?D.right-D.width/2:D.right,Math.max(x===I.Right?D.left:D.left+D.width/2,v.x)),y:Math.min(x===I.Down?D.bottom-D.height/2:D.bottom,Math.max(x===I.Down?D.top:D.top+D.height/2,v.y))},L=x===I.Right&&!C||x===I.Left&&!E,z=x===I.Down&&!O||x===I.Up&&!w;if(L&&T.x!==v.x){const N=m.scrollLeft+b.x,U=x===I.Right&&N<=j.x||x===I.Left&&N>=R.x;if(U&&!b.y){m.scrollTo({left:N,behavior:a});return}U?f.x=m.scrollLeft-N:f.x=x===I.Right?m.scrollLeft-j.x:m.scrollLeft-R.x,f.x&&m.scrollBy({left:-f.x,behavior:a});break}else if(z&&T.y!==v.y){const N=m.scrollTop+b.y,U=x===I.Down&&N<=j.y||x===I.Up&&N>=R.y;if(U&&!b.x){m.scrollTo({top:N,behavior:a});return}U?f.y=m.scrollTop-N:f.y=x===I.Down?m.scrollTop-j.y:m.scrollTop-R.y,f.y&&m.scrollBy({top:-f.y,behavior:a});break}}this.handleMove(t,Te(ut(v,this.referenceCoordinates),f))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Fn.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=Bn,onActivation:o}=t,{active:s}=n;const{code:i}=e.nativeEvent;if(r.start.includes(i)){const a=s.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),o?.({event:e.nativeEvent}),!0)}return!1}}];function bn(e){return!!(e&&"distance"in e)}function mn(e){return!!(e&&"delay"in e)}class Wt{constructor(t,n,r){var o;r===void 0&&(r=go(t.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=t,this.events=n;const{event:s}=t,{target:i}=s;this.props=t,this.events=n,this.document=Ie(i),this.documentListeners=new Fe(this.document),this.listeners=new Fe(r),this.windowListeners=new Fe(q(i)),this.initialCoordinates=(o=Mt(s))!=null?o:se,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:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(oe.Resize,this.handleCancel),this.windowListeners.add(oe.DragStart,pn),this.windowListeners.add(oe.VisibilityChange,this.handleCancel),this.windowListeners.add(oe.ContextMenu,pn),this.documentListeners.add(oe.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(mn(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(bn(n)){this.handlePending(n);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(t,n){const{active:r,onPending:o}=this.props;o(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(oe.Click,po,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(oe.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:o,props:s}=this,{onMove:i,options:{activationConstraint:a}}=s;if(!o)return;const l=(n=Mt(t))!=null?n:se,u=ut(o,l);if(!r&&a){if(bn(a)){if(a.tolerance!=null&&Ot(u,a.tolerance))return this.handleCancel();if(Ot(u,a.distance))return this.handleStart()}if(mn(a)&&Ot(u,a.tolerance))return this.handleCancel();this.handlePending(a,u);return}t.cancelable&&t.preventDefault(),i(l)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===I.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const mo={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ut extends Wt{constructor(t){const{event:n}=t,r=Ie(n.target);super(t,mo,r)}}Ut.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];const xo={move:{name:"mousemove"},end:{name:"mouseup"}};var Lt;(function(e){e[e.RightClick=2]="RightClick"})(Lt||(Lt={}));class yo extends Wt{constructor(t){super(t,xo,Ie(t.event.target))}}yo.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Lt.RightClick?!1:(r?.({event:n}),!0)}}];const Tt={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class wo extends Wt{constructor(t){super(t,Tt)}static setup(){return window.addEventListener(Tt.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(Tt.move.name,t)};function t(){}}}wo.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:o}=n;return o.length>1?!1:(r?.({event:n}),!0)}}];var He;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(He||(He={}));var ft;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(ft||(ft={}));function So(e){let{acceleration:t,activator:n=He.Pointer,canScroll:r,draggingRect:o,enabled:s,interval:i=5,order:a=ft.TreeOrder,pointerCoordinates:l,scrollableAncestors:u,scrollableAncestorRects:h,delta:v,threshold:b}=e;const f=Ro({delta:v,disabled:!s}),[y,m]=kr(),x=c.useRef({x:0,y:0}),w=c.useRef({x:0,y:0}),C=c.useMemo(()=>{switch(n){case He.Pointer:return l?{top:l.y,bottom:l.y,left:l.x,right:l.x}:null;case He.DraggableRect:return o}},[n,o,l]),E=c.useRef(null),O=c.useCallback(()=>{const R=E.current;if(!R)return;const D=x.current.x*w.current.x,T=x.current.y*w.current.y;R.scrollBy(D,T)},[]),j=c.useMemo(()=>a===ft.TreeOrder?[...u].reverse():u,[a,u]);c.useEffect(()=>{if(!s||!u.length||!C){m();return}for(const R of j){if(r?.(R)===!1)continue;const D=u.indexOf(R),T=h[D];if(!T)continue;const{direction:L,speed:z}=co(R,T,C,t,b);for(const N of["x","y"])f[N][L[N]]||(z[N]=0,L[N]=0);if(z.x>0||z.y>0){m(),E.current=R,y(O,i),x.current=z,w.current=L;return}}x.current={x:0,y:0},w.current={x:0,y:0},m()},[t,O,r,m,s,i,JSON.stringify(C),JSON.stringify(f),y,u,j,h,JSON.stringify(b)])}const Co={x:{[V.Backward]:!1,[V.Forward]:!1},y:{[V.Backward]:!1,[V.Forward]:!1}};function Ro(e){let{delta:t,disabled:n}=e;const r=At(t);return Je(o=>{if(n||!r||!o)return Co;const s={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[V.Backward]:o.x[V.Backward]||s.x===-1,[V.Forward]:o.x[V.Forward]||s.x===1},y:{[V.Backward]:o.y[V.Backward]||s.y===-1,[V.Forward]:o.y[V.Forward]||s.y===1}}},[n,t,r])}function Eo(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Je(o=>{var s;return t==null?null:(s=r??o)!=null?s:null},[r,t])}function Do(e,t){return c.useMemo(()=>e.reduce((n,r)=>{const{sensor:o}=r,s=o.activators.map(i=>({eventName:i.eventName,handler:t(i.handler,r)}));return[...n,...s]},[]),[e,t])}var Ye;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Ye||(Ye={}));var Pt;(function(e){e.Optimized="optimized"})(Pt||(Pt={}));const xn=new Map;function _o(e,t){let{dragging:n,dependencies:r,config:o}=t;const[s,i]=c.useState(null),{frequency:a,measure:l,strategy:u}=o,h=c.useRef(e),v=x(),b=Ue(v),f=c.useCallback(function(w){w===void 0&&(w=[]),!b.current&&i(C=>C===null?w:C.concat(w.filter(E=>!C.includes(E))))},[b]),y=c.useRef(null),m=Je(w=>{if(v&&!n)return xn;if(!w||w===xn||h.current!==e||s!=null){const C=new Map;for(let E of e){if(!E)continue;if(s&&s.length>0&&!s.includes(E.id)&&E.rect.current){C.set(E.id,E.rect.current);continue}const O=E.node.current,j=O?new Ht(l(O),O):null;E.rect.current=j,j&&C.set(E.id,j)}return C}return w},[e,s,n,v,l]);return c.useEffect(()=>{h.current=e},[e]),c.useEffect(()=>{v||f()},[n,v]),c.useEffect(()=>{s&&s.length>0&&i(null)},[JSON.stringify(s)]),c.useEffect(()=>{v||typeof a!="number"||y.current!==null||(y.current=setTimeout(()=>{f(),y.current=null},a))},[a,v,f,...r]),{droppableRects:m,measureDroppableContainers:f,measuringScheduled:s!=null};function x(){switch(u){case Ye.Always:return!1;case Ye.BeforeDragging:return n;default:return!n}}}function Hn(e,t){return Je(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function Oo(e,t){return Hn(e,t)}function To(e){let{callback:t,disabled:n}=e;const r=Vt(t),o=c.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(r)},[r,n]);return c.useEffect(()=>()=>o?.disconnect(),[o]),o}function vt(e){let{callback:t,disabled:n}=e;const r=Vt(t),o=c.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(r)},[n]);return c.useEffect(()=>()=>o?.disconnect(),[o]),o}function jo(e){return new Ht(Ae(e),e)}function yn(e,t,n){t===void 0&&(t=jo);const[r,o]=c.useState(null);function s(){o(l=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=l??n)!=null?u:null}const h=t(e);return JSON.stringify(l)===JSON.stringify(h)?l:h})}const i=To({callback(l){if(e)for(const u of l){const{type:h,target:v}=u;if(h==="childList"&&v instanceof HTMLElement&&v.contains(e)){s();break}}}}),a=vt({callback:s});return ue(()=>{s(),e?(a?.observe(e),i?.observe(document.body,{childList:!0,subtree:!0})):(a?.disconnect(),i?.disconnect())},[e]),r}function ko(e){const t=Hn(e);return Mn(e,t)}const wn=[];function Io(e){const t=c.useRef(e),n=Je(r=>e?r&&r!==wn&&e&&t.current&&e.parentNode===t.current.parentNode?r:Ft(e):wn,[e]);return c.useEffect(()=>{t.current=e},[e]),n}function Ao(e){const[t,n]=c.useState(null),r=c.useRef(e),o=c.useCallback(s=>{const i=_t(s.target);i&&n(a=>a?(a.set(i,Nt(i)),new Map(a)):null)},[]);return c.useEffect(()=>{const s=r.current;if(e!==s){i(s);const a=e.map(l=>{const u=_t(l);return u?(u.addEventListener("scroll",o,{passive:!0}),[u,Nt(u)]):null}).filter(l=>l!=null);n(a.length?new Map(a):null),r.current=e}return()=>{i(e),i(s)};function i(a){a.forEach(l=>{const u=_t(l);u?.removeEventListener("scroll",o)})}},[o,e]),c.useMemo(()=>e.length?t?Array.from(t.values()).reduce((s,i)=>Te(s,i),se):Vn(e):se,[e,t])}function Sn(e,t){t===void 0&&(t=[]);const n=c.useRef(null);return c.useEffect(()=>{n.current=null},t),c.useEffect(()=>{const r=e!==se;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?ut(e,n.current):se}function Mo(e){c.useEffect(()=>{if(!ht)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n?.()}},e.map(t=>{let{sensor:n}=t;return n}))}function No(e,t){return c.useMemo(()=>e.reduce((n,r)=>{let{eventName:o,handler:s}=r;return n[o]=i=>{s(i,t)},n},{}),[e,t])}function Wn(e){return c.useMemo(()=>e?oo(e):null,[e])}const Cn=[];function Lo(e,t){t===void 0&&(t=Ae);const[n]=e,r=Wn(n?q(n):null),[o,s]=c.useState(Cn);function i(){s(()=>e.length?e.map(l=>zn(l)?r:new Ht(t(l),l)):Cn)}const a=vt({callback:i});return ue(()=>{a?.disconnect(),i(),e.forEach(l=>a?.observe(l))},[e]),o}function Po(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Xe(t)?t:e}function zo(e){let{measure:t}=e;const[n,r]=c.useState(null),o=c.useCallback(u=>{for(const{target:h}of u)if(Xe(h)){r(v=>{const b=t(h);return v?{...v,width:b.width,height:b.height}:b});break}},[t]),s=vt({callback:o}),i=c.useCallback(u=>{const h=Po(u);s?.disconnect(),h&&s?.observe(h),r(h?t(h):null)},[t,s]),[a,l]=lt(i);return c.useMemo(()=>({nodeRef:a,rect:n,setRef:l}),[n,a,l])}const $o=[{sensor:Ut,options:{}},{sensor:Fn,options:{}}],Vo={current:{}},at={draggable:{measure:gn},droppable:{measure:gn,strategy:Ye.WhileDragging,frequency:Pt.Optimized},dragOverlay:{measure:Ae}};class We extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Bo={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new We,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:dt},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:at,measureDroppableContainers:dt,windowRect:null,measuringScheduled:!1},Fo={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:dt,draggableNodes:new Map,over:null,measureDroppableContainers:dt},gt=c.createContext(Fo),Un=c.createContext(Bo);function Ho(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new We}}}function Wo(e,t){switch(t.type){case $.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case $.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case $.DragEnd:case $.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case $.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new We(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case $.SetDroppableDisabled:{const{id:n,key:r,disabled:o}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const i=new We(e.droppable.containers);return i.set(n,{...s,disabled:o}),{...e,droppable:{...e.droppable,containers:i}}}case $.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const s=new We(e.droppable.containers);return s.delete(n),{...e,droppable:{...e.droppable,containers:s}}}default:return e}}function Uo(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:o}=c.useContext(gt),s=At(r),i=At(n?.id);return c.useEffect(()=>{if(!t&&!r&&s&&i!=null){if(!Bt(s)||document.activeElement===s.target)return;const a=o.get(i);if(!a)return;const{activatorNode:l,node:u}=a;if(!l.current&&!u.current)return;requestAnimationFrame(()=>{for(const h of[l.current,u.current]){if(!h)continue;const v=Mr(h);if(v){v.focus();break}}})}},[r,t,o,i,s]),null}function Yo(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((o,s)=>s({transform:o,...r}),n):n}function Go(e){return c.useMemo(()=>({draggable:{...at.draggable,...e?.draggable},droppable:{...at.droppable,...e?.droppable},dragOverlay:{...at.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function qo(e){let{activeNode:t,measure:n,initialRect:r,config:o=!0}=e;const s=c.useRef(!1),{x:i,y:a}=typeof o=="boolean"?{x:o,y:o}:o;ue(()=>{if(!i&&!a||!t){s.current=!1;return}if(s.current||!r)return;const u=t?.node.current;if(!u||u.isConnected===!1)return;const h=n(u),v=Mn(h,r);if(i||(v.x=0),a||(v.y=0),s.current=!0,Math.abs(v.x)>0||Math.abs(v.y)>0){const b=Nn(u);b&&b.scrollBy({top:v.y,left:v.x})}},[t,i,a,r,n])}const Yn=c.createContext({...se,scaleX:1,scaleY:1});var ye;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(ye||(ye={}));const Gn=c.memo(function(t){var n,r,o,s;let{id:i,accessibility:a,autoScroll:l=!0,children:u,sensors:h=$o,collisionDetection:v=Kr,measuring:b,modifiers:f,...y}=t;const m=c.useReducer(Wo,void 0,Ho),[x,w]=m,[C,E]=Vr(),[O,j]=c.useState(ye.Uninitialized),R=O===ye.Initialized,{draggable:{active:D,nodes:T,translate:L},droppable:{containers:z}}=x,N=D!=null?T.get(D):null,U=c.useRef({initial:null,translated:null}),G=c.useMemo(()=>{var W;return D!=null?{id:D,data:(W=N?.data)!=null?W:Vo,rect:U}:null},[D,N]),te=c.useRef(null),[de,we]=c.useState(null),[F,Se]=c.useState(null),ne=Ue(y,Object.values(y)),ve=Ke("DndDescribedBy",i),p=c.useMemo(()=>z.getEnabled(),[z]),S=Go(b),{droppableRects:k,measureDroppableContainers:M,measuringScheduled:ie}=_o(p,{dragging:R,dependencies:[L.x,L.y],config:S.droppable}),H=Eo(T,D),P=c.useMemo(()=>F?Mt(F):null,[F]),Y=vr(),X=Oo(H,S.draggable.measure);qo({activeNode:D!=null?T.get(D):null,config:Y.layoutShiftCompensation,initialRect:X,measure:S.draggable.measure});const A=yn(H,S.draggable.measure,X),Me=yn(H?H.parentElement:null),ae=c.useRef({activatorEvent:null,active:null,activeNode:H,collisionRect:null,collisions:null,droppableRects:k,draggableNodes:T,draggingNode:null,draggingNodeRect:null,droppableContainers:z,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),Ce=z.getNodeFor((n=ae.current.over)==null?void 0:n.id),fe=zo({measure:S.dragOverlay.measure}),Re=(r=fe.nodeRef.current)!=null?r:H,Ee=R?(o=fe.rect)!=null?o:A:null,Gt=!!(fe.nodeRef.current&&fe.rect),qt=ko(Gt?null:A),mt=Wn(Re?q(Re):null),ge=Io(R?Ce??H:null),Ze=Lo(ge),Qe=Yo(f,{transform:{x:L.x-qt.x,y:L.y-qt.y,scaleX:1,scaleY:1},activatorEvent:F,active:G,activeNodeRect:A,containerNodeRect:Me,draggingNodeRect:Ee,over:ae.current.over,overlayNodeRect:fe.rect,scrollableAncestors:ge,scrollableAncestorRects:Ze,windowRect:mt}),Xt=P?Te(P,L):null,Jt=Ao(ge),ar=Sn(Jt),cr=Sn(Jt,[A]),De=Te(Qe,ar),_e=Ee?eo(Ee,Qe):null,Ne=G&&_e?v({active:G,collisionRect:_e,droppableRects:k,droppableContainers:p,pointerCoordinates:Xt}):null,Kt=Xr(Ne,"id"),[pe,Zt]=c.useState(null),lr=Gt?Qe:Te(Qe,cr),ur=Zr(lr,(s=pe?.rect)!=null?s:null,A),xt=c.useRef(null),Qt=c.useCallback((W,J)=>{let{sensor:K,options:be}=J;if(te.current==null)return;const re=T.get(te.current);if(!re)return;const Z=W.nativeEvent,ce=new K({active:te.current,activeNode:re,event:Z,options:be,context:ae,onAbort(B){if(!T.get(B))return;const{onDragAbort:le}=ne.current,he={id:B};le?.(he),C({type:"onDragAbort",event:he})},onPending(B,me,le,he){if(!T.get(B))return;const{onDragPending:Pe}=ne.current,xe={id:B,constraint:me,initialCoordinates:le,offset:he};Pe?.(xe),C({type:"onDragPending",event:xe})},onStart(B){const me=te.current;if(me==null)return;const le=T.get(me);if(!le)return;const{onDragStart:he}=ne.current,Le={activatorEvent:Z,active:{id:me,data:le.data,rect:U}};Be.unstable_batchedUpdates(()=>{he?.(Le),j(ye.Initializing),w({type:$.DragStart,initialCoordinates:B,active:me}),C({type:"onDragStart",event:Le}),we(xt.current),Se(Z)})},onMove(B){w({type:$.DragMove,coordinates:B})},onEnd:Oe($.DragEnd),onCancel:Oe($.DragCancel)});xt.current=ce;function Oe(B){return async function(){const{active:le,collisions:he,over:Le,scrollAdjustedTranslate:Pe}=ae.current;let xe=null;if(le&&Pe){const{cancelDrop:ze}=ne.current;xe={activatorEvent:Z,active:le,collisions:he,delta:Pe,over:Le},B===$.DragEnd&&typeof ze=="function"&&await Promise.resolve(ze(xe))&&(B=$.DragCancel)}te.current=null,Be.unstable_batchedUpdates(()=>{w({type:B}),j(ye.Uninitialized),Zt(null),we(null),Se(null),xt.current=null;const ze=B===$.DragEnd?"onDragEnd":"onDragCancel";if(xe){const yt=ne.current[ze];yt?.(xe),C({type:ze,event:xe})}})}}},[T]),dr=c.useCallback((W,J)=>(K,be)=>{const re=K.nativeEvent,Z=T.get(be);if(te.current!==null||!Z||re.dndKit||re.defaultPrevented)return;const ce={active:Z};W(K,J.options,ce)===!0&&(re.dndKit={capturedBy:J.sensor},te.current=be,Qt(K,J))},[T,Qt]),en=Do(h,dr);Mo(h),ue(()=>{A&&O===ye.Initializing&&j(ye.Initialized)},[A,O]),c.useEffect(()=>{const{onDragMove:W}=ne.current,{active:J,activatorEvent:K,collisions:be,over:re}=ae.current;if(!J||!K)return;const Z={active:J,activatorEvent:K,collisions:be,delta:{x:De.x,y:De.y},over:re};Be.unstable_batchedUpdates(()=>{W?.(Z),C({type:"onDragMove",event:Z})})},[De.x,De.y]),c.useEffect(()=>{const{active:W,activatorEvent:J,collisions:K,droppableContainers:be,scrollAdjustedTranslate:re}=ae.current;if(!W||te.current==null||!J||!re)return;const{onDragOver:Z}=ne.current,ce=be.get(Kt),Oe=ce&&ce.rect.current?{id:ce.id,rect:ce.rect.current,data:ce.data,disabled:ce.disabled}:null,B={active:W,activatorEvent:J,collisions:K,delta:{x:re.x,y:re.y},over:Oe};Be.unstable_batchedUpdates(()=>{Zt(Oe),Z?.(B),C({type:"onDragOver",event:B})})},[Kt]),ue(()=>{ae.current={activatorEvent:F,active:G,activeNode:H,collisionRect:_e,collisions:Ne,droppableRects:k,draggableNodes:T,draggingNode:Re,draggingNodeRect:Ee,droppableContainers:z,over:pe,scrollableAncestors:ge,scrollAdjustedTranslate:De},U.current={initial:Ee,translated:_e}},[G,H,Ne,_e,T,Re,Ee,k,z,pe,ge,De]),So({...Y,delta:L,draggingRect:_e,pointerCoordinates:Xt,scrollableAncestors:ge,scrollableAncestorRects:Ze});const fr=c.useMemo(()=>({active:G,activeNode:H,activeNodeRect:A,activatorEvent:F,collisions:Ne,containerNodeRect:Me,dragOverlay:fe,draggableNodes:T,droppableContainers:z,droppableRects:k,over:pe,measureDroppableContainers:M,scrollableAncestors:ge,scrollableAncestorRects:Ze,measuringConfiguration:S,measuringScheduled:ie,windowRect:mt}),[G,H,A,F,Ne,Me,fe,T,z,k,pe,M,ge,Ze,S,ie,mt]),hr=c.useMemo(()=>({activatorEvent:F,activators:en,active:G,activeNodeRect:A,ariaDescribedById:{draggable:ve},dispatch:w,draggableNodes:T,over:pe,measureDroppableContainers:M}),[F,en,G,A,w,ve,T,pe,M]);return c.createElement(In.Provider,{value:E},c.createElement(gt.Provider,{value:hr},c.createElement(Un.Provider,{value:fr},c.createElement(Yn.Provider,{value:ur},u)),c.createElement(Uo,{disabled:a?.restoreFocus===!1})),c.createElement(Hr,{...a,hiddenTextDescribedById:ve}));function vr(){const W=de?.autoScrollEnabled===!1,J=typeof l=="object"?l.enabled===!1:l===!1,K=R&&!W&&!J;return typeof l=="object"?{...l,enabled:K}:{enabled:K}}}),Xo=c.createContext(null),Rn="button",Jo="Draggable";function Ko(e){let{id:t,data:n,disabled:r=!1,attributes:o}=e;const s=Ke(Jo),{activators:i,activatorEvent:a,active:l,activeNodeRect:u,ariaDescribedById:h,draggableNodes:v,over:b}=c.useContext(gt),{role:f=Rn,roleDescription:y="draggable",tabIndex:m=0}=o??{},x=l?.id===t,w=c.useContext(x?Yn:Xo),[C,E]=lt(),[O,j]=lt(),R=No(i,t),D=Ue(n);ue(()=>(v.set(t,{id:t,key:s,node:C,activatorNode:O,data:D}),()=>{const L=v.get(t);L&&L.key===s&&v.delete(t)}),[v,t]);const T=c.useMemo(()=>({role:f,tabIndex:m,"aria-disabled":r,"aria-pressed":x&&f===Rn?!0:void 0,"aria-roledescription":y,"aria-describedby":h.draggable}),[r,f,m,x,y,h.draggable]);return{active:l,activatorEvent:a,activeNodeRect:u,attributes:T,isDragging:x,listeners:r?void 0:R,node:C,over:b,setNodeRef:E,setActivatorNodeRef:j,transform:w}}function Zo(){return c.useContext(Un)}const Qo="Droppable",es={timeout:25};function ts(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:o}=e;const s=Ke(Qo),{active:i,dispatch:a,over:l,measureDroppableContainers:u}=c.useContext(gt),h=c.useRef({disabled:n}),v=c.useRef(!1),b=c.useRef(null),f=c.useRef(null),{disabled:y,updateMeasurementsFor:m,timeout:x}={...es,...o},w=Ue(m??r),C=c.useCallback(()=>{if(!v.current){v.current=!0;return}f.current!=null&&clearTimeout(f.current),f.current=setTimeout(()=>{u(Array.isArray(w.current)?w.current:[w.current]),f.current=null},x)},[x]),E=vt({callback:C,disabled:y||!i}),O=c.useCallback((T,L)=>{E&&(L&&(E.unobserve(L),v.current=!1),T&&E.observe(T))},[E]),[j,R]=lt(O),D=Ue(t);return c.useEffect(()=>{!E||!j.current||(E.disconnect(),v.current=!1,E.observe(j.current))},[j,E]),c.useEffect(()=>(a({type:$.RegisterDroppable,element:{id:r,key:s,disabled:n,node:j,rect:b,data:D}}),()=>a({type:$.UnregisterDroppable,key:s,id:r})),[r]),c.useEffect(()=>{n!==h.current.disabled&&(a({type:$.SetDroppableDisabled,id:r,key:s,disabled:n}),h.current.disabled=n)},[r,s,n,a]),{active:i,rect:b,isOver:l?.id===r,node:j,over:l,setNodeRef:R}}function pt(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function ns(e,t){return e.reduce((n,r,o)=>{const s=t.get(r);return s&&(n[o]=s),n},Array(e.length))}function ot(e){return e!==null&&e>=0}function rs(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function os(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const st={scaleX:1,scaleY:1},ss=e=>{var t;let{rects:n,activeNodeRect:r,activeIndex:o,overIndex:s,index:i}=e;const a=(t=n[o])!=null?t:r;if(!a)return null;const l=is(n,i,o);if(i===o){const u=n[s];return u?{x:o<s?u.left+u.width-(a.left+a.width):u.left-a.left,y:0,...st}:null}return i>o&&i<=s?{x:-a.width-l,y:0,...st}:i<o&&i>=s?{x:a.width+l,y:0,...st}:{x:0,y:0,...st}};function is(e,t,n){const r=e[t],o=e[t-1],s=e[t+1];return!r||!o&&!s?0:n<t?o?r.left-(o.left+o.width):s.left-(r.left+r.width):s?s.left-(r.left+r.width):r.left-(o.left+o.width)}const qn=e=>{let{rects:t,activeIndex:n,overIndex:r,index:o}=e;const s=pt(t,r,n),i=t[o],a=s[o];return!a||!i?null:{x:a.left-i.left,y:a.top-i.top,scaleX:a.width/i.width,scaleY:a.height/i.height}},it={scaleX:1,scaleY:1},as=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:o,rects:s,overIndex:i}=e;const a=(t=s[n])!=null?t:r;if(!a)return null;if(o===n){const u=s[i];return u?{x:0,y:n<i?u.top+u.height-(a.top+a.height):u.top-a.top,...it}:null}const l=cs(s,o,n);return o>n&&o<=i?{x:0,y:-a.height-l,...it}:o<n&&o>=i?{x:0,y:a.height+l,...it}:{x:0,y:0,...it}};function cs(e,t,n){const r=e[t],o=e[t-1],s=e[t+1];return r?n<t?o?r.top-(o.top+o.height):s?s.top-(r.top+r.height):0:s?s.top-(r.top+r.height):o?r.top-(o.top+o.height):0:0}const Xn="Sortable",Jn=c.createContext({activeIndex:-1,containerId:Xn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:qn,disabled:{draggable:!1,droppable:!1}});function Kn(e){let{children:t,id:n,items:r,strategy:o=qn,disabled:s=!1}=e;const{active:i,dragOverlay:a,droppableRects:l,over:u,measureDroppableContainers:h}=Zo(),v=Ke(Xn,n),b=a.rect!==null,f=c.useMemo(()=>r.map(R=>typeof R=="object"&&"id"in R?R.id:R),[r]),y=i!=null,m=i?f.indexOf(i.id):-1,x=u?f.indexOf(u.id):-1,w=c.useRef(f),C=!rs(f,w.current),E=x!==-1&&m===-1||C,O=os(s);ue(()=>{C&&y&&h(f)},[C,f,y,h]),c.useEffect(()=>{w.current=f},[f]);const j=c.useMemo(()=>({activeIndex:m,containerId:v,disabled:O,disableTransforms:E,items:f,overIndex:x,useDragOverlay:b,sortedRects:ns(f,l),strategy:o}),[m,v,O.draggable,O.droppable,E,f,x,l,b,o]);return c.createElement(Jn.Provider,{value:j},t)}const ls=e=>{let{id:t,items:n,activeIndex:r,overIndex:o}=e;return pt(n,r,o).indexOf(t)},us=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:o,items:s,newIndex:i,previousItems:a,previousContainerId:l,transition:u}=e;return!u||!r||a!==s&&o===i?!1:n?!0:i!==o&&t===l},ds={duration:200,easing:"ease"},Zn="transform",fs=je.Transition.toString({property:Zn,duration:0,easing:"linear"}),hs={roleDescription:"sortable"};function vs(e){let{disabled:t,index:n,node:r,rect:o}=e;const[s,i]=c.useState(null),a=c.useRef(n);return ue(()=>{if(!t&&n!==a.current&&r.current){const l=o.current;if(l){const u=Ae(r.current,{ignoreTransform:!0}),h={x:l.left-u.left,y:l.top-u.top,scaleX:l.width/u.width,scaleY:l.height/u.height};(h.x||h.y)&&i(h)}}n!==a.current&&(a.current=n)},[t,n,r,o]),c.useEffect(()=>{s&&i(null)},[s]),s}function Qn(e){let{animateLayoutChanges:t=us,attributes:n,disabled:r,data:o,getNewIndex:s=ls,id:i,strategy:a,resizeObserverConfig:l,transition:u=ds}=e;const{items:h,containerId:v,activeIndex:b,disabled:f,disableTransforms:y,sortedRects:m,overIndex:x,useDragOverlay:w,strategy:C}=c.useContext(Jn),E=gs(r,f),O=h.indexOf(i),j=c.useMemo(()=>({sortable:{containerId:v,index:O,items:h},...o}),[v,o,O,h]),R=c.useMemo(()=>h.slice(h.indexOf(i)),[h,i]),{rect:D,node:T,isOver:L,setNodeRef:z}=ts({id:i,data:j,disabled:E.droppable,resizeObserverConfig:{updateMeasurementsFor:R,...l}}),{active:N,activatorEvent:U,activeNodeRect:G,attributes:te,setNodeRef:de,listeners:we,isDragging:F,over:Se,setActivatorNodeRef:ne,transform:ve}=Ko({id:i,data:j,attributes:{...hs,...n},disabled:E.draggable}),p=jr(z,de),S=!!N,k=S&&!y&&ot(b)&&ot(x),M=!w&&F,ie=M&&k?ve:null,P=k?ie??(a??C)({rects:m,activeNodeRect:G,activeIndex:b,overIndex:x,index:O}):null,Y=ot(b)&&ot(x)?s({id:i,items:h,activeIndex:b,overIndex:x}):O,X=N?.id,A=c.useRef({activeId:X,items:h,newIndex:Y,containerId:v}),Me=h!==A.current.items,ae=t({active:N,containerId:v,isDragging:F,isSorting:S,id:i,index:O,items:h,newIndex:A.current.newIndex,previousItems:A.current.items,previousContainerId:A.current.containerId,transition:u,wasDragging:A.current.activeId!=null}),Ce=vs({disabled:!ae,index:O,node:T,rect:D});return c.useEffect(()=>{S&&A.current.newIndex!==Y&&(A.current.newIndex=Y),v!==A.current.containerId&&(A.current.containerId=v),h!==A.current.items&&(A.current.items=h)},[S,Y,v,h]),c.useEffect(()=>{if(X===A.current.activeId)return;if(X!=null&&A.current.activeId==null){A.current.activeId=X;return}const Re=setTimeout(()=>{A.current.activeId=X},50);return()=>clearTimeout(Re)},[X]),{active:N,activeIndex:b,attributes:te,data:j,rect:D,index:O,newIndex:Y,items:h,isOver:L,isSorting:S,isDragging:F,listeners:we,node:T,overIndex:x,over:Se,setNodeRef:p,setActivatorNodeRef:ne,setDroppableNodeRef:z,setDraggableNodeRef:de,transform:Ce??P,transition:fe()};function fe(){if(Ce||Me&&A.current.newIndex===O)return fs;if(!(M&&!Bt(U)||!u)&&(S||ae))return je.Transition.toString({...u,property:Zn})}}function gs(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e?.draggable)!=null?n:t.draggable,droppable:(r=e?.droppable)!=null?r:t.droppable}}I.Down,I.Right,I.Up,I.Left;const ps=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),bs=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),En=e=>{const t=bs(e);return t.charAt(0).toUpperCase()+t.slice(1)},er=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),ms=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var xs={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const ys=c.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o="",children:s,iconNode:i,...a},l)=>c.createElement("svg",{ref:l,...xs,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:er("lucide",o),...!s&&!ms(a)&&{"aria-hidden":"true"},...a},[...i.map(([u,h])=>c.createElement(u,h)),...Array.isArray(s)?s:[s]]));const ee=(e,t)=>{const n=c.forwardRef(({className:r,...o},s)=>c.createElement(ys,{ref:s,iconNode:t,className:er(`lucide-${ps(En(e))}`,`lucide-${e}`,r),...o}));return n.displayName=En(e),n};const ws=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Ss=ee("arrow-down",ws);const Cs=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],Rs=ee("arrow-up-down",Cs);const Es=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Ds=ee("arrow-up",Es);const _s=[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]],Os=ee("bookmark",_s);const Ts=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],js=ee("chevron-left",Ts);const ks=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Is=ee("chevron-right",ks);const As=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],Ms=ee("columns-2",As);const Ns=[["path",{d:"M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z",key:"1yo7s0"}],["path",{d:"m12 9 6 6",key:"anjzzh"}],["path",{d:"m18 9-6 6",key:"1fp51s"}]],Ls=ee("delete",Ns);const Ps=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],zs=ee("ellipsis",Ps);const $s=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Vs=ee("funnel",$s);const Bs=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],Fs=ee("grip-vertical",Bs);const Hs=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],Ws=ee("pen",Hs);const Us=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ys=ee("settings",Us);function _(e){return c.forwardRef((t,n)=>{const{children:r,...o}=t;return d.jsx(e,{ref:n,...o,children:r})})}const tr=e=>`table_column_order_v1:${e}`,Gs=e=>{const{tableId:t}=Q.state;localStorage.setItem(tr(t),JSON.stringify(e.map(n=>n.id))),Q.setState(n=>({...n,columnOrder:e})),Q.setState(n=>({...n,columnOrder:e}))},qs=e=>{Q.setState(t=>({...t,visibility:{...t.visibility,[e]:!t.visibility[e]}}))};function Xs(e){Q.setState(t=>t.sortColumn===e?{...t,sortDirection:t.sortDirection==="asc"?"desc":"asc"}:{...t,sortColumn:e,sortDirection:"asc"})}const Q=new Tn({tableId:"",sortColumn:null,sortDirection:"asc",visibility:{},columnOrder:[],data:[],sortableColumns:[]});function nr(e,t){const n=e[0]??{},o=(t&&t.length?t:Object.keys(n).map(l=>({id:l,label:l}))).filter(l=>Object.prototype.hasOwnProperty.call(n,l.id)),{tableId:s}=Q.state,i=JSON.parse(localStorage.getItem(tr(s))||"[]"),a=[...i.map(l=>o.find(u=>u.id===l)).filter(Boolean),...o.filter(l=>!i.includes(l.id))];Q.setState(l=>({...l,data:e,columnOrder:a,visibility:a.reduce((u,h)=>(u[h.id]=!0,u),{}),sortableColumns:a.map(u=>({id:u.id,label:u.label,sortable:!0}))}))}function rr(e){Q.setState(t=>({...t,tableId:e}))}const Js=_(g.Menu.Trigger),Ks=_(g.Menu.Positioner),Zs=_(g.Menu.Content),Qs=_(g.Menu.Item),ei=_(g.Checkbox.Label),ti=_(g.Checkbox.HiddenInput),ni=_(g.Checkbox.Control);function ri({visibility:e,onToggle:t}){const{sortableColumns:n}=qe(Q);return d.jsxs(g.Menu.Root,{closeOnSelect:!1,children:[d.jsx(Js,{asChild:!0,children:d.jsx(g.IconButton,{"aria-label":"Toggle columns",variant:"outline",size:"sm",ml:"1",children:d.jsx(Ms,{size:18})})}),d.jsx(g.Portal,{children:d.jsx(Ks,{children:d.jsx(Zs,{minW:"220px",children:n.map(r=>{const o=!!e[r.id];return d.jsx(Qs,{value:r.id,closeOnSelect:!1,children:d.jsxs(g.Checkbox.Root,{checked:o,onCheckedChange:()=>t(r.id),children:[d.jsx(ti,{}),d.jsx(ni,{}),d.jsx(ei,{children:r.label})]})},r.id)})})})})]})}function oi({id:e,children:t,onClick:n,cursor:r,borderRight:o,borderRightColor:s}){const{setNodeRef:i,attributes:a,listeners:l,transform:u,transition:h}=Qn({id:e});return d.jsx(g.Table.ColumnHeader,{ref:i,onClick:n,w:e==="id"?"80px":void 0,style:{transform:je.Transform.toString(u),transition:h,cursor:r,borderRight:o,borderRightColor:s},...a,children:d.jsxs(g.HStack,{justify:"space-between",children:[t,d.jsx("span",{...l,children:d.jsx(Fs,{size:12})})]})})}function si(){const{columnOrder:e,visibility:t,sortColumn:n,sortDirection:r,sortableColumns:o}=qe(Q),s=e.map(a=>o.find(l=>l.id===a.id)).filter(a=>a!==void 0).filter(a=>t[a.id]),i=a=>{const{active:l,over:u}=a;if(!u||l.id===u.id)return;const h=e.findIndex(f=>f.id===l.id),v=e.findIndex(f=>f.id===u.id),b=pt(e,h,v);Gs(b)};return d.jsx(g.Table.Header,{background:"gray.100",position:"sticky",top:0,p:"0",children:d.jsx(Gn,{collisionDetection:An,onDragEnd:i,children:d.jsx(Kn,{items:e.map(a=>a.id),strategy:ss,children:d.jsxs(g.Table.Row,{height:"28px",children:[s.map((a,l)=>{const u=n===a?.id;return d.jsx(oi,{id:a?.id,onClick:()=>a?.sortable&&Xs(a?.id),cursor:a?.sortable?"pointer":"default",borderRight:"2px solid #dcdcdc",children:d.jsxs("span",{style:{display:"flex",alignItems:"center",gap:6,userSelect:"none"},children:[a?.label,a?.sortable&&(u?r==="asc"?d.jsx(Ds,{size:14}):d.jsx(Ss,{size:14}):d.jsx(Rs,{size:14,opacity:.4}))]})},a?.id)}),d.jsx(g.Table.ColumnHeader,{borderRight:"2px solid #dcdcdc",children:"Actions"}),d.jsx(g.Table.ColumnHeader,{boxSize:"0.5",children:d.jsx(ri,{visibility:t,onToggle:qs})})]})})})})}const Dn=g.createListCollection({items:[{label:"10",value:"10"},{label:"20",value:"20"},{label:"50",value:"50"},{label:"100",value:"100"}]}),ii=_(g.Select.Positioner),ai=_(g.Select.Content),ci=_(g.Select.Item),li=_(g.Pagination.PrevTrigger),ui=_(g.Pagination.NextTrigger),di=_(g.Select.HiddenSelect),fi=_(g.Select.Control),hi=_(g.Select.Trigger),vi=_(g.Select.ValueText),gi=_(g.Select.IndicatorGroup),pi=_(g.Select.Indicator);function bi({totalCount:e,pageSize:t,currentPage:n,onPageChange:r,onPageSizeChange:o,siblingCount:s=2}){return d.jsx(g.Box,{width:"100%",children:d.jsxs(g.HStack,{justify:"space-between",mx:"auto",flexWrap:"wrap",children:[d.jsxs(g.HStack,{children:[d.jsx(g.Text,{fontSize:"sm",color:"gray.600",_dark:{color:"gray.400"},children:"Rows per page:"}),d.jsxs(g.Select.Root,{collection:Dn,size:"sm",width:"60px",onValueChange:i=>o&&o(Number(i.items[0].value)),value:[String(t)],children:[d.jsx(di,{}),d.jsxs(fi,{children:[d.jsx(hi,{children:d.jsx(vi,{placeholder:""})}),d.jsx(gi,{children:d.jsx(pi,{})})]}),d.jsx(g.Portal,{children:d.jsx(ii,{children:d.jsx(ai,{children:Dn.items.map(i=>d.jsxs(ci,{item:i.value,children:[i.label,d.jsx(g.Select.ItemIndicator,{})]},i.value))})})})]})]}),d.jsx(g.Pagination.Root,{count:e,pageSize:t,page:n,siblingCount:s,onPageChange:i=>r&&r(i.page),children:d.jsxs(g.ButtonGroup,{size:"sm",variant:"ghost",children:[d.jsx(li,{asChild:!0,children:d.jsx(g.IconButton,{"aria-label":"Previous page",children:d.jsx(js,{size:18})})}),d.jsx(g.Pagination.Items,{render:i=>d.jsx(g.IconButton,{variant:i.type==="page"&&i.value===n?"outline":"ghost","aria-current":i.type==="page"&&i.value===n?"page":void 0,children:i.type==="page"?i.value:"…"},i.value??i.type)}),d.jsx(ui,{asChild:!0,children:d.jsx(g.IconButton,{"aria-label":"Next page",children:d.jsx(Is,{size:18})})})]})})]})})}const mi=_(g.Menu.Item),xi=_(g.Menu.Content),yi=_(g.Menu.Positioner),wi=_(g.Menu.Trigger);function Si({data:e=[],actions:t=[]}){const{columnOrder:n,visibility:r}=qe(Q);return d.jsx(g.Table.Body,{children:e.map(o=>d.jsxs(g.Table.Row,{children:[n.filter(s=>r[s.id]).map(s=>d.jsx(g.Table.Cell,{children:o[s.id]},s.id)),d.jsx(g.Table.Cell,{textAlign:"center",display:"flex",gap:2,children:d.jsxs(g.Menu.Root,{children:[d.jsx(wi,{asChild:!0,children:d.jsx(g.IconButton,{"aria-label":"Open",variant:"ghost",size:"sm",children:d.jsx(zs,{size:16})})}),d.jsx(g.Portal,{children:d.jsx(yi,{children:d.jsx(xi,{children:t.map(s=>d.jsxs(mi,{onClick:()=>s.onClick(o),colorScheme:s.colorScheme,value:s.label,children:[s.icon,s.label]},s.label))})})})]})})]},o.id))})}function Ci({tableId:e,data:t=[],headers:n=[],loading:r=!1,emptyMessage:o="No data",actions:s,page:i=1,pageSize:a=10,onPageChange:l,onPageSizeChange:u,density:h="sm",totalCount:v=0}){c.useEffect(()=>{rr(e)},[e]),c.useEffect(()=>{console.log("useEffect",i,a),nr(t,n)},[t,n,i,a]);const{sortColumn:b,sortDirection:f,data:y}=qe(Q),m=c.useMemo(()=>{const x=[...y];b&&x.sort((C,E)=>f==="asc"?String(C[b]).localeCompare(String(E[b])):String(E[b]).localeCompare(String(C[b])));const w=(i-1)*a;return x.slice(w,w+a)},[i,a,b,f,y]);return d.jsxs(g.Box,{h:"100%",display:"flex",flexDirection:"column",p:2,pt:2,minHeight:0,children:[d.jsx(g.Box,{flex:"1",minHeight:0,overflow:"auto",children:r?d.jsx(g.Box,{display:"flex",alignItems:"center",justifyContent:"center",h:"100%",color:"gray.500",children:"Loading..."}):m.length===0?d.jsx(g.Box,{display:"flex",alignItems:"center",justifyContent:"center",h:"100%",color:"gray.500",children:o}):d.jsxs(g.Table.Root,{variant:"outline",w:"100%",size:h,children:[d.jsx(si,{}),d.jsx(Si,{data:m,actions:s})]})}),d.jsx(g.Box,{mt:.5,children:d.jsx(bi,{totalCount:v,pageSize:a,currentPage:i,onPageChange:l,onPageSizeChange:x=>{u&&u(x),i>1&&l&&l(1)}})})]})}const or=e=>`FILTER_PRESETS_${e??"default"}`;function Ri(e){try{return JSON.parse(localStorage.getItem(or(e))||"[]")}catch{return[]}}const Ge=new Tn({}),bt=e=>{const t=Ge.state[e];if(t)return t;const n=Ri(e);return Ge.setState(r=>({...r,[e]:n})),n},Yt=(e,t)=>{Ge.setState(n=>({...n,[e]:t})),localStorage.setItem(or(e),JSON.stringify(t))},sr=(e,t)=>{const n=bt(e).filter(r=>r.id!==t);Yt(e,n)},ir=(e,t)=>{const n=[t,...bt(e)];Yt(e,n)},Ei=_(g.Checkbox.Root),Di=_(g.Checkbox.HiddenInput),_i=_(g.Checkbox.Control),Oi=_(g.Slider.Root),Ti=_(g.Slider.Track),ji=_(g.Slider.Range),ki=_(g.Slider.Thumbs),Ii=_(g.Slider.Control),Ai=({filter:e,onVisibilityChange:t,onSizeChange:n})=>{const{attributes:r,listeners:o,setNodeRef:s,transform:i,transition:a}=Qn({id:e.id}),l={transform:je.Transform.toString(i),transition:a,cursor:"grab"};return d.jsxs(g.VStack,{ref:s,style:l,align:"stretch",border:"1px solid",borderColor:"gray.200",rounded:"md",p:3,mb:3,...r,...o,children:[d.jsx(g.Text,{fontWeight:"bold",children:e.label}),d.jsxs(g.HStack,{justify:"space-between",children:[d.jsx(g.Text,{fontSize:"sm",children:"Visible"}),d.jsxs(Ei,{checked:e.visible,onCheckedChange:u=>t&&t(e.id,!!u),size:"sm",children:[d.jsx(Di,{}),d.jsx(_i,{})]})]}),d.jsxs(g.VStack,{align:"stretch",gap:1,children:[d.jsx(g.Text,{fontSize:"sm",children:"Size"}),d.jsx(Oi,{width:"200px",min:1,max:5,step:.5,value:[e.size??1],onChange:u=>n&&n(e.id,u[0]),children:d.jsxs(Ii,{children:[d.jsx(Ti,{children:d.jsx(ji,{})}),d.jsx(ki,{})]})})]})]})},Mi=_(g.Drawer.Root),Ni=_(g.Drawer.Trigger),Li=_(g.Drawer.Backdrop),Pi=_(g.Drawer.Positioner),zi=_(g.Drawer.Content),$i=_(g.Drawer.Header),Vi=_(g.Drawer.Title),Bi=_(g.Drawer.Body),Fi=_(g.Drawer.Footer),Hi=_(g.Drawer.CloseTrigger),Wi=_(g.Tabs.Root),Ui=_(g.Tabs.List),jt=_(g.Tabs.Trigger),kt=_(g.Tabs.Content),Yi=({filterDrawerSize:e="sm",onVisibilityChange:t,onSizeChange:n,onClear:r,filters:o,pageKey:s="default",currentFilters:i={},onLoadPreset:a,activePresetName:l,onReorder:u})=>{const v=qe(Ge)[s]??bt(s),b=()=>{const f=prompt("Preset name?");f&&ir(s,{id:crypto.randomUUID(),name:f,date:new Date().toISOString(),filters:i})};return d.jsx(g.HStack,{wrap:"wrap",children:d.jsxs(Mi,{size:e,children:[d.jsx(Ni,{asChild:!0,children:d.jsxs(g.IconButton,{"aria-label":"Open filters",variant:"outline",size:"xs",ml:2,p:2,children:[d.jsx(Vs,{size:16}),"Filters"]})}),d.jsxs(g.Portal,{children:[d.jsx(Li,{}),d.jsx(Pi,{children:d.jsxs(zi,{children:[d.jsx($i,{children:d.jsx(Vi,{children:"Filters"})}),d.jsx(Bi,{overflowY:"auto",pt:1,children:d.jsxs(Wi,{defaultValue:"view",children:[d.jsxs(Ui,{mb:4,children:[d.jsxs(jt,{value:"view",children:[d.jsx(Ws,{size:16}),"Edit"]}),d.jsxs(jt,{value:"settings",children:[d.jsx(Ys,{size:16}),"Settings"]}),d.jsxs(jt,{value:"presets",children:[d.jsx(Os,{size:16}),"Presets"]})]}),d.jsx(kt,{value:"view",children:o.filter(f=>f.visible).map(f=>d.jsxs(g.VStack,{align:"stretch",border:"1px solid",borderColor:"gray.200",rounded:"md",p:3,mb:3,children:[d.jsx(g.Text,{fontWeight:"bold",children:f.label}),f.customComponent]},f.id))}),d.jsx(kt,{value:"settings",children:d.jsx(Gn,{sensors:Ur(Wr(Ut)),collisionDetection:An,onDragEnd:({active:f,over:y})=>{if(!y||f.id===y.id)return;const m=o.findIndex(C=>C.id===f.id),x=o.findIndex(C=>C.id===y.id),w=pt(o,m,x);console.log(w),u?.(w)},children:d.jsx(Kn,{items:o.map(f=>f.id),strategy:as,children:o.map(f=>d.jsx(Ai,{filter:f,onVisibilityChange:t,onSizeChange:n},f.id))})})}),d.jsx(kt,{value:"presets",children:d.jsxs(g.VStack,{align:"stretch",mb:3,children:[d.jsx(g.Button,{size:"sm",colorScheme:"blue",onClick:b,children:"Save Current Filters"}),v.length===0&&d.jsx(g.Text,{fontSize:"xs",color:"gray.500",children:"No presets saved yet."}),v.map(f=>d.jsxs(g.HStack,{justify:"space-between",border:"1px solid",borderColor:l===f.name?"blue.300":"gray.200",rounded:"md",p:2,children:[d.jsxs(g.VStack,{align:"start",gap:0,children:[d.jsx(g.Text,{fontWeight:"bold",fontSize:"sm",children:f.name}),d.jsx(g.Text,{fontSize:"xs",color:"gray.500",children:new Date(f.date).toLocaleDateString()})]}),d.jsxs(g.HStack,{children:[d.jsx(g.Button,{size:"xs",variant:"ghost",onClick:()=>a?.(f.filters,f.name),children:"Load"}),d.jsx(g.IconButton,{size:"xs","aria-label":"Delete preset",variant:"ghost",onClick:()=>sr(s,f.id),children:d.jsx(Ls,{size:14})})]})]},f.id))]})})]})}),d.jsxs(Fi,{justify:"space-between",children:[d.jsx(g.Button,{size:"sm",variant:"ghost",colorScheme:"red",onClick:()=>r&&r(),children:"Clear All"}),d.jsx(Hi,{asChild:!0,children:d.jsx(g.CloseButton,{})})]})]})})]})]})})},Gi=({title:e,filters:t,onVisibilityChange:n,onReorder:r,onSizeChange:o,onClear:s,maxToolbarUnits:i,pageKey:a,currentFilters:l,onLoadPreset:u,activePresetName:h,filterDrawerSize:v="sm"})=>d.jsxs(g.HStack,{wrap:"wrap",pl:2,pr:2,width:"100%",justify:"space-between",children:[e,d.jsxs(g.HStack,{children:[t.length>0&&t.filter(b=>b.visible).map(b=>d.jsx(g.HStack,{children:b.customComponent},b.id)),d.jsx(Yi,{filterDrawerSize:v,onVisibilityChange:n?(b,f)=>n(b,f):void 0,onReorder:r,onSizeChange:o?(b,f)=>o(b,f):void 0,onClear:s,maxToolbarUnits:i,pageKey:a,filters:t,currentFilters:l,onLoadPreset:u,activePresetName:h})]})]}),qi=(e,t)=>{localStorage.setItem(`FILTER_ORDER_${e}`,JSON.stringify(t))},Xi=e=>{try{return JSON.parse(localStorage.getItem(`FILTER_ORDER_${e}`)||"[]")}catch{return[]}};exports.DataTable=Ci;exports.Filters=Gi;exports.addPreset=ir;exports.deletePreset=sr;exports.getPresets=bt;exports.loadOrder=Xi;exports.presetStore=Ge;exports.saveOrder=qi;exports.savePresets=Yt;exports.setData=nr;exports.setTableId=rr;exports.tableStore=Q;exports.withChildren=_;
package/dist/index.js CHANGED
@@ -3925,8 +3925,8 @@ function Ea({
3925
3925
  A(() => {
3926
3926
  Rs(e);
3927
3927
  }, [e]), A(() => {
3928
- Ss(t, n);
3929
- }, [t, n]);
3928
+ console.log("useEffect", s, a), Ss(t, n);
3929
+ }, [t, n, s, a]);
3930
3930
  const { sortColumn: g, sortDirection: d, data: m } = ct(le), p = N(() => {
3931
3931
  const b = [...m];
3932
3932
  g && b.sort(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mdspl/mds-shared-ui",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Chakra UI v3 DataTable with sorting, pagination, column visibility & drag reorder",
5
5
  "author": "magadh",
6
6
  "license": "MIT",