react-kd-grid 3.0.0 → 3.0.1

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.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import*as e from"react";import t,{memo as r,useMemo as n,useState as l,useEffect as o,useRef as a,useLayoutEffect as s,useTransition as i,useCallback as c,useDeferredValue as d,forwardRef as u,useImperativeHandle as m}from"react";import*as g from"react-dom";import{createPortal as h}from"react-dom";var f,x={exports:{}},p={};function y(){if(f)return p;f=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(t,r,n){var l=null;if(void 0!==n&&(l=""+n),void 0!==r.key&&(l=""+r.key),"key"in r)for(var o in n={},r)"key"!==o&&(n[o]=r[o]);else n=r;return{$$typeof:e,type:t,key:l,ref:void 0!==(r=n.ref)?r:null,props:n}}return p.Fragment=t,p.jsx=r,p.jsxs=r,p}var b,v,w={};function j(){return b||(b=1,"production"!==process.env.NODE_ENV&&function(){function e(t){if(null==t)return null;if("function"==typeof t)return t.$$typeof===S?null:t.displayName||t.name||null;if("string"==typeof t)return t;switch(t){case h:return"Fragment";case x:return"Profiler";case f:return"StrictMode";case v:return"Suspense";case j:return"SuspenseList";case C:return"Activity"}if("object"==typeof t)switch("number"==typeof t.tag&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),t.$$typeof){case g:return"Portal";case y:return t.displayName||"Context";case p:return(t._context.displayName||"Context")+".Consumer";case b:var r=t.render;return(t=t.displayName)||(t=""!==(t=r.displayName||r.name||"")?"ForwardRef("+t+")":"ForwardRef"),t;case k:return null!==(r=t.displayName||null)?r:e(t.type)||"Memo";case N:r=t._payload,t=t._init;try{return e(t(r))}catch(e){}}return null}function r(e){return""+e}function n(e){try{r(e);var t=!1}catch(e){t=!0}if(t){t=console;var n="function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t.error.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",n),r(e)}}function l(t){if(t===h)return"<>";if("object"==typeof t&&null!==t&&t.$$typeof===N)return"<...>";try{var r=e(t);return r?"<"+r+">":"<...>"}catch(e){return"<...>"}}function o(){return Error("react-stack-top-frame")}function a(){var t=e(this.type);return E[t]||(E[t]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),void 0!==(t=this.props.ref)?t:null}function s(t,r,l,o,s,c){var u,g=r.children;if(void 0!==g)if(o)if(D(g)){for(o=0;o<g.length;o++)i(g[o]);Object.freeze&&Object.freeze(g)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else i(g);if(R.call(r,"key")){g=e(t);var h=Object.keys(r).filter(function(e){return"key"!==e});o=0<h.length?"{key: someKey, "+h.join(": ..., ")+": ...}":"{key: someKey}",z[g+o]||(h=0<h.length?"{"+h.join(": ..., ")+": ...}":"{}",console.error('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',o,g,h,g),z[g+o]=!0)}if(g=null,void 0!==l&&(n(l),g=""+l),function(e){if(R.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(r)&&(n(r.key),g=""+r.key),"key"in r)for(var f in l={},r)"key"!==f&&(l[f]=r[f]);else l=r;return g&&function(e,t){function r(){d||(d=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}r.isReactWarning=!0,Object.defineProperty(e,"key",{get:r,configurable:!0})}(l,"function"==typeof t?t.displayName||t.name||"Unknown":t),function(e,t,r,n,l,o){var s=r.ref;return e={$$typeof:m,type:e,key:t,props:r,_owner:n},Object.defineProperty(e,"ref",null!==(void 0!==s?s:null)?{enumerable:!1,get:a}:{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:l}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:o}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}(t,g,l,null===(u=M.A)?null:u.getOwner(),s,c)}function i(e){c(e)?e._store&&(e._store.validated=1):"object"==typeof e&&null!==e&&e.$$typeof===N&&("fulfilled"===e._payload.status?c(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function c(e){return"object"==typeof e&&null!==e&&e.$$typeof===m}var d,u=t,m=Symbol.for("react.transitional.element"),g=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),p=Symbol.for("react.consumer"),y=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),k=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),C=Symbol.for("react.activity"),S=Symbol.for("react.client.reference"),M=u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R=Object.prototype.hasOwnProperty,D=Array.isArray,A=console.createTask?console.createTask:function(){return null},E={},L=(u={react_stack_bottom_frame:function(e){return e()}}).react_stack_bottom_frame.bind(u,o)(),F=A(l(o)),z={};w.Fragment=h,w.jsx=function(e,t,r){var n=1e4>M.recentlyCreatedOwnerStacks++;return s(e,t,r,!1,n?Error("react-stack-top-frame"):L,n?A(l(e)):F)},w.jsxs=function(e,t,r){var n=1e4>M.recentlyCreatedOwnerStacks++;return s(e,t,r,!0,n?Error("react-stack-top-frame"):L,n?A(l(e)):F)}}()),w}function k(){return v||(v=1,x.exports="production"===process.env.NODE_ENV?y():j()),x.exports}var N=k();const C=48,S=r(({columns:e,data:t,selectable:r,rowHeight:l,pinnedColumns:o=new Set})=>{const a=n(()=>{const r={},n=e.filter(e=>e.footerAggregate);return 0===n.length||n.forEach(e=>{const n=t.map(t=>t[e.key]);let l=null;if("function"==typeof e.footerAggregate)try{l=e.footerAggregate(n)}catch(t){console.warn(`Error computing custom footer aggregate for column ${e.key}:`,t),l=null}else{const r=e=>!!(/^\d{4}-\d{2}-\d{2}$/.test(e)||/^\d{2}-\d{2}-\d{4}$/.test(e)||/^\d{4}\/\d{2}\/\d{2}$/.test(e)||/^\d{2}\/\d{2}\/\d{4}$/.test(e)||(e.includes("-")||e.includes("/"))&&Number.isFinite(Date.parse(e))),o=n.map(e=>{if("number"==typeof e)return e;if(null==e)return NaN;const t=String(e);if(r(t))return NaN;const n=parseFloat(t.replace(/,/g,""));return Number.isFinite(n)?n:NaN}).filter(e=>Number.isFinite(e)),a=()=>n.map(e=>{if(e instanceof Date)return e.getTime();if("string"==typeof e||"number"==typeof e){const t=Date.parse(String(e));return Number.isFinite(t)?t:NaN}return NaN}).filter(e=>Number.isFinite(e));switch(e.footerAggregate){case"count":l=t.length;break;case"sum":o.length&&(l=o.reduce((e,t)=>e+t,0));break;case"avg":o.length&&(l=o.reduce((e,t)=>e+t,0)/o.length);break;case"min":if(o.length)l=Math.min(...o);else{const e=a();e.length&&(l=new Date(Math.min(...e)))}break;case"max":if(o.length)l=Math.max(...o);else{const e=a();e.length&&(l=new Date(Math.max(...e)))}break;default:l=null}}null!=l&&(r[e.key]=l)}),r},[e,t]);if(!e.some(e=>e.footerAggregate))return null;const s=e.reduce((e,t)=>e+t.width,0),i=n(()=>{const t=new Map,n=e.filter(e=>o.has(e.key)).map(e=>e.key);let l=r?C:0;for(const r of n)t.set(r,l),l+=e.find(e=>e.key===r)?.width||100;return t},[e,o,r]);return N.jsxs("div",{className:"flex h-full",style:{minWidth:`${s+(r?C:0)}px`,height:`${l}px`},children:[r&&N.jsx("div",{className:"w-12 p-3 border-r border-gray-200 dark:border-gray-700 flex items-center justify-center sticky left-0 bg-white dark:bg-gray-900 z-30",style:{height:`${l}px`},children:N.jsx("span",{className:"text-xs font-medium text-gray-600 dark:text-gray-300",children:"Total"})},"select-footer-cell"),e.map(e=>{const t=e.width,r=a[e.key],n=e.footerAggregate&&void 0!==r;let s="";if(n){const t=e.footerAggregateFormatter||e.formatter;if(t)try{s=t(r)}catch{s=String(r)}else s="number"==typeof r?r%1==0?r.toString():r.toFixed(2):String(r?.toFixed)}const c=o.has(e.key),d=c&&i.get(e.key)||0;return N.jsx("div",{className:`border-r border-gray-200 dark:border-gray-700 last:border-r-0 ${e.noPadding?"p-0":"p-3"} text-sm flex items-center font-semibold text-gray-700 dark:text-gray-200 overflow-hidden ${"center"===e.align?"justify-center":"right"===e.align?"justify-end":"justify-start"} ${"center"===e.align?"text-center":"right"===e.align?"text-right":"text-left"} ${c?"sticky bg-white dark:bg-gray-900 z-20":""}`,style:{width:`${t}px`,minWidth:`${t}px`,maxWidth:`${t}px`,left:c?`${d}px`:"auto",height:`${l}px`},title:n?`${e.header}: ${s}`:void 0,children:n&&N.jsx("span",{className:"truncate w-full",children:s})},e.key)})]})},(e,t)=>{if(e.selectable!==t.selectable)return!1;if(e.rowHeight!==t.rowHeight)return!1;if(e.getRowId!==t.getRowId)return!1;if(e.columns.length!==t.columns.length)return!1;for(let r=0;r<e.columns.length;r++){const n=e.columns[r],l=t.columns[r];if(n.key!==l.key||n.width!==l.width||n.footerAggregate!==l.footerAggregate)return!1}if(e.data.length!==t.data.length)return!1;const r=(e,t,r)=>r?r(e):void 0!==e.id?e.id:t,n=e.data.length>0?r(e.data[0],0,e.getRowId):void 0,l=t.data.length>0?r(t.data[0],0,t.getRowId):void 0,o=e.data.length-1,a=t.data.length-1,s=e.data.length>0?r(e.data[o],o,e.getRowId):void 0,i=t.data.length>0?r(t.data[a],a,t.getRowId):void 0;return n===l&&s===i&&e.pinnedColumns?.size===t.pinnedColumns?.size}),M=({size:e=16,children:t,...r})=>N.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",...r,children:t}),R=e=>N.jsx(M,{...e,children:N.jsx("polyline",{points:"15 18 9 12 15 6"})}),D=e=>N.jsx(M,{...e,children:N.jsx("polyline",{points:"9 18 15 12 9 6"})}),A=e=>N.jsx(M,{...e,children:N.jsx("polyline",{points:"6 9 12 15 18 9"})}),E=e=>N.jsxs(M,{...e,children:[N.jsx("polyline",{points:"11 17 6 12 11 7"}),N.jsx("polyline",{points:"18 17 13 12 18 7"})]}),L=e=>N.jsxs(M,{...e,children:[N.jsx("polyline",{points:"13 17 18 12 13 7"}),N.jsx("polyline",{points:"6 17 11 12 6 7"})]}),F=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),N.jsx("polyline",{points:"5 12 12 5 19 12"})]}),z=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),N.jsx("polyline",{points:"19 12 12 19 5 12"})]}),$=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"m21 16-4 4-4-4"}),N.jsx("path",{d:"M17 20V4"}),N.jsx("path",{d:"m3 8 4-4 4 4"}),N.jsx("path",{d:"M7 4v16"})]}),I=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),N.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),T=e=>N.jsx(M,{...e,children:N.jsx("polyline",{points:"20 6 9 17 4 12"})}),O=e=>N.jsxs(M,{...e,children:[N.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),N.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),P=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),N.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]}),_=e=>N.jsxs(M,{...e,children:[N.jsx("polyline",{points:"3 6 5 6 21 6"}),N.jsx("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),N.jsx("path",{d:"M10 11v6"}),N.jsx("path",{d:"M14 11v6"}),N.jsx("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}),K=e=>N.jsxs(M,{...e,children:[N.jsx("polyline",{points:"21 8 21 21 3 21 3 8"}),N.jsx("rect",{x:"1",y:"3",width:"22",height:"5"}),N.jsx("line",{x1:"10",y1:"12",x2:"14",y2:"12"})]}),V=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),N.jsx("polyline",{points:"7 10 12 15 17 10"}),N.jsx("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]}),B=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),N.jsx("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),N.jsx("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]}),W=e=>N.jsx(M,{...e,children:N.jsx("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"})}),H=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M13.013 3H2l8 9.46V19l4 2v-6.54l.9-1.055"}),N.jsx("line",{x1:"22",y1:"3",x2:"11",y2:"14"})]}),G=e=>N.jsxs(M,{...e,children:[N.jsx("circle",{cx:"12",cy:"12",r:"3"}),N.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]}),U=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"12",y1:"17",x2:"12",y2:"22"}),N.jsx("path",{d:"M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24Z"})]}),Y=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"2",y1:"2",x2:"22",y2:"22"}),N.jsx("line",{x1:"12",y1:"17",x2:"12",y2:"22"}),N.jsx("path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V17h12"}),N.jsx("path",{d:"M15 9.34V6h1a2 2 0 0 0 0-4H7.89"})]}),q=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M3 7V5c0-1.1.9-2 2-2h2"}),N.jsx("path",{d:"M17 3h2c1.1 0 2 .9 2 2v2"}),N.jsx("path",{d:"M21 17v2c0 1.1-.9 2-2 2h-2"}),N.jsx("path",{d:"M7 21H5c-1.1 0-2-.9-2-2v-2"}),N.jsx("rect",{x:"7",y:"7",width:"10",height:"10",rx:"1"})]}),X=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M3 7V5c0-1.1.9-2 2-2h2"}),N.jsx("path",{d:"M17 3h2c1.1 0 2 .9 2 2v2"}),N.jsx("path",{d:"M21 17v2c0 1.1-.9 2-2 2h-2"}),N.jsx("path",{d:"M7 21H5c-1.1 0-2-.9-2-2v-2"}),N.jsx("rect",{x:"7",y:"7",width:"4",height:"4",rx:"1"}),N.jsx("rect",{x:"13",y:"13",width:"4",height:"4",rx:"1"})]}),J=e=>N.jsxs(M,{...e,children:[N.jsx("circle",{cx:"12",cy:"12",r:"1"}),N.jsx("circle",{cx:"19",cy:"12",r:"1"}),N.jsx("circle",{cx:"5",cy:"12",r:"1"})]}),Z=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),N.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),Q=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"}),N.jsx("path",{d:"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"}),N.jsx("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}),ee=e=>N.jsxs(M,{...e,children:[N.jsx("circle",{cx:"11",cy:"11",r:"8"}),N.jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),te=e=>N.jsxs(M,{...e,children:[N.jsx("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),N.jsx("path",{d:"M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5"}),N.jsx("path",{d:"M3 12c0 1.66 4.03 3 9 3s9-1.34 9-3"})]}),re=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),N.jsx("polyline",{points:"14 2 14 8 20 8"}),N.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),N.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),N.jsx("polyline",{points:"10 9 9 9 8 9"})]}),ne=e=>N.jsxs(M,{...e,children:[N.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),N.jsx("path",{d:"M3 9h18"}),N.jsx("path",{d:"M3 15h18"}),N.jsx("path",{d:"M9 3v18"})]}),le=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"}),N.jsx("circle",{cx:"9",cy:"7",r:"4"}),N.jsx("path",{d:"M23 21v-2a4 4 0 0 0-3-3.87"}),N.jsx("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"})]}),oe=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"2",y1:"12",x2:"6",y2:"12"}),N.jsx("line",{x1:"18",y1:"12",x2:"22",y2:"12"}),N.jsx("line",{x1:"12",y1:"2",x2:"12",y2:"6"}),N.jsx("line",{x1:"12",y1:"18",x2:"12",y2:"22"}),N.jsx("circle",{cx:"12",cy:"12",r:"4"}),N.jsx("circle",{cx:"12",cy:"12",r:"1",fill:"currentColor"})]}),ae=e=>N.jsx(M,{...e,children:N.jsx("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})}),se=({value:e,onChange:t,placeholder:r="Enter text to filter..."})=>{const[n,o]=l(String(e?.value??"")),[a,s]=l(e?.operator||"contains");return N.jsxs("div",{className:"space-y-3",children:[N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Filter Type"}),N.jsxs("select",{value:a,onChange:e=>(e=>{const r=e;s(r),n.trim()&&t({type:"text",value:n,operator:r})})(e.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[N.jsx("option",{value:"contains",children:"Contains"}),N.jsx("option",{value:"equals",children:"Equals"}),N.jsx("option",{value:"startsWith",children:"Starts with"}),N.jsx("option",{value:"endsWith",children:"Ends with"})]})]}),N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Text Value"}),N.jsx("input",{type:"text",value:n,onChange:e=>{return o(r=e.target.value),void(r.trim()?t({type:"text",value:r,operator:a}):t(null));var r},placeholder:r,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]})]})},ie=({value:e,onChange:t,min:r,max:n})=>{const[o,a]=l(String(e?.value??"")),[s,i]=l(String(e?.secondValue??"")),[c,d]=l(e?.operator||"equals"),u=(e,r=!1)=>{r?i(e):a(e);const n=parseFloat(e),l=parseFloat(s);"between"===c?isNaN(n)||isNaN(l)?t(null):t({type:"number",value:Math.min(n,l),secondValue:Math.max(n,l),operator:"between"}):isNaN(n)?t(null):t({type:"number",value:n,operator:c})};return N.jsxs("div",{className:"space-y-3",children:[N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Filter Type"}),N.jsxs("select",{value:c,onChange:e=>(e=>{const r=e;if(d(r),"between"===r){const e=parseFloat(o),r=parseFloat(s);isNaN(e)||isNaN(r)||t({type:"number",value:Math.min(e,r),secondValue:Math.max(e,r),operator:"between"})}else{const e=parseFloat(o);isNaN(e)||t({type:"number",value:e,operator:r})}})(e.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[N.jsx("option",{value:"equals",children:"Equals"}),N.jsx("option",{value:"gt",children:"Greater than"}),N.jsx("option",{value:"gte",children:"Greater than or equal"}),N.jsx("option",{value:"lt",children:"Less than"}),N.jsx("option",{value:"lte",children:"Less than or equal"}),N.jsx("option",{value:"between",children:"Between"})]})]}),N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"between"===c?"From Value":"Number Value"}),N.jsx("input",{type:"number",value:o,onChange:e=>u(e.target.value),min:r,max:n,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]}),"between"===c&&N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"To Value"}),N.jsx("input",{type:"number",value:s,onChange:e=>u(e.target.value,!0),min:r,max:n,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]})]})},ce=({name:e,label:t,value:r,onChange:n,className:l=""})=>N.jsxs("div",{className:`space-y-1 ${l}`,children:[t&&N.jsx("label",{className:"text-sm font-medium text-gray-700",children:t}),N.jsx("input",{type:"date",name:e,value:r||"",onChange:e=>n(e.target.value||null),className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]}),de=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,ue=e=>{const[t,r,n]=e.split("-").map(Number);return t&&r&&n?new Date(t,r-1,n):new Date(NaN)},me=e=>`${String(e.getDate()).padStart(2,"0")}-${String(e.getMonth()+1).padStart(2,"0")}-${e.getFullYear()}`,ge=({value:e,onChange:t,min:r,max:a})=>{const s=e=>{if(!e)return null;if(e instanceof Date)return isNaN(e.getTime())?null:e;try{const t=ue(String(e));return isNaN(t.getTime())?null:t}catch(t){const r=new Date(e);return isNaN(r.getTime())?null:r}},i=e=>e?de(e):"",[c,d]=l(s(e?.value)),[u,m]=l("between"===e?.operator?s(e?.secondValue??e?.value):null),[g,h]=l(e?.operator||"between");o(()=>{h(e?.operator||"between"),d(s(e?.value)),m("between"===e?.operator?s(e?.secondValue??e?.value):null)},[e?.value,e?.secondValue,e?.operator]),o(()=>{"between"===g&&!u&&c&&m(c)},[g,c,u]);const f=(e,t,r)=>e?t&&e<t||r&&e>r?null:e:null,x=(e,r=!1)=>{const n=r?c:e,l=r?e:u,o="between"===g&&u?u:y,a=r?f(e,c??p??void 0,y):f(e,p,o);if(r?m(a):d(a),"between"===g)if(n&&l){const e=n>=l?n:l;t({type:"date",value:i(n<=l?n:l),secondValue:i(e),operator:"between"})}else t(null);else t(a?{type:"date",value:i(a),operator:g}:null)},p=n(()=>r?new Date(r):void 0,[r]),y=n(()=>a?new Date(a):void 0,[a]);return N.jsxs("div",{className:"space-y-3",children:[N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Filter Type"}),N.jsxs("select",{value:g,onChange:e=>(e=>{const r=e;h(r),"between"===r?c&&u&&t({type:"date",value:c<=u?c:u,secondValue:c>=u?c:u,operator:"between"}):c&&t({type:"date",value:c,operator:r})})(e.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[N.jsx("option",{value:"equals",children:"On Date"}),N.jsx("option",{value:"gt",children:"After"}),N.jsx("option",{value:"gte",children:"On or After"}),N.jsx("option",{value:"lt",children:"Before"}),N.jsx("option",{value:"lte",children:"On or Before"}),N.jsx("option",{value:"between",children:"Between Dates"})]})]}),N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"between"===g?"From Date":"Date"}),N.jsx(ce,{name:"date_filter_start",value:c?de(c):null,onChange:e=>x(e?ue(e):null,!1),className:"w-full"})]}),"between"===g&&N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"To Date"}),N.jsx(ce,{name:"date_filter_end",value:u?de(u):null,onChange:e=>x(e?ue(e):null,!0),className:"w-full"})]})]})},he=({value:e,onChange:t,options:r,data:a,columnKey:s})=>{const[i,c]=l(""),[d,u]=l(new Set(Array.isArray(e?.value)?e.value:[]));o(()=>{u(new Set(Array.isArray(e?.value)?e.value:[]))},[e]);const m=n(()=>{let e=[];const t=e=>null==e||""===e||"string"==typeof e&&""===e.trim();if(r&&r.length>0)e=r;else{const r=a.map(e=>{const r=e[s];return t(r)?null:r});e=[...new Set(r)].map(e=>({label:null===e?"Blank":String(e),value:e}))}const n=e.map(e=>{const r=t(e.value);return{...e,label:r?"Blank":e.label,value:r?null:e.value,isBlank:r}});return Array.from(new Map(n.map(e=>[e.isBlank?"__blank__":e.value,e])).values()).sort((e,t)=>e.isBlank&&!t.isBlank?1:!e.isBlank&&t.isBlank?-1:String(e.label).localeCompare(String(t.label)))},[r,a,s]),g=n(()=>{if(!i)return m;const e=i.toLowerCase();return m.filter(t=>t.label.toLowerCase().includes(e)||String(t.value).toLowerCase().includes(e)||"blank"===e&&t.isBlank)},[m,i]);return N.jsxs("div",{className:"space-y-3",children:[N.jsxs("div",{className:"relative",children:[N.jsx(ee,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4"}),N.jsx("input",{type:"text",value:i,onChange:e=>c(e.target.value),placeholder:"Search options...",className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]}),N.jsxs("div",{className:"flex justify-between items-center text-sm",children:[N.jsxs("span",{className:"text-gray-600",children:[d.size," of ",m.length," selected"]}),N.jsxs("div",{className:"flex gap-2",children:[N.jsx("button",{onClick:()=>{const e=new Set(g.map(e=>e.value));u(e),t({type:"multiselect",value:Array.from(e),operator:"equals"})},className:"text-blue-600 hover:text-blue-800 transition-colors",children:"Select All"}),N.jsx("button",{onClick:()=>{u(new Set),t(null)},className:"text-gray-600 hover:text-gray-800 transition-colors",children:"Clear All"})]})]}),N.jsx("div",{className:"max-h-48 overflow-y-auto border border-gray-200 rounded-md",children:0===g.length?N.jsx("div",{className:"p-3 text-sm text-gray-500 text-center",children:"No options found"}):g.map((e,r)=>{const n=d.has(e.value);return N.jsxs("div",{onClick:()=>(e=>{const r=new Set(d);r.has(e)?r.delete(e):r.add(e),u(r),t(r.size>0?{type:"multiselect",value:Array.from(r),operator:"equals"}:null)})(e.value),className:"flex items-center gap-3 p-2 cursor-pointer hover:bg-gray-50 transition-colors "+(n?"bg-blue-50":""),children:[N.jsx("div",{className:"w-4 h-4 border-2 rounded flex items-center justify-center "+(n?"bg-blue-600 border-blue-600 text-white":"border-gray-300"),children:n&&N.jsx(T,{className:"w-3 h-3"})}),N.jsx("span",{className:`text-sm ${n?"text-blue-900 font-medium":"text-gray-700"} ${e.isBlank?"italic text-gray-500":""}`,children:e.label})]},r)})})]})},fe=({value:e,onChange:t})=>{const[r,n]=l(void 0!==e?.value?String(e.value):"");return N.jsx("div",{className:"space-y-3",children:N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Boolean Value"}),N.jsxs("select",{value:r,onChange:e=>{return n(r=e.target.value),void t(""===r?null:{type:"boolean",value:"true"===r,operator:"equals"});var r},className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[N.jsx("option",{value:"",children:"All values"}),N.jsx("option",{value:"true",children:"True"}),N.jsx("option",{value:"false",children:"False"})]})]})})},xe=({column:e,data:t,value:r,onChange:l})=>{const o=n(()=>{if("object"==typeof e.filterable)return e.filterable;const r=t.slice(0,100).map(t=>t[e.key]).filter(e=>null!=e);if(0===r.length)return{type:"text"};const n=r[0];if("boolean"==typeof n)return{type:"boolean"};if("number"==typeof n)return{type:"number"};if(n instanceof Date||"string"==typeof n&&!isNaN(Date.parse(n)))return{type:"date"};const l=[...new Set(r)];return l.length<=20?{type:"multiselect",options:l.map(e=>({label:String(e),value:e}))}:{type:"text"}},[e.filterable,e.key,t]);switch(o.type){case"text":return N.jsx(se,{value:r,onChange:l,placeholder:o.placeholder});case"number":return N.jsx(ie,{value:r,onChange:l,min:o.min,max:o.max});case"date":return N.jsx(ge,{value:r,onChange:l,min:o.min,max:o.max});case"multiselect":return N.jsx(he,{value:r,onChange:l,options:o.options||[],data:t,columnKey:e.key});case"boolean":return N.jsx(fe,{value:r,onChange:l});default:return null}},pe=({pinnedColumns:e,unpinnedColumns:r,hvPadLeft:n=0,hvPadRight:a=0,headerHeight:s,sortConfig:i,columnFilters:c,selectable:d,selectedRows:u,totalRows:m,data:g,onSort:h,onColumnFilter:f,onSelectAll:x,onColumnResize:p,pinnedKeySet:y=new Set,onColumnPin:b,groupable:v=!1,groupedByColumn:w,onGroupBy:j,groupedByColumns:k=[],onGroupToggle:S,onAutosizeColumn:M,onAutosizeAllColumns:R,onResetColumns:D,columnOrder:A,onColumnOrderChange:E,paginationMode:L="client"})=>{const I=t.useMemo(()=>[...e,...r],[e,r]),[T,O]=l(null),[P,_]=l(null),[K,V]=l(null),[G,J]=l(0),[Z,Q]=l(0),[ee,te]=l("menu"),[re,ne]=l(null),[le,oe]=l(!1);o(()=>{oe("ontouchstart"in window||navigator.maxTouchPoints>0||window.matchMedia("(pointer: coarse)").matches)},[]);const[ae,se]=l(null),[ie,ce]=l(null),de=u.size===m&&m>0,ue=u.size>0&&u.size<m,me=(e,t)=>{if(t.stopPropagation(),T===e)O(null);else{O(e),te("menu"),ne(c[e]||null);const r=t.currentTarget.getBoundingClientRect(),n=t.currentTarget.closest("[data-grid-container]"),l=n?n.getBoundingClientRect():new DOMRect(0,0,window.innerWidth,window.innerHeight),o=10,a=Math.max(l.left+o,Math.min(r.left,l.right-320-o));_({top:r.bottom+4,left:a,containerRect:l})}},ge=e=>{f(e,re||null),O(null)},he=e=>null!=c[e],fe=(t,n)=>{n.preventDefault(),V(t),J(n.clientX);const l=[...e,...r].find(e=>e.key===t);Q(l?.width||100)},pe=e=>{if(!K||!p)return;const t=Math.max(50,Z+(e.clientX-G));p(K,t)},ye=()=>{V(null),J(0),Q(0)},[be,ve]=l(null),[we,je]=l(null),ke=(e,t)=>{ve(e),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e)},Ne=(e,t)=>{t.preventDefault(),t.dataTransfer.dropEffect="move";const r=t.currentTarget.getBoundingClientRect();je({key:e,position:t.clientX<r.left+r.width/2?"before":"after"})},Ce=e=>{const t=be;if(!t||t===e)return;if(y.has(t)!==y.has(e))return ve(null),void je(null);const r=we?.key!==e||"before"===we?.position,n=A.filter(e=>e!==t);let l=n.indexOf(e);if(-1===l)return E(n),ve(null),void je(null);r||(l+=1),n.splice(l,0,t),E(n),ve(null),je(null)},Se=()=>{ve(null),je(null)},Me=(e,t)=>{se(e),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e)},Re=(e,t)=>{t.preventDefault(),t.dataTransfer.dropEffect="move";const r=t.currentTarget.getBoundingClientRect();ce({key:e,position:t.clientY<r.top+r.height/2?"before":"after"})},De=e=>{const t=ae;if(!t||t===e)return;if(y.has(t)!==y.has(e))return se(null),void ce(null);const r=ie?.key!==e||"before"===ie?.position,n=A.filter(e=>e!==t);let l=n.indexOf(e);if(-1===l)return E(n),se(null),void ce(null);r||(l+=1),n.splice(l,0,t),E(n),se(null),ce(null)},Ae=()=>{se(null),ce(null)};return o(()=>{if(K)return document.addEventListener("mousemove",pe),document.addEventListener("mouseup",ye),document.body.style.cursor="col-resize",document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",pe),document.removeEventListener("mouseup",ye),document.body.style.cursor="",document.body.style.userSelect=""}},[K,G,Z,p]),o(()=>{const e=e=>{T&&!e.target.closest("[data-column-menu]")&&O(null)};if(T)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[T]),N.jsx(N.Fragment,{children:N.jsx("div",{className:"bg-blue-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700",style:{height:s},role:"row","aria-label":"Column headers",children:N.jsxs("div",{className:"flex h-full",children:[d&&N.jsx("div",{className:"px-3 border-r border-gray-200 dark:border-gray-700 flex items-center justify-center bg-blue-50 dark:bg-gray-800 sticky left-0 z-3 h-full",style:{width:C,height:s},role:"columnheader","aria-label":"Select all rows",children:N.jsx("input",{type:"checkbox",checked:de,ref:e=>{e&&(e.indeterminate=ue)},onChange:x,onKeyDown:e=>{" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),x())},className:"rounded border-gray-300 dark:border-gray-600 text-blue-600 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50 h-4 w-4 transition-all duration-150","aria-label":de?"Deselect all rows":ue?`${u.size} rows selected. Click to select all`:"Select all rows",title:de?`Deselect all ${m} rows`:ue?`${u.size} of ${m} rows selected`:`Select all ${m} rows`})}),e.map((t,r)=>{const n=y.has(t.key),l=e.filter(e=>y.has(e.key)).map(e=>e.key),o=l.indexOf(t.key),a=n?l.slice(0,o).reduce((t,r)=>{const n=e.find(e=>e.key===r);return t+(n?.width||100)},d?C:0):0,c="center"===t.headerAlign?"justify-center":"right"===t.headerAlign?"justify-end":"justify-start",u=!1!==t.sortable;return N.jsxs("div",{className:`flex-none border-r border-gray-200 dark:border-gray-700 last:border-r-0 relative ${n?"bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-700 sticky z-2":""} `,style:{width:t.width||100,left:n?`${a}px`:"auto",height:s},"data-column-key":t.key,draggable:!0,onDragStart:e=>ke(t.key,e),onDragOver:e=>Ne(t.key,e),onDrop:()=>Ce(t.key),onDragEnd:Se,children:[we?.key===t.key&&N.jsx("div",{className:"absolute top-0 bottom-0 w-0.5 bg-blue-600 z-4",style:{left:"before"===we?.position?0:void 0,right:"after"===we?.position?0:void 0}}),N.jsx("div",{className:"px-3 h-full",children:N.jsxs("div",{className:"flex items-center justify-between gap-1 group h-full",children:[N.jsxs("div",{className:`flex items-center min-w-0 flex-1 ${c} ${u?"cursor-pointer hover:text-blue-600":""}`,onClick:()=>u&&h(t.key),children:[N.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[he(t.key)&&N.jsx("div",{className:"w-2 h-2 bg-red-500 rounded-full shrink-0",title:"Filter applied"}),N.jsx("span",{className:"font-medium text-gray-900 dark:text-gray-100 text-sm truncate min-w-0",children:t.header})]}),u&&i.key===t.key&&N.jsx("div",{className:"ml-1 shrink-0 pointer-events-none select-none",children:N.jsx("asc"===i.direction?F:z,{className:"w-3 h-3 text-blue-600 dark:text-blue-400"})})]}),(t.filterable||b||v)&&N.jsxs("div",{className:"relative "+(T===t.key||le?"block":"hidden group-hover:block"),"data-column-menu":!0,children:[N.jsx("button",{className:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded shrink-0",onClick:e=>me(t.key,e),"data-menu-trigger":!0,children:N.jsx(B,{className:"w-4 h-4 text-gray-500 dark:text-gray-400"})}),T===t.key&&P&&N.jsxs("div",{className:"fixed bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-md shadow-lg z-1000 w-[320px] overflow-auto",style:{top:`${P.top}px`,left:`${P.left}px`,maxHeight:`${Math.max(160,P.containerRect.bottom-12-P.top)}px`},"data-column-menu":!0,children:[N.jsxs("div",{className:"flex items-center border-b border-gray-200 dark:border-gray-700",children:[N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("menu"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("menu"),children:N.jsx(B,{className:"w-4 h-4"})}),t.filterable&&N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("filter"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("filter"),children:N.jsx(W,{className:"w-4 h-4"})}),N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("reorder"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("reorder"),children:N.jsx($,{className:"w-4 h-4"})})]}),"menu"===ee&&N.jsxs("div",{className:"py-1",children:[b&&(w===t.key?N.jsxs("div",{className:"w-full px-3 py-2 text-left text-sm flex items-center gap-2 text-blue-600",children:[N.jsx(U,{className:"w-4 h-4"}),"Pinned by grouping"]}):N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50 flex items-center gap-2",onClick:e=>{e.stopPropagation(),O(null),b?.(t.key,!y.has(t.key))},children:y.has(t.key)?N.jsxs(N.Fragment,{children:[N.jsx(Y,{className:"w-4 h-4"}),"Unpin Column"]}):N.jsxs(N.Fragment,{children:[N.jsx(U,{className:"w-4 h-4"}),"Pin Column"]})})),M&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{M?.(t.key),O(null)},children:"Autosize This Column"}),R&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{R?.(),O(null)},children:"Autosize All Columns"}),v&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50 flex items-center gap-2",onClick:e=>{e.stopPropagation(),O(null);const r=k?.includes(t.key)||w===t.key;S?S(t.key,!r):j?.(r?null:t.key)},children:w===t.key||k?.includes(t.key)?N.jsxs(N.Fragment,{children:[N.jsx(X,{className:"w-4 h-4"}),"Ungroup"]}):N.jsxs(N.Fragment,{children:[N.jsx(q,{className:"w-4 h-4"}),"Group by ",t.header]})}),D&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{D?.(),O(null)},children:"Reset Columns"})]}),"filter"===ee&&N.jsxs("div",{className:"p-3 w-full",children:[he(t.key)&&N.jsxs("button",{className:"mb-2 text-xs text-red-600 hover:underline flex items-center gap-1",onClick:()=>{ne(null),f(t.key,null),O(null)},children:[N.jsx(H,{className:"w-3 h-3"})," Clear Filter"]}),N.jsx("div",{className:"max-h-75 overflow-auto pr-1",children:N.jsx(xe,{column:t,data:g,value:re,onChange:e=>{ne(e),"server"!==L&&f(t.key,e)}})}),"server"===L?N.jsxs("div",{className:"flex justify-end gap-2 mt-3",children:[N.jsx("button",{className:"px-3 py-1.5 text-sm bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200",onClick:()=>O(null),children:"Cancel"}),N.jsx("button",{className:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded-md hover:bg-blue-700",onClick:()=>ge(t.key),children:"Apply"})]}):N.jsx("div",{className:"flex justify-end mt-3",children:N.jsx("button",{className:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded-md hover:bg-blue-700",onClick:()=>O(null),children:"Close"})})]}),"reorder"===ee&&N.jsxs("div",{className:"px-3 py-2",children:[N.jsx("div",{className:"text-xs font-medium text-gray-500 mb-1",children:"Reorder Columns"}),N.jsx("div",{className:"max-h-60 overflow-auto border border-gray-200 rounded-md",children:[...A.map(e=>I.find(t=>t.key===e)).filter(Boolean),...I.filter(e=>!A.includes(e.key))].map(e=>{const t=y.has(e.key);return N.jsxs("div",{className:`flex items-center justify-between px-2 py-1 text-sm bg-white hover:bg-gray-50 border-b last:border-b-0 relative ${ae===e.key?"opacity-60":""} ${t?"bg-blue-50/40":""}`,draggable:!0,onDragStart:t=>Me(e.key,t),onDragOver:t=>Re(e.key,t),onDrop:()=>De(e.key),onDragEnd:Ae,children:[ie?.key===e.key&&N.jsx("div",{className:"absolute left-0 right-0 h-0.5 bg-blue-600",style:{top:"before"===ie?.position?0:void 0,bottom:"after"===ie?.position?0:void 0}}),N.jsxs("div",{className:"flex items-center gap-2",children:[N.jsx("span",{className:"text-gray-400 select-none",children:"⋮⋮"}),N.jsxs("span",{className:"text-gray-800 truncate max-w-45",children:[e.header,t&&N.jsx("span",{className:"ml-1 text-[10px] text-blue-600",children:"(pinned)"})]})]})]},e.key)})}),N.jsx("div",{className:"text-[10px] text-gray-400 mt-1",children:"Tip: You can only reorder within pinned or unpinned groups."})]})]})]})]})}),r<e.length-1&&p&&N.jsx("div",{className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-blue-300 transition-colors group",onMouseDown:e=>fe(t.key,e),onDoubleClick:e=>{e.preventDefault(),e.stopPropagation(),M?.(t.key)},title:"Drag to resize • Double‑click to autosize",children:N.jsx("div",{className:"w-full h-full group-hover:bg-blue-400"})})]},t.key+r)}),n>0&&N.jsx("div",{style:{width:n,height:s},className:"flex-none"}),r.map((e,t)=>{const n="center"===e.headerAlign?"justify-center":"right"===e.headerAlign?"justify-end":"justify-start",l=!1!==e.sortable;return N.jsxs("div",{className:"flex-none border-r border-gray-200 dark:border-gray-700 last:border-r-0 relative",style:{width:e.width||100,height:s},"data-column-key":e.key,draggable:!0,onDragStart:t=>ke(e.key,t),onDragOver:t=>Ne(e.key,t),onDrop:()=>Ce(e.key),onDragEnd:Se,children:[we?.key===e.key&&N.jsx("div",{className:"absolute top-0 bottom-0 w-0.5 bg-blue-600 z-4",style:{left:"before"===we?.position?0:void 0,right:"after"===we?.position?0:void 0}}),N.jsx("div",{className:"px-3 h-full",children:N.jsxs("div",{className:"flex items-center justify-between gap-1 group h-full",children:[N.jsxs("div",{className:`flex items-center min-w-0 flex-1 ${n} ${l?"cursor-pointer hover:text-blue-600":""}`,onClick:()=>l&&h(e.key),children:[N.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[he(e.key)&&N.jsx("div",{className:"w-2 h-2 bg-red-500 rounded-full shrink-0",title:"Filter applied"}),N.jsx("span",{className:"font-medium text-gray-900 dark:text-gray-100 text-sm truncate min-w-0",children:e.header})]}),l&&i.key===e.key&&N.jsx("div",{className:"ml-1 shrink-0 pointer-events-none select-none",children:N.jsx("asc"===i.direction?F:z,{className:"w-3 h-3 text-blue-600 dark:text-blue-400"})})]}),(e.filterable||b||v)&&N.jsxs("div",{className:"relative "+(T===e.key||le?"block":"hidden group-hover:block"),"data-column-menu":!0,children:[N.jsx("button",{className:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded shrink-0",onClick:t=>me(e.key,t),"data-menu-trigger":!0,children:N.jsx(B,{className:"w-4 h-4 text-gray-500 dark:text-gray-400"})}),T===e.key&&P&&N.jsxs("div",{className:"fixed bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-md shadow-lg z-10 w-[320px] overflow-auto",style:{top:`${P.top}px`,left:`${P.left}px`,maxHeight:`${Math.max(160,P.containerRect.bottom-12-P.top)}px`},"data-column-menu":!0,children:[N.jsxs("div",{className:"flex items-center border-b border-gray-200 dark:border-gray-700",children:[N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("menu"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("menu"),children:N.jsx(B,{className:"w-4 h-4"})}),e.filterable&&N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("filter"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("filter"),children:N.jsx(W,{className:"w-4 h-4"})}),N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("reorder"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("reorder"),children:N.jsx($,{className:"w-4 h-4"})})]}),"menu"===ee&&N.jsxs("div",{className:"py-1",children:[b&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50 flex items-center gap-2",onClick:t=>{t.stopPropagation(),O(null);const r=!y.has(e.key);b?.(e.key,r)},children:y.has(e.key)?N.jsxs(N.Fragment,{children:[N.jsx(Y,{className:"w-4 h-4"}),"Unpin Column"]}):N.jsxs(N.Fragment,{children:[N.jsx(U,{className:"w-4 h-4"}),"Pin Column"]})}),M&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{M?.(e.key),O(null)},children:"Autosize This Column"}),R&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{R?.(),O(null)},children:"Autosize All Columns"}),v&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50 flex items-center gap-2",onClick:t=>{t.stopPropagation(),O(null);const r=k?.includes(e.key)||w===e.key;S?S(e.key,!r):j?.(r?null:e.key)},children:w===e.key||k?.includes(e.key)?N.jsxs(N.Fragment,{children:[N.jsx(X,{className:"w-4 h-4"}),"Ungroup"]}):N.jsxs(N.Fragment,{children:[N.jsx(q,{className:"w-4 h-4"}),"Group by ",e.header]})}),D&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{D?.(),O(null)},children:"Reset Columns"})]}),"filter"===ee&&N.jsxs("div",{className:"p-3 w-full",children:[N.jsx("div",{className:"max-h-75 overflow-auto pr-1",children:N.jsx(xe,{column:e,data:g,value:re,onChange:t=>{ne(t),"server"!==L&&f(e.key,t)}})}),N.jsxs("div",{className:"flex justify-end gap-2 mt-3",children:[he(e.key)&&N.jsxs("button",{className:"px-3 py-1.5 text-sm bg-red-500 text-white rounded-md hover:bg-red-600 flex items-center gap-2 cursor-pointer",onClick:()=>{ne(null),f(e.key,null),O(null)},children:[N.jsx(H,{className:"w-3 h-3"})," Clear Filter"]}),N.jsx("button",{className:"px-3 py-1.5 text-sm bg-green-100 text-green-700 rounded-md hover:bg-green-200 cursor-pointer",onClick:()=>O(null),children:"Apply"}),"server"===L&&N.jsx("button",{className:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded-md hover:bg-blue-700",onClick:()=>ge(e.key),children:"Apply"})]})]}),"reorder"===ee&&N.jsxs("div",{className:"px-3 py-2",children:[N.jsx("div",{className:"text-xs font-medium text-gray-500 mb-1",children:"Reorder Columns"}),N.jsx("div",{className:"max-h-60 overflow-auto border border-gray-200 rounded-md",children:[...A.map(e=>I.find(t=>t.key===e)).filter(Boolean),...I.filter(e=>!A.includes(e.key))].map(e=>{const t=y.has(e.key);return N.jsxs("div",{className:`flex items-center justify-between px-2 py-1 text-sm bg-white hover:bg-gray-50 border-b last:border-b-0 relative ${ae===e.key?"opacity-60":""} ${t?"bg-blue-50/40":""}`,draggable:!0,onDragStart:t=>Me(e.key,t),onDragOver:t=>Re(e.key,t),onDrop:()=>De(e.key),onDragEnd:Ae,children:[ie?.key===e.key&&N.jsx("div",{className:"absolute left-0 right-0 h-0.5 bg-blue-600",style:{top:"before"===ie?.position?0:void 0,bottom:"after"===ie?.position?0:void 0}}),N.jsxs("div",{className:"flex items-center gap-2",children:[N.jsx("span",{className:"text-gray-400 select-none",children:"⋮⋮"}),N.jsxs("span",{className:"text-gray-800 truncate max-w-45",children:[e.header,t&&N.jsx("span",{className:"ml-1 text-[10px] text-blue-600",children:"(pinned)"})]})]})]},e.key)})}),N.jsx("div",{className:"text-[10px] text-gray-400 mt-1",children:"Tip: You can only reorder within pinned or unpinned groups."})]})]})]})]})}),t<r.length-1&&p&&N.jsx("div",{className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-blue-300 transition-colors group",onMouseDown:t=>fe(e.key,t),onDoubleClick:t=>{t.preventDefault(),t.stopPropagation(),M?.(e.key)},title:"Drag to resize • Double‑click to autosize",children:N.jsx("div",{className:"w-full h-full group-hover:bg-blue-400"})})]},e.key+t)}),a>0&&N.jsx("div",{style:{width:a,height:s},className:"flex-none"})]})})})};pe.displayName="GridHeader";const ye=r(pe),be=({data:e,columns:t,selectedRows:r,virtualized:l,virtualizedRange:o,rowHeight:a,selectable:s,isRowSelectable:i,onRowSelect:c,pinnedColumns:d=new Set,hvPadLeft:u=0,hvPadRight:m=0,rowStyle:g,globalFilter:h,onContextMenu:f,onRowDoubleClick:x,onRowClick:p,onCellClick:y,isCellFocused:b,isCellSelected:v,onCellContextMenu:w,onCellMouseDown:j,onCellMouseEnter:k,getRowId:S})=>{const M=n(()=>e.length*a,[e.length,a]),{leftOffsetByPinnedKey:R}=n(()=>{if(0===d.size)return{leftOffsetByPinnedKey:new Map};const e=t.filter(e=>d.has(e.key)).map(e=>e.key),r=new Map;for(const e of t)r.set(e.key,e.width||100);const n=new Map;let l=s?C:0;for(const t of e)n.set(t,l),l+=r.get(t)||100;return{leftOffsetByPinnedKey:n}},[t,d,s]),D=n(()=>t.reduce((e,t)=>e+(d.has(t.key)?1:0),0),[t,d]);return N.jsx("div",{style:{height:l?`${M}px`:"auto",position:"relative"},children:N.jsx("div",{style:{transform:l?`translate3d(0, ${o.offsetY}px, 0)`:"none",position:l?"absolute":"static",top:0,left:0,right:0},children:e.map((e,n)=>{const M=l?o.startIndex+n:n,A=g?.(e),E=((e,t)=>S?S(e):void 0!==e.id?e.id:("development"===process.env.NODE_ENV&&0===t&&console.warn("[KDGrid] No row IDs found. Either:\n 1. Add 'id' property to each row object, or\n 2. Provide 'getRowId' prop to extract a unique identifier.\n Using row index as fallback ID, but this may cause issues with pagination/filtering."),t??0))(e,M),L=M%2==0?"bg-white dark:bg-gray-900":"bg-gray-25 dark:bg-gray-800",F=r.has(E)?"bg-blue-50 dark:bg-blue-900/20":"";return N.jsxs("div",{className:`flex border-b border-gray-100 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-700 ${F||(A?"":L)}`,style:{height:`${a}px`,...A},onContextMenu:t=>((e,t)=>{e.preventDefault(),f?.({row:t,event:e})})(t,e),onDoubleClick:t=>((e,t)=>{x?.({row:t,event:e})})(t,e),onClick:t=>((e,t)=>{p?.({row:t,event:e})})(t,e),children:[s&&N.jsx("div",{className:"flex items-center justify-center sticky left-0 bg-white dark:bg-gray-900 z-2 border-r border-gray-200 dark:border-gray-700",style:{width:C},children:N.jsx("input",{type:"checkbox",checked:r.has(E),disabled:!!i&&!i(e),onChange:e=>c(E,e.target.checked),onKeyDown:e=>{" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),c(E,!r.has(E)))},className:"rounded border-gray-300 dark:border-gray-600 text-blue-600 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50 h-4 w-4 transition-all duration-150","aria-label":`Select row ${E}`,tabIndex:0})}),t.map((t,r)=>{const n=d.has(t.key),l=n&&R.get(t.key)||0,o=e[t.key];let a,s;if(t.cellRenderer?(a=t.cellRenderer(o,e),"string"!=typeof o&&"number"!=typeof o&&"boolean"!=typeof o||(s=String(o))):t.formatter?(a=t.formatter(o),s=String(a)):(a=o??"",s=a?String(a):void 0),h&&h.trim()&&!t.cellRenderer&&a){const e=String(a);((e,t)=>{if(!t||null==e)return!1;const r=t.toLowerCase().trim();return!!r&&String(e).toLowerCase().includes(r)})(e,h)&&(a=((e,t)=>{if(!t||!e)return e;const r=t.toLowerCase().trim(),n=e.toLowerCase();if(!r||!n.includes(r))return e;const l=[];let o=0,a=0,s=0;for(;-1!==(a=n.indexOf(r,o));)a>o&&l.push(e.slice(o,a)),l.push(N.jsx("mark",{className:"bg-yellow-200 dark:bg-yellow-600/40 text-current font-medium px-0.5 py-0 rounded-sm",style:{margin:0},children:e.slice(a,a+r.length)},"highlight-"+s++)),o=a+r.length;return o<e.length&&l.push(e.slice(o)),N.jsx(N.Fragment,{children:l})})(e,h))}s&&0===s.trim().length&&(s=void 0);const i="center"===t.align?"text-center":"right"===t.align?"text-right":"text-left",c="center"===t.align?"justify-center":"right"===t.align?"justify-end":"justify-start",m=t.noPadding?"p-0":"p-3",g="function"==typeof t.className?t.className(o,e):t.className||"",f="function"==typeof t.cellStyle?t.cellStyle(o,e):t.cellStyle||void 0,x=N.jsxs("div",{className:`border-r border-gray-200 last:border-r-0 ${m} text-sm flex items-center ${v?.(E,t.key)?"bg-blue-100/60 dark:bg-blue-900/30":""} ${n?b?.(E,t.key)?"sticky z-2 bg-inherit":"sticky z-1 bg-inherit":""} ${b?.(E,t.key)?"relative":""} ${i} ${c} ${g}`,style:{width:`${t.width||100}px`,left:n?`${l}px`:"auto",...f},title:s,onClick:r=>((e,t,r,n)=>{y?.({row:t,column:r,value:n,event:e})})(r,e,t,e[t.key]),onContextMenu:r=>{e._isGroupHeader||e._isGroupFooter||w&&(r.preventDefault(),r.stopPropagation(),w({row:e,column:t,value:e[t.key],displayValue:s??"",event:r}))},onMouseDown:r=>j?.({row:e,column:t,event:r}),onMouseEnter:r=>k?.({row:e,column:t,event:r}),children:[b?.(E,t.key)&&N.jsx("div",{className:"pointer-events-none absolute inset-0 border border-blue-400"}),!1===t.wrapCellContent?N.jsx(N.Fragment,{children:a}):N.jsx("div",{className:"truncate w-full",children:a})]},`${t.key}-${r}`);return u>0&&r===D?N.jsxs(N.Fragment,{children:[N.jsx("div",{style:{width:u},className:"flex-none"}),x]}):x}),m>0&&N.jsx("div",{style:{width:m},className:"flex-none"})]},`${E}-${M}`)})})})},ve=(e,t)=>{if(e.rowHeight!==t.rowHeight)return!1;if(e.selectable!==t.selectable)return!1;if(e.virtualized!==t.virtualized)return!1;if(e.globalFilter!==t.globalFilter)return!1;if(e.virtualizedRange.startIndex!==t.virtualizedRange.startIndex)return!1;if(e.virtualizedRange.endIndex!==t.virtualizedRange.endIndex)return!1;if(e.virtualizedRange.offsetY!==t.virtualizedRange.offsetY)return!1;if(e.isCellSelected!==t.isCellSelected)return!1;if(e.isCellFocused!==t.isCellFocused)return!1;if(e.onCellMouseDown!==t.onCellMouseDown)return!1;if(e.onCellMouseEnter!==t.onCellMouseEnter)return!1;if(e.getRowId!==t.getRowId)return!1;if(e.selectedRows.size!==t.selectedRows.size)return!1;if(e.pinnedColumns?.size!==t.pinnedColumns?.size)return!1;if(e.columns.map(e=>e.key).join("|")!==t.columns.map(e=>e.key).join("|"))return!1;if(e.data.length!==t.data.length)return!1;if(e.data===t.data)return!0;const r=(e,t,r)=>r?r(e):void 0!==e.id?e.id:t;for(let n=0;n<t.data.length;n++)if(r(e.data[n],n,e.getRowId)!==r(t.data[n],n,t.getRowId))return!1;return!0};be.displayName="GridRows";const we=r(be,ve),je=({columns:e,groupedKeys:t,onRemove:r,onReorder:n,onDropColumnKey:o,onToggleExpandAll:a,isAnyExpanded:s=!1})=>{const[i,c]=l(null),[d,u]=l(null),[m,g]=l(!0),h=t=>e.find(e=>e.key===t)?.header||t,f=e=>t=>{c(e),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("application/x-group-key",e)},x=e=>t=>{t.preventDefault();const r=t.currentTarget.getBoundingClientRect(),n=t.clientX<r.left+r.width/2;u(e),g(n)};return N.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-50 border-b border-gray-200 text-sm",onDrop:e=>{e.preventDefault();const r=e.dataTransfer.getData("text/plain");r&&(t.includes(r)||o(r))},onDragOver:e=>{e.preventDefault()},onDragEnd:()=>{c(null),u(null)},children:[N.jsx("span",{className:"text-gray-600 whitespace-nowrap",children:"Group by:"}),t.length>0&&N.jsx("button",{type:"button",className:"ml-1 px-2 py-1 text-xs border border-gray-300 rounded hover:bg-gray-100",title:s?"Collapse all groups":"Expand all groups",onClick:e=>{e.preventDefault(),e.stopPropagation(),a?.()},children:s?"Collapse All":"Expand All"}),0===t.length&&N.jsx("span",{className:"text-gray-400",children:"Drag a column here"}),N.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:t.map(e=>{return N.jsxs("div",{className:"inline-flex items-center gap-2 bg-blue-100 text-blue-800 px-2 py-1 rounded-md border border-blue-200 cursor-move relative",draggable:!0,onDragStart:f(e),onDragOver:x(e),onDrop:(l=e,()=>{if(!i||i===l)return c(null),void u(null);const e=t.filter(e=>e!==i),r=e.indexOf(l);-1!==r&&(e.splice(m?r:r+1,0,i),n(e),c(null),u(null))}),title:h(e),children:[N.jsx("span",{className:"text-xs font-medium truncate max-w-[160px]",children:h(e)}),N.jsx("button",{className:"text-blue-700 hover:text-blue-900",onClick:()=>r(e),"aria-label":`Remove grouping ${h(e)}`,children:"×"}),d===e&&N.jsx("span",{className:"absolute top-0 bottom-0 w-0.5 bg-blue-600 dark:bg-blue-400 animate-pulse",style:{left:m?0:void 0,right:m?void 0:0},"aria-hidden":"true"})]},e);var l})})]})},ke=r(({row:e,isExpanded:t,onToggle:r,viewportWidth:n,selectable:l,rowHeight:o=40,getHeaderLabel:a,getValueLabel:s,renderGroupActions:i})=>{const c=()=>{e._groupKey&&r(e._groupKey)};return N.jsxs("div",{className:"flex items-center bg-blue-50 dark:bg-blue-900/20 border-b border-gray-200 dark:border-gray-800 hover:bg-blue-100/70 cursor-pointer sticky left-0 z-20 overflow-hidden",style:{minWidth:`${n+(l?C:0)}px`,height:`${o}px`},onClick:c,role:"button",tabIndex:0,"aria-expanded":t,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),c())},children:[l&&N.jsx("div",{className:"w-12 flex items-center justify-center"}),N.jsxs("div",{className:"flex items-center px-4 py-2 flex-1",children:[N.jsx("div",{className:"flex items-center mr-3",style:{paddingLeft:(e._groupLevel?16*e._groupLevel:0)+"px"},children:N.jsx(t?A:D,{className:"w-4 h-4 text-gray-600"})}),N.jsxs("div",{className:"flex items-center gap-2",children:[N.jsxs("span",{className:"font-medium text-gray-900",children:[e._groupColumnKey?`${a?a(e._groupColumnKey):e._groupColumnKey}: `:"",s&&e._groupColumnKey?s(e._groupColumnKey,e._groupValue):e._groupValue??(e._groupKey||"Unknown")]}),N.jsxs("span",{className:"text-sm text-gray-600 bg-gray-200/70 px-2 py-1 rounded-full",children:[e._groupCount," ",1===e._groupCount?"item":"items"]})]}),i&&N.jsx("div",{className:"flex items-center px-4",onClick:e=>e.stopPropagation(),children:i({groupKey:e._groupKey||"",columnKey:e._groupColumnKey||"",groupValue:e._groupValue,rows:e._groupRows||[],count:e._groupCount||0,level:e._groupLevel||0})})]})]})}),Ne=({hasFilters:e=!1,hasData:t=!0,message:r})=>{const{title:n,description:l,icon:o}=r?{title:r,description:"",icon:te}:t?e?{title:"No Results Found",description:"No data matches your current search criteria. Try adjusting your filters.",icon:ee}:{title:"No Data to Display",description:"There are no items to show at the moment.",icon:te}:{title:"No Data Available",description:"There is no data to display in this table.",icon:te};return N.jsxs("div",{className:"flex flex-col items-center justify-center pt-16 pb-10 px-4 text-center",children:[N.jsx("div",{className:"w-16 h-16 bg-gray-100 dark:bg-gray-800 rounded-full flex items-center justify-center mb-4",children:N.jsx(o,{className:"w-8 h-8 text-gray-400 dark:text-gray-500"})}),N.jsx("h3",{className:"text-lg font-medium text-gray-900 dark:text-gray-100 mb-2",children:n}),N.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 max-w-md",children:l})]})},Ce=({paginationConfig:e,currentPage:t,isServerLoading:r,selectedRowsCount:n,totalDataLength:l,filteredDataLength:o,paginationMode:a="client",onPageChange:s,onPageSizeChange:i})=>{const{start:c,end:d,total:u}=(()=>{const r=e.enabled||"server"===a?e.totalRows||l:o||l;return{start:e.enabled?Math.min((t-1)*e.pageSize+1,r):1,end:e.enabled?Math.min(t*e.pageSize,r):r,total:r}})(),m="client"===a&&o&&o!==l;return N.jsx("div",{className:"px-3 sm:px-6 py-2 border-t border-gray-200 dark:border-gray-700 bg-linear-to-r from-white via-gray-50 to-white dark:from-gray-900 dark:via-gray-800 dark:to-gray-900",children:N.jsxs("div",{className:"flex flex-col xl:flex-row gap-4 xl:gap-6 xl:justify-between xl:items-center",children:[N.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4 items-start sm:items-center",children:[N.jsxs("div",{className:"flex flex-wrap items-center gap-2 sm:gap-3",children:[!e.enabled&&N.jsxs("div",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-semibold bg-linear-to-r from-blue-500 to-blue-600 text-white shadow-lg ring-2 ring-blue-500/20",children:[N.jsx(te,{className:"w-3 h-3"}),N.jsxs("span",{className:"font-bold",children:[u.toLocaleString()," ",1===u?"Record":"Records"]}),m&&N.jsxs("span",{className:"text-blue-100 font-normal",children:["(of ",l.toLocaleString(),")"]})]}),n>0&&N.jsxs("div",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-semibold bg-linear-to-r from-primary to-primary text-white shadow-lg ring-2 ring-primary/20",children:[N.jsx(le,{className:"w-3 h-3"}),N.jsxs("span",{children:[n.toLocaleString()," selected"]})]}),m&&N.jsxs("div",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium bg-linear-to-r from-warning/10 to-warning/5 text-warning border border-warning/20",children:[N.jsx(Z,{className:"w-3 h-3"}),N.jsx("span",{children:"Filtered"})]}),e.enabled&&N.jsx("div",{className:"hidden sm:block text-sm text-gray-600 dark:text-gray-400 font-medium",children:N.jsxs("span",{className:"inline-flex items-center gap-1",children:[N.jsx("span",{children:"Showing"}),N.jsx("span",{className:"px-2 py-0.5 bg-gray-100 dark:bg-gray-700 rounded-md font-bold text-gray-900 dark:text-gray-100",children:c.toLocaleString()}),N.jsx("span",{children:"-"}),N.jsx("span",{className:"px-2 py-0.5 bg-gray-100 dark:bg-gray-700 rounded-md font-bold text-gray-900 dark:text-gray-100",children:d.toLocaleString()}),N.jsxs("span",{children:["of ",u.toLocaleString()]})]})})]}),e.enabled&&e.showPageSizeSelector&&N.jsxs("div",{className:"flex items-center gap-2",children:[N.jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 whitespace-nowrap",children:"Rows per page:"}),N.jsx("select",{value:e.pageSize,onChange:e=>i(Number(e.target.value)),className:"border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 rounded-xl px-3 py-1 text-sm font-medium focus:ring-2 focus:ring-primary focus:border-primary disabled:opacity-50 disabled:cursor-not-allowed shadow-sm transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500",disabled:r,children:e.pageSizeOptions?.map(e=>N.jsx("option",{value:e,children:e},e))})]})]}),e.enabled&&N.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3 sm:gap-4",children:[r&&N.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 bg-blue-50 dark:bg-blue-900/20 rounded-full border border-blue-200 dark:border-blue-800",children:[N.jsx(ae,{className:"w-4 h-4 animate-spin text-primary"}),N.jsx("span",{className:"text-sm font-medium text-primary",children:"Loading..."})]}),N.jsx("div",{className:"sm:hidden text-sm text-gray-600 dark:text-gray-400 font-medium",children:N.jsxs("div",{className:"flex flex-col gap-1",children:[N.jsxs("span",{className:"inline-flex items-center gap-1",children:[N.jsx("span",{children:"Page"}),N.jsx("span",{className:"px-2 py-0.5 bg-gray-100 dark:bg-gray-700 rounded-md font-bold text-gray-900 dark:text-gray-100",children:t.toLocaleString()}),N.jsx("span",{children:"of"}),N.jsx("span",{className:"px-2 py-0.5 bg-gray-100 dark:bg-gray-700 rounded-md font-bold text-gray-900 dark:text-gray-100",children:e.totalPages.toLocaleString()})]}),N.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-500",children:[c.toLocaleString()," - ",d.toLocaleString()," of"," ",u.toLocaleString()]})]})}),N.jsxs("div",{className:"flex items-center gap-1 sm:gap-2",children:[N.jsx("button",{onClick:()=>s(1,e.pageSize),disabled:1===t||r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md focus:ring-2 focus:ring-primary/20 focus:border-primary",title:"First page","aria-label":"Go to first page",children:N.jsx(E,{className:"w-3.5 h-3.5"})}),N.jsx("button",{onClick:()=>s(t-1,e.pageSize),disabled:1===t||r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md focus:ring-2 focus:ring-primary/20 focus:border-primary",title:"Previous page","aria-label":"Go to previous page",children:N.jsx(R,{className:"w-3.5 h-3.5"})}),N.jsx("div",{className:"sm:hidden",children:N.jsx("select",{value:t,onChange:t=>s(Number(t.target.value),e.pageSize),className:"border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 rounded-xl px-3 py-2 text-sm font-medium focus:ring-2 focus:ring-primary focus:border-primary disabled:opacity-50 disabled:cursor-not-allowed shadow-sm min-w-[80px]",disabled:r,"aria-label":"Select page",children:Array.from({length:e.totalPages},(e,t)=>t+1).map(e=>N.jsx("option",{value:e,children:e},e))})}),N.jsx("div",{className:"hidden sm:flex items-center gap-1 mx-2",children:(()=>{const n=[],l=e.totalPages,o=t,a="undefined"!=typeof window&&window.innerWidth>=768?7:5;if(l<=a)for(let e=1;e<=l;e++)n.push(e);else{const e=Math.floor(a/2)-1;if(o<=e+1){for(let e=1;e<=a-2;e++)n.push(e);n.push("ellipsis1"),n.push(l)}else if(o>=l-e){n.push(1),n.push("ellipsis1");for(let e=l-(a-3);e<=l;e++)n.push(e)}else{n.push(1),n.push("ellipsis1");for(let t=o-e;t<=o+e;t++)n.push(t);n.push("ellipsis2"),n.push(l)}}return n.map(t=>{if("string"==typeof t)return N.jsx("div",{className:"flex items-center justify-center w-8 h-8 text-gray-400 dark:text-gray-500 select-none","aria-hidden":"true",children:N.jsx("span",{className:"text-lg leading-none",children:"⋯"})},t);const n=t===o;return N.jsx("button",{onClick:()=>s(t,e.pageSize),disabled:r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full text-sm font-semibold transition-all duration-200 focus:ring-2 focus:ring-primary/20 focus:outline-none cursor-pointer "+(n?"bg-linear-to-r from-primary to-primary text-white shadow-lg ring-2 ring-primary/20 transform scale-105 z-10 relative bg-blue-500":"border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md disabled:opacity-40 disabled:cursor-not-allowed"),"aria-label":`Go to page ${t}`,"aria-current":n?"page":void 0,children:t},t)})})()}),N.jsx("button",{onClick:()=>s(t+1,e.pageSize),disabled:t===e.totalPages||r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md focus:ring-2 focus:ring-primary/20 focus:border-primary",title:"Next page","aria-label":"Go to next page",children:N.jsx(D,{className:"w-3.5 h-3.5"})}),N.jsx("button",{onClick:()=>s(e.totalPages,e.pageSize),disabled:t===e.totalPages||r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md focus:ring-2 focus:ring-primary/20 focus:border-primary",title:"Last page","aria-label":"Go to last page",children:N.jsx(L,{className:"w-3.5 h-3.5"})})]})]})]})})};Ce.displayName="PaginationControls";const Se=r(Ce),Me=({options:e,value:t,placeholder:r="Select an option...",onChange:n,searchable:s=!0,className:i=""})=>{const[c,d]=l(!1),[u,m]=l(""),[g,h]=l(-1),f=a(null),x=a(null),p=a(null),y=e.find(e=>e.value===t),b=s?e.filter(e=>e.label?.toLowerCase()?.includes(u?.toLowerCase())):e;o(()=>{const e=e=>{f.current&&!f.current.contains(e.target)&&(d(!1),m(""),h(-1))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),o(()=>{const e=e=>{if(c)switch(e.key){case"ArrowDown":e.preventDefault(),h(e=>e<b.length-1?e+1:0);break;case"ArrowUp":e.preventDefault(),h(e=>e>0?e-1:b.length-1);break;case"Enter":e.preventDefault(),g>=0&&b[g]&&v(b[g].value);break;case"Escape":d(!1),m(""),h(-1)}};if(c)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[c,g,b]),o(()=>{if(g>=0&&p.current){const e=p.current.children[g];e&&e.scrollIntoView({block:"nearest",behavior:"smooth"})}},[g]);const v=e=>{n(e),d(!1),m(""),h(-1)};return N.jsxs("div",{className:`relative ${i}`,ref:f,children:[N.jsx("div",{className:"relative w-full cursor-pointer border border-gray-300 rounded-lg bg-white transition-all duration-200 "+(c?"ring-2 ring-blue-500 border-blue-500":"hover:border-gray-400 focus-within:ring-2 focus-within:ring-blue-500 focus-within:border-blue-500"),onClick:()=>{d(!c),s&&!c&&setTimeout(()=>x.current?.focus(),0)},children:N.jsxs("div",{className:"flex items-center justify-between px-3 py-2.5",children:[s&&c?N.jsx("input",{ref:x,type:"text",className:"flex-1 outline-none text-sm bg-transparent",placeholder:`Search ${r?.toLowerCase()}...`,value:u,onChange:e=>{m(e.target.value),h(-1),c||d(!0)},onClick:e=>e.stopPropagation()}):N.jsx("span",{className:"flex-1 text-sm truncate "+(y?"text-gray-900":"text-gray-500"),children:y?y.label:r}),N.jsx(A,{className:"w-4 h-4 text-gray-400 transition-transform duration-200 "+(c?"rotate-180":"")})]})}),c&&N.jsx("div",{className:"absolute top-full left-0 right-0 mt-1 bg-white border border-gray-200 rounded-lg shadow-lg z-99999 max-h-80 overflow-hidden",children:b.length>0?N.jsx("ul",{ref:p,className:"py-1 overflow-y-auto max-h-80",children:b.map((e,t)=>N.jsxs("li",{className:"px-3 py-2 text-sm cursor-pointer flex items-center justify-between transition-colors "+(t===g?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-gray-50"),onClick:()=>v(e.value),onMouseEnter:()=>h(t),children:[N.jsx("span",{className:"truncate",children:e.label}),y?.value===e.value&&N.jsx(T,{className:"w-4 h-4 text-blue-600 shrink-0 ml-2"})]},e.value))}):N.jsx("div",{className:"px-3 py-2 text-sm text-gray-500 text-center",children:"No options found"})})]})},Re=({columns:e,columnFilters:t,onColumnFilter:r})=>{const n=e.filter(e=>e.filterable),[a,s]=l(n.length>0?n[0].key:""),[i,c]=l(""),d=n.map(e=>({label:e.header,value:e.key})),u=n.find(e=>e.key===a);return o(()=>{c("")},[a]),N.jsxs("div",{className:"space-y-4",children:[N.jsxs("div",{children:[N.jsx("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:"Select Column to Filter"}),N.jsx(Me,{options:d,value:a,placeholder:"Choose a column...",onChange:e=>{s(e)},searchable:!0})]}),a&&(()=>{if(!u)return null;const e=u.filterable?.type||"text",n=t[a];if("multiselect"===e&&u.filterable?.options){const e=i.toLowerCase(),t=e?u.filterable.options.filter(t=>t.label.toLowerCase().includes(e)||String(t.value).toLowerCase().includes(e)):u.filterable.options;return N.jsxs("div",{className:"mt-3",children:[N.jsxs("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:["Filter by ",u.header]}),N.jsxs("div",{className:"relative mb-2",children:[N.jsx(ee,{className:"w-4 h-4 text-gray-400 absolute left-2 top-1/2 -translate-y-1/2"}),N.jsx("input",{type:"text",value:i,onChange:e=>c(e.target.value),placeholder:"Search options...",className:"w-full pl-8 pr-2 py-1.5 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"}),i&&N.jsx("button",{type:"button",onClick:()=>c(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear search",children:N.jsx(I,{className:"w-3 h-3"})})]}),N.jsxs("div",{className:"max-h-32 overflow-y-auto border border-gray-300 rounded-md p-2 bg-white",children:[0===t.length&&N.jsx("div",{className:"text-xs text-gray-500 px-1 py-1",children:"No matches"}),t.map(e=>{const t=n?.value||[],l=Array.isArray(t)&&t.includes(e.value);return N.jsxs("label",{className:"flex items-center gap-2 py-1 hover:bg-gray-50 cursor-pointer",children:[N.jsx("input",{type:"checkbox",className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500",checked:l,onChange:t=>{const l=n?.value||[];let o;o=t.target.checked?[...l,e.value]:l.filter(t=>t!==e.value),r?.(a,o.length>0?{type:"multiselect",value:o,operator:"in"}:null)}}),N.jsx("span",{className:"text-sm",children:e.label})]},e.value)})]})]})}if("select"===e&&u.filterable?.options){const e=[{label:`All ${u.header}`,value:""},...u.filterable.options.map(e=>({label:e.label,value:String(e.value)}))];return N.jsxs("div",{className:"mt-3",children:[N.jsxs("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:["Filter by ",u.header]}),N.jsx(Me,{options:e,value:n?.value||"",placeholder:`Select ${u.header.toLowerCase()}...`,onChange:e=>{r?.(a,e?{type:"select",value:e,operator:"between"}:null)},searchable:!0})]})}if("date"===e){const e=e=>{if(!e)return null;if(e instanceof Date&&!isNaN(e.getTime()))return e;const t=ue(String(e));if(!isNaN(t.getTime()))return t;const r=new Date(e);return isNaN(r.getTime())?null:r},t=e(n?.value),l=e(n?.secondValue),o=n?.operator||"between";return N.jsxs("div",{className:"mt-3",children:[N.jsxs("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:["Filter by ",u.header]}),N.jsx("div",{className:"mb-3",children:N.jsx(Me,{options:[{label:"Between Dates",value:"between"},{label:"On Date",value:"equals"}],value:o,placeholder:"Select date filter...",onChange:e=>{r?.(a,{type:"date",value:n?.value||"",operator:e,secondValue:n?.secondValue||""})},searchable:!1},`date-operator-${a}-${o}`)}),N.jsxs("div",{className:"flex items-end gap-2",children:[N.jsx("div",{className:"flex-1 min-w-37.5",children:N.jsx(ce,{name:"column_filter_start",label:"between"===o?"Start Date":"Date",value:t?de(t):null,onChange:e=>{if(e){const t=de(ue(e));r?.(a,{type:"date",value:t,operator:o,secondValue:n?.secondValue||null})}else r?.(a,null)},className:"w-full"})}),"between"===o&&N.jsx("div",{className:"flex-1 min-w-37.5",children:N.jsx(ce,{name:"column_filter_end",label:"End Date",value:l?de(l):null,onChange:e=>{if(e&&n){const t=de(ue(e));r?.(a,{...n,secondValue:t})}},className:"w-full"})})]})]})}return N.jsxs("div",{className:"mt-3",children:[N.jsxs("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:["Filter by ",u.header]}),N.jsxs(N.Fragment,{children:[N.jsx("input",{type:"text",placeholder:u.filterable?.placeholder||`Filter ${u.header.toLowerCase()}...`,className:"w-full px-3 py-2.5 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-all duration-200",value:n?.value||"",onChange:e=>{r?.(a,e.target.value?{type:"text",value:e.target.value,operator:"contains"}:null)}}),n&&N.jsx("div",{className:"mt-2",children:N.jsx(Me,{options:[{label:"Contains",value:"contains"},{label:"Equals",value:"equals"},{label:"Starts with",value:"startsWith"},{label:"Ends with",value:"endsWith"}],value:n?.operator||"contains",placeholder:"Select operator...",onChange:e=>{n&&r?.(a,{...n,operator:e})},searchable:!1})})]})]})})(),Object.keys(t).length>0&&N.jsxs("div",{className:"mt-4",children:[N.jsx("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:"Active Filters"}),N.jsx("div",{className:"space-y-2",children:Object.entries(t).map(([e,t])=>{const l=n.find(t=>t.key===e);return l?N.jsxs("div",{className:"flex items-center justify-between bg-blue-50 border border-blue-200 rounded-md px-3 py-2 cursor-pointer hover:bg-blue-100",role:"button",title:`Edit filter for ${l.header}`,onClick:()=>(e=>{s(e)})(e),children:[N.jsxs("div",{className:"flex-1",children:[N.jsxs("span",{className:"text-sm font-medium text-blue-900",children:[l.header,":"]}),N.jsx("span",{className:"text-sm text-blue-700 ml-1",children:(()=>{if(Array.isArray(t.value))return`${t.value.length} selected`;if("date"===t.type){const e=e=>{try{if(!e)return"";if(e instanceof Date&&!isNaN(e.getTime()))return me(e);if("string"==typeof e){const t=ue(e);if(!isNaN(t.getTime()))return me(t);const r=new Date(e);if(!isNaN(r.getTime()))return me(r)}return String(e)}catch{return String(e??"")}},r={equals:"On",gt:"After",gte:"On or After",lt:"Before",lte:"On or Before",between:"Between"}[t.operator]||"On";return"between"===t.operator&&t.secondValue?`${r} ${e(t.value)} - ${e(t.secondValue)}`:`${r} ${e(t.value)}`}return t.value})()})]}),N.jsx("button",{onClick:t=>{t.stopPropagation(),r?.(e,null)},className:"text-blue-400 hover:text-red-500 transition-colors",title:"Clear filter",children:N.jsx(I,{className:"w-4 h-4"})})]},e):null})})]})]})};function De(){return"undefined"!=typeof window}function Ae(e){return Fe(e)?(e.nodeName||"").toLowerCase():"#document"}function Ee(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function Le(e){var t;return null==(t=(Fe(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function Fe(e){return!!De()&&(e instanceof Node||e instanceof Ee(e).Node)}function ze(e){return!!De()&&(e instanceof Element||e instanceof Ee(e).Element)}function $e(e){return!!De()&&(e instanceof HTMLElement||e instanceof Ee(e).HTMLElement)}function Ie(e){return!(!De()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof Ee(e).ShadowRoot)}const Te=new Set(["inline","contents"]);function Oe(e){const{overflow:t,overflowX:r,overflowY:n,display:l}=Xe(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!Te.has(l)}const Pe=new Set(["table","td","th"]);function _e(e){return Pe.has(Ae(e))}const Ke=[":popover-open",":modal"];function Ve(e){return Ke.some(t=>{try{return e.matches(t)}catch(e){return!1}})}const Be=["transform","translate","scale","rotate","perspective"],We=["transform","translate","scale","rotate","perspective","filter"],He=["paint","layout","strict","content"];function Ge(e){const t=Ue(),r=ze(e)?Xe(e):e;return Be.some(e=>!!r[e]&&"none"!==r[e])||!!r.containerType&&"normal"!==r.containerType||!t&&!!r.backdropFilter&&"none"!==r.backdropFilter||!t&&!!r.filter&&"none"!==r.filter||We.some(e=>(r.willChange||"").includes(e))||He.some(e=>(r.contain||"").includes(e))}function Ue(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}const Ye=new Set(["html","body","#document"]);function qe(e){return Ye.has(Ae(e))}function Xe(e){return Ee(e).getComputedStyle(e)}function Je(e){return ze(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ze(e){if("html"===Ae(e))return e;const t=e.assignedSlot||e.parentNode||Ie(e)&&e.host||Le(e);return Ie(t)?t.host:t}function Qe(e){const t=Ze(e);return qe(t)?e.ownerDocument?e.ownerDocument.body:e.body:$e(t)&&Oe(t)?t:Qe(t)}function et(e,t,r){var n;void 0===t&&(t=[]),void 0===r&&(r=!0);const l=Qe(e),o=l===(null==(n=e.ownerDocument)?void 0:n.body),a=Ee(l);if(o){const e=tt(a);return t.concat(a,a.visualViewport||[],Oe(l)?l:[],e&&r?et(e):[])}return t.concat(l,et(l,[],r))}function tt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}const rt=Math.min,nt=Math.max,lt=Math.round,ot=Math.floor,at=e=>({x:e,y:e}),st={left:"right",right:"left",bottom:"top",top:"bottom"},it={start:"end",end:"start"};function ct(e,t,r){return nt(e,rt(t,r))}function dt(e,t){return"function"==typeof e?e(t):e}function ut(e){return e.split("-")[0]}function mt(e){return e.split("-")[1]}function gt(e){return"x"===e?"y":"x"}function ht(e){return"y"===e?"height":"width"}const ft=new Set(["top","bottom"]);function xt(e){return ft.has(ut(e))?"y":"x"}function pt(e){return gt(xt(e))}function yt(e){return e.replace(/start|end/g,e=>it[e])}const bt=["left","right"],vt=["right","left"],wt=["top","bottom"],jt=["bottom","top"];function kt(e){return e.replace(/left|right|bottom|top/g,e=>st[e])}function Nt(e){const{x:t,y:r,width:n,height:l}=e;return{width:n,height:l,top:r,left:t,right:t+n,bottom:r+l,x:t,y:r}}var Ct="undefined"!=typeof document?s:function(){};const St={...e}.useInsertionEffect||(e=>e());function Mt(e,t,r){let{reference:n,floating:l}=e;const o=xt(t),a=pt(t),s=ht(a),i=ut(t),c="y"===o,d=n.x+n.width/2-l.width/2,u=n.y+n.height/2-l.height/2,m=n[s]/2-l[s]/2;let g;switch(i){case"top":g={x:d,y:n.y-l.height};break;case"bottom":g={x:d,y:n.y+n.height};break;case"right":g={x:n.x+n.width,y:u};break;case"left":g={x:n.x-l.width,y:u};break;default:g={x:n.x,y:n.y}}switch(mt(t)){case"start":g[a]-=m*(r&&c?-1:1);break;case"end":g[a]+=m*(r&&c?-1:1)}return g}async function Rt(e,t){var r;void 0===t&&(t={});const{x:n,y:l,platform:o,rects:a,elements:s,strategy:i}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:u="floating",altBoundary:m=!1,padding:g=0}=dt(t,e),h=function(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}(g),f=s[m?"floating"===u?"reference":"floating":u],x=Nt(await o.getClippingRect({element:null==(r=await(null==o.isElement?void 0:o.isElement(f)))||r?f:f.contextElement||await(null==o.getDocumentElement?void 0:o.getDocumentElement(s.floating)),boundary:c,rootBoundary:d,strategy:i})),p="floating"===u?{x:n,y:l,width:a.floating.width,height:a.floating.height}:a.reference,y=await(null==o.getOffsetParent?void 0:o.getOffsetParent(s.floating)),b=await(null==o.isElement?void 0:o.isElement(y))&&await(null==o.getScale?void 0:o.getScale(y))||{x:1,y:1},v=Nt(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:p,offsetParent:y,strategy:i}):p);return{top:(x.top-v.top+h.top)/b.y,bottom:(v.bottom-x.bottom+h.bottom)/b.y,left:(x.left-v.left+h.left)/b.x,right:(v.right-x.right+h.right)/b.x}}const Dt=new Set(["left","top"]);function At(e){const t=Xe(e);let r=parseFloat(t.width)||0,n=parseFloat(t.height)||0;const l=$e(e),o=l?e.offsetWidth:r,a=l?e.offsetHeight:n,s=lt(r)!==o||lt(n)!==a;return s&&(r=o,n=a),{width:r,height:n,$:s}}function Et(e){return ze(e)?e:e.contextElement}function Lt(e){const t=Et(e);if(!$e(t))return at(1);const r=t.getBoundingClientRect(),{width:n,height:l,$:o}=At(t);let a=(o?lt(r.width):r.width)/n,s=(o?lt(r.height):r.height)/l;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}const Ft=at(0);function zt(e){const t=Ee(e);return Ue()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:Ft}function $t(e,t,r,n){void 0===t&&(t=!1),void 0===r&&(r=!1);const l=e.getBoundingClientRect(),o=Et(e);let a=at(1);t&&(n?ze(n)&&(a=Lt(n)):a=Lt(e));const s=function(e,t,r){return void 0===t&&(t=!1),!(!r||t&&r!==Ee(e))&&t}(o,r,n)?zt(o):at(0);let i=(l.left+s.x)/a.x,c=(l.top+s.y)/a.y,d=l.width/a.x,u=l.height/a.y;if(o){const e=Ee(o),t=n&&ze(n)?Ee(n):n;let r=e,l=tt(r);for(;l&&n&&t!==r;){const e=Lt(l),t=l.getBoundingClientRect(),n=Xe(l),o=t.left+(l.clientLeft+parseFloat(n.paddingLeft))*e.x,a=t.top+(l.clientTop+parseFloat(n.paddingTop))*e.y;i*=e.x,c*=e.y,d*=e.x,u*=e.y,i+=o,c+=a,r=Ee(l),l=tt(r)}}return Nt({width:d,height:u,x:i,y:c})}function It(e,t){const r=Je(e).scrollLeft;return t?t.left+r:$t(Le(e)).left+r}function Tt(e,t){const r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-It(e,r),y:r.top+t.scrollTop}}const Ot=new Set(["absolute","fixed"]);function Pt(e,t,r){let n;if("viewport"===t)n=function(e,t){const r=Ee(e),n=Le(e),l=r.visualViewport;let o=n.clientWidth,a=n.clientHeight,s=0,i=0;if(l){o=l.width,a=l.height;const e=Ue();(!e||e&&"fixed"===t)&&(s=l.offsetLeft,i=l.offsetTop)}const c=It(n);if(c<=0){const e=n.ownerDocument,t=e.body,r=getComputedStyle(t),l="CSS1Compat"===e.compatMode&&parseFloat(r.marginLeft)+parseFloat(r.marginRight)||0,a=Math.abs(n.clientWidth-t.clientWidth-l);a<=25&&(o-=a)}else c<=25&&(o+=c);return{width:o,height:a,x:s,y:i}}(e,r);else if("document"===t)n=function(e){const t=Le(e),r=Je(e),n=e.ownerDocument.body,l=nt(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=nt(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let a=-r.scrollLeft+It(e);const s=-r.scrollTop;return"rtl"===Xe(n).direction&&(a+=nt(t.clientWidth,n.clientWidth)-l),{width:l,height:o,x:a,y:s}}(Le(e));else if(ze(t))n=function(e,t){const r=$t(e,!0,"fixed"===t),n=r.top+e.clientTop,l=r.left+e.clientLeft,o=$e(e)?Lt(e):at(1);return{width:e.clientWidth*o.x,height:e.clientHeight*o.y,x:l*o.x,y:n*o.y}}(t,r);else{const r=zt(e);n={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return Nt(n)}function _t(e,t){const r=Ze(e);return!(r===t||!ze(r)||qe(r))&&("fixed"===Xe(r).position||_t(r,t))}function Kt(e,t,r){const n=$e(t),l=Le(t),o="fixed"===r,a=$t(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const i=at(0);function c(){i.x=It(l)}if(n||!n&&!o)if(("body"!==Ae(t)||Oe(l))&&(s=Je(t)),n){const e=$t(t,!0,o,t);i.x=e.x+t.clientLeft,i.y=e.y+t.clientTop}else l&&c();o&&!n&&l&&c();const d=!l||n||o?at(0):Tt(l,s);return{x:a.left+s.scrollLeft-i.x-d.x,y:a.top+s.scrollTop-i.y-d.y,width:a.width,height:a.height}}function Vt(e){return"static"===Xe(e).position}function Bt(e,t){if(!$e(e)||"fixed"===Xe(e).position)return null;if(t)return t(e);let r=e.offsetParent;return Le(e)===r&&(r=r.ownerDocument.body),r}function Wt(e,t){const r=Ee(e);if(Ve(e))return r;if(!$e(e)){let t=Ze(e);for(;t&&!qe(t);){if(ze(t)&&!Vt(t))return t;t=Ze(t)}return r}let n=Bt(e,t);for(;n&&_e(n)&&Vt(n);)n=Bt(n,t);return n&&qe(n)&&Vt(n)&&!Ge(n)?r:n||function(e){let t=Ze(e);for(;$e(t)&&!qe(t);){if(Ge(t))return t;if(Ve(t))return null;t=Ze(t)}return null}(e)||r}const Ht={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:r,offsetParent:n,strategy:l}=e;const o="fixed"===l,a=Le(n),s=!!t&&Ve(t.floating);if(n===a||s&&o)return r;let i={scrollLeft:0,scrollTop:0},c=at(1);const d=at(0),u=$e(n);if((u||!u&&!o)&&(("body"!==Ae(n)||Oe(a))&&(i=Je(n)),$e(n))){const e=$t(n);c=Lt(n),d.x=e.x+n.clientLeft,d.y=e.y+n.clientTop}const m=!a||u||o?at(0):Tt(a,i);return{width:r.width*c.x,height:r.height*c.y,x:r.x*c.x-i.scrollLeft*c.x+d.x+m.x,y:r.y*c.y-i.scrollTop*c.y+d.y+m.y}},getDocumentElement:Le,getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:n,strategy:l}=e;const o=[..."clippingAncestors"===r?Ve(t)?[]:function(e,t){const r=t.get(e);if(r)return r;let n=et(e,[],!1).filter(e=>ze(e)&&"body"!==Ae(e)),l=null;const o="fixed"===Xe(e).position;let a=o?Ze(e):e;for(;ze(a)&&!qe(a);){const t=Xe(a),r=Ge(a);r||"fixed"!==t.position||(l=null),(o?!r&&!l:!r&&"static"===t.position&&l&&Ot.has(l.position)||Oe(a)&&!r&&_t(e,a))?n=n.filter(e=>e!==a):l=t,a=Ze(a)}return t.set(e,n),n}(t,this._c):[].concat(r),n],a=o.reduce((e,r)=>{const n=Pt(t,r,l);return e.top=nt(n.top,e.top),e.right=rt(n.right,e.right),e.bottom=rt(n.bottom,e.bottom),e.left=nt(n.left,e.left),e},Pt(t,o[0],l));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:Wt,getElementRects:async function(e){const t=this.getOffsetParent||Wt,r=this.getDimensions,n=await r(e.floating);return{reference:Kt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:r}=At(e);return{width:t,height:r}},getScale:Lt,isElement:ze,isRTL:function(e){return"rtl"===Xe(e).direction}};function Gt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Ut(e,t,r,n){void 0===n&&(n={});const{ancestorScroll:l=!0,ancestorResize:o=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:i=!1}=n,c=Et(e),d=l||o?[...c?et(c):[],...et(t)]:[];d.forEach(e=>{l&&e.addEventListener("scroll",r,{passive:!0}),o&&e.addEventListener("resize",r)});const u=c&&s?function(e,t){let r,n=null;const l=Le(e);function o(){var e;clearTimeout(r),null==(e=n)||e.disconnect(),n=null}return function a(s,i){void 0===s&&(s=!1),void 0===i&&(i=1),o();const c=e.getBoundingClientRect(),{left:d,top:u,width:m,height:g}=c;if(s||t(),!m||!g)return;const h={rootMargin:-ot(u)+"px "+-ot(l.clientWidth-(d+m))+"px "+-ot(l.clientHeight-(u+g))+"px "+-ot(d)+"px",threshold:nt(0,rt(1,i))||1};let f=!0;function x(t){const n=t[0].intersectionRatio;if(n!==i){if(!f)return a();n?a(!1,n):r=setTimeout(()=>{a(!1,1e-7)},1e3)}1!==n||Gt(c,e.getBoundingClientRect())||a(),f=!1}try{n=new IntersectionObserver(x,{...h,root:l.ownerDocument})}catch(e){n=new IntersectionObserver(x,h)}n.observe(e)}(!0),o}(c,r):null;let m,g=-1,h=null;a&&(h=new ResizeObserver(e=>{let[n]=e;n&&n.target===c&&h&&(h.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var e;null==(e=h)||e.observe(t)})),r()}),c&&!i&&h.observe(c),h.observe(t));let f=i?$t(e):null;return i&&function t(){const n=$t(e);f&&!Gt(f,n)&&r(),f=n,m=requestAnimationFrame(t)}(),r(),()=>{var e;d.forEach(e=>{l&&e.removeEventListener("scroll",r),o&&e.removeEventListener("resize",r)}),null==u||u(),null==(e=h)||e.disconnect(),h=null,i&&cancelAnimationFrame(m)}}const Yt=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var r,n;const{x:l,y:o,placement:a,middlewareData:s}=t,i=await async function(e,t){const{placement:r,platform:n,elements:l}=e,o=await(null==n.isRTL?void 0:n.isRTL(l.floating)),a=ut(r),s=mt(r),i="y"===xt(r),c=Dt.has(a)?-1:1,d=o&&i?-1:1,u=dt(t,e);let{mainAxis:m,crossAxis:g,alignmentAxis:h}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return s&&"number"==typeof h&&(g="end"===s?-1*h:h),i?{x:g*d,y:m*c}:{x:m*c,y:g*d}}(t,e);return a===(null==(r=s.offset)?void 0:r.placement)&&null!=(n=s.arrow)&&n.alignmentOffset?{}:{x:l+i.x,y:o+i.y,data:{...i,placement:a}}}}},qt=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:r,y:n,placement:l,platform:o}=t,{mainAxis:a=!0,crossAxis:s=!1,limiter:i={fn:e=>{let{x:t,y:r}=e;return{x:t,y:r}}},...c}=dt(e,t),d={x:r,y:n},u=await o.detectOverflow(t,c),m=xt(ut(l)),g=gt(m);let h=d[g],f=d[m];a&&(h=ct(h+u["y"===g?"top":"left"],h,h-u["y"===g?"bottom":"right"])),s&&(f=ct(f+u["y"===m?"top":"left"],f,f-u["y"===m?"bottom":"right"]));const x=i.fn({...t,[g]:h,[m]:f});return{...x,data:{x:x.x-r,y:x.y-n,enabled:{[g]:a,[m]:s}}}}}},Xt=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var r,n;const{placement:l,middlewareData:o,rects:a,initialPlacement:s,platform:i,elements:c}=t,{mainAxis:d=!0,crossAxis:u=!0,fallbackPlacements:m,fallbackStrategy:g="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:f=!0,...x}=dt(e,t);if(null!=(r=o.arrow)&&r.alignmentOffset)return{};const p=ut(l),y=xt(s),b=ut(s)===s,v=await(null==i.isRTL?void 0:i.isRTL(c.floating)),w=m||(b||!f?[kt(s)]:function(e){const t=kt(e);return[yt(e),t,yt(t)]}(s)),j="none"!==h;!m&&j&&w.push(...function(e,t,r,n){const l=mt(e);let o=function(e,t,r){switch(e){case"top":case"bottom":return r?t?vt:bt:t?bt:vt;case"left":case"right":return t?wt:jt;default:return[]}}(ut(e),"start"===r,n);return l&&(o=o.map(e=>e+"-"+l),t&&(o=o.concat(o.map(yt)))),o}(s,f,h,v));const k=[s,...w],N=await i.detectOverflow(t,x),C=[];let S=(null==(n=o.flip)?void 0:n.overflows)||[];if(d&&C.push(N[p]),u){const e=function(e,t,r){void 0===r&&(r=!1);const n=mt(e),l=pt(e),o=ht(l);let a="x"===l?n===(r?"end":"start")?"right":"left":"start"===n?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=kt(a)),[a,kt(a)]}(l,a,v);C.push(N[e[0]],N[e[1]])}if(S=[...S,{placement:l,overflows:C}],!C.every(e=>e<=0)){var M,R;const e=((null==(M=o.flip)?void 0:M.index)||0)+1,t=k[e];if(t&&("alignment"!==u||y===xt(t)||S.every(e=>xt(e.placement)!==y||e.overflows[0]>0)))return{data:{index:e,overflows:S},reset:{placement:t}};let r=null==(R=S.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:R.placement;if(!r)switch(g){case"bestFit":{var D;const e=null==(D=S.filter(e=>{if(j){const t=xt(e.placement);return t===y||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:D[0];e&&(r=e);break}case"initialPlacement":r=s}if(l!==r)return{reset:{placement:r}}}return{}}}},Jt=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var r,n;const{placement:l,rects:o,platform:a,elements:s}=t,{apply:i=()=>{},...c}=dt(e,t),d=await a.detectOverflow(t,c),u=ut(l),m=mt(l),g="y"===xt(l),{width:h,height:f}=o.floating;let x,p;"top"===u||"bottom"===u?(x=u,p=m===(await(null==a.isRTL?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(p=u,x="end"===m?"top":"bottom");const y=f-d.top-d.bottom,b=h-d.left-d.right;let v=rt(f-d[x],y),w=rt(h-d[p],b);if(null!=(r=t.middlewareData.shift)&&r.enabled.x&&(w=b),null!=(n=t.middlewareData.shift)&&n.enabled.y&&(v=y),!t.middlewareData.shift&&!m){const e=nt(d.left,0),t=nt(d.right,0),r=nt(d.top,0),n=nt(d.bottom,0);g?w=h-2*(0!==e||0!==t?e+t:nt(d.left,d.right)):v=f-2*(0!==r||0!==n?r+n:nt(d.top,d.bottom))}await i({...t,availableWidth:w,availableHeight:v});const j=await a.getDimensions(s.floating);return h!==j.width||f!==j.height?{reset:{rects:!0}}:{}}}},Zt=(e,t,r)=>{const n=new Map,l={platform:Ht,...r},o={...l.platform,_c:n};return(async(e,t,r)=>{const{placement:n="bottom",strategy:l="absolute",middleware:o=[],platform:a}=r,s=o.filter(Boolean),i=await(null==a.isRTL?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:l}),{x:d,y:u}=Mt(c,n,i),m=n,g={},h=0;for(let r=0;r<s.length;r++){var f;const{name:o,fn:x}=s[r],{x:p,y:y,data:b,reset:v}=await x({x:d,y:u,initialPlacement:n,placement:m,strategy:l,middlewareData:g,rects:c,platform:{...a,detectOverflow:null!=(f=a.detectOverflow)?f:Rt},elements:{reference:e,floating:t}});d=null!=p?p:d,u=null!=y?y:u,g={...g,[o]:{...g[o],...b}},v&&h<=50&&(h++,"object"==typeof v&&(v.placement&&(m=v.placement),v.rects&&(c=!0===v.rects?await a.getElementRects({reference:e,floating:t,strategy:l}):v.rects),({x:d,y:u}=Mt(c,m,i))),r=-1)}return{x:d,y:u,placement:m,strategy:l,middlewareData:g}})(e,t,{...l,platform:o})};var Qt="undefined"!=typeof document?s:function(){};function er(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let r,n,l;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(r=e.length,r!==t.length)return!1;for(n=r;0!==n--;)if(!er(e[n],t[n]))return!1;return!0}if(l=Object.keys(e),r=l.length,r!==Object.keys(t).length)return!1;for(n=r;0!==n--;)if(!{}.hasOwnProperty.call(t,l[n]))return!1;for(n=r;0!==n--;){const r=l[n];if(!("_owner"===r&&e.$$typeof||er(e[r],t[r])))return!1}return!0}return e!=e&&t!=t}function tr(e){return"undefined"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function rr(e,t){const r=tr(e);return Math.round(t*r)/r}function nr(t){const r=e.useRef(t);return Qt(()=>{r.current=t}),r}const lr=(e,t)=>({...Yt(e),options:[e,t]}),or=(e,t)=>({...qt(e),options:[e,t]}),ar=(e,t)=>({...Jt(e),options:[e,t]}),sr={...e};let ir=!1,cr=0;const dr=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+cr++,ur=sr.useId||function(){const[t,r]=e.useState(()=>ir?dr():void 0);return Ct(()=>{null==t&&r(dr())},[]),e.useEffect(()=>{ir=!0},[]),t};let mr;"production"!==process.env.NODE_ENV&&(mr=new Set);const gr=e.createContext(null),hr=e.createContext(null);function fr(t){void 0===t&&(t={});const{nodeId:r}=t,n=function(t){const{open:r=!1,onOpenChange:n,elements:l}=t,o=ur(),a=e.useRef({}),[s]=e.useState(()=>function(){const e=new Map;return{emit(t,r){var n;null==(n=e.get(t))||n.forEach(e=>e(r))},on(t,r){e.has(t)||e.set(t,new Set),e.get(t).add(r)},off(t,r){var n;null==(n=e.get(t))||n.delete(r)}}}()),i=null!=((null==(c=e.useContext(gr))?void 0:c.id)||null);var c;if("production"!==process.env.NODE_ENV){const e=l.reference;e&&!ze(e)&&function(){for(var e,t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];const l="Floating UI: "+r.join(" ");var o;null!=(e=mr)&&e.has(l)||(null==(o=mr)||o.add(l),console.error(l))}("Cannot pass a virtual element to the `elements.reference` option,","as it must be a real DOM element. Use `refs.setPositionReference()`","instead.")}const[d,u]=e.useState(l.reference),m=function(t){const r=e.useRef(()=>{if("production"!==process.env.NODE_ENV)throw new Error("Cannot call an event handler while rendering.")});return St(()=>{r.current=t}),e.useCallback(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return null==r.current?void 0:r.current(...t)},[])}((e,t,r)=>{a.current.openEvent=e?t:void 0,s.emit("openchange",{open:e,event:t,reason:r,nested:i}),null==n||n(e,t,r)}),g=e.useMemo(()=>({setPositionReference:u}),[]),h=e.useMemo(()=>({reference:d||l.reference||null,floating:l.floating||null,domReference:l.reference}),[d,l.reference,l.floating]);return e.useMemo(()=>({dataRef:a,open:r,onOpenChange:m,elements:h,events:s,floatingId:o,refs:g}),[r,m,h,s,o,g])}({...t,elements:{reference:null,floating:null,...t.elements}}),l=t.rootContext||n,o=l.elements,[a,s]=e.useState(null),[i,c]=e.useState(null),d=(null==o?void 0:o.domReference)||a,u=e.useRef(null),m=e.useContext(hr);Ct(()=>{d&&(u.current=d)},[d]);const h=function(t){void 0===t&&(t={});const{placement:r="bottom",strategy:n="absolute",middleware:l=[],platform:o,elements:{reference:a,floating:s}={},transform:i=!0,whileElementsMounted:c,open:d}=t,[u,m]=e.useState({x:0,y:0,strategy:n,placement:r,middlewareData:{},isPositioned:!1}),[h,f]=e.useState(l);er(h,l)||f(l);const[x,p]=e.useState(null),[y,b]=e.useState(null),v=e.useCallback(e=>{e!==N.current&&(N.current=e,p(e))},[]),w=e.useCallback(e=>{e!==C.current&&(C.current=e,b(e))},[]),j=a||x,k=s||y,N=e.useRef(null),C=e.useRef(null),S=e.useRef(u),M=null!=c,R=nr(c),D=nr(o),A=nr(d),E=e.useCallback(()=>{if(!N.current||!C.current)return;const e={placement:r,strategy:n,middleware:h};D.current&&(e.platform=D.current),Zt(N.current,C.current,e).then(e=>{const t={...e,isPositioned:!1!==A.current};L.current&&!er(S.current,t)&&(S.current=t,g.flushSync(()=>{m(t)}))})},[h,r,n,D,A]);Qt(()=>{!1===d&&S.current.isPositioned&&(S.current.isPositioned=!1,m(e=>({...e,isPositioned:!1})))},[d]);const L=e.useRef(!1);Qt(()=>(L.current=!0,()=>{L.current=!1}),[]),Qt(()=>{if(j&&(N.current=j),k&&(C.current=k),j&&k){if(R.current)return R.current(j,k,E);E()}},[j,k,E,R,M]);const F=e.useMemo(()=>({reference:N,floating:C,setReference:v,setFloating:w}),[v,w]),z=e.useMemo(()=>({reference:j,floating:k}),[j,k]),$=e.useMemo(()=>{const e={position:n,left:0,top:0};if(!z.floating)return e;const t=rr(z.floating,u.x),r=rr(z.floating,u.y);return i?{...e,transform:"translate("+t+"px, "+r+"px)",...tr(z.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,i,z.floating,u.x,u.y]);return e.useMemo(()=>({...u,update:E,refs:F,elements:z,floatingStyles:$}),[u,E,F,z,$])}({...t,elements:{...o,...i&&{reference:i}}}),f=e.useCallback(e=>{const t=ze(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;c(t),h.refs.setReference(t)},[h.refs]),x=e.useCallback(e=>{(ze(e)||null===e)&&(u.current=e,s(e)),(ze(h.refs.reference.current)||null===h.refs.reference.current||null!==e&&!ze(e))&&h.refs.setReference(e)},[h.refs]),p=e.useMemo(()=>({...h.refs,setReference:x,setPositionReference:f,domReference:u}),[h.refs,x,f]),y=e.useMemo(()=>({...h.elements,domReference:d}),[h.elements,d]),b=e.useMemo(()=>({...h,...l,refs:p,elements:y,nodeId:r}),[h,p,y,r,l]);return Ct(()=>{l.dataRef.current.floatingContext=b;const e=null==m?void 0:m.nodesRef.current.find(e=>e.id===r);e&&(e.context=b)}),e.useMemo(()=>({...h,context:b,refs:p,elements:y}),[h,p,y,b])}var xr=({open:e,anchorEl:t,onClose:r,placement:n="bottom-start",offset:l=8,sameWidth:a=!1,maxHeight:s,zIndex:i=1e3,className:c,children:d,shouldIgnoreClose:u})=>{const{refs:m,floatingStyles:g,update:f}=fr({placement:n,whileElementsMounted:Ut,middleware:[lr(l),(x={padding:8},{...Xt(x),options:[x,void 0]}),or({padding:8}),ar({apply({rects:e,elements:t,availableHeight:r,availableWidth:n}){const l=t.floating;l&&(a&&(l.style.width=`${e.reference.width}px`),l.style.maxHeight=null!=s?"number"==typeof s?`${s}px`:String(s):`${r}px`,null!=n&&(l.style.maxWidth=`${n}px`))}})]});var x;return o(()=>{t&&m.setReference(t),e&&f&&f()},[t,e,m,f]),o(()=>{if(!e)return;const n=e=>{const n=e.target;if(u&&u(n))return;const l=m.floating.current;l&&(t&&t.contains(n)||l&&l.contains(n)||r())},l=e=>{"Escape"===e.key&&r()};return document.addEventListener("mousedown",n),document.addEventListener("keydown",l),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("keydown",l)}},[e,r,m.floating,t]),e&&t?h(N.jsx("div",{ref:m.setFloating,"data-popover-root":"true",style:{...g,zIndex:i,position:g.position,overflowX:"hidden"},className:c,children:d}),document.body):null};const pr=({globalFilter:e,filteredDataLength:t,selectedRowsCount:r=0,selectedRows:s=new Set,showExport:i=!0,showColumnToggle:c=!0,showBulkActions:d=!0,columns:u=[],columnVisibility:m={},columnFilters:g={},bulkActions:h=[],exportOptions:f,onGlobalFilterChange:x,onClearFilters:p,onColumnVisibilityChange:y,onColumnFilter:b,onResetColumns:v,columnOrder:w=[],onColumnOrderChange:j,pinnedColumns:k,onScrollToColumn:C,density:S="md",onDensityChange:M,showDensityControl:R=!1,customLeftContent:D,customRightContent:A})=>{const[E,L]=l(!1),[F,z]=l(!1),[$,T]=l(!1),[B,H]=l(!1),[U,Y]=l(""),[q,X]=l(null),[le,ae]=l(null),se=a(null),ie=a(null),ce=a(null),de=a(null),ue=a(null),me=a(null),ge=a(null),he=a(null),fe=a(null);o(()=>{const e=e=>{(e=>{let t=e;for(;t;){if(t.getAttribute&&"true"===t.getAttribute("data-popover-root")||t.dataset&&"true"===t.dataset.popoverRoot)return!0;t=t.parentNode}return!1})(e.target)||(ie.current&&!ie.current.contains(e.target)&&L(!1),ce.current&&!ce.current.contains(e.target)&&T(!1),de.current&&!de.current.contains(e.target)&&H(!1),!ue.current||ue.current.contains(e.target)||(e=>{let t=e;for(;t;){if(t.classList){const e=Array.from(t.classList).join(" ");if(/MuiPickers|MuiDatePicker|MuiPickersPopper/.test(e))return!0}if(t.getAttribute&&"dialog"===t.getAttribute("role")){const e=t.className?.toString()||"";if(/MuiPickers|MuiDatePicker/.test(e))return!0}t=t.parentNode}return!1})(e.target)||z(!1))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);const xe=f?.formats||["xlsx"],pe=(e?.length??0)>0||Object.keys(g||{}).length>0,ye=r>0,be=u.filter(e=>!1!==m[e.key]).length,ve=[...w.map(e=>u.find(t=>t.key===e)).filter(Boolean),...u.filter(e=>!w.includes(e.key))].filter(e=>e.header?.toLowerCase()?.includes(U?.toLowerCase())),we=e=>{switch(e){case"csv":return N.jsx(ne,{size:18});case"json":return N.jsx(te,{size:18});case"xlsx":return N.jsx(re,{size:18});default:return N.jsx(V,{size:18})}},je=e=>{switch(e){case"delete":return N.jsx(_,{size:18});case"archive":return N.jsx(K,{size:18});case"copy":return N.jsx(O,{size:18});case"edit":return N.jsx(P,{size:18});case"export":return N.jsx(V,{size:18});default:return N.jsx(J,{size:18})}},ke=e=>{switch(e){case"csv":return"CSV";case"json":return"JSON";case"xlsx":return"Excel";default:return e}},Ne=(e,t=!1)=>{f?.onExport?.(e,t),L(!1)},Ce=()=>{X(null),ae(null)},Se=n(()=>u.some(e=>e.filterable),[u]);return N.jsxs("div",{className:"bg-white dark:bg-gray-900 border-b border-gray-200 dark:border-gray-700",role:"toolbar","aria-label":"Data grid toolbar",children:[N.jsxs("div",{id:"search-results-status",className:"sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:[pe?`Showing ${t} of ${t} rows`:`${t} total rows`,ye&&`, ${r} row${1!==r?"s":""} selected`]}),N.jsx("div",{className:"px-3 py-2",children:N.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 sm:gap-4",children:[N.jsxs("div",{className:"order-1 flex items-center flex-wrap gap-2 sm:gap-3",children:[N.jsxs("div",{className:"relative",ref:ue,children:[Se&&N.jsxs("button",{ref:e=>{me.current=e},onClick:()=>z(!F),className:"flex cursor-pointer items-center gap-2 px-3 py-2 border rounded-lg transition-colors "+(F?"bg-blue-50 dark:bg-blue-900/40 border-blue-200 dark:border-blue-600 text-blue-700 dark:text-blue-300":"border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800"),title:"Toggle column filters (Ctrl+K)","aria-label":"Toggle column filters","aria-haspopup":"menu","aria-expanded":F,"aria-controls":"filters-menu","aria-keyshortcuts":"Control+K",children:[N.jsx(W,{className:"w-4 h-4"}),N.jsx("span",{className:"hidden sm:inline",children:"Filters"}),Object.keys(g).length>0&&N.jsxs("button",{type:"button",onClick:e=>{e.stopPropagation(),p?.()},className:"bg-red-500 cursor-pointer hover:bg-red-600 text-white text-xs px-1.5 py-0.5 rounded-full min-w-5 h-5 flex items-center justify-center transition-all group relative",title:"Clear all filters",children:[N.jsx("span",{className:"group-hover:hidden",children:Object.keys(g).length}),N.jsx(I,{className:"w-3 h-3 hidden group-hover:block absolute"})]})]}),N.jsxs(xr,{open:F,anchorEl:me.current,onClose:()=>z(!1),placement:"bottom-start",offset:8,zIndex:1e3,maxHeight:520,className:"w-88 sm:w-88 max-w-[90vw] bg-white border border-gray-200 rounded-lg shadow-xl overflow-y-auto min-h-100",shouldIgnoreClose:e=>{let t=e;for(;t;){if(t.classList){const e=Array.from(t.classList).join(" ");if(/MuiPickers|MuiDatePicker|MuiPickersPopper/.test(e))return!0}if(t.getAttribute&&"dialog"===t.getAttribute("role")){const e=t.className?.toString()||"";if(/MuiPickers|MuiDatePicker/.test(e))return!0}t=t.parentNode}return!1},children:[N.jsxs("div",{className:"flex items-center justify-between px-2",children:[N.jsxs("div",{className:"p-3 border-b border-gray-100",children:[N.jsx("h3",{className:"font-medium text-gray-900",children:"Column Filters"}),N.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Filter data by column values"})]}),N.jsx("button",{onClick:p,className:"px-3 py-1.5 text-sm text-gray-600 border border-gray-300 rounded-md hover:bg-gray-50 transition-colors",children:"Clear All"})]}),N.jsx("div",{className:"p-3 space-y-3",children:N.jsx(Re,{columns:u,columnFilters:g,onColumnFilter:b})}),N.jsx("div",{className:"flex items-center justify-between p-3 border-t border-gray-200",children:N.jsx("div",{className:"text-sm text-gray-600",children:Object.keys(g).length>0&&N.jsxs("span",{children:[Object.keys(g).length," filter",1!==Object.keys(g).length?"s":""," ","applied"]})})})]})]}),D]}),N.jsxs("div",{className:"order-2 flex items-center gap-2 sm:gap-3 flex-wrap sm:flex-nowrap",children:[A,d&&ye&&h.length>0&&N.jsxs("div",{className:"relative",ref:ce,children:[N.jsxs("button",{ref:e=>{he.current=e},onClick:()=>T(!$),className:"flex items-center gap-2 px-3 py-2.5 bg-orange-600 text-white rounded-lg hover:bg-orange-700 transition-colors",title:"Bulk actions",children:[N.jsx(J,{className:"w-4 h-4"}),N.jsxs("span",{className:"hidden sm:inline text-sm font-medium",children:["Actions (",r,")"]})]}),N.jsxs(xr,{open:$,anchorEl:he.current,onClose:()=>T(!1),placement:"bottom-end",offset:8,zIndex:1e3,className:"w-56 bg-white border border-gray-200 rounded-lg shadow-xl",children:[N.jsxs("div",{className:"p-3 border-b border-gray-100",children:[N.jsx("h3",{className:"font-medium text-gray-900",children:"Bulk Actions"}),N.jsxs("p",{className:"text-xs text-gray-500 mt-1",children:[r," row",1!==r?"s":""," selected"]})]}),N.jsx("div",{className:"p-2",children:h.map(e=>N.jsxs("button",{onClick:()=>(e=>{e.disabled||(e.onClick(s),T(!1))})(e),disabled:e.disabled,className:"w-full flex items-center gap-3 px-3 py-2 text-sm rounded-md transition-colors "+(e.disabled?"text-gray-400 cursor-not-allowed":e.destructive?"text-red-700 hover:bg-red-50":"text-gray-700 hover:bg-gray-50"),children:[je(e.id),e.label]},e.id))})]})]}),c&&u.length>0&&N.jsxs("div",{className:"relative",ref:de,children:[N.jsxs("button",{ref:e=>{fe.current=e},onClick:()=>H(!B),className:"flex items-center gap-2 px-3 py-2.5 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors",title:"Column visibility","aria-label":`Column visibility. ${be} of ${u.length} columns visible`,"aria-haspopup":"menu","aria-expanded":B,"aria-controls":"column-visibility-menu",children:[N.jsx(G,{className:"w-4 h-4"}),N.jsx("span",{className:"hidden sm:inline text-sm font-medium",children:"Columns"}),N.jsxs("span",{className:"hidden sm:inline text-xs text-gray-500",children:["(",be,"/",u.length,")"]})]}),N.jsxs(xr,{open:B,anchorEl:fe.current,onClose:()=>H(!1),placement:"bottom-end",offset:8,zIndex:1e3,className:"w-[90vw] sm:w-72 max-w-[90vw] bg-white border border-gray-200 rounded-lg shadow-xl",children:[N.jsxs("div",{className:"p-3 border-b border-gray-100",children:[N.jsx("h3",{className:"font-medium text-gray-900",children:"Show/Hide Columns"}),N.jsxs("div",{className:"relative mt-2",children:[N.jsx(ee,{className:"absolute left-2 top-1/2 -translate-y-1/2 text-gray-400 w-4 h-4"}),N.jsx("input",{type:"text",placeholder:"Search columns...",className:"w-full pl-8 pr-2 py-1.5 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-sm",value:U,onChange:e=>Y(e.target.value)})]})]}),N.jsx("div",{className:"max-h-60 overflow-y-auto p-2",children:ve.map(e=>{const t=!1!==m[e.key];return N.jsxs("label",{className:"flex items-center gap-3 p-2 hover:bg-gray-50 rounded-md cursor-grab relative "+(q===e.key?"opacity-60":""),draggable:!0,onDragStart:t=>((e,t)=>{X(e),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e)})(e.key,t),onDragOver:t=>((e,t)=>{t.preventDefault(),t.dataTransfer.dropEffect="move";const r=t.currentTarget.getBoundingClientRect();ae({key:e,position:t.clientY<r.top+r.height/2?"before":"after"})})(e.key,t),onDrop:()=>(e=>{const t=q;if(!t||t===e)return;if(k&&k.has(t)!==k.has(e))return X(null),void ae(null);const r=le?.key!==e||"before"===le.position,n=(w&&w.length?w:u.map(e=>e.key)).filter(e=>e!==t);let l=n.indexOf(e);if(-1===l)return j?.(n),X(null),void ae(null);r||(l+=1),n.splice(l,0,t),j?.(n),X(null),ae(null)})(e.key),onDragEnd:Ce,children:[le?.key===e.key&&N.jsx("span",{className:"absolute left-2 right-2 h-0.5 bg-blue-600",style:{top:"before"===le.position?0:void 0,bottom:"after"===le.position?0:void 0}}),N.jsx("input",{type:"checkbox",checked:t,onChange:()=>(e=>{const t=!1!==m[e];y?.(e,!t)})(e.key),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),t?N.jsx(Z,{className:"w-4 h-4 text-green-600"}):N.jsx(Q,{className:"w-4 h-4 text-gray-400"}),N.jsx("span",{className:"text-sm text-gray-700",children:e.header}),N.jsx("button",{type:"button",onClick:r=>{r.preventDefault(),r.stopPropagation(),t?C?.(e.key):(y?.(e.key,!0),requestAnimationFrame(()=>C?.(e.key)))},className:"ml-auto p-1 text-gray-400 hover:text-blue-600",title:"Scroll to this column","aria-label":`Scroll to column ${e.header}`,children:N.jsx(oe,{className:"w-4 h-4"})})]},e.key)})}),N.jsxs("div",{className:"p-2 border-t border-gray-100",children:[N.jsxs("div",{className:"flex items-center justify-between",children:[N.jsxs("label",{className:"flex items-center gap-2 text-sm text-gray-600 hover:text-gray-900 cursor-pointer hover:bg-gray-50 px-3 py-1.5 rounded transition-colors min-h-9",children:[N.jsx("input",{type:"checkbox",checked:ve.every(e=>!1!==m[e.key]),onChange:e=>{ve.forEach(t=>{y?.(t.key,e.target.checked)})},className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),N.jsx("span",{children:"Select All"})]}),N.jsx("button",{className:"text-sm text-gray-600 hover:text-gray-900 hover:bg-gray-50 px-3 py-1.5 rounded transition-colors min-h-9",onClick:()=>{u.forEach(e=>{y?.(e.key,!1!==e.visible)}),j?.(u.map(e=>e.key)),v?.(),H(!1)},children:"Reset Columns"})]}),U&&N.jsx("button",{className:"text-xs text-blue-600 hover:underline mt-2",onClick:()=>Y(""),children:"Clear Search"})]})]})]}),R&&N.jsx("div",{className:"flex items-center",children:N.jsx("div",{className:"flex items-center gap-1 border border-gray-300 rounded-lg p-1",title:"Row density",children:["sm","md","lg"].map(e=>N.jsx("button",{className:"px-2 py-1 text-xs rounded-md "+(S===e?"bg-blue-600 text-white":"text-gray-700 hover:bg-gray-100"),onClick:()=>M?.(e),children:e.toUpperCase()},e))})}),N.jsx("div",{className:"flex items-center gap-2 order-3 w-full sm:order-0 sm:w-auto flex-1 min-w-0",children:N.jsxs("div",{className:"relative",children:[N.jsx(ee,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4","aria-hidden":"true"}),N.jsx("input",{ref:se,type:"text",placeholder:"Search...",className:"w-full sm:w-64 pl-10 pr-10 py-2.5 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 dark:text-gray-200 transition-colors",value:e,onChange:x,"aria-label":"Search all columns","aria-keyshortcuts":"Control+F","aria-describedby":"search-results-status"}),e&&N.jsx("button",{onClick:()=>x({target:{value:""}}),className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600 transition-colors",title:"Clear search",children:N.jsx(I,{className:"w-4 h-4"})})]})}),i&&f?.enabled&&N.jsxs("div",{className:"relative",ref:ie,children:[N.jsx("button",{ref:e=>{ge.current=e},onClick:()=>L(!E),className:"p-2.5 cursor-pointer border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 text-gray-700 dark:text-gray-300 transition-colors","aria-label":"Export data"+(ye?` (${r} rows selected)`:` (${t} rows)`),"aria-haspopup":"menu","aria-expanded":E,"aria-controls":"export-menu","aria-keyshortcuts":"Control+E",title:"Export data (Ctrl+E)",children:N.jsx(V,{className:"w-4 h-4"})}),N.jsxs(xr,{open:E,anchorEl:ge.current,onClose:()=>L(!1),placement:"bottom-end",offset:8,zIndex:1e3,className:"w-[90vw] sm:w-64 max-w-[90vw] bg-white border border-gray-200 rounded-lg shadow-xl",children:[N.jsxs("div",{className:"p-3 border-b border-gray-100",children:[N.jsx("h3",{className:"font-medium text-gray-900",children:"Export Data"}),N.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Choose format and data scope"})]}),N.jsxs("div",{className:"p-2",children:[N.jsxs("div",{className:"mb-3",children:[N.jsx("p",{className:"text-xs font-medium text-gray-700 mb-2 px-2",children:"Export All Data"}),N.jsx("div",{className:"space-y-1",children:xe.map(e=>N.jsxs("button",{onClick:()=>Ne(e,!1),className:" cursor-pointer w-full flex items-center gap-3 px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-md transition-colors",children:[we(e),N.jsxs("span",{children:["Export as ",ke(e)]}),N.jsxs("span",{className:"ml-auto text-xs text-gray-500",children:[t.toLocaleString()," rows"]})]},`all-${e}`))})]}),ye&&N.jsxs("div",{children:[N.jsx("p",{className:"text-xs font-medium text-gray-700 mb-2 px-2",children:"Export Selected"}),N.jsx("div",{className:"space-y-1",children:xe.map(e=>N.jsxs("button",{onClick:()=>Ne(e,!0),className:"w-full flex items-center gap-3 px-3 py-2 text-sm text-blue-700 hover:bg-blue-50 rounded-md transition-colors",children:[we(e),N.jsxs("span",{children:["Export as ",ke(e)]}),N.jsxs("span",{className:"ml-auto text-xs text-blue-500",children:[r," rows"]})]},`selected-${e}`))})]})]})]})]})]})]})})]})};pr.displayName="SearchToolbar";const yr=r(pr),br=({data:e,columns:t})=>{const[r,o]=l(""),[s,u]=l({}),[m,g]=i(),[,h]=i(),f=c(e=>{g(()=>o(e))},[]),x=d(r),p=c((e,t,r,n)=>{const l=e[t];switch(r.type){case"text":{const e=String(l||"").toLowerCase(),t=String(r.value||"").toLowerCase();switch(r.operator){case"contains":default:return e.includes(t);case"equals":return e===t;case"startsWith":return e.startsWith(t);case"endsWith":return e.endsWith(t)}}case"number":{const e=parseFloat(l),t=parseFloat(String(r.value));if(isNaN(e)||isNaN(t))return!1;switch(r.operator){case"equals":default:return e===t;case"gt":return e>t;case"gte":return e>=t;case"lt":return e<t;case"lte":return e<=t;case"between":{const n=parseFloat(String(r.secondValue??""));return!isNaN(n)&&e>=t&&e<=n}}}case"date":{const e=n?.filterTs,t=n?.secondTs;if(void 0===e||isNaN(e))return!1;const o=new Date(l);if(isNaN(o.getTime()))return!1;const a=new Date(o.getFullYear(),o.getMonth(),o.getDate()).getTime();switch(r.operator){case"equals":default:return a===e;case"gt":return a>e;case"gte":return a>=e;case"lt":return a<e;case"lte":return a<=e;case"between":return void 0!==t&&!isNaN(t)&&a>=e&&a<=t}}case"boolean":return Boolean(l)===Boolean(r.value);case"multiselect":{const e=e=>null==e||""===e||"string"==typeof e&&""===e.trim()?null:e;return(Array.isArray(r.value)?r.value:[r.value]).map(e).includes(e(l))}default:return!0}},[]),y=a(new WeakMap),b=a(0),v=c(()=>{b.current>5e3&&(y.current=new WeakMap,b.current=0)},[]),w=n(()=>{v();const r=Object.keys(s).length>0,n=!!x;if(!r&&!n)return e;const l=x.toLowerCase(),o=y.current;let a=e;if(r)for(const[e,t]of Object.entries(s)){if(!t)continue;let r;if("date"===t.type){const e=t.value instanceof Date?t.value:new Date(String(t.value??"")),n=isNaN(e.getTime())?NaN:new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();let l;if(t.secondValue){const e=t.secondValue instanceof Date?t.secondValue:new Date(String(t.secondValue??""));l=isNaN(e.getTime())?NaN:new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()}r={filterTs:n,secondTs:l}}if(a=a.filter(n=>p(n,e,t,r)),0===a.length)break}if(n&&a.length>0){const e=t.filter(e=>!1!==e.visible);a=a.filter(t=>{let r=o.get(t);return null==r&&(r=e.map(e=>{const r=t[e.key];if(null==r)return"";if("string"==typeof r)return r.toLowerCase();if("number"==typeof r||"boolean"==typeof r)return String(r).toLowerCase();const n=String(r);return n.length>100?n.slice(0,100):n}).join("|"),b.current<5e3&&(o.set(t,r),b.current++)),r.includes(l)})}return a},[e,s,x,t,p,v]),j=c((e,t)=>{h(()=>{u(r=>{const n={...r};return t?n[e]=t:delete n[e],n})})},[]),k=c(e=>{j(e,null)},[j]),N=c(()=>{g(()=>o("")),h(()=>u({})),y.current=new WeakMap,b.current=0},[]),C=c(()=>{let e=0;return x&&e++,e+Object.keys(s).length},[x,s]);return{globalFilter:r,setGlobalFilter:f,columnFilters:s,filteredData:w,setColumnFilter:j,clearColumnFilter:k,clearAllFilters:N,getActiveFilterCount:C,isFilterPending:m}};function vr(){const e=self,t=(e,t)=>{if(!e||0===e.length)return e;if(!t?.key)return e;const{key:r,direction:n}=t,l="asc"===n?1:-1;return[...e].sort((e,t)=>{const n=e?.[r],o=t?.[r];return null==n&&null==o?0:null==n?-1*l:null==o?1*l:"number"==typeof n&&"number"==typeof o?(n-o)*l:String(n).localeCompare(String(o))*l})};e.onmessage=r=>{const n=r.data;if(n&&"process"===n.type)try{const{rows:r,sort:l}=n.payload;e.postMessage({type:"result",payload:{rows:t(r,l??null)}})}catch{e.postMessage({type:"result",payload:{rows:n.payload?.rows??[]}})}}}function wr(e){const t=e?.enabled??!0,r=a(null),n=a(null),l=a(t);o(()=>{l.current=t,!t&&r.current&&(r.current.terminate(),r.current=null,n.current&&(n.current.reject(new DOMException("Worker disabled","AbortError")),n.current=null))},[t]);const s=a(()=>null);return s.current=()=>{if(!l.current)return null;if(r.current)return r.current;const e=`(${vr.toString()})()`,t=new Blob([e],{type:"application/javascript"}),o=URL.createObjectURL(t),a=new Worker(o);return URL.revokeObjectURL(o),a.onmessage=e=>{"result"===e.data?.type&&(n.current?.resolve(e.data.payload.rows),n.current=null)},r.current=a,a},o(()=>()=>{r.current?.terminate(),r.current=null,n.current&&(n.current.reject(new DOMException("Unmounted","AbortError")),n.current=null)},[]),{process:c((e,t)=>{if(!l.current)return Promise.resolve(e);const r=s.current();return r?new Promise((l,o)=>{n.current&&n.current.reject(new DOMException("Superseded by newer sort","AbortError")),n.current={resolve:l,reject:o},r.postMessage({type:"process",payload:{rows:e,sort:t}})}):Promise.resolve(e)},[])}}const jr="Unknown",kr=e=>e.join("|"),Nr=(e,t,r,n,l)=>{const o=t[r],a=new Map;for(const t of e){const e=String(t[o]??jr),r=a.get(e);r?r.push(t):a.set(e,[t])}for(const[e,s]of a.entries()){const a=[...n,`${o}=${e}`];l.add(kr(a)),r<t.length-1&&Nr(s,t,r+1,a,l)}},Cr=(e,t)=>{const r={};for(const n of t){if(!n.aggregate)continue;const t=e.map(e=>e[n.key]);let l=null;if("function"==typeof n.aggregate)try{l=n.aggregate(t)}catch(e){l=null}else{const e=e=>!!(/^\d{4}-\d{2}-\d{2}$/.test(e)||/^\d{2}-\d{2}-\d{4}$/.test(e)||/^\d{4}\/\d{2}\/\d{2}$/.test(e)||/^\d{2}\/\d{2}\/\d{4}$/.test(e)||(e.includes("-")||e.includes("/"))&&Number.isFinite(Date.parse(e))),r=t.map(t=>{if("number"==typeof t)return t;if(null==t)return NaN;const r=String(t);if(e(r))return NaN;const n=parseFloat(r.replace(/,/g,""));return Number.isFinite(n)?n:NaN}).filter(e=>Number.isFinite(e)),o=()=>t.map(e=>{if(e instanceof Date)return e.getTime();if("string"==typeof e||"number"==typeof e){const t=Date.parse(String(e));return Number.isFinite(t)?t:NaN}return NaN}).filter(e=>Number.isFinite(e));if("sum"===n.aggregate||"avg"===n.aggregate)r.length&&(l="sum"===n.aggregate?r.reduce((e,t)=>e+t,0):r.reduce((e,t)=>e+t,0)/r.length);else if("min"===n.aggregate||"max"===n.aggregate)if(r.length)l="min"===n.aggregate?Math.min(...r):Math.max(...r);else{const e=o();if(e.length){const t="min"===n.aggregate?Math.min(...e):Math.max(...e);l=new Date(t)}}}null!=l&&(r[n.key]=l)}return r},Sr=({data:e,pagination:t})=>{const[r,a]=l(1),[s,i]=l(t?.pageSize||50),[d,u]=l(!1);o(()=>{const e=t?.pageSize;e&&e!==s&&(i(e),a(1))},[t?.pageSize]);const m=c(()=>{a(1)},[]),g=n(()=>{const n=!1!==t?.enabled,l="server"===(t?.mode||"client")?t?.serverConfig?.totalRows||0:e.length,o=Math.ceil(l/s);return{enabled:n,pageSize:s,currentPage:r,totalPages:o,totalRows:l,showPageSizeSelector:!1!==t?.showPageSizeSelector,pageSizeOptions:t?.pageSizeOptions||[25,50,100,200,500]}},[t,s,r,e.length]),h=n(()=>{if(!g.enabled||"server"===t?.mode)return e;const n=(r-1)*s;return e.slice(n,n+s)},[e,r,s,g.enabled,t?.mode]),f=c(async e=>{if("server"===t?.mode&&t?.serverConfig?.onPageChange){u(!0);try{await t.serverConfig.onPageChange(e,s)}finally{u(!1)}}a(e)},[t,s]),x=c(async e=>{if("server"===t?.mode&&t?.serverConfig?.onPageSizeChange){u(!0);try{await t.serverConfig.onPageSizeChange(e)}finally{u(!1)}}i(e),a(1)},[t]);return{currentPage:r,resetPage:m,paginationConfig:g,paginatedData:h,isServerLoading:d,handlePageChange:f,handlePageSizeChange:x}},Mr=(e,t)=>{if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0},Rr=({data:e,selectedRowIds:t,onRowSelect:r,getRowId:a})=>{const s=c((e,t)=>a?a(e):void 0!==e.id?e.id:("development"===process.env.NODE_ENV&&0===t&&console.warn("[KDGrid] No row IDs found. Either:\n 1. Add 'id' property to each row object, or\n 2. Provide 'getRowId' prop to extract a unique identifier.\n Using row index as fallback ID, but this may cause issues with pagination/filtering."),t??0),[a]),[i,d]=l(()=>new Set(t?Array.from(t):[]));o(()=>{t&&d(e=>{const r=new Set(Array.from(t));return Mr(e,r)?e:r})},[t]);const u=n(()=>{const t=new Map;return e.forEach((e,r)=>t.set(s(e,r),e)),t},[e,s]);o(()=>{if(0===i.size)return;let e=!1;for(const t of i)if(!u.has(t)){e=!0;break}e&&d(e=>{const t=new Set;return e.forEach(e=>{u.has(e)&&t.add(e)}),Mr(e,t)?e:t})},[u]);const m=c((e,t)=>{if(d(r=>{const n=new Set(r);return t?n.add(e):n.delete(e),n}),r){const t=u.get(e);t&&r(t)}},[u,r]),g=c(t=>{d(t?new Set(e.map((e,t)=>s(e,t))):new Set)},[e,s]);return{selectedRows:i,handleRowSelect:m,handleSelectAll:g}},Dr=({data:e,virtualized:t=!0,rowHeight:r=40,overscan:s=10,height:i})=>{const d=a(null),[u,m]=l(0),g=a(null),h=a(0),[f,x]=l(i);o(()=>{const e=d.current;if(!e)return;const t=new ResizeObserver(([e])=>{const t=e.contentRect.height;t>0&&x(t)});t.observe(e);const r=e.clientHeight;return r>0&&x(r),()=>t.disconnect()},[]),o(()=>{i>0&&x(i)},[i]);const p=n(()=>{if(!t)return{startIndex:0,endIndex:e.length-1,offsetY:0};const n=Math.max(1,Math.ceil(f/r)),l=Math.max(s,Math.max(8,Math.min(2*n,50))),o=Math.max(0,Math.floor(u/r)-l),a=Math.ceil(f/r);return{startIndex:o,endIndex:Math.min(e.length-1,o+a+2*l),offsetY:o*r}},[u,f,e.length,r,s,t]),y=n(()=>t?e.slice(p.startIndex,p.endIndex+1):e,[e,p,t]),b=e.length*r,v=c(e=>{h.current=e.target.scrollTop,null==g.current&&(g.current=requestAnimationFrame(()=>{g.current=null,m(h.current)}))},[]);return o(()=>()=>{null!=g.current&&cancelAnimationFrame(g.current)},[]),{scrollRef:d,virtualizedRange:p,visibleData:y,totalHeight:b,handleScroll:v}},Ar=()=>!0,Er=u(function({data:e,columns:t,getRowId:r,height:s,density:i="md",headerDensity:d,headerHeight:u,onDensityChange:g,showDensityControl:h=!1,onRowSelect:f,onSelectedRowsChange:x,selectable:p=!1,isRowSelectable:y,showToolbar:b=!0,showExport:v=!1,filterable:w=!0,groupable:j=!1,virtualized:k=!0,rowHeight:M,overscan:R=6,rowStyle:D,onContextMenu:A,onRowDoubleClick:E,onRowClick:L,onCellClick:F,onCellContextMenu:z,cellFocusEnabled:$=!1,onCellFocusChange:I,cellSelectionEnabled:T=!1,canSelectCell:O=Ar,onCellSelectionChange:P,pagination:_={enabled:!1,mode:"client",pageSize:50},virtualizationThreshold:K=300,loading:V=!1,onFilterChange:B,onSort:W,onColumnConfigChange:H,initialColumnConfig:G,toolbarLeft:U,toolbarRight:Y,groupBarVisibility:q="auto",groupFooterVariant:X="chips",onCopyCells:J,selectedRowIds:Z,performanceConfig:Q={},exportOptions:ee,renderGroupActions:te},re){const ne=a(null),[le,oe]=l(0);o(()=>{const e=ne.current;if(!e)return;const t=()=>oe(e.clientWidth||0);t();const r=new ResizeObserver(()=>t());return r.observe(e),()=>r.disconnect()},[]);const[ae,se]=l(null),[ie,ce]=l(null),[de,ue]=l(null),me=a(!1),ge=a(null),he=a(null),[fe,xe]=l(null),[pe,be]=l(i);o(()=>{be(i)},[i]);const ve=n(()=>({sm:28,md:40,lg:56}),[]),Ce=n(()=>null!=M?M:ve[pe],[M,pe,ve]),Me=n(()=>null!=u?u:ve[d??"md"],[u,d,ve]),{globalFilter:Re,columnFilters:De,filteredData:Ae,setGlobalFilter:Ee,setColumnFilter:Le,clearAllFilters:Fe}=br({data:e,columns:t}),[ze,$e]=l({key:null,direction:null}),[Ie,Te]=l(()=>{const e={};return t.forEach(t=>{e[t.key]=t.width||100}),e}),Oe=a(t.reduce((e,t)=>(e[t.key]=t.width||100,e),{})),Pe=a(t.map(e=>e.key)),[_e,Ke]=l(()=>Pe.current.slice()),[Ve,Be]=l(new Set),[We,He]=l(()=>{const e={};return t.forEach(t=>{e[t.key]=!0}),e}),Ge=c(e=>{let t=e,r="asc";ze.key!==e?(t=e,r="asc"):"asc"===ze.direction?r="desc":"desc"===ze.direction?(t=null,r=null):r="asc",$e({key:t,direction:r}),W&&"server"===_?.mode&&t&&r&&W(t,r)},[W,_?.mode,ze.key,ze.direction]),Ue=c((e,t)=>{Te(r=>({...r,[e]:t}))},[]),Ye=c(e=>null==e?0:8*("string"==typeof e?e:String(e)).length,[]),qe=c(r=>{const n=t.find(e=>e.key===r);if(!n)return;const l=Ye(n.header),o=e.slice(0,500);let a=0;for(const e of o)a=Math.max(a,Ye(e[r]));const s=Math.max(60,Math.min(500,Math.max(l,a)+32));Te(e=>({...e,[r]:s}))},[t,e,Ye]),Xe=c(()=>{t.forEach(e=>qe(e.key))},[t,qe]),Je=c(()=>{Te({...Oe.current}),Be(new Set),He(e=>{const t={};return Object.keys(e).forEach(e=>t[e]=!0),t}),Ke(Pe.current.slice())},[]),Ze=a(null),Qe=a(null),et=c((e,t)=>{Be(r=>{const n=new Set(r);return t?n.add(e):n.delete(e),n})},[]),tt=c((e,t)=>{He(r=>({...r,[e]:t}))},[]),{process:rt}=wr({enabled:!0}),[nt,lt]=l(Ae),ot=Q?.sortWorkerThreshold??5e3;o(()=>{let e=!1;if(!ze.key)return void lt(Ae);const t=Ae;if(t.length<ot){const e="asc"===ze.direction?1:-1,r=[...t].sort((t,r)=>{const n=t?.[ze.key],l=r?.[ze.key];return null==n&&null==l?0:null==n?-1*e:null==l?1*e:"number"==typeof n&&"number"==typeof l?(n-l)*e:String(n).localeCompare(String(l))*e});return void lt(r)}return rt(t,{key:ze.key,direction:ze.direction}).then(t=>{e||lt(t)}),()=>{e=!0}},[Ae,ze,rt,ot]);const{paginationConfig:at,paginatedData:st,isServerLoading:it,handlePageChange:ct,handlePageSizeChange:dt,resetPage:ut,currentPage:mt}=Sr({data:nt,pagination:_}),gt=V||it,[ht,ft]=l(gt),[xt,pt]=l(!1),[yt,bt]=l(0);o(()=>{if(gt)return ft(!0),void pt(!1);if(ht){pt(!0);const e=setTimeout(()=>{ft(!1),pt(!1)},200);return()=>clearTimeout(e)}},[gt]);const vt=c(e=>{Ee(e.target.value)},[Ee]),{groupConfig:wt,displayData:jt,handleGroupBy:kt,addGroupKey:Nt,removeGroupKey:Ct,setGroupKeys:St,toggleGroupExpansion:Mt,isGrouped:Rt,expandAllGroups:Dt,collapseAllGroups:At}=(({data:e,columns:t})=>{const[r,a]=l({columnKeys:[],expanded:new Set}),s=n(()=>{const n=r.columnKeys;if(!n.length)return e;const l=[],o=(e,a,s)=>{const i=n[a],c=new Map;for(const t of e){const e=String(t[i]??jr),r=c.get(e);r?r.push(t):c.set(e,[t])}const d=Array.from(c.entries()).sort(([e],[t])=>e.localeCompare(t));for(const[e,c]of d){const d=[...s,`${i}=${e}`],u=kr(d);if(l.push({id:`group-${u}`,_isGroupHeader:!0,_groupKey:u,_groupCount:c.length,_groupLevel:a,_groupColumnKey:i,_groupValue:e,_groupRows:c}),!r.expanded.has(u))continue;if(a<n.length-1)o(c,a+1,d);else for(const e of c)l.push(e);const m=Cr(c,t);l.push({id:`group-footer-${u}`,_isGroupFooter:!0,_groupKey:u,_groupLevel:a,_groupAgg:m})}};return o(e,0,[]),l},[e,t,r.columnKeys,r.expanded]);return o(()=>{if(!r.columnKeys.length)return;const t=new Set;Nr(e,r.columnKeys,0,[],t);let n=!1;if(t.size!==r.expanded.size)n=!0;else for(const e of t)if(!r.expanded.has(e)){n=!0;break}n&&a(e=>({...e,expanded:t}))},[r.columnKeys,e]),{groupConfig:r,displayData:s,handleGroupBy:e=>{a({columnKeys:e?[e]:[],expanded:new Set})},addGroupKey:e=>{a(t=>t.columnKeys.includes(e)?t:{...t,columnKeys:[...t.columnKeys,e]})},removeGroupKey:e=>{a(t=>{const r=t.columnKeys.filter(t=>t!==e),n=new Set;for(const r of t.expanded)r.includes(`${e}=`)||n.add(r);return{columnKeys:r,expanded:n}})},setGroupKeys:e=>{a({columnKeys:[...e],expanded:new Set})},toggleGroupExpansion:e=>{a(t=>{const r=new Set(t.expanded);return r.has(e)?r.delete(e):r.add(e),{...t,expanded:r}})},expandAllGroups:()=>{const t=r.columnKeys;if(!t.length)return;const n=new Set;Nr(e,t,0,[],n),a(e=>({...e,expanded:n}))},collapseAllGroups:()=>{a(e=>({...e,expanded:new Set}))},isGrouped:r.columnKeys.length>0}})({data:nt,columns:t});m(re,()=>({setGroupKeys:St,addGroupKey:Nt,removeGroupKey:Ct,expandAllGroups:Dt,collapseAllGroups:At,toggleGroupExpansion:Mt,getGroupConfig:()=>wt,setColumnFilter:(e,t)=>{Le(e,t)},clearColumnFilter:e=>{Le(e,null)},clearAllFilters:()=>{Fe()},setGlobalFilter:e=>{Ee(e)}}),[wt,Le,Fe,Ee]);const Et=n(()=>new Set(Ve),[Ve]),Lt=_?.enabled?"server"===_.mode?e:st:nt,Ft=Rt?jt:Lt,{selectedRows:zt,handleRowSelect:$t,handleSelectAll:It}=Rr({data:Ft,onRowSelect:f,selectedRowIds:Z,getRowId:r}),Tt=a(x);o(()=>{Tt.current=x},[x]),o(()=>{Tt.current&&Tt.current(zt)},[zt]);const{exportData:Ot}=(({data:e,columns:t,selectedRows:r,filename:n="data",columnVisibility:l})=>{const o=c(()=>l?t.filter(e=>!1!==l[e.key]):t,[t,l]),a=c((e,t,r)=>{const n=new Blob([e],{type:r}),l=URL.createObjectURL(n),o=document.createElement("a");o.href=l,o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(l)},[]),s=c((e,t)=>{const r=o(),n=r.map(e=>e.header).join(","),l=e.map(e=>r.map(t=>{const r=String(e[t.key]??"");return r.includes(",")||r.includes('"')?`"${r.replace(/"/g,'""')}"`:r}).join(","));a([n,...l].join("\n"),`${t}.csv`,"text/csv")},[o,a]),i=c((e,t)=>{const r=o(),n=e.map(e=>{const t={};for(const n of r)t[n.header]=e[n.key];return t});a(JSON.stringify(n,null,2),`${t}.json`,"application/json")},[o,a]),d=c(async(e,t)=>{const r=o(),[{default:n},{saveAs:l}]=await Promise.all([import("exceljs"),import("file-saver")]),a=new n.Workbook,s=a.addWorksheet("Data"),i=e.slice(0,50),c=e=>{if(null==e)return"";if("number"==typeof e||"boolean"==typeof e||e instanceof Date)return e;const t=String(e);if(/[a-zA-Z]/.test(t))return t;if(/^-?[\d,]+\.?\d*$/.test(t.trim())){const e=Number(t.replace(/,/g,""));if(Number.isFinite(e))return e}return t};s.columns=r.map(e=>{const t=e.header||e.key;let r=t?.length||10;for(const t of i){const n=null==t[e.key]?"":String(t[e.key]);n.length>r&&(r=n.length)}return{header:t,key:e.key,width:Math.max(8,Math.min(50,Math.ceil(1.1*r)))}});for(const t of e){const e={};for(const n of r)e[n.key]=c(t[n.key]);s.addRow(e)}s.getRow(1).font={bold:!0},s.autoFilter={from:{row:1,column:1},to:{row:Math.max(1,s.rowCount),column:r.length}};const d=await a.xlsx.writeBuffer();l(new Blob([d],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),`${t}.xlsx`)},[o]);return{exportData:c((t,l=!1)=>{const o=l&&r&&r.size>0?e.filter(e=>r.has(e.id)):e,a=l&&r&&r.size>0?`${n}_selected_${r.size}_rows`:n;switch(t){case"csv":s(o,a);break;case"json":i(o,a);break;case"xlsx":d(o,a);break;default:console.warn(`[KDGrid] Unsupported export format: ${t}`)}},[e,r,n,s,i,d]),canExportSelected:!!(r&&r.size>0),selectedCount:r?.size??0}})({data:Lt,columns:t,selectedRows:zt,filename:ee&&ee.filename||"grid-data",columnVisibility:We}),Pt=c((e,t)=>{const r=Array.from(zt||[]);"server"===ee?.exportMode&&"function"==typeof ee?.onServerExport?ee.onServerExport(e,t,r):Ot(e,t)},[ee?.exportMode,ee?.onServerExport,Ot,zt]),_t=c(()=>{Fe()},[Fe]),Kt=c(e=>{be(e),g&&g(e)},[g]),Vt=n(()=>!!k&&Ft.length>K,[k,Ft.length,K]),Bt=n(()=>({enableHorizontalVirtualization:!0,horizontalVirtualizationThreshold:50,sortWorkerThreshold:5e3,maxFilterCacheSize:5e3,enableAggressiveMemoization:!0,...Q}),[Q]),{scrollRef:Wt,virtualizedRange:Ht,visibleData:Gt,handleScroll:Ut}=Dr({data:Ft,virtualized:Vt,rowHeight:Ce,overscan:R,height:s||400});o(()=>{const e=()=>{const e=Wt.current;e&&bt((e.offsetTop||0)+(Me||0)-1)};e();const t=new ResizeObserver(e);return ne.current&&t.observe(ne.current),Wt.current&&t.observe(Wt.current),()=>t.disconnect()},[Me]);const[Yt,qt]=l(0),Xt=a(0),Jt=a(null),Zt=c(e=>{Xt.current=e,null==Jt.current&&(Jt.current=requestAnimationFrame(()=>{Jt.current=null,qt(Xt.current)}))},[]),[Qt,er]=l(0);o(()=>{const e=Wt.current;if(!e)return;const t=()=>er(e.clientWidth||0);t();const r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[Wt]),o(()=>{if(!B)return;if(!_?.enabled||"server"!==_.mode)return;const e=t.filter(e=>!!e.filterable).map(e=>e.key);B({globalFilter:Re,columnFilters:De,filterableKeys:e})},[Re,De]),o(()=>{if(!G)return;const e=new Set(t.map(e=>e.key));if(G.columnWidths){const t=Object.fromEntries(Object.entries(G.columnWidths).filter(([t])=>e.has(t)));Te(e=>({...e,...t}))}if(G.columnVisibility){const t=Object.fromEntries(Object.entries(G.columnVisibility).filter(([t])=>e.has(t)));He(e=>({...e,...t}))}if(G.pinnedColumns){const t=G.pinnedColumns.filter(t=>e.has(t));Be(new Set(t))}if(G.sortConfig){const e="asc"===G.sortConfig.direction||"desc"===G.sortConfig.direction?G.sortConfig.direction:null;$e({key:e?G.sortConfig.key:null,direction:e})}if(G.filters){Ee(G.filters.globalFilter||"");const t=Object.entries(G.filters.columnFilters||{}).filter(([t])=>e.has(t));for(const[e,r]of t)Le(e,r)}if(G.columnOrder&&G.columnOrder.length){const r=G.columnOrder.filter(t=>e.has(t)),n=t.map(e=>e.key).filter(e=>!r.includes(e));Ke([...r,...n])}G.groupConfig?.columnKeys&&G.groupConfig.columnKeys.length&&St(G.groupConfig.columnKeys),G.density&&be(G.density)},[]),o(()=>{if(!H)return;const e=setTimeout(()=>{H({columnWidths:Ie,columnVisibility:We,pinnedColumns:Array.from(Ve),sortConfig:ze,groupConfig:{columnKeys:wt.columnKeys},filters:{globalFilter:Re,columnFilters:De},columnOrder:_e,density:pe})},200);return()=>clearTimeout(e)},[H,Ie,We,Ve,ze,wt,Re,De,_e,pe]);const tr=n(()=>{if(0===t.length)return[];const e=new Map(_e.map((e,t)=>[e,t])),r=t.filter(e=>!1!==We[e.key]).sort((t,r)=>(e.get(t.key)||0)-(e.get(r.key)||0)).map(e=>{const t=Ie[e.key]??e.width,r=Number.isFinite(Number(t))?Number(t):100,n=!1!==e.sortable;return{...e,width:r,sortable:n}}),n=Math.max(0,le-(p?C:0)),l=r.reduce((e,t)=>e+t.width,0);if(n>l){const e=r.filter(e=>e.flex);if(e.length>0){const t=n-l,r=e.reduce((e,t)=>e+Math.max(0,!0===t.flex?1:"number"==typeof t.flex?t.flex:1),0);if(r>0)for(const n of e)n.width=Math.max(n.minWidth??0,Math.min(n.maxWidth??Number.POSITIVE_INFINITY,n.width+t*(!0===n.flex?1:"number"==typeof n.flex?n.flex:1)/r))}}const o=[],a=[];for(const e of r)Et.has(e.key)?o.push(e):a.push(e);if(wt.columnKeys&&wt.columnKeys.length>0){const e=new Map(wt.columnKeys.map((e,t)=>[e,t]));a.sort((t,r)=>(e.get(t.key)??Number.POSITIVE_INFINITY)-(e.get(r.key)??Number.POSITIVE_INFINITY))}return[...o,...a]},[t,Ie,Et,We,_e,wt.columnKeys,le,p]),rr=n(()=>Bt.enableHorizontalVirtualization&&tr.length>Bt.horizontalVirtualizationThreshold,[tr.length,Bt.enableHorizontalVirtualization,Bt.horizontalVirtualizationThreshold]),nr=n(()=>tr.filter(e=>Et.has(e.key)),[tr,Et]),lr=n(()=>tr.filter(e=>!Et.has(e.key)),[tr,Et]),or=n(()=>{const e=lr.map(e=>e.width||100),t=new Array(e.length+1).fill(0);for(let r=0;r<e.length;r++)t[r+1]=t[r]+e[r];return{widths:e,prefix:t,totalWidth:t[e.length]||0}},[lr]),ar=n(()=>{if(!rr)return tr;const e=p?C:0,t=nr.reduce((e,t)=>e+(t.width||100),0),r=Math.max(0,Yt-200),n=Yt+Qt+200,l=e+t,o=Math.max(0,r-l),a=Math.max(0,Math.min(or.totalWidth,n-l)),s=(e=>{if(!or.widths.length)return 0;let t=0,r=or.widths.length-1,n=0;for(;t<=r;){const l=t+r>>1;or.prefix[l+1]>=e?(n=l,r=l-1):t=l+1}return Math.max(0,Math.min(n,or.widths.length-1))})(o),i=(e=>{if(!or.widths.length)return-1;let t=0,r=or.widths.length-1,n=or.widths.length-1;for(;t<=r;){const l=t+r>>1;or.prefix[l]<=e?(n=l,t=l+1):r=l-1}return Math.max(0,Math.min(n,or.widths.length-1))})(a),c=i>=s&&i>=0?lr.slice(s,i+1):[];return[...nr,...c]},[rr,tr,Yt,Qt,p,nr,lr,or]),sr=n(()=>{const e=new Map;return lr.forEach((t,r)=>e.set(t.key,r)),e},[lr]),{hvPadLeftMemo:ir,hvPadRightMemo:cr}=n(()=>{if(!rr)return{hvPadLeftMemo:0,hvPadRightMemo:0};const e=ar.filter(e=>!Et.has(e.key));if(!e.length)return{hvPadLeftMemo:0,hvPadRightMemo:0};const t=sr.get(e[0].key),r=sr.get(e[e.length-1].key);return null==t||null==r?{hvPadLeftMemo:0,hvPadRightMemo:0}:{hvPadLeftMemo:or.prefix[t],hvPadRightMemo:or.totalWidth-or.prefix[r+1]}},[rr,ar,Et,sr,or]),dr=n(()=>tr.some(e=>e.footerAggregate),[tr]);o(()=>{const e=Wt.current;if(!e)return;let t=!1;const r=()=>{if(t)return;t=!0;const r=Qe.current;r&&r.scrollLeft!==e.scrollLeft&&(r.scrollLeft=e.scrollLeft),Zt(e.scrollLeft),requestAnimationFrame(()=>{t=!1})};return e.addEventListener("scroll",r,{passive:!0}),Qe.current&&(Qe.current.scrollLeft=e.scrollLeft),()=>{e.removeEventListener("scroll",r)}},[Wt,dr]);const ur=n(()=>{const e=new Map;return tr.forEach((t,r)=>e.set(t.key,r)),e},[tr]),mr=n(()=>{const e=new Map;return tr.forEach(t=>e.set(t.key,t)),e},[tr]),gr=n(()=>Ft.filter(e=>!e._isGroupHeader&&!e._isGroupFooter),[Ft]),hr=n(()=>{const e=new Map;return gr.forEach((t,r)=>e.set(t.id,r)),e},[gr]),fr=n(()=>{const e=new Map;return gr.forEach(t=>e.set(t.id,t)),e},[gr]),xr=a(null),pr=a(P),vr=a(J);o(()=>{vr.current=J},[J]),o(()=>{pr.current=P},[P]);const Mr=n(()=>tr.map(e=>e.key),[tr]),Er=n(()=>(e,t)=>{if(!T)return!1;if(!ie||!de)return!1;const r=hr.get(e),n=ur.get(t);if(null==r||null==n)return!1;const l=fr.get(e),o=mr.get(t);if(l&&o&&!O(l,o))return!1;const a=Math.min(ie.rowIndex,de.rowIndex),s=Math.max(ie.rowIndex,de.rowIndex),i=Math.min(ie.colIndex,de.colIndex),c=Math.max(ie.colIndex,de.colIndex);return r>=a&&r<=s&&n>=i&&n<=c},[T,ie,de,hr,ur,fr,mr,O]),Lr=n(()=>(e,t)=>ae?.rowId===e&&ae?.columnKey===t,[ae]),Fr=c(e=>{const t=Wt.current;if(!t)return;const r=Math.abs(e.deltaX)>=Math.abs(e.deltaY)?e.deltaX:e.deltaY;0!==r&&(e.preventDefault(),t.scrollBy({left:r,top:0,behavior:"auto"}))},[]),zr=c(({row:e,column:t,event:r})=>{const n=hr.get(e.id),l=ur.get(t.key);$&&null!=n&&null!=l&&(document.body.hasAttribute("data-modal-open")||(se({rowId:e.id,columnKey:t.key}),I&&I({row:e,column:t,value:e[t.key],rowIndex:n,colIndex:l}))),T&&O(e,t)&&0===r.button&&(me.current=!0,ge.current={x:r.clientX,y:r.clientY},null!=n&&null!=l&&(se({rowId:e.id,columnKey:t.key}),ce({rowIndex:n,colIndex:l}),ue({rowIndex:n,colIndex:l}),xe({x:r.clientX,y:r.clientY,rows:1,cols:1})))},[$,I,T,O,hr,ur]),$r=c(({row:e,column:t,event:r})=>{if(!T)return;if(!me.current||!ie)return;if(!O(e,t))return;const n=hr.get(e.id),l=ur.get(t.key);if(null==n||null==l)return;ue({rowIndex:n,colIndex:l}),ge.current={x:r.clientX,y:r.clientY};const o=Math.min(ie.rowIndex,n),a=Math.max(ie.rowIndex,n),s=Math.min(ie.colIndex,l),i=Math.max(ie.colIndex,l);xe({x:r.clientX,y:r.clientY,rows:a-o+1,cols:i-s+1})},[T,O,ie,hr,ur]);o(()=>{const e=()=>{me.current=!1,xe(null),he.current&&(cancelAnimationFrame(he.current),he.current=null)};return window.addEventListener("mouseup",e),()=>window.removeEventListener("mouseup",e)},[]),o(()=>{const e=e=>{me.current&&(ge.current={x:e.clientX,y:e.clientY})};return window.addEventListener("mousemove",e),()=>window.removeEventListener("mousemove",e)},[]);const Ir=c(()=>{if(null!=he.current)return;const e=()=>{if(he.current=null,!me.current)return;const t=Wt.current,r=ge.current;if(t&&r){const e=t.getBoundingClientRect(),n=24,l=24;let o=0,a=0;r.x<e.left+n?o=-(e.left+n-r.x):r.x>e.right-n&&(o=r.x-(e.right-n)),r.y<e.top+n?a=-(e.top+n-r.y):r.y>e.bottom-n&&(a=r.y-(e.bottom-n));const s=e=>Math.max(-l,Math.min(l,e));o=s(o),a=s(a),0===o&&0===a||t.scrollBy({left:o,top:a,behavior:"auto"})}he.current=requestAnimationFrame(e)};he.current=requestAnimationFrame(e)},[]);o(()=>{me.current&&Ir()},[Ir,ie]),o(()=>{const e=e=>{if("Escape"===e.key)return ce(null),ue(null),se(null),void xe(null);const t=e.shiftKey,r=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(e.key);if(!t||!r||!T)return;e.preventDefault();let n=de;if(!n){if(!ae)return;{const e=hr.get(ae.rowId),t=ur.get(ae.columnKey);if(null==e||null==t)return;ce({rowIndex:e,colIndex:t}),n={rowIndex:e,colIndex:t}}}const l=gr.length-1,o=tr.length-1;let a=n.rowIndex,s=n.colIndex;"ArrowUp"===e.key&&(a=Math.max(0,a-1)),"ArrowDown"===e.key&&(a=Math.min(l,a+1)),"ArrowLeft"===e.key&&(s=Math.max(0,s-1)),"ArrowRight"===e.key&&(s=Math.min(o,s+1)),ue({rowIndex:a,colIndex:s});const i=Wt.current;if(i){const e=i.getBoundingClientRect();xe({x:e.right-16,y:e.bottom-16,rows:Math.abs((ie?.rowIndex??a)-a)+1,cols:Math.abs((ie?.colIndex??s)-s)+1})}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[T,ae,ie,de,hr,ur,gr.length,tr.length]),o(()=>{if(!$)return;const e=Wt.current,t=Ze.current,r=r=>{if(!ae)return;if(document.body.hasAttribute("data-modal-open"))return;const{key:n}=r;if("ArrowLeft"!==n&&"ArrowRight"!==n&&"ArrowUp"!==n&&"ArrowDown"!==n)return;r.preventDefault();const l=hr.get(ae.rowId),o=ur.get(ae.columnKey);if(null==l||null==o)return;let a=l,s=o;"ArrowLeft"===r.key&&(s=Math.max(0,o-1)),"ArrowRight"===r.key&&(s=Math.min(tr.length-1,o+1)),"ArrowUp"===r.key&&(a=Math.max(0,l-1)),"ArrowDown"===r.key&&(a=Math.min(gr.length-1,l+1));const i=gr[a],c=tr[s];i&&c&&(se({rowId:i.id,columnKey:c.key}),I&&I({row:i,column:c,value:i[c.key],rowIndex:a,colIndex:s}),((r,n)=>{if(!e)return;const l=e.clientHeight,o=r*Ce,a=o+Ce;o<e.scrollTop?e.scrollTop=o:a>e.scrollTop+l&&(e.scrollTop=a-l);const s=tr[n]?.width||100;let i=p?C:0;for(let e=0;e<n;e++)i+=tr[e]?.width||100;const c=i+s,d=e.clientWidth;i<e.scrollLeft?e.scrollLeft=i:c>e.scrollLeft+d&&(e.scrollLeft=c-d),t&&(t.scrollLeft=e.scrollLeft)})(a,s))};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[$,ae,gr,tr,Ce,p,hr,ur,I]),o(()=>{if(!T||!ie||!de){const e={bounds:null,cells:[]},t="none";return void(t!==xr.current&&(xr.current=t,pr.current?.(e)))}const e=Math.min(ie.rowIndex,de.rowIndex),t=Math.max(ie.rowIndex,de.rowIndex),r=Math.min(ie.colIndex,de.colIndex),n=Math.max(ie.colIndex,de.colIndex),l=[];for(let o=e;o<=t;o++){const e=gr[o];if(e)for(let t=r;t<=n;t++){const r=tr[t];r&&O(e,r)&&l.push({row:e,column:r,value:e[r.key],rowIndex:o,colIndex:t})}}const o={bounds:{rowStart:e,rowEnd:t,colStart:r,colEnd:n},cells:l},a=`${e}-${t}-${r}-${n}|len:${l.length}`;a!==xr.current&&(xr.current=a,pr.current?.(o))},[T,ie,de,gr,Mr,O]),o(()=>{if(!T&&!$)return;const e=async e=>{if(!e.metaKey&&!e.ctrlKey||"c"!==e.key.toLowerCase())return;const t=!!e.shiftKey,r=!(!ie||!de),n=!(!$||!ae);if(!r&&!n)return;if(!r&&n){const e=window.getSelection();if(e&&e.toString().length>0)return;const t=document.activeElement;if(t&&("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable))return}e.preventDefault();const l=(()=>{const e=[];if(r&&ie&&de){const t=Math.min(ie.rowIndex,de.rowIndex),r=Math.max(ie.rowIndex,de.rowIndex),n=Math.min(ie.colIndex,de.colIndex),l=Math.max(ie.colIndex,de.colIndex);for(let o=t;o<=r;o++){const t=gr[o];if(t)for(let r=n;r<=l;r++){const n=tr[r];n&&O(t,n)&&e.push({row:t,column:n,value:t[n.key],rowIndex:o,colIndex:r})}}}else if(n&&ae){const t=hr.get(ae.rowId),r=ur.get(ae.columnKey);if(null!=t&&null!=r){const n=gr[t],l=tr[r];n&&l&&e.push({row:n,column:l,value:n[l.key],rowIndex:t,colIndex:r})}}return e})();if(!l.length)return;const o=e=>{const t=null==e?"":String(e);return t.includes('"')||t.includes("\t")||t.includes("\n")||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t};let a="";if(r&&ie&&de){const e=Math.min(ie.rowIndex,de.rowIndex),r=Math.max(ie.rowIndex,de.rowIndex),n=Math.min(ie.colIndex,de.colIndex),l=Math.max(ie.colIndex,de.colIndex);if(t){const e=[];for(let t=n;t<=l;t++){const r=tr[t];r&&e.push(o(r.header??r.key))}a+=e.join("\t")+"\n"}for(let t=e;t<=r;t++){const e=gr[t];if(!e)continue;const s=[];for(let t=n;t<=l;t++){const r=tr[t];r&&(O(e,r)?s.push(o(e[r.key])):s.push(""))}a+=s.join("\t"),t<r&&(a+="\n")}}else a=o(l[0].value);try{await navigator.clipboard.writeText(a)}catch{console.warn("Failed to write to clipboard")}if("function"==typeof vr.current){const e=r&&ie&&de?{rowStart:Math.min(ie.rowIndex,de.rowIndex),rowEnd:Math.max(ie.rowIndex,de.rowIndex),colStart:Math.min(ie.colIndex,de.colIndex),colEnd:Math.max(ie.colIndex,de.colIndex)}:null;try{vr.current({text:a,bounds:e,cells:l,isRectangular:!!e,isFocusedCell:!e})}catch{}}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[T,$,ie,de,ae,gr,tr,O,hr,ur,re]);const Tr=tr.reduce((e,t)=>e+(t.width||100),0);return o(()=>{1!==mt&&(_?.enabled&&"server"===_.mode?ct(1):ut())},[Re,De]),N.jsxs("div",{ref:ne,className:"border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden bg-white dark:bg-gray-900 h-full flex flex-col","data-grid-container":!0,children:[b&&w&&N.jsx(yr,{globalFilter:Re,filteredDataLength:Ae.length,totalDataLength:at.totalRows,paginationMode:_?.mode,selectedRowsCount:zt.size,showExport:v,columns:t,columnFilters:De,columnVisibility:We,onResetColumns:Je,exportOptions:{enabled:(ee?.enabled??!0)&&v,formats:ee?.formats??["xlsx"],filename:ee?.filename??"grid-data",onExport:Pt},customLeftContent:U,customRightContent:Y,onGlobalFilterChange:vt,onClearFilters:_t,onColumnFilter:Le,onColumnVisibilityChange:tt,columnOrder:_e,onColumnOrderChange:Ke,pinnedColumns:Ve,onScrollToColumn:e=>{const t=Wt.current,r=Ze.current;if(!t)return;const n=ur.get(e);if(null==n)return;const l=tr[n]?.width||100;let o=p?C:0;for(let e=0;e<n;e++)o+=tr[e]?.width||100;const a=o+l,s=t.clientWidth;if(o<t.scrollLeft)t.scrollTo({left:o,behavior:"smooth"});else if(a>t.scrollLeft+s)t.scrollTo({left:a-s,behavior:"smooth"});else{const e=Math.max(0,o-Math.max(0,(s-l)/2));t.scrollTo({left:e,behavior:"smooth"})}r&&(r.scrollLeft=t.scrollLeft)},density:pe,onDensityChange:Kt,showDensityControl:h}),N.jsxs("div",{className:"flex flex-col relative flex-1 min-h-50",children:[j&&("visible"===q||"auto"===q&&wt.columnKeys.length>0)&&N.jsx(je,{columns:t,groupedKeys:wt.columnKeys,onRemove:Ct,onReorder:St,onDropColumnKey:Nt,isAnyExpanded:wt.expanded.size>0,onToggleExpandAll:()=>{wt.expanded.size>0?At():Dt()}}),N.jsxs("div",{ref:Wt,className:"flex-1 overflow-auto relative [&::-webkit-scrollbar]:thin "+(T?"select-none":""),onScroll:Ut,children:[N.jsx("div",{className:"sticky top-0 z-3",children:N.jsx("div",{style:{minWidth:`${Tr+(p?C:0)}px`},children:(()=>{const t=nr,r=ar.filter(e=>!Et.has(e.key));return N.jsx(ye,{pinnedColumns:t,unpinnedColumns:r,hvPadLeft:ir,hvPadRight:cr,headerHeight:Me,sortConfig:ze,columnFilters:De,selectable:p,selectedRows:zt,totalRows:Ft.length,data:e,onSort:Ge,onColumnFilter:Le,onSelectAll:()=>It(zt.size!==Ft.length),onColumnResize:Ue,pinnedKeySet:Et,onColumnPin:et,groupable:j,groupedByColumn:wt.columnKeys[0]||null,groupedByColumns:wt.columnKeys,onGroupToggle:(e,t)=>t?Nt(e):Ct(e),onGroupBy:kt,onAutosizeColumn:qe,onAutosizeAllColumns:Xe,onResetColumns:Je,columnOrder:_e,onColumnOrderChange:Ke,paginationMode:_?.enabled?_.mode:null})})()})}),N.jsx("div",{style:{minWidth:`${Tr+(p?C:0)}px`,height:Vt?Ft.length*Ce+"px":"auto"},children:V||0!==Ft.length?N.jsx("div",{style:{transform:`translateY(${Vt?Ht.offsetY:0}px)`,willChange:"transform",contain:"content"},children:(()=>{const e=[];let n=[];const l=()=>{if(!n.length)return;const t=`chunk-${n[0]?.id}-${n.length}-${Ht.offsetY}`;e.push(N.jsx("div",{style:{opacity:V?.5:1},children:N.jsx(we,{data:n,columns:ar,selectedRows:zt,virtualized:!1,virtualizedRange:{startIndex:0,endIndex:n.length-1,offsetY:0},rowHeight:Ce,selectable:p,isRowSelectable:y,onRowSelect:$t,pinnedColumns:Et,hvPadLeft:ir,hvPadRight:cr,rowStyle:D,globalFilter:Re,onContextMenu:A,onRowDoubleClick:E,onRowClick:L,onCellClick:F,onCellContextMenu:z,isCellFocused:Lr,isCellSelected:Er,onCellMouseDown:zr,onCellMouseEnter:$r,getRowId:r})},t)),n=[]};for(const r of Gt)if(r._isGroupHeader)l(),e.push(N.jsx(ke,{row:r,isExpanded:wt.expanded.has(r._groupKey||""),onToggle:Mt,viewportWidth:le,selectable:p,rowHeight:Ce,getHeaderLabel:e=>t.find(t=>t.key===e)?.header||e,getValueLabel:(e,r)=>{const n=t.find(t=>t.key===e);if(n?.formatter)try{return n.formatter(r)}catch(e){return String(r??"")}return String(r??"")},renderGroupActions:te},r.id));else if(r._isGroupFooter)if(l(),"chips"===X){const t=tr.filter(e=>!!e.aggregate&&r._groupAgg&&void 0!==r._groupAgg[e.key]).map(e=>{const t=r._groupAgg[e.key],n=e.aggregateFormatter||e.formatter,l=n?(()=>{try{return n(t)}catch{return String(t)}})():String(t);return N.jsxs("span",{className:"px-2.5 py-1 rounded-md bg-blue-50 dark:bg-blue-900/40 text-blue-700 dark:text-blue-200 text-xs font-medium",title:`${e.header}`,children:[e.header,": ",l]},e.key)});e.push(N.jsx("div",{className:"sticky left-0 z-1",style:{minWidth:`${Tr+(p?C:0)}px`,height:`${Ce}px`},children:N.jsxs("div",{className:"flex items-center justify-between h-full border-t border-blue-200 dark:border-blue-800 bg-blue-50/60 dark:bg-blue-900/20 px-4",role:"contentinfo",children:[N.jsx("div",{className:"flex items-center gap-2 flex-wrap overflow-hidden",children:t.length?t:N.jsx("span",{className:"text-xs text-gray-500",children:"No aggregates"})}),N.jsx("span",{className:"text-[10px] uppercase tracking-wide text-blue-700 dark:text-blue-300",children:"Group Summary"})]})},r.id))}else e.push(N.jsx("div",{className:"sticky left-0 z-1 bg-blue-100 dark:bg-gray-900",style:{minWidth:`${Tr+(p?C:0)}px`,height:`${Ce}px`},children:N.jsxs("div",{className:"flex h-full border-t border-blue-200 dark:border-blue-800 bg-blue-50/60 dark:bg-blue-900/20",role:"contentinfo",children:[p&&N.jsx("div",{style:{width:C},className:"shrink-0"}),tr.map(e=>{const t=e.width||100,n=r._groupAgg?r._groupAgg[e.key]:void 0,l=e.aggregateFormatter||e.formatter,o=void 0===n?"":l?(()=>{try{return l(n)}catch{return n}})():n;let a;if("number"==typeof o)a=Number.isInteger(o)?String(o):o.toFixed(2);else if(isNaN(o)||""===o||null===o)a=String(o??"");else{const e=Number(o);a=Number.isInteger(e)?String(e):e.toFixed(2)}return N.jsx("div",{className:"px-2 text-xs font-medium text-blue-800 dark:text-blue-200 flex items-center overflow-hidden",style:{width:t,minWidth:t,maxWidth:t},title:a?`${e.header}: ${a}`:void 0,children:N.jsx("span",{className:"truncate w-full",children:a})},`agg-cell-${r._groupKey}-${e.key}`)})]})},r.id));else n.push(r);return l(),e})()}):N.jsx(N.Fragment,{})})]}),ht&&N.jsx("div",{className:"pointer-events-none absolute left-0 right-0 h-1 bg-gray-200 overflow-hidden z-30 "+(xt?"opacity-0 transition-opacity duration-200":"opacity-100"),style:{top:yt},children:N.jsx("div",{className:"h-full w-1/3 bg-blue-500 animate-[slide_1.2s_linear_infinite]"})}),!V&&0===Ft.length&&N.jsx("div",{className:"pointer-events-none absolute inset-0 z-0 flex items-center justify-center",children:N.jsx("div",{className:"pointer-events-auto",children:N.jsx(Ne,{hasFilters:!!Re||Object.keys(De).length>0,hasData:e.length>0})})})]}),dr&&N.jsx("div",{ref:Qe,className:"shrink-0 overflow-x-hidden overflow-y-visible [&::-webkit-scrollbar]:hidden",style:{scrollbarWidth:"none",msOverflowStyle:"none"},onWheel:Fr,children:N.jsx("div",{className:"bg-gray-50 dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700",style:{minWidth:`${Tr+(p?C:0)}px`,height:`${Ce}px`},children:N.jsx(S,{columns:tr,data:gr,selectable:p,rowHeight:Ce,pinnedColumns:Et})})}),N.jsx(Se,{paginationConfig:at,currentPage:at.currentPage,isServerLoading:it,selectedRowsCount:zt.size,totalDataLength:e.length,filteredDataLength:"server"===_?.mode?void 0:Ae.length,paginationMode:_.mode,onPageChange:ct,onPageSizeChange:dt}),fe&&N.jsx("div",{className:"fixed z-50 pointer-events-none select-none",style:{top:fe.y+12,left:fe.x+12},children:N.jsxs("div",{className:"px-2 py-1 rounded bg-gray-800 text-white text-xs shadow-lg opacity-90",children:[fe.rows," × ",fe.cols]})})]})});export{S as FooterAggregate,ye as GridHeader,we as GridRows,Er as KDGrid,Se as PaginationControls,yr as SearchToolbar,br as useAdvancedFiltering,Sr as usePagination,Rr as useSelection,Dr as useVirtualization};
1
+ import*as e from"react";import t,{memo as r,useMemo as n,useState as l,useEffect as o,useRef as a,useCallback as s,useLayoutEffect as i,useTransition as c,useDeferredValue as d,forwardRef as u,useImperativeHandle as m}from"react";import*as g from"react-dom";import{createPortal as h}from"react-dom";var f,x={exports:{}},p={};function y(){if(f)return p;f=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(t,r,n){var l=null;if(void 0!==n&&(l=""+n),void 0!==r.key&&(l=""+r.key),"key"in r)for(var o in n={},r)"key"!==o&&(n[o]=r[o]);else n=r;return{$$typeof:e,type:t,key:l,ref:void 0!==(r=n.ref)?r:null,props:n}}return p.Fragment=t,p.jsx=r,p.jsxs=r,p}var b,v,w={};function j(){return b||(b=1,"production"!==process.env.NODE_ENV&&function(){function e(t){if(null==t)return null;if("function"==typeof t)return t.$$typeof===S?null:t.displayName||t.name||null;if("string"==typeof t)return t;switch(t){case h:return"Fragment";case x:return"Profiler";case f:return"StrictMode";case v:return"Suspense";case j:return"SuspenseList";case C:return"Activity"}if("object"==typeof t)switch("number"==typeof t.tag&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),t.$$typeof){case g:return"Portal";case y:return t.displayName||"Context";case p:return(t._context.displayName||"Context")+".Consumer";case b:var r=t.render;return(t=t.displayName)||(t=""!==(t=r.displayName||r.name||"")?"ForwardRef("+t+")":"ForwardRef"),t;case k:return null!==(r=t.displayName||null)?r:e(t.type)||"Memo";case N:r=t._payload,t=t._init;try{return e(t(r))}catch(e){}}return null}function r(e){return""+e}function n(e){try{r(e);var t=!1}catch(e){t=!0}if(t){t=console;var n="function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t.error.call(t,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",n),r(e)}}function l(t){if(t===h)return"<>";if("object"==typeof t&&null!==t&&t.$$typeof===N)return"<...>";try{var r=e(t);return r?"<"+r+">":"<...>"}catch(e){return"<...>"}}function o(){return Error("react-stack-top-frame")}function a(){var t=e(this.type);return A[t]||(A[t]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),void 0!==(t=this.props.ref)?t:null}function s(t,r,l,o,s,c){var u,g=r.children;if(void 0!==g)if(o)if(D(g)){for(o=0;o<g.length;o++)i(g[o]);Object.freeze&&Object.freeze(g)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else i(g);if(R.call(r,"key")){g=e(t);var h=Object.keys(r).filter(function(e){return"key"!==e});o=0<h.length?"{key: someKey, "+h.join(": ..., ")+": ...}":"{key: someKey}",z[g+o]||(h=0<h.length?"{"+h.join(": ..., ")+": ...}":"{}",console.error('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',o,g,h,g),z[g+o]=!0)}if(g=null,void 0!==l&&(n(l),g=""+l),function(e){if(R.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(r)&&(n(r.key),g=""+r.key),"key"in r)for(var f in l={},r)"key"!==f&&(l[f]=r[f]);else l=r;return g&&function(e,t){function r(){d||(d=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}r.isReactWarning=!0,Object.defineProperty(e,"key",{get:r,configurable:!0})}(l,"function"==typeof t?t.displayName||t.name||"Unknown":t),function(e,t,r,n,l,o){var s=r.ref;return e={$$typeof:m,type:e,key:t,props:r,_owner:n},Object.defineProperty(e,"ref",null!==(void 0!==s?s:null)?{enumerable:!1,get:a}:{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:l}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:o}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}(t,g,l,null===(u=M.A)?null:u.getOwner(),s,c)}function i(e){c(e)?e._store&&(e._store.validated=1):"object"==typeof e&&null!==e&&e.$$typeof===N&&("fulfilled"===e._payload.status?c(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function c(e){return"object"==typeof e&&null!==e&&e.$$typeof===m}var d,u=t,m=Symbol.for("react.transitional.element"),g=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),p=Symbol.for("react.consumer"),y=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),k=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),C=Symbol.for("react.activity"),S=Symbol.for("react.client.reference"),M=u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R=Object.prototype.hasOwnProperty,D=Array.isArray,E=console.createTask?console.createTask:function(){return null},A={},L=(u={react_stack_bottom_frame:function(e){return e()}}).react_stack_bottom_frame.bind(u,o)(),F=E(l(o)),z={};w.Fragment=h,w.jsx=function(e,t,r){var n=1e4>M.recentlyCreatedOwnerStacks++;return s(e,t,r,!1,n?Error("react-stack-top-frame"):L,n?E(l(e)):F)},w.jsxs=function(e,t,r){var n=1e4>M.recentlyCreatedOwnerStacks++;return s(e,t,r,!0,n?Error("react-stack-top-frame"):L,n?E(l(e)):F)}}()),w}function k(){return v||(v=1,x.exports="production"===process.env.NODE_ENV?y():j()),x.exports}var N=k();const C=48,S=r(({columns:e,data:t,selectable:r,rowHeight:l,pinnedColumns:o=new Set})=>{const a=n(()=>{const r={},n=e.filter(e=>e.footerAggregate);return 0===n.length||n.forEach(e=>{const n=t.map(t=>t[e.key]);let l=null;if("function"==typeof e.footerAggregate)try{l=e.footerAggregate(n)}catch(t){console.warn(`Error computing custom footer aggregate for column ${e.key}:`,t),l=null}else{const r=e=>!!(/^\d{4}-\d{2}-\d{2}$/.test(e)||/^\d{2}-\d{2}-\d{4}$/.test(e)||/^\d{4}\/\d{2}\/\d{2}$/.test(e)||/^\d{2}\/\d{2}\/\d{4}$/.test(e)||(e.includes("-")||e.includes("/"))&&Number.isFinite(Date.parse(e))),o=n.map(e=>{if("number"==typeof e)return e;if(null==e)return NaN;const t=String(e);if(r(t))return NaN;const n=parseFloat(t.replace(/,/g,""));return Number.isFinite(n)?n:NaN}).filter(e=>Number.isFinite(e)),a=()=>n.map(e=>{if(e instanceof Date)return e.getTime();if("string"==typeof e||"number"==typeof e){const t=Date.parse(String(e));return Number.isFinite(t)?t:NaN}return NaN}).filter(e=>Number.isFinite(e));switch(e.footerAggregate){case"count":l=t.length;break;case"sum":o.length&&(l=o.reduce((e,t)=>e+t,0));break;case"avg":o.length&&(l=o.reduce((e,t)=>e+t,0)/o.length);break;case"min":if(o.length)l=Math.min(...o);else{const e=a();e.length&&(l=new Date(Math.min(...e)))}break;case"max":if(o.length)l=Math.max(...o);else{const e=a();e.length&&(l=new Date(Math.max(...e)))}break;default:l=null}}null!=l&&(r[e.key]=l)}),r},[e,t]);if(!e.some(e=>e.footerAggregate))return null;const s=e.reduce((e,t)=>e+t.width,0),i=n(()=>{const t=new Map,n=e.filter(e=>o.has(e.key)).map(e=>e.key);let l=r?C:0;for(const r of n)t.set(r,l),l+=e.find(e=>e.key===r)?.width||100;return t},[e,o,r]);return N.jsxs("div",{className:"flex h-full",style:{minWidth:`${s+(r?C:0)}px`,height:`${l}px`},children:[r&&N.jsx("div",{className:"w-12 p-3 border-r border-gray-200 dark:border-gray-700 flex items-center justify-center sticky left-0 bg-white dark:bg-gray-900 z-30",style:{height:`${l}px`},children:N.jsx("span",{className:"text-xs font-medium text-gray-600 dark:text-gray-300",children:"Total"})},"select-footer-cell"),e.map(e=>{const t=e.width,r=a[e.key],n=e.footerAggregate&&void 0!==r;let s="";if(n){const t=e.footerAggregateFormatter||e.formatter;if(t)try{s=t(r)}catch{s=String(r)}else s="number"==typeof r?r%1==0?r.toString():r.toFixed(2):String(r?.toFixed)}const c=o.has(e.key),d=c&&i.get(e.key)||0;return N.jsx("div",{className:`border-r border-gray-200 dark:border-gray-700 last:border-r-0 ${e.noPadding?"p-0":"p-3"} text-sm flex items-center font-semibold text-gray-700 dark:text-gray-200 overflow-hidden ${"center"===e.align?"justify-center":"right"===e.align?"justify-end":"justify-start"} ${"center"===e.align?"text-center":"right"===e.align?"text-right":"text-left"} ${c?"sticky bg-white dark:bg-gray-900 z-20":""}`,style:{width:`${t}px`,minWidth:`${t}px`,maxWidth:`${t}px`,left:c?`${d}px`:"auto",height:`${l}px`},title:n?`${e.header}: ${s}`:void 0,children:n&&N.jsx("span",{className:"truncate w-full",children:s})},e.key)})]})},(e,t)=>{if(e.selectable!==t.selectable)return!1;if(e.rowHeight!==t.rowHeight)return!1;if(e.getRowId!==t.getRowId)return!1;if(e.columns.length!==t.columns.length)return!1;for(let r=0;r<e.columns.length;r++){const n=e.columns[r],l=t.columns[r];if(n.key!==l.key||n.width!==l.width||n.footerAggregate!==l.footerAggregate)return!1}if(e.data.length!==t.data.length)return!1;const r=(e,t,r)=>r?r(e):void 0!==e.id?e.id:t,n=e.data.length>0?r(e.data[0],0,e.getRowId):void 0,l=t.data.length>0?r(t.data[0],0,t.getRowId):void 0,o=e.data.length-1,a=t.data.length-1,s=e.data.length>0?r(e.data[o],o,e.getRowId):void 0,i=t.data.length>0?r(t.data[a],a,t.getRowId):void 0;return n===l&&s===i&&e.pinnedColumns?.size===t.pinnedColumns?.size}),M=({size:e=16,children:t,...r})=>N.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",...r,children:t}),R=e=>N.jsx(M,{...e,children:N.jsx("polyline",{points:"15 18 9 12 15 6"})}),D=e=>N.jsx(M,{...e,children:N.jsx("polyline",{points:"9 18 15 12 9 6"})}),E=e=>N.jsx(M,{...e,children:N.jsx("polyline",{points:"6 9 12 15 18 9"})}),A=e=>N.jsxs(M,{...e,children:[N.jsx("polyline",{points:"11 17 6 12 11 7"}),N.jsx("polyline",{points:"18 17 13 12 18 7"})]}),L=e=>N.jsxs(M,{...e,children:[N.jsx("polyline",{points:"13 17 18 12 13 7"}),N.jsx("polyline",{points:"6 17 11 12 6 7"})]}),F=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),N.jsx("polyline",{points:"5 12 12 5 19 12"})]}),z=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),N.jsx("polyline",{points:"19 12 12 19 5 12"})]}),$=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"m21 16-4 4-4-4"}),N.jsx("path",{d:"M17 20V4"}),N.jsx("path",{d:"m3 8 4-4 4 4"}),N.jsx("path",{d:"M7 4v16"})]}),I=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),N.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),T=e=>N.jsx(M,{...e,children:N.jsx("polyline",{points:"20 6 9 17 4 12"})}),O=e=>N.jsxs(M,{...e,children:[N.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),N.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),P=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),N.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]}),_=e=>N.jsxs(M,{...e,children:[N.jsx("polyline",{points:"3 6 5 6 21 6"}),N.jsx("path",{d:"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"}),N.jsx("path",{d:"M10 11v6"}),N.jsx("path",{d:"M14 11v6"}),N.jsx("path",{d:"M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2"})]}),V=e=>N.jsxs(M,{...e,children:[N.jsx("polyline",{points:"21 8 21 21 3 21 3 8"}),N.jsx("rect",{x:"1",y:"3",width:"22",height:"5"}),N.jsx("line",{x1:"10",y1:"12",x2:"14",y2:"12"})]}),K=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),N.jsx("polyline",{points:"7 10 12 15 17 10"}),N.jsx("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]}),B=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),N.jsx("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),N.jsx("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]}),W=e=>N.jsx(M,{...e,children:N.jsx("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"})}),H=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M13.013 3H2l8 9.46V19l4 2v-6.54l.9-1.055"}),N.jsx("line",{x1:"22",y1:"3",x2:"11",y2:"14"})]}),G=e=>N.jsxs(M,{...e,children:[N.jsx("circle",{cx:"12",cy:"12",r:"3"}),N.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]}),Y=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"12",y1:"17",x2:"12",y2:"22"}),N.jsx("path",{d:"M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24Z"})]}),U=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"2",y1:"2",x2:"22",y2:"22"}),N.jsx("line",{x1:"12",y1:"17",x2:"12",y2:"22"}),N.jsx("path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V17h12"}),N.jsx("path",{d:"M15 9.34V6h1a2 2 0 0 0 0-4H7.89"})]}),q=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M3 7V5c0-1.1.9-2 2-2h2"}),N.jsx("path",{d:"M17 3h2c1.1 0 2 .9 2 2v2"}),N.jsx("path",{d:"M21 17v2c0 1.1-.9 2-2 2h-2"}),N.jsx("path",{d:"M7 21H5c-1.1 0-2-.9-2-2v-2"}),N.jsx("rect",{x:"7",y:"7",width:"10",height:"10",rx:"1"})]}),X=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M3 7V5c0-1.1.9-2 2-2h2"}),N.jsx("path",{d:"M17 3h2c1.1 0 2 .9 2 2v2"}),N.jsx("path",{d:"M21 17v2c0 1.1-.9 2-2 2h-2"}),N.jsx("path",{d:"M7 21H5c-1.1 0-2-.9-2-2v-2"}),N.jsx("rect",{x:"7",y:"7",width:"4",height:"4",rx:"1"}),N.jsx("rect",{x:"13",y:"13",width:"4",height:"4",rx:"1"})]}),J=e=>N.jsxs(M,{...e,children:[N.jsx("circle",{cx:"12",cy:"12",r:"1"}),N.jsx("circle",{cx:"19",cy:"12",r:"1"}),N.jsx("circle",{cx:"5",cy:"12",r:"1"})]}),Z=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),N.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),Q=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"}),N.jsx("path",{d:"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"}),N.jsx("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}),ee=e=>N.jsxs(M,{...e,children:[N.jsx("circle",{cx:"11",cy:"11",r:"8"}),N.jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),te=e=>N.jsxs(M,{...e,children:[N.jsx("ellipse",{cx:"12",cy:"5",rx:"9",ry:"3"}),N.jsx("path",{d:"M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5"}),N.jsx("path",{d:"M3 12c0 1.66 4.03 3 9 3s9-1.34 9-3"})]}),re=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),N.jsx("polyline",{points:"14 2 14 8 20 8"}),N.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),N.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),N.jsx("polyline",{points:"10 9 9 9 8 9"})]}),ne=e=>N.jsxs(M,{...e,children:[N.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),N.jsx("path",{d:"M3 9h18"}),N.jsx("path",{d:"M3 15h18"}),N.jsx("path",{d:"M9 3v18"})]}),le=e=>N.jsxs(M,{...e,children:[N.jsx("path",{d:"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"}),N.jsx("circle",{cx:"9",cy:"7",r:"4"}),N.jsx("path",{d:"M23 21v-2a4 4 0 0 0-3-3.87"}),N.jsx("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"})]}),oe=e=>N.jsxs(M,{...e,children:[N.jsx("line",{x1:"2",y1:"12",x2:"6",y2:"12"}),N.jsx("line",{x1:"18",y1:"12",x2:"22",y2:"12"}),N.jsx("line",{x1:"12",y1:"2",x2:"12",y2:"6"}),N.jsx("line",{x1:"12",y1:"18",x2:"12",y2:"22"}),N.jsx("circle",{cx:"12",cy:"12",r:"4"}),N.jsx("circle",{cx:"12",cy:"12",r:"1",fill:"currentColor"})]}),ae=e=>N.jsx(M,{...e,children:N.jsx("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})}),se=({value:e,onChange:t,placeholder:r="Enter text to filter..."})=>{const[n,o]=l(String(e?.value??"")),[a,s]=l(e?.operator||"contains");return N.jsxs("div",{className:"space-y-3",children:[N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Filter Type"}),N.jsxs("select",{value:a,onChange:e=>(e=>{const r=e;s(r),n.trim()&&t({type:"text",value:n,operator:r})})(e.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[N.jsx("option",{value:"contains",children:"Contains"}),N.jsx("option",{value:"equals",children:"Equals"}),N.jsx("option",{value:"startsWith",children:"Starts with"}),N.jsx("option",{value:"endsWith",children:"Ends with"})]})]}),N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Text Value"}),N.jsx("input",{type:"text",value:n,onChange:e=>{return o(r=e.target.value),void(r.trim()?t({type:"text",value:r,operator:a}):t(null));var r},placeholder:r,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]})]})},ie=({value:e,onChange:t,min:r,max:n})=>{const[o,a]=l(String(e?.value??"")),[s,i]=l(String(e?.secondValue??"")),[c,d]=l(e?.operator||"equals"),u=(e,r=!1)=>{r?i(e):a(e);const n=parseFloat(e),l=parseFloat(s);"between"===c?isNaN(n)||isNaN(l)?t(null):t({type:"number",value:Math.min(n,l),secondValue:Math.max(n,l),operator:"between"}):isNaN(n)?t(null):t({type:"number",value:n,operator:c})};return N.jsxs("div",{className:"space-y-3",children:[N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Filter Type"}),N.jsxs("select",{value:c,onChange:e=>(e=>{const r=e;if(d(r),"between"===r){const e=parseFloat(o),r=parseFloat(s);isNaN(e)||isNaN(r)||t({type:"number",value:Math.min(e,r),secondValue:Math.max(e,r),operator:"between"})}else{const e=parseFloat(o);isNaN(e)||t({type:"number",value:e,operator:r})}})(e.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[N.jsx("option",{value:"equals",children:"Equals"}),N.jsx("option",{value:"gt",children:"Greater than"}),N.jsx("option",{value:"gte",children:"Greater than or equal"}),N.jsx("option",{value:"lt",children:"Less than"}),N.jsx("option",{value:"lte",children:"Less than or equal"}),N.jsx("option",{value:"between",children:"Between"})]})]}),N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"between"===c?"From Value":"Number Value"}),N.jsx("input",{type:"number",value:o,onChange:e=>u(e.target.value),min:r,max:n,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]}),"between"===c&&N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"To Value"}),N.jsx("input",{type:"number",value:s,onChange:e=>u(e.target.value,!0),min:r,max:n,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]})]})},ce=({name:e,label:t,value:r,onChange:n,className:l=""})=>N.jsxs("div",{className:`space-y-1 ${l}`,children:[t&&N.jsx("label",{className:"text-sm font-medium text-gray-700",children:t}),N.jsx("input",{type:"date",name:e,value:r||"",onChange:e=>n(e.target.value||null),className:"w-full px-3 py-2 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]}),de=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,ue=e=>{const[t,r,n]=e.split("-").map(Number);return t&&r&&n?new Date(t,r-1,n):new Date(NaN)},me=e=>`${String(e.getDate()).padStart(2,"0")}-${String(e.getMonth()+1).padStart(2,"0")}-${e.getFullYear()}`,ge=({value:e,onChange:t,min:r,max:a})=>{const s=e=>{if(!e)return null;if(e instanceof Date)return isNaN(e.getTime())?null:e;try{const t=ue(String(e));return isNaN(t.getTime())?null:t}catch(t){const r=new Date(e);return isNaN(r.getTime())?null:r}},i=e=>e?de(e):"",[c,d]=l(s(e?.value)),[u,m]=l("between"===e?.operator?s(e?.secondValue??e?.value):null),[g,h]=l(e?.operator||"between");o(()=>{h(e?.operator||"between"),d(s(e?.value)),m("between"===e?.operator?s(e?.secondValue??e?.value):null)},[e?.value,e?.secondValue,e?.operator]),o(()=>{"between"===g&&!u&&c&&m(c)},[g,c,u]);const f=(e,t,r)=>e?t&&e<t||r&&e>r?null:e:null,x=(e,r=!1)=>{const n=r?c:e,l=r?e:u,o="between"===g&&u?u:y,a=r?f(e,c??p??void 0,y):f(e,p,o);if(r?m(a):d(a),"between"===g)if(n&&l){const e=n>=l?n:l;t({type:"date",value:i(n<=l?n:l),secondValue:i(e),operator:"between"})}else t(null);else t(a?{type:"date",value:i(a),operator:g}:null)},p=n(()=>r?new Date(r):void 0,[r]),y=n(()=>a?new Date(a):void 0,[a]);return N.jsxs("div",{className:"space-y-3",children:[N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Filter Type"}),N.jsxs("select",{value:g,onChange:e=>(e=>{const r=e;h(r),"between"===r?c&&u&&t({type:"date",value:c<=u?c:u,secondValue:c>=u?c:u,operator:"between"}):c&&t({type:"date",value:c,operator:r})})(e.target.value),className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[N.jsx("option",{value:"equals",children:"On Date"}),N.jsx("option",{value:"gt",children:"After"}),N.jsx("option",{value:"gte",children:"On or After"}),N.jsx("option",{value:"lt",children:"Before"}),N.jsx("option",{value:"lte",children:"On or Before"}),N.jsx("option",{value:"between",children:"Between Dates"})]})]}),N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"between"===g?"From Date":"Date"}),N.jsx(ce,{name:"date_filter_start",value:c?de(c):null,onChange:e=>x(e?ue(e):null,!1),className:"w-full"})]}),"between"===g&&N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"To Date"}),N.jsx(ce,{name:"date_filter_end",value:u?de(u):null,onChange:e=>x(e?ue(e):null,!0),className:"w-full"})]})]})},he=({value:e,onChange:t,options:r,data:a,columnKey:s})=>{const[i,c]=l(""),[d,u]=l(new Set(Array.isArray(e?.value)?e.value:[]));o(()=>{u(new Set(Array.isArray(e?.value)?e.value:[]))},[e]);const m=n(()=>{let e=[];const t=e=>null==e||""===e||"string"==typeof e&&""===e.trim();if(r&&r.length>0)e=r;else{const r=a.map(e=>{const r=e[s];return t(r)?null:r});e=[...new Set(r)].map(e=>({label:null===e?"Blank":String(e),value:e}))}const n=e.map(e=>{const r=t(e.value);return{...e,label:r?"Blank":e.label,value:r?null:e.value,isBlank:r}});return Array.from(new Map(n.map(e=>[e.isBlank?"__blank__":e.value,e])).values()).sort((e,t)=>e.isBlank&&!t.isBlank?1:!e.isBlank&&t.isBlank?-1:String(e.label).localeCompare(String(t.label)))},[r,a,s]),g=n(()=>{if(!i)return m;const e=i.toLowerCase();return m.filter(t=>t.label.toLowerCase().includes(e)||String(t.value).toLowerCase().includes(e)||"blank"===e&&t.isBlank)},[m,i]);return N.jsxs("div",{className:"space-y-3",children:[N.jsxs("div",{className:"relative",children:[N.jsx(ee,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4"}),N.jsx("input",{type:"text",value:i,onChange:e=>c(e.target.value),placeholder:"Search options...",className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500"})]}),N.jsxs("div",{className:"flex justify-between items-center text-sm",children:[N.jsxs("span",{className:"text-gray-600",children:[d.size," of ",m.length," selected"]}),N.jsxs("div",{className:"flex gap-2",children:[N.jsx("button",{onClick:()=>{const e=new Set(g.map(e=>e.value));u(e),t({type:"multiselect",value:Array.from(e),operator:"equals"})},className:"text-blue-600 hover:text-blue-800 transition-colors",children:"Select All"}),N.jsx("button",{onClick:()=>{u(new Set),t(null)},className:"text-gray-600 hover:text-gray-800 transition-colors",children:"Clear All"})]})]}),N.jsx("div",{className:"max-h-48 overflow-y-auto border border-gray-200 rounded-md",children:0===g.length?N.jsx("div",{className:"p-3 text-sm text-gray-500 text-center",children:"No options found"}):g.map((e,r)=>{const n=d.has(e.value);return N.jsxs("div",{onClick:()=>(e=>{const r=new Set(d);r.has(e)?r.delete(e):r.add(e),u(r),t(r.size>0?{type:"multiselect",value:Array.from(r),operator:"equals"}:null)})(e.value),className:"flex items-center gap-3 p-2 cursor-pointer hover:bg-gray-50 transition-colors "+(n?"bg-blue-50":""),children:[N.jsx("div",{className:"w-4 h-4 border-2 rounded flex items-center justify-center "+(n?"bg-blue-600 border-blue-600 text-white":"border-gray-300"),children:n&&N.jsx(T,{className:"w-3 h-3"})}),N.jsx("span",{className:`text-sm ${n?"text-blue-900 font-medium":"text-gray-700"} ${e.isBlank?"italic text-gray-500":""}`,children:e.label})]},r)})})]})},fe=({value:e,onChange:t})=>{const[r,n]=l(void 0!==e?.value?String(e.value):"");return N.jsx("div",{className:"space-y-3",children:N.jsxs("div",{children:[N.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Boolean Value"}),N.jsxs("select",{value:r,onChange:e=>{return n(r=e.target.value),void t(""===r?null:{type:"boolean",value:"true"===r,operator:"equals"});var r},className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500",children:[N.jsx("option",{value:"",children:"All values"}),N.jsx("option",{value:"true",children:"True"}),N.jsx("option",{value:"false",children:"False"})]})]})})},xe=({column:e,data:t,value:r,onChange:l})=>{const o=n(()=>{if("object"==typeof e.filterable)return e.filterable;const r=t.slice(0,100).map(t=>t[e.key]).filter(e=>null!=e);if(0===r.length)return{type:"text"};const n=r[0];if("boolean"==typeof n)return{type:"boolean"};if("number"==typeof n)return{type:"number"};if(n instanceof Date||"string"==typeof n&&!isNaN(Date.parse(n)))return{type:"date"};const l=[...new Set(r)];return l.length<=20?{type:"multiselect",options:l.map(e=>({label:String(e),value:e}))}:{type:"text"}},[e.filterable,e.key,t]);switch(o.type){case"text":return N.jsx(se,{value:r,onChange:l,placeholder:o.placeholder});case"number":return N.jsx(ie,{value:r,onChange:l,min:o.min,max:o.max});case"date":return N.jsx(ge,{value:r,onChange:l,min:o.min,max:o.max});case"multiselect":return N.jsx(he,{value:r,onChange:l,options:o.options||[],data:t,columnKey:e.key});case"boolean":return N.jsx(fe,{value:r,onChange:l});default:return null}},pe=({pinnedColumns:e,unpinnedColumns:r,hvPadLeft:n=0,hvPadRight:a=0,headerHeight:s,sortConfig:i,columnFilters:c,selectable:d,selectedRows:u,totalRows:m,data:g,onSort:h,onColumnFilter:f,onSelectAll:x,onColumnResize:p,pinnedKeySet:y=new Set,onColumnPin:b,groupable:v=!1,groupedByColumn:w,onGroupBy:j,groupedByColumns:k=[],onGroupToggle:S,onAutosizeColumn:M,onAutosizeAllColumns:R,onResetColumns:D,columnOrder:E,onColumnOrderChange:A,paginationMode:L="client"})=>{const I=t.useMemo(()=>[...e,...r],[e,r]),[T,O]=l(null),[P,_]=l(null),[V,K]=l(null),[G,J]=l(0),[Z,Q]=l(0),[ee,te]=l("menu"),[re,ne]=l(null),[le,oe]=l(!1);o(()=>{oe("ontouchstart"in window||navigator.maxTouchPoints>0||window.matchMedia("(pointer: coarse)").matches)},[]);const[ae,se]=l(null),[ie,ce]=l(null),de=u.size===m&&m>0,ue=u.size>0&&u.size<m,me=(e,t)=>{if(t.stopPropagation(),T===e)O(null);else{O(e),te("menu"),ne(c[e]||null);const r=t.currentTarget.getBoundingClientRect(),n=t.currentTarget.closest("[data-grid-container]"),l=n?n.getBoundingClientRect():new DOMRect(0,0,window.innerWidth,window.innerHeight),o=10,a=Math.max(l.left+o,Math.min(r.left,l.right-320-o));_({top:r.bottom+4,left:a,containerRect:l})}},ge=e=>{f(e,re||null),O(null)},he=e=>null!=c[e],fe=(t,n)=>{n.preventDefault(),K(t),J(n.clientX);const l=[...e,...r].find(e=>e.key===t);Q(l?.width||100)},pe=e=>{if(!V||!p)return;const t=Math.max(50,Z+(e.clientX-G));p(V,t)},ye=()=>{K(null),J(0),Q(0)},[be,ve]=l(null),[we,je]=l(null),ke=(e,t)=>{ve(e),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e)},Ne=(e,t)=>{t.preventDefault(),t.dataTransfer.dropEffect="move";const r=t.currentTarget.getBoundingClientRect();je({key:e,position:t.clientX<r.left+r.width/2?"before":"after"})},Ce=e=>{const t=be;if(!t||t===e)return;if(y.has(t)!==y.has(e))return ve(null),void je(null);const r=we?.key!==e||"before"===we?.position,n=E.filter(e=>e!==t);let l=n.indexOf(e);if(-1===l)return A(n),ve(null),void je(null);r||(l+=1),n.splice(l,0,t),A(n),ve(null),je(null)},Se=()=>{ve(null),je(null)},Me=(e,t)=>{se(e),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e)},Re=(e,t)=>{t.preventDefault(),t.dataTransfer.dropEffect="move";const r=t.currentTarget.getBoundingClientRect();ce({key:e,position:t.clientY<r.top+r.height/2?"before":"after"})},De=e=>{const t=ae;if(!t||t===e)return;if(y.has(t)!==y.has(e))return se(null),void ce(null);const r=ie?.key!==e||"before"===ie?.position,n=E.filter(e=>e!==t);let l=n.indexOf(e);if(-1===l)return A(n),se(null),void ce(null);r||(l+=1),n.splice(l,0,t),A(n),se(null),ce(null)},Ee=()=>{se(null),ce(null)};return o(()=>{if(V)return document.addEventListener("mousemove",pe),document.addEventListener("mouseup",ye),document.body.style.cursor="col-resize",document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",pe),document.removeEventListener("mouseup",ye),document.body.style.cursor="",document.body.style.userSelect=""}},[V,G,Z,p]),o(()=>{const e=e=>{T&&!e.target.closest("[data-column-menu]")&&O(null)};if(T)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[T]),N.jsx(N.Fragment,{children:N.jsx("div",{className:"bg-blue-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700",style:{height:s},role:"row","aria-label":"Column headers",children:N.jsxs("div",{className:"flex h-full",children:[d&&N.jsx("div",{className:"px-3 border-r border-gray-200 dark:border-gray-700 flex items-center justify-center bg-blue-50 dark:bg-gray-800 sticky left-0 z-3 h-full",style:{width:C,height:s},role:"columnheader","aria-label":"Select all rows",children:N.jsx("input",{type:"checkbox",checked:de,ref:e=>{e&&(e.indeterminate=ue)},onChange:x,onKeyDown:e=>{" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),x())},className:"rounded border-gray-300 dark:border-gray-600 text-blue-600 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50 h-4 w-4 transition-all duration-150","aria-label":de?"Deselect all rows":ue?`${u.size} rows selected. Click to select all`:"Select all rows",title:de?`Deselect all ${m} rows`:ue?`${u.size} of ${m} rows selected`:`Select all ${m} rows`})}),e.map((t,r)=>{const n=y.has(t.key),l=e.filter(e=>y.has(e.key)).map(e=>e.key),o=l.indexOf(t.key),a=n?l.slice(0,o).reduce((t,r)=>{const n=e.find(e=>e.key===r);return t+(n?.width||100)},d?C:0):0,c="center"===t.headerAlign?"justify-center":"right"===t.headerAlign?"justify-end":"justify-start",u=!1!==t.sortable;return N.jsxs("div",{className:`flex-none border-r border-gray-200 dark:border-gray-700 last:border-r-0 relative ${n?"bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-700 sticky z-2":""} `,style:{width:t.width||100,left:n?`${a}px`:"auto",height:s},"data-column-key":t.key,draggable:!0,onDragStart:e=>ke(t.key,e),onDragOver:e=>Ne(t.key,e),onDrop:()=>Ce(t.key),onDragEnd:Se,children:[we?.key===t.key&&N.jsx("div",{className:"absolute top-0 bottom-0 w-0.5 bg-blue-600 z-4",style:{left:"before"===we?.position?0:void 0,right:"after"===we?.position?0:void 0}}),N.jsx("div",{className:"px-3 h-full",children:N.jsxs("div",{className:"flex items-center justify-between gap-1 group h-full",children:[N.jsxs("div",{className:`flex items-center min-w-0 flex-1 ${c} ${u?"cursor-pointer hover:text-blue-600":""}`,onClick:()=>u&&h(t.key),children:[N.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[he(t.key)&&N.jsx("div",{className:"w-2 h-2 bg-red-500 rounded-full shrink-0",title:"Filter applied"}),N.jsx("span",{className:"font-medium text-gray-900 dark:text-gray-100 text-sm truncate min-w-0",children:t.header})]}),u&&i.key===t.key&&N.jsx("div",{className:"ml-1 shrink-0 pointer-events-none select-none",children:N.jsx("asc"===i.direction?F:z,{className:"w-3 h-3 text-blue-600 dark:text-blue-400"})})]}),(t.filterable||b||v)&&N.jsxs("div",{className:"relative "+(T===t.key||le?"block":"hidden group-hover:block"),"data-column-menu":!0,children:[N.jsx("button",{className:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded shrink-0",onClick:e=>me(t.key,e),"data-menu-trigger":!0,children:N.jsx(B,{className:"w-4 h-4 text-gray-500 dark:text-gray-400"})}),T===t.key&&P&&N.jsxs("div",{className:"fixed bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-md shadow-lg z-1000 w-[320px] overflow-auto",style:{top:`${P.top}px`,left:`${P.left}px`,maxHeight:`${Math.max(160,P.containerRect.bottom-12-P.top)}px`},"data-column-menu":!0,children:[N.jsxs("div",{className:"flex items-center border-b border-gray-200 dark:border-gray-700",children:[N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("menu"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("menu"),children:N.jsx(B,{className:"w-4 h-4"})}),t.filterable&&N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("filter"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("filter"),children:N.jsx(W,{className:"w-4 h-4"})}),N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("reorder"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("reorder"),children:N.jsx($,{className:"w-4 h-4"})})]}),"menu"===ee&&N.jsxs("div",{className:"py-1",children:[b&&(w===t.key?N.jsxs("div",{className:"w-full px-3 py-2 text-left text-sm flex items-center gap-2 text-blue-600",children:[N.jsx(Y,{className:"w-4 h-4"}),"Pinned by grouping"]}):N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50 flex items-center gap-2",onClick:e=>{e.stopPropagation(),O(null),b?.(t.key,!y.has(t.key))},children:y.has(t.key)?N.jsxs(N.Fragment,{children:[N.jsx(U,{className:"w-4 h-4"}),"Unpin Column"]}):N.jsxs(N.Fragment,{children:[N.jsx(Y,{className:"w-4 h-4"}),"Pin Column"]})})),M&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{M?.(t.key),O(null)},children:"Autosize This Column"}),R&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{R?.(),O(null)},children:"Autosize All Columns"}),v&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50 flex items-center gap-2",onClick:e=>{e.stopPropagation(),O(null);const r=k?.includes(t.key)||w===t.key;S?S(t.key,!r):j?.(r?null:t.key)},children:w===t.key||k?.includes(t.key)?N.jsxs(N.Fragment,{children:[N.jsx(X,{className:"w-4 h-4"}),"Ungroup"]}):N.jsxs(N.Fragment,{children:[N.jsx(q,{className:"w-4 h-4"}),"Group by ",t.header]})}),D&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{D?.(),O(null)},children:"Reset Columns"})]}),"filter"===ee&&N.jsxs("div",{className:"p-3 w-full",children:[he(t.key)&&N.jsxs("button",{className:"mb-2 text-xs text-red-600 hover:underline flex items-center gap-1",onClick:()=>{ne(null),f(t.key,null),O(null)},children:[N.jsx(H,{className:"w-3 h-3"})," Clear Filter"]}),N.jsx("div",{className:"max-h-75 overflow-auto pr-1",children:N.jsx(xe,{column:t,data:g,value:re,onChange:e=>{ne(e),"server"!==L&&f(t.key,e)}})}),"server"===L?N.jsxs("div",{className:"flex justify-end gap-2 mt-3",children:[N.jsx("button",{className:"px-3 py-1.5 text-sm bg-gray-100 text-gray-700 rounded-md hover:bg-gray-200",onClick:()=>O(null),children:"Cancel"}),N.jsx("button",{className:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded-md hover:bg-blue-700",onClick:()=>ge(t.key),children:"Apply"})]}):N.jsx("div",{className:"flex justify-end mt-3",children:N.jsx("button",{className:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded-md hover:bg-blue-700",onClick:()=>O(null),children:"Close"})})]}),"reorder"===ee&&N.jsxs("div",{className:"px-3 py-2",children:[N.jsx("div",{className:"text-xs font-medium text-gray-500 mb-1",children:"Reorder Columns"}),N.jsx("div",{className:"max-h-60 overflow-auto border border-gray-200 rounded-md",children:[...E.map(e=>I.find(t=>t.key===e)).filter(Boolean),...I.filter(e=>!E.includes(e.key))].map(e=>{const t=y.has(e.key);return N.jsxs("div",{className:`flex items-center justify-between px-2 py-1 text-sm bg-white hover:bg-gray-50 border-b last:border-b-0 relative ${ae===e.key?"opacity-60":""} ${t?"bg-blue-50/40":""}`,draggable:!0,onDragStart:t=>Me(e.key,t),onDragOver:t=>Re(e.key,t),onDrop:()=>De(e.key),onDragEnd:Ee,children:[ie?.key===e.key&&N.jsx("div",{className:"absolute left-0 right-0 h-0.5 bg-blue-600",style:{top:"before"===ie?.position?0:void 0,bottom:"after"===ie?.position?0:void 0}}),N.jsxs("div",{className:"flex items-center gap-2",children:[N.jsx("span",{className:"text-gray-400 select-none",children:"⋮⋮"}),N.jsxs("span",{className:"text-gray-800 truncate max-w-45",children:[e.header,t&&N.jsx("span",{className:"ml-1 text-[10px] text-blue-600",children:"(pinned)"})]})]})]},e.key)})}),N.jsx("div",{className:"text-[10px] text-gray-400 mt-1",children:"Tip: You can only reorder within pinned or unpinned groups."})]})]})]})]})}),r<e.length-1&&p&&N.jsx("div",{className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-blue-300 transition-colors group",onMouseDown:e=>fe(t.key,e),onDoubleClick:e=>{e.preventDefault(),e.stopPropagation(),M?.(t.key)},title:"Drag to resize • Double‑click to autosize",children:N.jsx("div",{className:"w-full h-full group-hover:bg-blue-400"})})]},t.key+r)}),n>0&&N.jsx("div",{style:{width:n,height:s},className:"flex-none"}),r.map((e,t)=>{const n="center"===e.headerAlign?"justify-center":"right"===e.headerAlign?"justify-end":"justify-start",l=!1!==e.sortable;return N.jsxs("div",{className:"flex-none border-r border-gray-200 dark:border-gray-700 last:border-r-0 relative",style:{width:e.width||100,height:s},"data-column-key":e.key,draggable:!0,onDragStart:t=>ke(e.key,t),onDragOver:t=>Ne(e.key,t),onDrop:()=>Ce(e.key),onDragEnd:Se,children:[we?.key===e.key&&N.jsx("div",{className:"absolute top-0 bottom-0 w-0.5 bg-blue-600 z-4",style:{left:"before"===we?.position?0:void 0,right:"after"===we?.position?0:void 0}}),N.jsx("div",{className:"px-3 h-full",children:N.jsxs("div",{className:"flex items-center justify-between gap-1 group h-full",children:[N.jsxs("div",{className:`flex items-center min-w-0 flex-1 ${n} ${l?"cursor-pointer hover:text-blue-600":""}`,onClick:()=>l&&h(e.key),children:[N.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[he(e.key)&&N.jsx("div",{className:"w-2 h-2 bg-red-500 rounded-full shrink-0",title:"Filter applied"}),N.jsx("span",{className:"font-medium text-gray-900 dark:text-gray-100 text-sm truncate min-w-0",children:e.header})]}),l&&i.key===e.key&&N.jsx("div",{className:"ml-1 shrink-0 pointer-events-none select-none",children:N.jsx("asc"===i.direction?F:z,{className:"w-3 h-3 text-blue-600 dark:text-blue-400"})})]}),(e.filterable||b||v)&&N.jsxs("div",{className:"relative "+(T===e.key||le?"block":"hidden group-hover:block"),"data-column-menu":!0,children:[N.jsx("button",{className:"p-1 hover:bg-gray-200 dark:hover:bg-gray-700 rounded shrink-0",onClick:t=>me(e.key,t),"data-menu-trigger":!0,children:N.jsx(B,{className:"w-4 h-4 text-gray-500 dark:text-gray-400"})}),T===e.key&&P&&N.jsxs("div",{className:"fixed bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-md shadow-lg z-10 w-[320px] overflow-auto",style:{top:`${P.top}px`,left:`${P.left}px`,maxHeight:`${Math.max(160,P.containerRect.bottom-12-P.top)}px`},"data-column-menu":!0,children:[N.jsxs("div",{className:"flex items-center border-b border-gray-200 dark:border-gray-700",children:[N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("menu"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("menu"),children:N.jsx(B,{className:"w-4 h-4"})}),e.filterable&&N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("filter"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("filter"),children:N.jsx(W,{className:"w-4 h-4"})}),N.jsx("button",{className:"px-3 py-2 text-sm flex items-center gap-2 "+("reorder"===ee?"border-b-2 border-blue-600 text-blue-600":"text-gray-600"),onClick:()=>te("reorder"),children:N.jsx($,{className:"w-4 h-4"})})]}),"menu"===ee&&N.jsxs("div",{className:"py-1",children:[b&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50 flex items-center gap-2",onClick:t=>{t.stopPropagation(),O(null);const r=!y.has(e.key);b?.(e.key,r)},children:y.has(e.key)?N.jsxs(N.Fragment,{children:[N.jsx(U,{className:"w-4 h-4"}),"Unpin Column"]}):N.jsxs(N.Fragment,{children:[N.jsx(Y,{className:"w-4 h-4"}),"Pin Column"]})}),M&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{M?.(e.key),O(null)},children:"Autosize This Column"}),R&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{R?.(),O(null)},children:"Autosize All Columns"}),v&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50 flex items-center gap-2",onClick:t=>{t.stopPropagation(),O(null);const r=k?.includes(e.key)||w===e.key;S?S(e.key,!r):j?.(r?null:e.key)},children:w===e.key||k?.includes(e.key)?N.jsxs(N.Fragment,{children:[N.jsx(X,{className:"w-4 h-4"}),"Ungroup"]}):N.jsxs(N.Fragment,{children:[N.jsx(q,{className:"w-4 h-4"}),"Group by ",e.header]})}),D&&N.jsx("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-gray-50",onClick:()=>{D?.(),O(null)},children:"Reset Columns"})]}),"filter"===ee&&N.jsxs("div",{className:"p-3 w-full",children:[N.jsx("div",{className:"max-h-75 overflow-auto pr-1",children:N.jsx(xe,{column:e,data:g,value:re,onChange:t=>{ne(t),"server"!==L&&f(e.key,t)}})}),N.jsxs("div",{className:"flex justify-end gap-2 mt-3",children:[he(e.key)&&N.jsxs("button",{className:"px-3 py-1.5 text-sm bg-red-500 text-white rounded-md hover:bg-red-600 flex items-center gap-2 cursor-pointer",onClick:()=>{ne(null),f(e.key,null),O(null)},children:[N.jsx(H,{className:"w-3 h-3"})," Clear Filter"]}),N.jsx("button",{className:"px-3 py-1.5 text-sm bg-green-100 text-green-700 rounded-md hover:bg-green-200 cursor-pointer",onClick:()=>O(null),children:"Apply"}),"server"===L&&N.jsx("button",{className:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded-md hover:bg-blue-700",onClick:()=>ge(e.key),children:"Apply"})]})]}),"reorder"===ee&&N.jsxs("div",{className:"px-3 py-2",children:[N.jsx("div",{className:"text-xs font-medium text-gray-500 mb-1",children:"Reorder Columns"}),N.jsx("div",{className:"max-h-60 overflow-auto border border-gray-200 rounded-md",children:[...E.map(e=>I.find(t=>t.key===e)).filter(Boolean),...I.filter(e=>!E.includes(e.key))].map(e=>{const t=y.has(e.key);return N.jsxs("div",{className:`flex items-center justify-between px-2 py-1 text-sm bg-white hover:bg-gray-50 border-b last:border-b-0 relative ${ae===e.key?"opacity-60":""} ${t?"bg-blue-50/40":""}`,draggable:!0,onDragStart:t=>Me(e.key,t),onDragOver:t=>Re(e.key,t),onDrop:()=>De(e.key),onDragEnd:Ee,children:[ie?.key===e.key&&N.jsx("div",{className:"absolute left-0 right-0 h-0.5 bg-blue-600",style:{top:"before"===ie?.position?0:void 0,bottom:"after"===ie?.position?0:void 0}}),N.jsxs("div",{className:"flex items-center gap-2",children:[N.jsx("span",{className:"text-gray-400 select-none",children:"⋮⋮"}),N.jsxs("span",{className:"text-gray-800 truncate max-w-45",children:[e.header,t&&N.jsx("span",{className:"ml-1 text-[10px] text-blue-600",children:"(pinned)"})]})]})]},e.key)})}),N.jsx("div",{className:"text-[10px] text-gray-400 mt-1",children:"Tip: You can only reorder within pinned or unpinned groups."})]})]})]})]})}),t<r.length-1&&p&&N.jsx("div",{className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-blue-300 transition-colors group",onMouseDown:t=>fe(e.key,t),onDoubleClick:t=>{t.preventDefault(),t.stopPropagation(),M?.(e.key)},title:"Drag to resize • Double‑click to autosize",children:N.jsx("div",{className:"w-full h-full group-hover:bg-blue-400"})})]},e.key+t)}),a>0&&N.jsx("div",{style:{width:a,height:s},className:"flex-none"})]})})})};pe.displayName="GridHeader";const ye=r(pe);N.jsx(Z,{className:"w-4 h-4"}),N.jsx(O,{className:"w-4 h-4"}),N.jsx(_,{className:"w-4 h-4"});const be=({row:e,position:t,isVisible:r,onClose:l,menuItems:s})=>{const i=a(null);o(()=>{if(!r)return;const e=e=>{i.current&&!i.current.contains(e.target)&&l()},t=e=>{"Escape"===e.key&&l()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[r,l]);const c=n(()=>{if(!r||!s?.length)return t;const e=40*s.filter(e=>!e.separator).length+10*s.filter(e=>e.separator).length,n=window.innerWidth,l=window.innerHeight;let o=t.x,a=t.y;return o+100>n&&(o=n-100-10),o-100<0&&(o=110),a+e>l&&(a=a-e-10),{x:o,y:a}},[t,r,s]);return r&&s?.length?N.jsxs(N.Fragment,{children:[N.jsx("div",{className:"fixed inset-0 z-40",onClick:l}),N.jsx("div",{ref:i,role:"menu","aria-label":"Row actions",className:"fixed z-50 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg py-1 min-w-[180px]",style:{left:`${c.x}px`,top:`${c.y}px`,transform:"translate(-50%, 0)"},children:s.map(t=>t.separator?N.jsx("div",{role:"separator",className:"border-t border-gray-100 dark:border-gray-700 my-1"},t.id):N.jsxs("button",{role:"menuitem",onClick:()=>(t=>{t.disabled||t.separator||(t.onClick(e),l())})(t),disabled:t.disabled,className:"w-full flex items-center gap-3 px-3 py-2 text-sm text-left transition-colors "+(t.disabled?"text-gray-400 dark:text-gray-600 cursor-not-allowed":"delete"===t.id?"text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20":"text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700"),children:[t.icon&&N.jsx("span",{className:"shrink-0",children:t.icon}),N.jsx("span",{className:"flex-1",children:t.label})]},t.id))})]}):null},ve=({data:e,columns:t,selectedRows:r,virtualized:o,virtualizedRange:a,rowHeight:i,selectable:c,isRowSelectable:d,onRowSelect:u,pinnedColumns:m=new Set,hvPadLeft:g=0,hvPadRight:h=0,rowStyle:f,globalFilter:x,onContextMenu:p,onRowDoubleClick:y,onRowClick:b,onCellClick:v,isCellFocused:w,isCellSelected:j,onCellContextMenu:k,onCellMouseDown:S,onCellMouseEnter:M,contextMenuItems:R,getRowId:D})=>{const E=n(()=>e.length*i,[e.length,i]),{leftOffsetByPinnedKey:A}=n(()=>{if(0===m.size)return{leftOffsetByPinnedKey:new Map};const e=t.filter(e=>m.has(e.key)).map(e=>e.key),r=new Map;for(const e of t)r.set(e.key,e.width||100);const n=new Map;let l=c?C:0;for(const t of e)n.set(t,l),l+=r.get(t)||100;return{leftOffsetByPinnedKey:n}},[t,m,c]),L=n(()=>t.reduce((e,t)=>e+(m.has(t.key)?1:0),0),[t,m]),[F,z]=l(null),$=s((e,t)=>{e.preventDefault(),p?.({row:t,event:e}),R?.length&&z({row:t,x:e.clientX,y:e.clientY})},[p,R]),I=s(()=>z(null),[]);return N.jsxs(N.Fragment,{children:[N.jsx("div",{style:{height:o?`${E}px`:"auto",position:"relative"},children:N.jsx("div",{style:{transform:o?`translate3d(0, ${a.offsetY}px, 0)`:"none",position:o?"absolute":"static",top:0,left:0,right:0},children:e.map((e,n)=>{const l=o?a.startIndex+n:n,s=f?.(e),p=((e,t)=>D?D(e):void 0!==e.id?e.id:("development"===process.env.NODE_ENV&&0===t&&console.warn("[KDGrid] No row IDs found. Either:\n 1. Add 'id' property to each row object, or\n 2. Provide 'getRowId' prop to extract a unique identifier.\n Using row index as fallback ID, but this may cause issues with pagination/filtering."),t??0))(e,l),R=l%2==0?"bg-white dark:bg-gray-900":"bg-gray-25 dark:bg-gray-800",E=r.has(p)?"bg-blue-50 dark:bg-blue-900/20":"";return N.jsxs("div",{className:`flex border-b border-gray-100 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-700 ${E||(s?"":R)}`,style:{height:`${i}px`,...s},onContextMenu:t=>$(t,e),onDoubleClick:t=>((e,t)=>{y?.({row:t,event:e})})(t,e),onClick:t=>((e,t)=>{b?.({row:t,event:e})})(t,e),children:[c&&N.jsx("div",{className:"flex items-center justify-center sticky left-0 bg-white dark:bg-gray-900 z-2 border-r border-gray-200 dark:border-gray-700",style:{width:C},children:N.jsx("input",{type:"checkbox",checked:r.has(p),disabled:!!d&&!d(e),onChange:e=>u(p,e.target.checked),onKeyDown:e=>{" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),u(p,!r.has(p)))},className:"rounded border-gray-300 dark:border-gray-600 text-blue-600 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50 h-4 w-4 transition-all duration-150","aria-label":`Select row ${p}`,tabIndex:0})}),t.map((t,r)=>{const n=m.has(t.key),l=n&&A.get(t.key)||0,o=e[t.key];let a,s;if(t.cellRenderer?(a=t.cellRenderer(o,e),"string"!=typeof o&&"number"!=typeof o&&"boolean"!=typeof o||(s=String(o))):t.formatter?(a=t.formatter(o),s=String(a)):(a=o??"",s=a?String(a):void 0),x&&x.trim()&&!t.cellRenderer&&a){const e=String(a);((e,t)=>{if(!t||null==e)return!1;const r=t.toLowerCase().trim();return!!r&&String(e).toLowerCase().includes(r)})(e,x)&&(a=((e,t)=>{if(!t||!e)return e;const r=t.toLowerCase().trim(),n=e.toLowerCase();if(!r||!n.includes(r))return e;const l=[];let o=0,a=0,s=0;for(;-1!==(a=n.indexOf(r,o));)a>o&&l.push(e.slice(o,a)),l.push(N.jsx("mark",{className:"bg-yellow-200 dark:bg-yellow-600/40 text-current font-medium px-0.5 py-0 rounded-sm",style:{margin:0},children:e.slice(a,a+r.length)},"highlight-"+s++)),o=a+r.length;return o<e.length&&l.push(e.slice(o)),N.jsx(N.Fragment,{children:l})})(e,x))}s&&0===s.trim().length&&(s=void 0);const i="center"===t.align?"text-center":"right"===t.align?"text-right":"text-left",c="center"===t.align?"justify-center":"right"===t.align?"justify-end":"justify-start",d=t.noPadding?"p-0":"p-3",u="function"==typeof t.className?t.className(o,e):t.className||"",h="function"==typeof t.cellStyle?t.cellStyle(o,e):t.cellStyle||void 0,f=N.jsxs("div",{className:`border-r border-gray-200 last:border-r-0 ${d} text-sm flex items-center ${j?.(p,t.key)?"bg-blue-100/60 dark:bg-blue-900/30":""} ${n?w?.(p,t.key)?"sticky z-2 bg-inherit":"sticky z-1 bg-inherit":""} ${w?.(p,t.key)?"relative":""} ${i} ${c} ${u}`,style:{width:`${t.width||100}px`,left:n?`${l}px`:"auto",...h},title:s,onClick:r=>((e,t,r,n)=>{v?.({row:t,column:r,value:n,event:e})})(r,e,t,e[t.key]),onContextMenu:r=>{e._isGroupHeader||e._isGroupFooter||k&&(r.preventDefault(),r.stopPropagation(),k({row:e,column:t,value:e[t.key],displayValue:s??"",event:r}))},onMouseDown:r=>S?.({row:e,column:t,event:r}),onMouseEnter:r=>M?.({row:e,column:t,event:r}),children:[w?.(p,t.key)&&N.jsx("div",{className:"pointer-events-none absolute inset-0 border border-blue-400"}),!1===t.wrapCellContent?N.jsx(N.Fragment,{children:a}):N.jsx("div",{className:"truncate w-full",children:a})]},`${t.key}-${r}`);return g>0&&r===L?N.jsxs(N.Fragment,{children:[N.jsx("div",{style:{width:g},className:"flex-none"}),f]}):f}),h>0&&N.jsx("div",{style:{width:h},className:"flex-none"})]},`${p}-${l}`)})})}),F&&N.jsx(be,{row:F.row,position:{x:F.x,y:F.y},isVisible:!0,onClose:I,menuItems:R})]})},we=(e,t)=>{if(e.rowHeight!==t.rowHeight)return!1;if(e.selectable!==t.selectable)return!1;if(e.virtualized!==t.virtualized)return!1;if(e.globalFilter!==t.globalFilter)return!1;if(e.virtualizedRange.startIndex!==t.virtualizedRange.startIndex)return!1;if(e.virtualizedRange.endIndex!==t.virtualizedRange.endIndex)return!1;if(e.virtualizedRange.offsetY!==t.virtualizedRange.offsetY)return!1;if(e.isCellSelected!==t.isCellSelected)return!1;if(e.isCellFocused!==t.isCellFocused)return!1;if(e.onCellMouseDown!==t.onCellMouseDown)return!1;if(e.onCellMouseEnter!==t.onCellMouseEnter)return!1;if(e.getRowId!==t.getRowId)return!1;if(e.selectedRows.size!==t.selectedRows.size)return!1;if(e.pinnedColumns?.size!==t.pinnedColumns?.size)return!1;if(e.columns.map(e=>e.key).join("|")!==t.columns.map(e=>e.key).join("|"))return!1;if(e.data.length!==t.data.length)return!1;if(e.data===t.data)return!0;const r=(e,t,r)=>r?r(e):void 0!==e.id?e.id:t;for(let n=0;n<t.data.length;n++)if(r(e.data[n],n,e.getRowId)!==r(t.data[n],n,t.getRowId))return!1;return!0};ve.displayName="GridRows";const je=r(ve,we),ke=({columns:e,groupedKeys:t,onRemove:r,onReorder:n,onDropColumnKey:o,onToggleExpandAll:a,isAnyExpanded:s=!1})=>{const[i,c]=l(null),[d,u]=l(null),[m,g]=l(!0),h=t=>e.find(e=>e.key===t)?.header||t,f=e=>t=>{c(e),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("application/x-group-key",e)},x=e=>t=>{t.preventDefault();const r=t.currentTarget.getBoundingClientRect(),n=t.clientX<r.left+r.width/2;u(e),g(n)};return N.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-gray-50 border-b border-gray-200 text-sm",onDrop:e=>{e.preventDefault();const r=e.dataTransfer.getData("text/plain");r&&(t.includes(r)||o(r))},onDragOver:e=>{e.preventDefault()},onDragEnd:()=>{c(null),u(null)},children:[N.jsx("span",{className:"text-gray-600 whitespace-nowrap",children:"Group by:"}),t.length>0&&N.jsx("button",{type:"button",className:"ml-1 px-2 py-1 text-xs border border-gray-300 rounded hover:bg-gray-100",title:s?"Collapse all groups":"Expand all groups",onClick:e=>{e.preventDefault(),e.stopPropagation(),a?.()},children:s?"Collapse All":"Expand All"}),0===t.length&&N.jsx("span",{className:"text-gray-400",children:"Drag a column here"}),N.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:t.map(e=>{return N.jsxs("div",{className:"inline-flex items-center gap-2 bg-blue-100 text-blue-800 px-2 py-1 rounded-md border border-blue-200 cursor-move relative",draggable:!0,onDragStart:f(e),onDragOver:x(e),onDrop:(l=e,()=>{if(!i||i===l)return c(null),void u(null);const e=t.filter(e=>e!==i),r=e.indexOf(l);-1!==r&&(e.splice(m?r:r+1,0,i),n(e),c(null),u(null))}),title:h(e),children:[N.jsx("span",{className:"text-xs font-medium truncate max-w-[160px]",children:h(e)}),N.jsx("button",{className:"text-blue-700 hover:text-blue-900",onClick:()=>r(e),"aria-label":`Remove grouping ${h(e)}`,children:"×"}),d===e&&N.jsx("span",{className:"absolute top-0 bottom-0 w-0.5 bg-blue-600 dark:bg-blue-400 animate-pulse",style:{left:m?0:void 0,right:m?void 0:0},"aria-hidden":"true"})]},e);var l})})]})},Ne=r(({row:e,isExpanded:t,onToggle:r,viewportWidth:n,selectable:l,rowHeight:o=40,getHeaderLabel:a,getValueLabel:s,renderGroupActions:i})=>{const c=()=>{e._groupKey&&r(e._groupKey)};return N.jsxs("div",{className:"flex items-center bg-blue-50 dark:bg-blue-900/20 border-b border-gray-200 dark:border-gray-800 hover:bg-blue-100/70 cursor-pointer sticky left-0 z-20 overflow-hidden",style:{minWidth:`${n+(l?C:0)}px`,height:`${o}px`},onClick:c,role:"button",tabIndex:0,"aria-expanded":t,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),c())},children:[l&&N.jsx("div",{className:"w-12 flex items-center justify-center"}),N.jsxs("div",{className:"flex items-center px-4 py-2 flex-1",children:[N.jsx("div",{className:"flex items-center mr-3",style:{paddingLeft:(e._groupLevel?16*e._groupLevel:0)+"px"},children:N.jsx(t?E:D,{className:"w-4 h-4 text-gray-600"})}),N.jsxs("div",{className:"flex items-center gap-2",children:[N.jsxs("span",{className:"font-medium text-gray-900",children:[e._groupColumnKey?`${a?a(e._groupColumnKey):e._groupColumnKey}: `:"",s&&e._groupColumnKey?s(e._groupColumnKey,e._groupValue):e._groupValue??(e._groupKey||"Unknown")]}),N.jsxs("span",{className:"text-sm text-gray-600 bg-gray-200/70 px-2 py-1 rounded-full",children:[e._groupCount," ",1===e._groupCount?"item":"items"]})]}),i&&N.jsx("div",{className:"flex items-center px-4",onClick:e=>e.stopPropagation(),children:i({groupKey:e._groupKey||"",columnKey:e._groupColumnKey||"",groupValue:e._groupValue,rows:e._groupRows||[],count:e._groupCount||0,level:e._groupLevel||0})})]})]})}),Ce=({hasFilters:e=!1,hasData:t=!0,message:r})=>{const{title:n,description:l,icon:o}=r?{title:r,description:"",icon:te}:t?e?{title:"No Results Found",description:"No data matches your current search criteria. Try adjusting your filters.",icon:ee}:{title:"No Data to Display",description:"There are no items to show at the moment.",icon:te}:{title:"No Data Available",description:"There is no data to display in this table.",icon:te};return N.jsxs("div",{className:"flex flex-col items-center justify-center pt-16 pb-10 px-4 text-center",children:[N.jsx("div",{className:"w-16 h-16 bg-gray-100 dark:bg-gray-800 rounded-full flex items-center justify-center mb-4",children:N.jsx(o,{className:"w-8 h-8 text-gray-400 dark:text-gray-500"})}),N.jsx("h3",{className:"text-lg font-medium text-gray-900 dark:text-gray-100 mb-2",children:n}),N.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 max-w-md",children:l})]})},Se=({paginationConfig:e,currentPage:t,isServerLoading:r,selectedRowsCount:n,totalDataLength:l,filteredDataLength:o,paginationMode:a="client",onPageChange:s,onPageSizeChange:i})=>{const{start:c,end:d,total:u}=(()=>{const r=e.enabled||"server"===a?e.totalRows||l:o||l;return{start:e.enabled?Math.min((t-1)*e.pageSize+1,r):1,end:e.enabled?Math.min(t*e.pageSize,r):r,total:r}})(),m="client"===a&&o&&o!==l;return N.jsx("div",{className:"px-3 sm:px-6 py-2 border-t border-gray-200 dark:border-gray-700 bg-linear-to-r from-white via-gray-50 to-white dark:from-gray-900 dark:via-gray-800 dark:to-gray-900",children:N.jsxs("div",{className:"flex flex-col xl:flex-row gap-4 xl:gap-6 xl:justify-between xl:items-center",children:[N.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4 items-start sm:items-center",children:[N.jsxs("div",{className:"flex flex-wrap items-center gap-2 sm:gap-3",children:[!e.enabled&&N.jsxs("div",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-semibold bg-linear-to-r from-blue-500 to-blue-600 text-white shadow-lg ring-2 ring-blue-500/20",children:[N.jsx(te,{className:"w-3 h-3"}),N.jsxs("span",{className:"font-bold",children:[u.toLocaleString()," ",1===u?"Record":"Records"]}),m&&N.jsxs("span",{className:"text-blue-100 font-normal",children:["(of ",l.toLocaleString(),")"]})]}),n>0&&N.jsxs("div",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-semibold bg-linear-to-r from-primary to-primary text-white shadow-lg ring-2 ring-primary/20",children:[N.jsx(le,{className:"w-3 h-3"}),N.jsxs("span",{children:[n.toLocaleString()," selected"]})]}),m&&N.jsxs("div",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium bg-linear-to-r from-warning/10 to-warning/5 text-warning border border-warning/20",children:[N.jsx(Z,{className:"w-3 h-3"}),N.jsx("span",{children:"Filtered"})]}),e.enabled&&N.jsx("div",{className:"hidden sm:block text-sm text-gray-600 dark:text-gray-400 font-medium",children:N.jsxs("span",{className:"inline-flex items-center gap-1",children:[N.jsx("span",{children:"Showing"}),N.jsx("span",{className:"px-2 py-0.5 bg-gray-100 dark:bg-gray-700 rounded-md font-bold text-gray-900 dark:text-gray-100",children:c.toLocaleString()}),N.jsx("span",{children:"-"}),N.jsx("span",{className:"px-2 py-0.5 bg-gray-100 dark:bg-gray-700 rounded-md font-bold text-gray-900 dark:text-gray-100",children:d.toLocaleString()}),N.jsxs("span",{children:["of ",u.toLocaleString()]})]})})]}),e.enabled&&e.showPageSizeSelector&&N.jsxs("div",{className:"flex items-center gap-2",children:[N.jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 whitespace-nowrap",children:"Rows per page:"}),N.jsx("select",{value:e.pageSize,onChange:e=>i(Number(e.target.value)),className:"border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 rounded-xl px-3 py-1 text-sm font-medium focus:ring-2 focus:ring-primary focus:border-primary disabled:opacity-50 disabled:cursor-not-allowed shadow-sm transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500",disabled:r,children:e.pageSizeOptions?.map(e=>N.jsx("option",{value:e,children:e},e))})]})]}),e.enabled&&N.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-3 sm:gap-4",children:[r&&N.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 bg-blue-50 dark:bg-blue-900/20 rounded-full border border-blue-200 dark:border-blue-800",children:[N.jsx(ae,{className:"w-4 h-4 animate-spin text-primary"}),N.jsx("span",{className:"text-sm font-medium text-primary",children:"Loading..."})]}),N.jsx("div",{className:"sm:hidden text-sm text-gray-600 dark:text-gray-400 font-medium",children:N.jsxs("div",{className:"flex flex-col gap-1",children:[N.jsxs("span",{className:"inline-flex items-center gap-1",children:[N.jsx("span",{children:"Page"}),N.jsx("span",{className:"px-2 py-0.5 bg-gray-100 dark:bg-gray-700 rounded-md font-bold text-gray-900 dark:text-gray-100",children:t.toLocaleString()}),N.jsx("span",{children:"of"}),N.jsx("span",{className:"px-2 py-0.5 bg-gray-100 dark:bg-gray-700 rounded-md font-bold text-gray-900 dark:text-gray-100",children:e.totalPages.toLocaleString()})]}),N.jsxs("span",{className:"text-xs text-gray-500 dark:text-gray-500",children:[c.toLocaleString()," - ",d.toLocaleString()," of"," ",u.toLocaleString()]})]})}),N.jsxs("div",{className:"flex items-center gap-1 sm:gap-2",children:[N.jsx("button",{onClick:()=>s(1,e.pageSize),disabled:1===t||r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md focus:ring-2 focus:ring-primary/20 focus:border-primary",title:"First page","aria-label":"Go to first page",children:N.jsx(A,{className:"w-3.5 h-3.5"})}),N.jsx("button",{onClick:()=>s(t-1,e.pageSize),disabled:1===t||r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md focus:ring-2 focus:ring-primary/20 focus:border-primary",title:"Previous page","aria-label":"Go to previous page",children:N.jsx(R,{className:"w-3.5 h-3.5"})}),N.jsx("div",{className:"sm:hidden",children:N.jsx("select",{value:t,onChange:t=>s(Number(t.target.value),e.pageSize),className:"border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 rounded-xl px-3 py-2 text-sm font-medium focus:ring-2 focus:ring-primary focus:border-primary disabled:opacity-50 disabled:cursor-not-allowed shadow-sm min-w-[80px]",disabled:r,"aria-label":"Select page",children:Array.from({length:e.totalPages},(e,t)=>t+1).map(e=>N.jsx("option",{value:e,children:e},e))})}),N.jsx("div",{className:"hidden sm:flex items-center gap-1 mx-2",children:(()=>{const n=[],l=e.totalPages,o=t,a="undefined"!=typeof window&&window.innerWidth>=768?7:5;if(l<=a)for(let e=1;e<=l;e++)n.push(e);else{const e=Math.floor(a/2)-1;if(o<=e+1){for(let e=1;e<=a-2;e++)n.push(e);n.push("ellipsis1"),n.push(l)}else if(o>=l-e){n.push(1),n.push("ellipsis1");for(let e=l-(a-3);e<=l;e++)n.push(e)}else{n.push(1),n.push("ellipsis1");for(let t=o-e;t<=o+e;t++)n.push(t);n.push("ellipsis2"),n.push(l)}}return n.map(t=>{if("string"==typeof t)return N.jsx("div",{className:"flex items-center justify-center w-8 h-8 text-gray-400 dark:text-gray-500 select-none","aria-hidden":"true",children:N.jsx("span",{className:"text-lg leading-none",children:"⋯"})},t);const n=t===o;return N.jsx("button",{onClick:()=>s(t,e.pageSize),disabled:r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full text-sm font-semibold transition-all duration-200 focus:ring-2 focus:ring-primary/20 focus:outline-none cursor-pointer "+(n?"bg-linear-to-r from-primary to-primary text-white shadow-lg ring-2 ring-primary/20 transform scale-105 z-10 relative bg-blue-500":"border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md disabled:opacity-40 disabled:cursor-not-allowed"),"aria-label":`Go to page ${t}`,"aria-current":n?"page":void 0,children:t},t)})})()}),N.jsx("button",{onClick:()=>s(t+1,e.pageSize),disabled:t===e.totalPages||r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md focus:ring-2 focus:ring-primary/20 focus:border-primary",title:"Next page","aria-label":"Go to next page",children:N.jsx(D,{className:"w-3.5 h-3.5"})}),N.jsx("button",{onClick:()=>s(e.totalPages,e.pageSize),disabled:t===e.totalPages||r,className:"inline-flex items-center justify-center w-8 h-8 rounded-full border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-all duration-200 hover:border-gray-400 dark:hover:border-gray-500 hover:shadow-md focus:ring-2 focus:ring-primary/20 focus:border-primary",title:"Last page","aria-label":"Go to last page",children:N.jsx(L,{className:"w-3.5 h-3.5"})})]})]})]})})};Se.displayName="PaginationControls";const Me=r(Se),Re=({options:e,value:t,placeholder:r="Select an option...",onChange:n,searchable:s=!0,className:i=""})=>{const[c,d]=l(!1),[u,m]=l(""),[g,h]=l(-1),f=a(null),x=a(null),p=a(null),y=e.find(e=>e.value===t),b=s?e.filter(e=>e.label?.toLowerCase()?.includes(u?.toLowerCase())):e;o(()=>{const e=e=>{f.current&&!f.current.contains(e.target)&&(d(!1),m(""),h(-1))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),o(()=>{const e=e=>{if(c)switch(e.key){case"ArrowDown":e.preventDefault(),h(e=>e<b.length-1?e+1:0);break;case"ArrowUp":e.preventDefault(),h(e=>e>0?e-1:b.length-1);break;case"Enter":e.preventDefault(),g>=0&&b[g]&&v(b[g].value);break;case"Escape":d(!1),m(""),h(-1)}};if(c)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[c,g,b]),o(()=>{if(g>=0&&p.current){const e=p.current.children[g];e&&e.scrollIntoView({block:"nearest",behavior:"smooth"})}},[g]);const v=e=>{n(e),d(!1),m(""),h(-1)};return N.jsxs("div",{className:`relative ${i}`,ref:f,children:[N.jsx("div",{className:"relative w-full cursor-pointer border border-gray-300 rounded-lg bg-white transition-all duration-200 "+(c?"ring-2 ring-blue-500 border-blue-500":"hover:border-gray-400 focus-within:ring-2 focus-within:ring-blue-500 focus-within:border-blue-500"),onClick:()=>{d(!c),s&&!c&&setTimeout(()=>x.current?.focus(),0)},children:N.jsxs("div",{className:"flex items-center justify-between px-3 py-2.5",children:[s&&c?N.jsx("input",{ref:x,type:"text",className:"flex-1 outline-none text-sm bg-transparent",placeholder:`Search ${r?.toLowerCase()}...`,value:u,onChange:e=>{m(e.target.value),h(-1),c||d(!0)},onClick:e=>e.stopPropagation()}):N.jsx("span",{className:"flex-1 text-sm truncate "+(y?"text-gray-900":"text-gray-500"),children:y?y.label:r}),N.jsx(E,{className:"w-4 h-4 text-gray-400 transition-transform duration-200 "+(c?"rotate-180":"")})]})}),c&&N.jsx("div",{className:"absolute top-full left-0 right-0 mt-1 bg-white border border-gray-200 rounded-lg shadow-lg z-99999 max-h-80 overflow-hidden",children:b.length>0?N.jsx("ul",{ref:p,className:"py-1 overflow-y-auto max-h-80",children:b.map((e,t)=>N.jsxs("li",{className:"px-3 py-2 text-sm cursor-pointer flex items-center justify-between transition-colors "+(t===g?"bg-blue-50 text-blue-700":"text-gray-700 hover:bg-gray-50"),onClick:()=>v(e.value),onMouseEnter:()=>h(t),children:[N.jsx("span",{className:"truncate",children:e.label}),y?.value===e.value&&N.jsx(T,{className:"w-4 h-4 text-blue-600 shrink-0 ml-2"})]},e.value))}):N.jsx("div",{className:"px-3 py-2 text-sm text-gray-500 text-center",children:"No options found"})})]})},De=({columns:e,columnFilters:t,onColumnFilter:r})=>{const n=e.filter(e=>e.filterable),[a,s]=l(n.length>0?n[0].key:""),[i,c]=l(""),d=n.map(e=>({label:e.header,value:e.key})),u=n.find(e=>e.key===a);return o(()=>{c("")},[a]),N.jsxs("div",{className:"space-y-4",children:[N.jsxs("div",{children:[N.jsx("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:"Select Column to Filter"}),N.jsx(Re,{options:d,value:a,placeholder:"Choose a column...",onChange:e=>{s(e)},searchable:!0})]}),a&&(()=>{if(!u)return null;const e=u.filterable?.type||"text",n=t[a];if("multiselect"===e&&u.filterable?.options){const e=i.toLowerCase(),t=e?u.filterable.options.filter(t=>t.label.toLowerCase().includes(e)||String(t.value).toLowerCase().includes(e)):u.filterable.options;return N.jsxs("div",{className:"mt-3",children:[N.jsxs("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:["Filter by ",u.header]}),N.jsxs("div",{className:"relative mb-2",children:[N.jsx(ee,{className:"w-4 h-4 text-gray-400 absolute left-2 top-1/2 -translate-y-1/2"}),N.jsx("input",{type:"text",value:i,onChange:e=>c(e.target.value),placeholder:"Search options...",className:"w-full pl-8 pr-2 py-1.5 border border-gray-300 rounded-md text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"}),i&&N.jsx("button",{type:"button",onClick:()=>c(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear search",children:N.jsx(I,{className:"w-3 h-3"})})]}),N.jsxs("div",{className:"max-h-32 overflow-y-auto border border-gray-300 rounded-md p-2 bg-white",children:[0===t.length&&N.jsx("div",{className:"text-xs text-gray-500 px-1 py-1",children:"No matches"}),t.map(e=>{const t=n?.value||[],l=Array.isArray(t)&&t.includes(e.value);return N.jsxs("label",{className:"flex items-center gap-2 py-1 hover:bg-gray-50 cursor-pointer",children:[N.jsx("input",{type:"checkbox",className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500",checked:l,onChange:t=>{const l=n?.value||[];let o;o=t.target.checked?[...l,e.value]:l.filter(t=>t!==e.value),r?.(a,o.length>0?{type:"multiselect",value:o,operator:"in"}:null)}}),N.jsx("span",{className:"text-sm",children:e.label})]},e.value)})]})]})}if("select"===e&&u.filterable?.options){const e=[{label:`All ${u.header}`,value:""},...u.filterable.options.map(e=>({label:e.label,value:String(e.value)}))];return N.jsxs("div",{className:"mt-3",children:[N.jsxs("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:["Filter by ",u.header]}),N.jsx(Re,{options:e,value:n?.value||"",placeholder:`Select ${u.header.toLowerCase()}...`,onChange:e=>{r?.(a,e?{type:"select",value:e,operator:"between"}:null)},searchable:!0})]})}if("date"===e){const e=e=>{if(!e)return null;if(e instanceof Date&&!isNaN(e.getTime()))return e;const t=ue(String(e));if(!isNaN(t.getTime()))return t;const r=new Date(e);return isNaN(r.getTime())?null:r},t=e(n?.value),l=e(n?.secondValue),o=n?.operator||"between";return N.jsxs("div",{className:"mt-3",children:[N.jsxs("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:["Filter by ",u.header]}),N.jsx("div",{className:"mb-3",children:N.jsx(Re,{options:[{label:"Between Dates",value:"between"},{label:"On Date",value:"equals"}],value:o,placeholder:"Select date filter...",onChange:e=>{r?.(a,{type:"date",value:n?.value||"",operator:e,secondValue:n?.secondValue||""})},searchable:!1},`date-operator-${a}-${o}`)}),N.jsxs("div",{className:"flex items-end gap-2",children:[N.jsx("div",{className:"flex-1 min-w-37.5",children:N.jsx(ce,{name:"column_filter_start",label:"between"===o?"Start Date":"Date",value:t?de(t):null,onChange:e=>{if(e){const t=de(ue(e));r?.(a,{type:"date",value:t,operator:o,secondValue:n?.secondValue||null})}else r?.(a,null)},className:"w-full"})}),"between"===o&&N.jsx("div",{className:"flex-1 min-w-37.5",children:N.jsx(ce,{name:"column_filter_end",label:"End Date",value:l?de(l):null,onChange:e=>{if(e&&n){const t=de(ue(e));r?.(a,{...n,secondValue:t})}},className:"w-full"})})]})]})}return N.jsxs("div",{className:"mt-3",children:[N.jsxs("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:["Filter by ",u.header]}),N.jsxs(N.Fragment,{children:[N.jsx("input",{type:"text",placeholder:u.filterable?.placeholder||`Filter ${u.header.toLowerCase()}...`,className:"w-full px-3 py-2.5 border border-gray-300 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-all duration-200",value:n?.value||"",onChange:e=>{r?.(a,e.target.value?{type:"text",value:e.target.value,operator:"contains"}:null)}}),n&&N.jsx("div",{className:"mt-2",children:N.jsx(Re,{options:[{label:"Contains",value:"contains"},{label:"Equals",value:"equals"},{label:"Starts with",value:"startsWith"},{label:"Ends with",value:"endsWith"}],value:n?.operator||"contains",placeholder:"Select operator...",onChange:e=>{n&&r?.(a,{...n,operator:e})},searchable:!1})})]})]})})(),Object.keys(t).length>0&&N.jsxs("div",{className:"mt-4",children:[N.jsx("label",{className:"text-sm font-medium text-gray-700 mb-2 block",children:"Active Filters"}),N.jsx("div",{className:"space-y-2",children:Object.entries(t).map(([e,t])=>{const l=n.find(t=>t.key===e);return l?N.jsxs("div",{className:"flex items-center justify-between bg-blue-50 border border-blue-200 rounded-md px-3 py-2 cursor-pointer hover:bg-blue-100",role:"button",title:`Edit filter for ${l.header}`,onClick:()=>(e=>{s(e)})(e),children:[N.jsxs("div",{className:"flex-1",children:[N.jsxs("span",{className:"text-sm font-medium text-blue-900",children:[l.header,":"]}),N.jsx("span",{className:"text-sm text-blue-700 ml-1",children:(()=>{if(Array.isArray(t.value))return`${t.value.length} selected`;if("date"===t.type){const e=e=>{try{if(!e)return"";if(e instanceof Date&&!isNaN(e.getTime()))return me(e);if("string"==typeof e){const t=ue(e);if(!isNaN(t.getTime()))return me(t);const r=new Date(e);if(!isNaN(r.getTime()))return me(r)}return String(e)}catch{return String(e??"")}},r={equals:"On",gt:"After",gte:"On or After",lt:"Before",lte:"On or Before",between:"Between"}[t.operator]||"On";return"between"===t.operator&&t.secondValue?`${r} ${e(t.value)} - ${e(t.secondValue)}`:`${r} ${e(t.value)}`}return t.value})()})]}),N.jsx("button",{onClick:t=>{t.stopPropagation(),r?.(e,null)},className:"text-blue-400 hover:text-red-500 transition-colors",title:"Clear filter",children:N.jsx(I,{className:"w-4 h-4"})})]},e):null})})]})]})};function Ee(){return"undefined"!=typeof window}function Ae(e){return ze(e)?(e.nodeName||"").toLowerCase():"#document"}function Le(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function Fe(e){var t;return null==(t=(ze(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function ze(e){return!!Ee()&&(e instanceof Node||e instanceof Le(e).Node)}function $e(e){return!!Ee()&&(e instanceof Element||e instanceof Le(e).Element)}function Ie(e){return!!Ee()&&(e instanceof HTMLElement||e instanceof Le(e).HTMLElement)}function Te(e){return!(!Ee()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof Le(e).ShadowRoot)}const Oe=new Set(["inline","contents"]);function Pe(e){const{overflow:t,overflowX:r,overflowY:n,display:l}=Je(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+r)&&!Oe.has(l)}const _e=new Set(["table","td","th"]);function Ve(e){return _e.has(Ae(e))}const Ke=[":popover-open",":modal"];function Be(e){return Ke.some(t=>{try{return e.matches(t)}catch(e){return!1}})}const We=["transform","translate","scale","rotate","perspective"],He=["transform","translate","scale","rotate","perspective","filter"],Ge=["paint","layout","strict","content"];function Ye(e){const t=Ue(),r=$e(e)?Je(e):e;return We.some(e=>!!r[e]&&"none"!==r[e])||!!r.containerType&&"normal"!==r.containerType||!t&&!!r.backdropFilter&&"none"!==r.backdropFilter||!t&&!!r.filter&&"none"!==r.filter||He.some(e=>(r.willChange||"").includes(e))||Ge.some(e=>(r.contain||"").includes(e))}function Ue(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}const qe=new Set(["html","body","#document"]);function Xe(e){return qe.has(Ae(e))}function Je(e){return Le(e).getComputedStyle(e)}function Ze(e){return $e(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Qe(e){if("html"===Ae(e))return e;const t=e.assignedSlot||e.parentNode||Te(e)&&e.host||Fe(e);return Te(t)?t.host:t}function et(e){const t=Qe(e);return Xe(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ie(t)&&Pe(t)?t:et(t)}function tt(e,t,r){var n;void 0===t&&(t=[]),void 0===r&&(r=!0);const l=et(e),o=l===(null==(n=e.ownerDocument)?void 0:n.body),a=Le(l);if(o){const e=rt(a);return t.concat(a,a.visualViewport||[],Pe(l)?l:[],e&&r?tt(e):[])}return t.concat(l,tt(l,[],r))}function rt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}const nt=Math.min,lt=Math.max,ot=Math.round,at=Math.floor,st=e=>({x:e,y:e}),it={left:"right",right:"left",bottom:"top",top:"bottom"},ct={start:"end",end:"start"};function dt(e,t,r){return lt(e,nt(t,r))}function ut(e,t){return"function"==typeof e?e(t):e}function mt(e){return e.split("-")[0]}function gt(e){return e.split("-")[1]}function ht(e){return"x"===e?"y":"x"}function ft(e){return"y"===e?"height":"width"}const xt=new Set(["top","bottom"]);function pt(e){return xt.has(mt(e))?"y":"x"}function yt(e){return ht(pt(e))}function bt(e){return e.replace(/start|end/g,e=>ct[e])}const vt=["left","right"],wt=["right","left"],jt=["top","bottom"],kt=["bottom","top"];function Nt(e){return e.replace(/left|right|bottom|top/g,e=>it[e])}function Ct(e){const{x:t,y:r,width:n,height:l}=e;return{width:n,height:l,top:r,left:t,right:t+n,bottom:r+l,x:t,y:r}}var St="undefined"!=typeof document?i:function(){};const Mt={...e}.useInsertionEffect||(e=>e());function Rt(e,t,r){let{reference:n,floating:l}=e;const o=pt(t),a=yt(t),s=ft(a),i=mt(t),c="y"===o,d=n.x+n.width/2-l.width/2,u=n.y+n.height/2-l.height/2,m=n[s]/2-l[s]/2;let g;switch(i){case"top":g={x:d,y:n.y-l.height};break;case"bottom":g={x:d,y:n.y+n.height};break;case"right":g={x:n.x+n.width,y:u};break;case"left":g={x:n.x-l.width,y:u};break;default:g={x:n.x,y:n.y}}switch(gt(t)){case"start":g[a]-=m*(r&&c?-1:1);break;case"end":g[a]+=m*(r&&c?-1:1)}return g}async function Dt(e,t){var r;void 0===t&&(t={});const{x:n,y:l,platform:o,rects:a,elements:s,strategy:i}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:u="floating",altBoundary:m=!1,padding:g=0}=ut(t,e),h=function(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}(g),f=s[m?"floating"===u?"reference":"floating":u],x=Ct(await o.getClippingRect({element:null==(r=await(null==o.isElement?void 0:o.isElement(f)))||r?f:f.contextElement||await(null==o.getDocumentElement?void 0:o.getDocumentElement(s.floating)),boundary:c,rootBoundary:d,strategy:i})),p="floating"===u?{x:n,y:l,width:a.floating.width,height:a.floating.height}:a.reference,y=await(null==o.getOffsetParent?void 0:o.getOffsetParent(s.floating)),b=await(null==o.isElement?void 0:o.isElement(y))&&await(null==o.getScale?void 0:o.getScale(y))||{x:1,y:1},v=Ct(o.convertOffsetParentRelativeRectToViewportRelativeRect?await o.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:p,offsetParent:y,strategy:i}):p);return{top:(x.top-v.top+h.top)/b.y,bottom:(v.bottom-x.bottom+h.bottom)/b.y,left:(x.left-v.left+h.left)/b.x,right:(v.right-x.right+h.right)/b.x}}const Et=new Set(["left","top"]);function At(e){const t=Je(e);let r=parseFloat(t.width)||0,n=parseFloat(t.height)||0;const l=Ie(e),o=l?e.offsetWidth:r,a=l?e.offsetHeight:n,s=ot(r)!==o||ot(n)!==a;return s&&(r=o,n=a),{width:r,height:n,$:s}}function Lt(e){return $e(e)?e:e.contextElement}function Ft(e){const t=Lt(e);if(!Ie(t))return st(1);const r=t.getBoundingClientRect(),{width:n,height:l,$:o}=At(t);let a=(o?ot(r.width):r.width)/n,s=(o?ot(r.height):r.height)/l;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}const zt=st(0);function $t(e){const t=Le(e);return Ue()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:zt}function It(e,t,r,n){void 0===t&&(t=!1),void 0===r&&(r=!1);const l=e.getBoundingClientRect(),o=Lt(e);let a=st(1);t&&(n?$e(n)&&(a=Ft(n)):a=Ft(e));const s=function(e,t,r){return void 0===t&&(t=!1),!(!r||t&&r!==Le(e))&&t}(o,r,n)?$t(o):st(0);let i=(l.left+s.x)/a.x,c=(l.top+s.y)/a.y,d=l.width/a.x,u=l.height/a.y;if(o){const e=Le(o),t=n&&$e(n)?Le(n):n;let r=e,l=rt(r);for(;l&&n&&t!==r;){const e=Ft(l),t=l.getBoundingClientRect(),n=Je(l),o=t.left+(l.clientLeft+parseFloat(n.paddingLeft))*e.x,a=t.top+(l.clientTop+parseFloat(n.paddingTop))*e.y;i*=e.x,c*=e.y,d*=e.x,u*=e.y,i+=o,c+=a,r=Le(l),l=rt(r)}}return Ct({width:d,height:u,x:i,y:c})}function Tt(e,t){const r=Ze(e).scrollLeft;return t?t.left+r:It(Fe(e)).left+r}function Ot(e,t){const r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-Tt(e,r),y:r.top+t.scrollTop}}const Pt=new Set(["absolute","fixed"]);function _t(e,t,r){let n;if("viewport"===t)n=function(e,t){const r=Le(e),n=Fe(e),l=r.visualViewport;let o=n.clientWidth,a=n.clientHeight,s=0,i=0;if(l){o=l.width,a=l.height;const e=Ue();(!e||e&&"fixed"===t)&&(s=l.offsetLeft,i=l.offsetTop)}const c=Tt(n);if(c<=0){const e=n.ownerDocument,t=e.body,r=getComputedStyle(t),l="CSS1Compat"===e.compatMode&&parseFloat(r.marginLeft)+parseFloat(r.marginRight)||0,a=Math.abs(n.clientWidth-t.clientWidth-l);a<=25&&(o-=a)}else c<=25&&(o+=c);return{width:o,height:a,x:s,y:i}}(e,r);else if("document"===t)n=function(e){const t=Fe(e),r=Ze(e),n=e.ownerDocument.body,l=lt(t.scrollWidth,t.clientWidth,n.scrollWidth,n.clientWidth),o=lt(t.scrollHeight,t.clientHeight,n.scrollHeight,n.clientHeight);let a=-r.scrollLeft+Tt(e);const s=-r.scrollTop;return"rtl"===Je(n).direction&&(a+=lt(t.clientWidth,n.clientWidth)-l),{width:l,height:o,x:a,y:s}}(Fe(e));else if($e(t))n=function(e,t){const r=It(e,!0,"fixed"===t),n=r.top+e.clientTop,l=r.left+e.clientLeft,o=Ie(e)?Ft(e):st(1);return{width:e.clientWidth*o.x,height:e.clientHeight*o.y,x:l*o.x,y:n*o.y}}(t,r);else{const r=$t(e);n={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return Ct(n)}function Vt(e,t){const r=Qe(e);return!(r===t||!$e(r)||Xe(r))&&("fixed"===Je(r).position||Vt(r,t))}function Kt(e,t,r){const n=Ie(t),l=Fe(t),o="fixed"===r,a=It(e,!0,o,t);let s={scrollLeft:0,scrollTop:0};const i=st(0);function c(){i.x=Tt(l)}if(n||!n&&!o)if(("body"!==Ae(t)||Pe(l))&&(s=Ze(t)),n){const e=It(t,!0,o,t);i.x=e.x+t.clientLeft,i.y=e.y+t.clientTop}else l&&c();o&&!n&&l&&c();const d=!l||n||o?st(0):Ot(l,s);return{x:a.left+s.scrollLeft-i.x-d.x,y:a.top+s.scrollTop-i.y-d.y,width:a.width,height:a.height}}function Bt(e){return"static"===Je(e).position}function Wt(e,t){if(!Ie(e)||"fixed"===Je(e).position)return null;if(t)return t(e);let r=e.offsetParent;return Fe(e)===r&&(r=r.ownerDocument.body),r}function Ht(e,t){const r=Le(e);if(Be(e))return r;if(!Ie(e)){let t=Qe(e);for(;t&&!Xe(t);){if($e(t)&&!Bt(t))return t;t=Qe(t)}return r}let n=Wt(e,t);for(;n&&Ve(n)&&Bt(n);)n=Wt(n,t);return n&&Xe(n)&&Bt(n)&&!Ye(n)?r:n||function(e){let t=Qe(e);for(;Ie(t)&&!Xe(t);){if(Ye(t))return t;if(Be(t))return null;t=Qe(t)}return null}(e)||r}const Gt={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:r,offsetParent:n,strategy:l}=e;const o="fixed"===l,a=Fe(n),s=!!t&&Be(t.floating);if(n===a||s&&o)return r;let i={scrollLeft:0,scrollTop:0},c=st(1);const d=st(0),u=Ie(n);if((u||!u&&!o)&&(("body"!==Ae(n)||Pe(a))&&(i=Ze(n)),Ie(n))){const e=It(n);c=Ft(n),d.x=e.x+n.clientLeft,d.y=e.y+n.clientTop}const m=!a||u||o?st(0):Ot(a,i);return{width:r.width*c.x,height:r.height*c.y,x:r.x*c.x-i.scrollLeft*c.x+d.x+m.x,y:r.y*c.y-i.scrollTop*c.y+d.y+m.y}},getDocumentElement:Fe,getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:n,strategy:l}=e;const o=[..."clippingAncestors"===r?Be(t)?[]:function(e,t){const r=t.get(e);if(r)return r;let n=tt(e,[],!1).filter(e=>$e(e)&&"body"!==Ae(e)),l=null;const o="fixed"===Je(e).position;let a=o?Qe(e):e;for(;$e(a)&&!Xe(a);){const t=Je(a),r=Ye(a);r||"fixed"!==t.position||(l=null),(o?!r&&!l:!r&&"static"===t.position&&l&&Pt.has(l.position)||Pe(a)&&!r&&Vt(e,a))?n=n.filter(e=>e!==a):l=t,a=Qe(a)}return t.set(e,n),n}(t,this._c):[].concat(r),n],a=o.reduce((e,r)=>{const n=_t(t,r,l);return e.top=lt(n.top,e.top),e.right=nt(n.right,e.right),e.bottom=nt(n.bottom,e.bottom),e.left=lt(n.left,e.left),e},_t(t,o[0],l));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:Ht,getElementRects:async function(e){const t=this.getOffsetParent||Ht,r=this.getDimensions,n=await r(e.floating);return{reference:Kt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:r}=At(e);return{width:t,height:r}},getScale:Ft,isElement:$e,isRTL:function(e){return"rtl"===Je(e).direction}};function Yt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Ut(e,t,r,n){void 0===n&&(n={});const{ancestorScroll:l=!0,ancestorResize:o=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:i=!1}=n,c=Lt(e),d=l||o?[...c?tt(c):[],...tt(t)]:[];d.forEach(e=>{l&&e.addEventListener("scroll",r,{passive:!0}),o&&e.addEventListener("resize",r)});const u=c&&s?function(e,t){let r,n=null;const l=Fe(e);function o(){var e;clearTimeout(r),null==(e=n)||e.disconnect(),n=null}return function a(s,i){void 0===s&&(s=!1),void 0===i&&(i=1),o();const c=e.getBoundingClientRect(),{left:d,top:u,width:m,height:g}=c;if(s||t(),!m||!g)return;const h={rootMargin:-at(u)+"px "+-at(l.clientWidth-(d+m))+"px "+-at(l.clientHeight-(u+g))+"px "+-at(d)+"px",threshold:lt(0,nt(1,i))||1};let f=!0;function x(t){const n=t[0].intersectionRatio;if(n!==i){if(!f)return a();n?a(!1,n):r=setTimeout(()=>{a(!1,1e-7)},1e3)}1!==n||Yt(c,e.getBoundingClientRect())||a(),f=!1}try{n=new IntersectionObserver(x,{...h,root:l.ownerDocument})}catch(e){n=new IntersectionObserver(x,h)}n.observe(e)}(!0),o}(c,r):null;let m,g=-1,h=null;a&&(h=new ResizeObserver(e=>{let[n]=e;n&&n.target===c&&h&&(h.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var e;null==(e=h)||e.observe(t)})),r()}),c&&!i&&h.observe(c),h.observe(t));let f=i?It(e):null;return i&&function t(){const n=It(e);f&&!Yt(f,n)&&r(),f=n,m=requestAnimationFrame(t)}(),r(),()=>{var e;d.forEach(e=>{l&&e.removeEventListener("scroll",r),o&&e.removeEventListener("resize",r)}),null==u||u(),null==(e=h)||e.disconnect(),h=null,i&&cancelAnimationFrame(m)}}const qt=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var r,n;const{x:l,y:o,placement:a,middlewareData:s}=t,i=await async function(e,t){const{placement:r,platform:n,elements:l}=e,o=await(null==n.isRTL?void 0:n.isRTL(l.floating)),a=mt(r),s=gt(r),i="y"===pt(r),c=Et.has(a)?-1:1,d=o&&i?-1:1,u=ut(t,e);let{mainAxis:m,crossAxis:g,alignmentAxis:h}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return s&&"number"==typeof h&&(g="end"===s?-1*h:h),i?{x:g*d,y:m*c}:{x:m*c,y:g*d}}(t,e);return a===(null==(r=s.offset)?void 0:r.placement)&&null!=(n=s.arrow)&&n.alignmentOffset?{}:{x:l+i.x,y:o+i.y,data:{...i,placement:a}}}}},Xt=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:r,y:n,placement:l,platform:o}=t,{mainAxis:a=!0,crossAxis:s=!1,limiter:i={fn:e=>{let{x:t,y:r}=e;return{x:t,y:r}}},...c}=ut(e,t),d={x:r,y:n},u=await o.detectOverflow(t,c),m=pt(mt(l)),g=ht(m);let h=d[g],f=d[m];a&&(h=dt(h+u["y"===g?"top":"left"],h,h-u["y"===g?"bottom":"right"])),s&&(f=dt(f+u["y"===m?"top":"left"],f,f-u["y"===m?"bottom":"right"]));const x=i.fn({...t,[g]:h,[m]:f});return{...x,data:{x:x.x-r,y:x.y-n,enabled:{[g]:a,[m]:s}}}}}},Jt=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var r,n;const{placement:l,middlewareData:o,rects:a,initialPlacement:s,platform:i,elements:c}=t,{mainAxis:d=!0,crossAxis:u=!0,fallbackPlacements:m,fallbackStrategy:g="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:f=!0,...x}=ut(e,t);if(null!=(r=o.arrow)&&r.alignmentOffset)return{};const p=mt(l),y=pt(s),b=mt(s)===s,v=await(null==i.isRTL?void 0:i.isRTL(c.floating)),w=m||(b||!f?[Nt(s)]:function(e){const t=Nt(e);return[bt(e),t,bt(t)]}(s)),j="none"!==h;!m&&j&&w.push(...function(e,t,r,n){const l=gt(e);let o=function(e,t,r){switch(e){case"top":case"bottom":return r?t?wt:vt:t?vt:wt;case"left":case"right":return t?jt:kt;default:return[]}}(mt(e),"start"===r,n);return l&&(o=o.map(e=>e+"-"+l),t&&(o=o.concat(o.map(bt)))),o}(s,f,h,v));const k=[s,...w],N=await i.detectOverflow(t,x),C=[];let S=(null==(n=o.flip)?void 0:n.overflows)||[];if(d&&C.push(N[p]),u){const e=function(e,t,r){void 0===r&&(r=!1);const n=gt(e),l=yt(e),o=ft(l);let a="x"===l?n===(r?"end":"start")?"right":"left":"start"===n?"bottom":"top";return t.reference[o]>t.floating[o]&&(a=Nt(a)),[a,Nt(a)]}(l,a,v);C.push(N[e[0]],N[e[1]])}if(S=[...S,{placement:l,overflows:C}],!C.every(e=>e<=0)){var M,R;const e=((null==(M=o.flip)?void 0:M.index)||0)+1,t=k[e];if(t&&("alignment"!==u||y===pt(t)||S.every(e=>pt(e.placement)!==y||e.overflows[0]>0)))return{data:{index:e,overflows:S},reset:{placement:t}};let r=null==(R=S.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:R.placement;if(!r)switch(g){case"bestFit":{var D;const e=null==(D=S.filter(e=>{if(j){const t=pt(e.placement);return t===y||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:D[0];e&&(r=e);break}case"initialPlacement":r=s}if(l!==r)return{reset:{placement:r}}}return{}}}},Zt=function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var r,n;const{placement:l,rects:o,platform:a,elements:s}=t,{apply:i=()=>{},...c}=ut(e,t),d=await a.detectOverflow(t,c),u=mt(l),m=gt(l),g="y"===pt(l),{width:h,height:f}=o.floating;let x,p;"top"===u||"bottom"===u?(x=u,p=m===(await(null==a.isRTL?void 0:a.isRTL(s.floating))?"start":"end")?"left":"right"):(p=u,x="end"===m?"top":"bottom");const y=f-d.top-d.bottom,b=h-d.left-d.right;let v=nt(f-d[x],y),w=nt(h-d[p],b);if(null!=(r=t.middlewareData.shift)&&r.enabled.x&&(w=b),null!=(n=t.middlewareData.shift)&&n.enabled.y&&(v=y),!t.middlewareData.shift&&!m){const e=lt(d.left,0),t=lt(d.right,0),r=lt(d.top,0),n=lt(d.bottom,0);g?w=h-2*(0!==e||0!==t?e+t:lt(d.left,d.right)):v=f-2*(0!==r||0!==n?r+n:lt(d.top,d.bottom))}await i({...t,availableWidth:w,availableHeight:v});const j=await a.getDimensions(s.floating);return h!==j.width||f!==j.height?{reset:{rects:!0}}:{}}}},Qt=(e,t,r)=>{const n=new Map,l={platform:Gt,...r},o={...l.platform,_c:n};return(async(e,t,r)=>{const{placement:n="bottom",strategy:l="absolute",middleware:o=[],platform:a}=r,s=o.filter(Boolean),i=await(null==a.isRTL?void 0:a.isRTL(t));let c=await a.getElementRects({reference:e,floating:t,strategy:l}),{x:d,y:u}=Rt(c,n,i),m=n,g={},h=0;for(let r=0;r<s.length;r++){var f;const{name:o,fn:x}=s[r],{x:p,y:y,data:b,reset:v}=await x({x:d,y:u,initialPlacement:n,placement:m,strategy:l,middlewareData:g,rects:c,platform:{...a,detectOverflow:null!=(f=a.detectOverflow)?f:Dt},elements:{reference:e,floating:t}});d=null!=p?p:d,u=null!=y?y:u,g={...g,[o]:{...g[o],...b}},v&&h<=50&&(h++,"object"==typeof v&&(v.placement&&(m=v.placement),v.rects&&(c=!0===v.rects?await a.getElementRects({reference:e,floating:t,strategy:l}):v.rects),({x:d,y:u}=Rt(c,m,i))),r=-1)}return{x:d,y:u,placement:m,strategy:l,middlewareData:g}})(e,t,{...l,platform:o})};var er="undefined"!=typeof document?i:function(){};function tr(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;let r,n,l;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if(r=e.length,r!==t.length)return!1;for(n=r;0!==n--;)if(!tr(e[n],t[n]))return!1;return!0}if(l=Object.keys(e),r=l.length,r!==Object.keys(t).length)return!1;for(n=r;0!==n--;)if(!{}.hasOwnProperty.call(t,l[n]))return!1;for(n=r;0!==n--;){const r=l[n];if(!("_owner"===r&&e.$$typeof||tr(e[r],t[r])))return!1}return!0}return e!=e&&t!=t}function rr(e){return"undefined"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function nr(e,t){const r=rr(e);return Math.round(t*r)/r}function lr(t){const r=e.useRef(t);return er(()=>{r.current=t}),r}const or=(e,t)=>({...qt(e),options:[e,t]}),ar=(e,t)=>({...Xt(e),options:[e,t]}),sr=(e,t)=>({...Zt(e),options:[e,t]}),ir={...e};let cr=!1,dr=0;const ur=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+dr++,mr=ir.useId||function(){const[t,r]=e.useState(()=>cr?ur():void 0);return St(()=>{null==t&&r(ur())},[]),e.useEffect(()=>{cr=!0},[]),t};let gr;"production"!==process.env.NODE_ENV&&(gr=new Set);const hr=e.createContext(null),fr=e.createContext(null);function xr(t){void 0===t&&(t={});const{nodeId:r}=t,n=function(t){const{open:r=!1,onOpenChange:n,elements:l}=t,o=mr(),a=e.useRef({}),[s]=e.useState(()=>function(){const e=new Map;return{emit(t,r){var n;null==(n=e.get(t))||n.forEach(e=>e(r))},on(t,r){e.has(t)||e.set(t,new Set),e.get(t).add(r)},off(t,r){var n;null==(n=e.get(t))||n.delete(r)}}}()),i=null!=((null==(c=e.useContext(hr))?void 0:c.id)||null);var c;if("production"!==process.env.NODE_ENV){const e=l.reference;e&&!$e(e)&&function(){for(var e,t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];const l="Floating UI: "+r.join(" ");var o;null!=(e=gr)&&e.has(l)||(null==(o=gr)||o.add(l),console.error(l))}("Cannot pass a virtual element to the `elements.reference` option,","as it must be a real DOM element. Use `refs.setPositionReference()`","instead.")}const[d,u]=e.useState(l.reference),m=function(t){const r=e.useRef(()=>{if("production"!==process.env.NODE_ENV)throw new Error("Cannot call an event handler while rendering.")});return Mt(()=>{r.current=t}),e.useCallback(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return null==r.current?void 0:r.current(...t)},[])}((e,t,r)=>{a.current.openEvent=e?t:void 0,s.emit("openchange",{open:e,event:t,reason:r,nested:i}),null==n||n(e,t,r)}),g=e.useMemo(()=>({setPositionReference:u}),[]),h=e.useMemo(()=>({reference:d||l.reference||null,floating:l.floating||null,domReference:l.reference}),[d,l.reference,l.floating]);return e.useMemo(()=>({dataRef:a,open:r,onOpenChange:m,elements:h,events:s,floatingId:o,refs:g}),[r,m,h,s,o,g])}({...t,elements:{reference:null,floating:null,...t.elements}}),l=t.rootContext||n,o=l.elements,[a,s]=e.useState(null),[i,c]=e.useState(null),d=(null==o?void 0:o.domReference)||a,u=e.useRef(null),m=e.useContext(fr);St(()=>{d&&(u.current=d)},[d]);const h=function(t){void 0===t&&(t={});const{placement:r="bottom",strategy:n="absolute",middleware:l=[],platform:o,elements:{reference:a,floating:s}={},transform:i=!0,whileElementsMounted:c,open:d}=t,[u,m]=e.useState({x:0,y:0,strategy:n,placement:r,middlewareData:{},isPositioned:!1}),[h,f]=e.useState(l);tr(h,l)||f(l);const[x,p]=e.useState(null),[y,b]=e.useState(null),v=e.useCallback(e=>{e!==N.current&&(N.current=e,p(e))},[]),w=e.useCallback(e=>{e!==C.current&&(C.current=e,b(e))},[]),j=a||x,k=s||y,N=e.useRef(null),C=e.useRef(null),S=e.useRef(u),M=null!=c,R=lr(c),D=lr(o),E=lr(d),A=e.useCallback(()=>{if(!N.current||!C.current)return;const e={placement:r,strategy:n,middleware:h};D.current&&(e.platform=D.current),Qt(N.current,C.current,e).then(e=>{const t={...e,isPositioned:!1!==E.current};L.current&&!tr(S.current,t)&&(S.current=t,g.flushSync(()=>{m(t)}))})},[h,r,n,D,E]);er(()=>{!1===d&&S.current.isPositioned&&(S.current.isPositioned=!1,m(e=>({...e,isPositioned:!1})))},[d]);const L=e.useRef(!1);er(()=>(L.current=!0,()=>{L.current=!1}),[]),er(()=>{if(j&&(N.current=j),k&&(C.current=k),j&&k){if(R.current)return R.current(j,k,A);A()}},[j,k,A,R,M]);const F=e.useMemo(()=>({reference:N,floating:C,setReference:v,setFloating:w}),[v,w]),z=e.useMemo(()=>({reference:j,floating:k}),[j,k]),$=e.useMemo(()=>{const e={position:n,left:0,top:0};if(!z.floating)return e;const t=nr(z.floating,u.x),r=nr(z.floating,u.y);return i?{...e,transform:"translate("+t+"px, "+r+"px)",...rr(z.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,i,z.floating,u.x,u.y]);return e.useMemo(()=>({...u,update:A,refs:F,elements:z,floatingStyles:$}),[u,A,F,z,$])}({...t,elements:{...o,...i&&{reference:i}}}),f=e.useCallback(e=>{const t=$e(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;c(t),h.refs.setReference(t)},[h.refs]),x=e.useCallback(e=>{($e(e)||null===e)&&(u.current=e,s(e)),($e(h.refs.reference.current)||null===h.refs.reference.current||null!==e&&!$e(e))&&h.refs.setReference(e)},[h.refs]),p=e.useMemo(()=>({...h.refs,setReference:x,setPositionReference:f,domReference:u}),[h.refs,x,f]),y=e.useMemo(()=>({...h.elements,domReference:d}),[h.elements,d]),b=e.useMemo(()=>({...h,...l,refs:p,elements:y,nodeId:r}),[h,p,y,r,l]);return St(()=>{l.dataRef.current.floatingContext=b;const e=null==m?void 0:m.nodesRef.current.find(e=>e.id===r);e&&(e.context=b)}),e.useMemo(()=>({...h,context:b,refs:p,elements:y}),[h,p,y,b])}var pr=({open:e,anchorEl:t,onClose:r,placement:n="bottom-start",offset:l=8,sameWidth:a=!1,maxHeight:s,zIndex:i=1e3,className:c,children:d,shouldIgnoreClose:u})=>{const{refs:m,floatingStyles:g,update:f}=xr({placement:n,whileElementsMounted:Ut,middleware:[or(l),(x={padding:8},{...Jt(x),options:[x,void 0]}),ar({padding:8}),sr({apply({rects:e,elements:t,availableHeight:r,availableWidth:n}){const l=t.floating;l&&(a&&(l.style.width=`${e.reference.width}px`),l.style.maxHeight=null!=s?"number"==typeof s?`${s}px`:String(s):`${r}px`,null!=n&&(l.style.maxWidth=`${n}px`))}})]});var x;return o(()=>{t&&m.setReference(t),e&&f&&f()},[t,e,m,f]),o(()=>{if(!e)return;const n=e=>{const n=e.target;if(u&&u(n))return;const l=m.floating.current;l&&(t&&t.contains(n)||l&&l.contains(n)||r())},l=e=>{"Escape"===e.key&&r()};return document.addEventListener("mousedown",n),document.addEventListener("keydown",l),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("keydown",l)}},[e,r,m.floating,t]),e&&t?h(N.jsx("div",{ref:m.setFloating,"data-popover-root":"true",style:{...g,zIndex:i,position:g.position,overflowX:"hidden"},className:c,children:d}),document.body):null};const yr=({globalFilter:e,filteredDataLength:t,selectedRowsCount:r=0,selectedRows:s=new Set,showExport:i=!0,showColumnToggle:c=!0,showBulkActions:d=!0,columns:u=[],columnVisibility:m={},columnFilters:g={},bulkActions:h=[],exportOptions:f,onGlobalFilterChange:x,onClearFilters:p,onColumnVisibilityChange:y,onColumnFilter:b,onResetColumns:v,columnOrder:w=[],onColumnOrderChange:j,pinnedColumns:k,onScrollToColumn:C,density:S="md",onDensityChange:M,showDensityControl:R=!1,customLeftContent:D,customRightContent:E})=>{const[A,L]=l(!1),[F,z]=l(!1),[$,T]=l(!1),[B,H]=l(!1),[Y,U]=l(""),[q,X]=l(null),[le,ae]=l(null),se=a(null),ie=a(null),ce=a(null),de=a(null),ue=a(null),me=a(null),ge=a(null),he=a(null),fe=a(null);o(()=>{const e=e=>{(e=>{let t=e;for(;t;){if(t.getAttribute&&"true"===t.getAttribute("data-popover-root")||t.dataset&&"true"===t.dataset.popoverRoot)return!0;t=t.parentNode}return!1})(e.target)||(ie.current&&!ie.current.contains(e.target)&&L(!1),ce.current&&!ce.current.contains(e.target)&&T(!1),de.current&&!de.current.contains(e.target)&&H(!1),!ue.current||ue.current.contains(e.target)||(e=>{let t=e;for(;t;){if(t.classList){const e=Array.from(t.classList).join(" ");if(/MuiPickers|MuiDatePicker|MuiPickersPopper/.test(e))return!0}if(t.getAttribute&&"dialog"===t.getAttribute("role")){const e=t.className?.toString()||"";if(/MuiPickers|MuiDatePicker/.test(e))return!0}t=t.parentNode}return!1})(e.target)||z(!1))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);const xe=f?.formats||["xlsx"],pe=(e?.length??0)>0||Object.keys(g||{}).length>0,ye=r>0,be=u.filter(e=>!1!==m[e.key]).length,ve=[...w.map(e=>u.find(t=>t.key===e)).filter(Boolean),...u.filter(e=>!w.includes(e.key))].filter(e=>e.header?.toLowerCase()?.includes(Y?.toLowerCase())),we=e=>{switch(e){case"csv":return N.jsx(ne,{size:18});case"json":return N.jsx(te,{size:18});case"xlsx":return N.jsx(re,{size:18});default:return N.jsx(K,{size:18})}},je=e=>{switch(e){case"delete":return N.jsx(_,{size:18});case"archive":return N.jsx(V,{size:18});case"copy":return N.jsx(O,{size:18});case"edit":return N.jsx(P,{size:18});case"export":return N.jsx(K,{size:18});default:return N.jsx(J,{size:18})}},ke=e=>{switch(e){case"csv":return"CSV";case"json":return"JSON";case"xlsx":return"Excel";default:return e}},Ne=(e,t=!1)=>{f?.onExport?.(e,t),L(!1)},Ce=()=>{X(null),ae(null)},Se=n(()=>u.some(e=>e.filterable),[u]);return N.jsxs("div",{className:"bg-white dark:bg-gray-900 border-b border-gray-200 dark:border-gray-700",role:"toolbar","aria-label":"Data grid toolbar",children:[N.jsxs("div",{id:"search-results-status",className:"sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:[pe?`Showing ${t} of ${t} rows`:`${t} total rows`,ye&&`, ${r} row${1!==r?"s":""} selected`]}),N.jsx("div",{className:"px-3 py-2",children:N.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 sm:gap-4",children:[N.jsxs("div",{className:"order-1 flex items-center flex-wrap gap-2 sm:gap-3",children:[N.jsxs("div",{className:"relative",ref:ue,children:[Se&&N.jsxs("button",{ref:e=>{me.current=e},onClick:()=>z(!F),className:"flex cursor-pointer items-center gap-2 px-3 py-2 border rounded-lg transition-colors "+(F?"bg-blue-50 dark:bg-blue-900/40 border-blue-200 dark:border-blue-600 text-blue-700 dark:text-blue-300":"border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800"),title:"Toggle column filters (Ctrl+K)","aria-label":"Toggle column filters","aria-haspopup":"menu","aria-expanded":F,"aria-controls":"filters-menu","aria-keyshortcuts":"Control+K",children:[N.jsx(W,{className:"w-4 h-4"}),N.jsx("span",{className:"hidden sm:inline",children:"Filters"}),Object.keys(g).length>0&&N.jsxs("button",{type:"button",onClick:e=>{e.stopPropagation(),p?.()},className:"bg-red-500 cursor-pointer hover:bg-red-600 text-white text-xs px-1.5 py-0.5 rounded-full min-w-5 h-5 flex items-center justify-center transition-all group relative",title:"Clear all filters",children:[N.jsx("span",{className:"group-hover:hidden",children:Object.keys(g).length}),N.jsx(I,{className:"w-3 h-3 hidden group-hover:block absolute"})]})]}),N.jsxs(pr,{open:F,anchorEl:me.current,onClose:()=>z(!1),placement:"bottom-start",offset:8,zIndex:1e3,maxHeight:520,className:"w-88 sm:w-88 max-w-[90vw] bg-white border border-gray-200 rounded-lg shadow-xl overflow-y-auto min-h-100",shouldIgnoreClose:e=>{let t=e;for(;t;){if(t.classList){const e=Array.from(t.classList).join(" ");if(/MuiPickers|MuiDatePicker|MuiPickersPopper/.test(e))return!0}if(t.getAttribute&&"dialog"===t.getAttribute("role")){const e=t.className?.toString()||"";if(/MuiPickers|MuiDatePicker/.test(e))return!0}t=t.parentNode}return!1},children:[N.jsxs("div",{className:"flex items-center justify-between px-2",children:[N.jsxs("div",{className:"p-3 border-b border-gray-100",children:[N.jsx("h3",{className:"font-medium text-gray-900",children:"Column Filters"}),N.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Filter data by column values"})]}),N.jsx("button",{onClick:p,className:"px-3 py-1.5 text-sm text-gray-600 border border-gray-300 rounded-md hover:bg-gray-50 transition-colors",children:"Clear All"})]}),N.jsx("div",{className:"p-3 space-y-3",children:N.jsx(De,{columns:u,columnFilters:g,onColumnFilter:b})}),N.jsx("div",{className:"flex items-center justify-between p-3 border-t border-gray-200",children:N.jsx("div",{className:"text-sm text-gray-600",children:Object.keys(g).length>0&&N.jsxs("span",{children:[Object.keys(g).length," filter",1!==Object.keys(g).length?"s":""," ","applied"]})})})]})]}),D]}),N.jsxs("div",{className:"order-2 flex items-center gap-2 sm:gap-3 flex-wrap sm:flex-nowrap",children:[E,d&&ye&&h.length>0&&N.jsxs("div",{className:"relative",ref:ce,children:[N.jsxs("button",{ref:e=>{he.current=e},onClick:()=>T(!$),className:"flex items-center gap-2 px-3 py-2.5 bg-orange-600 text-white rounded-lg hover:bg-orange-700 transition-colors",title:"Bulk actions",children:[N.jsx(J,{className:"w-4 h-4"}),N.jsxs("span",{className:"hidden sm:inline text-sm font-medium",children:["Actions (",r,")"]})]}),N.jsxs(pr,{open:$,anchorEl:he.current,onClose:()=>T(!1),placement:"bottom-end",offset:8,zIndex:1e3,className:"w-56 bg-white border border-gray-200 rounded-lg shadow-xl",children:[N.jsxs("div",{className:"p-3 border-b border-gray-100",children:[N.jsx("h3",{className:"font-medium text-gray-900",children:"Bulk Actions"}),N.jsxs("p",{className:"text-xs text-gray-500 mt-1",children:[r," row",1!==r?"s":""," selected"]})]}),N.jsx("div",{className:"p-2",children:h.map(e=>N.jsxs("button",{onClick:()=>(e=>{e.disabled||(e.onClick(s),T(!1))})(e),disabled:e.disabled,className:"w-full flex items-center gap-3 px-3 py-2 text-sm rounded-md transition-colors "+(e.disabled?"text-gray-400 cursor-not-allowed":e.destructive?"text-red-700 hover:bg-red-50":"text-gray-700 hover:bg-gray-50"),children:[je(e.id),e.label]},e.id))})]})]}),c&&u.length>0&&N.jsxs("div",{className:"relative",ref:de,children:[N.jsxs("button",{ref:e=>{fe.current=e},onClick:()=>H(!B),className:"flex items-center gap-2 px-3 py-2.5 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors",title:"Column visibility","aria-label":`Column visibility. ${be} of ${u.length} columns visible`,"aria-haspopup":"menu","aria-expanded":B,"aria-controls":"column-visibility-menu",children:[N.jsx(G,{className:"w-4 h-4"}),N.jsx("span",{className:"hidden sm:inline text-sm font-medium",children:"Columns"}),N.jsxs("span",{className:"hidden sm:inline text-xs text-gray-500",children:["(",be,"/",u.length,")"]})]}),N.jsxs(pr,{open:B,anchorEl:fe.current,onClose:()=>H(!1),placement:"bottom-end",offset:8,zIndex:1e3,className:"w-[90vw] sm:w-72 max-w-[90vw] bg-white border border-gray-200 rounded-lg shadow-xl",children:[N.jsxs("div",{className:"p-3 border-b border-gray-100",children:[N.jsx("h3",{className:"font-medium text-gray-900",children:"Show/Hide Columns"}),N.jsxs("div",{className:"relative mt-2",children:[N.jsx(ee,{className:"absolute left-2 top-1/2 -translate-y-1/2 text-gray-400 w-4 h-4"}),N.jsx("input",{type:"text",placeholder:"Search columns...",className:"w-full pl-8 pr-2 py-1.5 border border-gray-300 rounded-md focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-sm",value:Y,onChange:e=>U(e.target.value)})]})]}),N.jsx("div",{className:"max-h-60 overflow-y-auto p-2",children:ve.map(e=>{const t=!1!==m[e.key];return N.jsxs("label",{className:"flex items-center gap-3 p-2 hover:bg-gray-50 rounded-md cursor-grab relative "+(q===e.key?"opacity-60":""),draggable:!0,onDragStart:t=>((e,t)=>{X(e),t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e)})(e.key,t),onDragOver:t=>((e,t)=>{t.preventDefault(),t.dataTransfer.dropEffect="move";const r=t.currentTarget.getBoundingClientRect();ae({key:e,position:t.clientY<r.top+r.height/2?"before":"after"})})(e.key,t),onDrop:()=>(e=>{const t=q;if(!t||t===e)return;if(k&&k.has(t)!==k.has(e))return X(null),void ae(null);const r=le?.key!==e||"before"===le.position,n=(w&&w.length?w:u.map(e=>e.key)).filter(e=>e!==t);let l=n.indexOf(e);if(-1===l)return j?.(n),X(null),void ae(null);r||(l+=1),n.splice(l,0,t),j?.(n),X(null),ae(null)})(e.key),onDragEnd:Ce,children:[le?.key===e.key&&N.jsx("span",{className:"absolute left-2 right-2 h-0.5 bg-blue-600",style:{top:"before"===le.position?0:void 0,bottom:"after"===le.position?0:void 0}}),N.jsx("input",{type:"checkbox",checked:t,onChange:()=>(e=>{const t=!1!==m[e];y?.(e,!t)})(e.key),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),t?N.jsx(Z,{className:"w-4 h-4 text-green-600"}):N.jsx(Q,{className:"w-4 h-4 text-gray-400"}),N.jsx("span",{className:"text-sm text-gray-700",children:e.header}),N.jsx("button",{type:"button",onClick:r=>{r.preventDefault(),r.stopPropagation(),t?C?.(e.key):(y?.(e.key,!0),requestAnimationFrame(()=>C?.(e.key)))},className:"ml-auto p-1 text-gray-400 hover:text-blue-600",title:"Scroll to this column","aria-label":`Scroll to column ${e.header}`,children:N.jsx(oe,{className:"w-4 h-4"})})]},e.key)})}),N.jsxs("div",{className:"p-2 border-t border-gray-100",children:[N.jsxs("div",{className:"flex items-center justify-between",children:[N.jsxs("label",{className:"flex items-center gap-2 text-sm text-gray-600 hover:text-gray-900 cursor-pointer hover:bg-gray-50 px-3 py-1.5 rounded transition-colors min-h-9",children:[N.jsx("input",{type:"checkbox",checked:ve.every(e=>!1!==m[e.key]),onChange:e=>{ve.forEach(t=>{y?.(t.key,e.target.checked)})},className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),N.jsx("span",{children:"Select All"})]}),N.jsx("button",{className:"text-sm text-gray-600 hover:text-gray-900 hover:bg-gray-50 px-3 py-1.5 rounded transition-colors min-h-9",onClick:()=>{u.forEach(e=>{y?.(e.key,!1!==e.visible)}),j?.(u.map(e=>e.key)),v?.(),H(!1)},children:"Reset Columns"})]}),Y&&N.jsx("button",{className:"text-xs text-blue-600 hover:underline mt-2",onClick:()=>U(""),children:"Clear Search"})]})]})]}),R&&N.jsx("div",{className:"flex items-center",children:N.jsx("div",{className:"flex items-center gap-1 border border-gray-300 rounded-lg p-1",title:"Row density",children:["sm","md","lg"].map(e=>N.jsx("button",{className:"px-2 py-1 text-xs rounded-md "+(S===e?"bg-blue-600 text-white":"text-gray-700 hover:bg-gray-100"),onClick:()=>M?.(e),children:e.toUpperCase()},e))})}),N.jsx("div",{className:"flex items-center gap-2 order-3 w-full sm:order-0 sm:w-auto flex-1 min-w-0",children:N.jsxs("div",{className:"relative",children:[N.jsx(ee,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4","aria-hidden":"true"}),N.jsx("input",{ref:se,type:"text",placeholder:"Search...",className:"w-full sm:w-64 pl-10 pr-10 py-2.5 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 dark:text-gray-200 transition-colors",value:e,onChange:x,"aria-label":"Search all columns","aria-keyshortcuts":"Control+F","aria-describedby":"search-results-status"}),e&&N.jsx("button",{onClick:()=>x({target:{value:""}}),className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600 transition-colors",title:"Clear search",children:N.jsx(I,{className:"w-4 h-4"})})]})}),i&&f?.enabled&&N.jsxs("div",{className:"relative",ref:ie,children:[N.jsx("button",{ref:e=>{ge.current=e},onClick:()=>L(!A),className:"p-2.5 cursor-pointer border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 text-gray-700 dark:text-gray-300 transition-colors","aria-label":"Export data"+(ye?` (${r} rows selected)`:` (${t} rows)`),"aria-haspopup":"menu","aria-expanded":A,"aria-controls":"export-menu","aria-keyshortcuts":"Control+E",title:"Export data (Ctrl+E)",children:N.jsx(K,{className:"w-4 h-4"})}),N.jsxs(pr,{open:A,anchorEl:ge.current,onClose:()=>L(!1),placement:"bottom-end",offset:8,zIndex:1e3,className:"w-[90vw] sm:w-64 max-w-[90vw] bg-white border border-gray-200 rounded-lg shadow-xl",children:[N.jsxs("div",{className:"p-3 border-b border-gray-100",children:[N.jsx("h3",{className:"font-medium text-gray-900",children:"Export Data"}),N.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Choose format and data scope"})]}),N.jsxs("div",{className:"p-2",children:[N.jsxs("div",{className:"mb-3",children:[N.jsx("p",{className:"text-xs font-medium text-gray-700 mb-2 px-2",children:"Export All Data"}),N.jsx("div",{className:"space-y-1",children:xe.map(e=>N.jsxs("button",{onClick:()=>Ne(e,!1),className:" cursor-pointer w-full flex items-center gap-3 px-3 py-2 text-sm text-gray-700 hover:bg-gray-50 rounded-md transition-colors",children:[we(e),N.jsxs("span",{children:["Export as ",ke(e)]}),N.jsxs("span",{className:"ml-auto text-xs text-gray-500",children:[t.toLocaleString()," rows"]})]},`all-${e}`))})]}),ye&&N.jsxs("div",{children:[N.jsx("p",{className:"text-xs font-medium text-gray-700 mb-2 px-2",children:"Export Selected"}),N.jsx("div",{className:"space-y-1",children:xe.map(e=>N.jsxs("button",{onClick:()=>Ne(e,!0),className:"w-full flex items-center gap-3 px-3 py-2 text-sm text-blue-700 hover:bg-blue-50 rounded-md transition-colors",children:[we(e),N.jsxs("span",{children:["Export as ",ke(e)]}),N.jsxs("span",{className:"ml-auto text-xs text-blue-500",children:[r," rows"]})]},`selected-${e}`))})]})]})]})]})]})]})})]})};yr.displayName="SearchToolbar";const br=r(yr),vr=({data:e,columns:t})=>{const[r,o]=l(""),[i,u]=l({}),[m,g]=c(),[,h]=c(),f=s(e=>{g(()=>o(e))},[]),x=d(r),p=s((e,t,r,n)=>{const l=e[t];switch(r.type){case"text":{const e=String(l||"").toLowerCase(),t=String(r.value||"").toLowerCase();switch(r.operator){case"contains":default:return e.includes(t);case"equals":return e===t;case"startsWith":return e.startsWith(t);case"endsWith":return e.endsWith(t)}}case"number":{const e=parseFloat(l),t=parseFloat(String(r.value));if(isNaN(e)||isNaN(t))return!1;switch(r.operator){case"equals":default:return e===t;case"gt":return e>t;case"gte":return e>=t;case"lt":return e<t;case"lte":return e<=t;case"between":{const n=parseFloat(String(r.secondValue??""));return!isNaN(n)&&e>=t&&e<=n}}}case"date":{const e=n?.filterTs,t=n?.secondTs;if(void 0===e||isNaN(e))return!1;const o=new Date(l);if(isNaN(o.getTime()))return!1;const a=new Date(o.getFullYear(),o.getMonth(),o.getDate()).getTime();switch(r.operator){case"equals":default:return a===e;case"gt":return a>e;case"gte":return a>=e;case"lt":return a<e;case"lte":return a<=e;case"between":return void 0!==t&&!isNaN(t)&&a>=e&&a<=t}}case"boolean":return Boolean(l)===Boolean(r.value);case"multiselect":{const e=e=>null==e||""===e||"string"==typeof e&&""===e.trim()?null:e;return(Array.isArray(r.value)?r.value:[r.value]).map(e).includes(e(l))}default:return!0}},[]),y=a(new WeakMap),b=a(0),v=s(()=>{b.current>5e3&&(y.current=new WeakMap,b.current=0)},[]),w=n(()=>{v();const r=Object.keys(i).length>0,n=!!x;if(!r&&!n)return e;const l=x.toLowerCase(),o=y.current;let a=e;if(r)for(const[e,t]of Object.entries(i)){if(!t)continue;let r;if("date"===t.type){const e=t.value instanceof Date?t.value:new Date(String(t.value??"")),n=isNaN(e.getTime())?NaN:new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();let l;if(t.secondValue){const e=t.secondValue instanceof Date?t.secondValue:new Date(String(t.secondValue??""));l=isNaN(e.getTime())?NaN:new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()}r={filterTs:n,secondTs:l}}if(a=a.filter(n=>p(n,e,t,r)),0===a.length)break}if(n&&a.length>0){const e=t.filter(e=>!1!==e.visible);a=a.filter(t=>{let r=o.get(t);return null==r&&(r=e.map(e=>{const r=t[e.key];if(null==r)return"";if("string"==typeof r)return r.toLowerCase();if("number"==typeof r||"boolean"==typeof r)return String(r).toLowerCase();const n=String(r);return n.length>100?n.slice(0,100):n}).join("|"),b.current<5e3&&(o.set(t,r),b.current++)),r.includes(l)})}return a},[e,i,x,t,p,v]),j=s((e,t)=>{h(()=>{u(r=>{const n={...r};return t?n[e]=t:delete n[e],n})})},[]),k=s(e=>{j(e,null)},[j]),N=s(()=>{g(()=>o("")),h(()=>u({})),y.current=new WeakMap,b.current=0},[]),C=s(()=>{let e=0;return x&&e++,e+Object.keys(i).length},[x,i]);return{globalFilter:r,setGlobalFilter:f,columnFilters:i,filteredData:w,setColumnFilter:j,clearColumnFilter:k,clearAllFilters:N,getActiveFilterCount:C,isFilterPending:m}};function wr(){const e=self,t=(e,t)=>{if(!e||0===e.length)return e;if(!t?.key)return e;const{key:r,direction:n}=t,l="asc"===n?1:-1;return[...e].sort((e,t)=>{const n=e?.[r],o=t?.[r];return null==n&&null==o?0:null==n?-1*l:null==o?1*l:"number"==typeof n&&"number"==typeof o?(n-o)*l:String(n).localeCompare(String(o))*l})};e.onmessage=r=>{const n=r.data;if(n&&"process"===n.type)try{const{rows:r,sort:l}=n.payload;e.postMessage({type:"result",payload:{rows:t(r,l??null)}})}catch{e.postMessage({type:"result",payload:{rows:n.payload?.rows??[]}})}}}function jr(e){const t=e?.enabled??!0,r=a(null),n=a(null),l=a(t);o(()=>{l.current=t,!t&&r.current&&(r.current.terminate(),r.current=null,n.current&&(n.current.reject(new DOMException("Worker disabled","AbortError")),n.current=null))},[t]);const i=a(()=>null);return i.current=()=>{if(!l.current)return null;if(r.current)return r.current;const e=`(${wr.toString()})()`,t=new Blob([e],{type:"application/javascript"}),o=URL.createObjectURL(t),a=new Worker(o);return URL.revokeObjectURL(o),a.onmessage=e=>{"result"===e.data?.type&&(n.current?.resolve(e.data.payload.rows),n.current=null)},r.current=a,a},o(()=>()=>{r.current?.terminate(),r.current=null,n.current&&(n.current.reject(new DOMException("Unmounted","AbortError")),n.current=null)},[]),{process:s((e,t)=>{if(!l.current)return Promise.resolve(e);const r=i.current();return r?new Promise((l,o)=>{n.current&&n.current.reject(new DOMException("Superseded by newer sort","AbortError")),n.current={resolve:l,reject:o},r.postMessage({type:"process",payload:{rows:e,sort:t}})}):Promise.resolve(e)},[])}}const kr="Unknown",Nr=e=>e.join("|"),Cr=(e,t,r,n,l)=>{const o=t[r],a=new Map;for(const t of e){const e=String(t[o]??kr),r=a.get(e);r?r.push(t):a.set(e,[t])}for(const[e,s]of a.entries()){const a=[...n,`${o}=${e}`];l.add(Nr(a)),r<t.length-1&&Cr(s,t,r+1,a,l)}},Sr=(e,t)=>{const r={};for(const n of t){if(!n.aggregate)continue;const t=e.map(e=>e[n.key]);let l=null;if("function"==typeof n.aggregate)try{l=n.aggregate(t)}catch(e){l=null}else{const e=e=>!!(/^\d{4}-\d{2}-\d{2}$/.test(e)||/^\d{2}-\d{2}-\d{4}$/.test(e)||/^\d{4}\/\d{2}\/\d{2}$/.test(e)||/^\d{2}\/\d{2}\/\d{4}$/.test(e)||(e.includes("-")||e.includes("/"))&&Number.isFinite(Date.parse(e))),r=t.map(t=>{if("number"==typeof t)return t;if(null==t)return NaN;const r=String(t);if(e(r))return NaN;const n=parseFloat(r.replace(/,/g,""));return Number.isFinite(n)?n:NaN}).filter(e=>Number.isFinite(e)),o=()=>t.map(e=>{if(e instanceof Date)return e.getTime();if("string"==typeof e||"number"==typeof e){const t=Date.parse(String(e));return Number.isFinite(t)?t:NaN}return NaN}).filter(e=>Number.isFinite(e));if("sum"===n.aggregate||"avg"===n.aggregate)r.length&&(l="sum"===n.aggregate?r.reduce((e,t)=>e+t,0):r.reduce((e,t)=>e+t,0)/r.length);else if("min"===n.aggregate||"max"===n.aggregate)if(r.length)l="min"===n.aggregate?Math.min(...r):Math.max(...r);else{const e=o();if(e.length){const t="min"===n.aggregate?Math.min(...e):Math.max(...e);l=new Date(t)}}}null!=l&&(r[n.key]=l)}return r},Mr=({data:e,pagination:t})=>{const[r,a]=l(1),[i,c]=l(t?.pageSize||50),[d,u]=l(!1);o(()=>{const e=t?.pageSize;e&&e!==i&&(c(e),a(1))},[t?.pageSize]);const m=s(()=>{a(1)},[]),g=n(()=>{const n=!1!==t?.enabled,l="server"===(t?.mode||"client")?t?.serverConfig?.totalRows||0:e.length,o=Math.ceil(l/i);return{enabled:n,pageSize:i,currentPage:r,totalPages:o,totalRows:l,showPageSizeSelector:!1!==t?.showPageSizeSelector,pageSizeOptions:t?.pageSizeOptions||[25,50,100,200,500]}},[t,i,r,e.length]),h=n(()=>{if(!g.enabled||"server"===t?.mode)return e;const n=(r-1)*i;return e.slice(n,n+i)},[e,r,i,g.enabled,t?.mode]),f=s(async e=>{if("server"===t?.mode&&t?.serverConfig?.onPageChange){u(!0);try{await t.serverConfig.onPageChange(e,i)}finally{u(!1)}}a(e)},[t,i]),x=s(async e=>{if("server"===t?.mode&&t?.serverConfig?.onPageSizeChange){u(!0);try{await t.serverConfig.onPageSizeChange(e)}finally{u(!1)}}c(e),a(1)},[t]);return{currentPage:r,resetPage:m,paginationConfig:g,paginatedData:h,isServerLoading:d,handlePageChange:f,handlePageSizeChange:x}},Rr=(e,t)=>{if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0},Dr=({data:e,selectedRowIds:t,onRowSelect:r,getRowId:a})=>{const i=s((e,t)=>a?a(e):void 0!==e.id?e.id:("development"===process.env.NODE_ENV&&0===t&&console.warn("[KDGrid] No row IDs found. Either:\n 1. Add 'id' property to each row object, or\n 2. Provide 'getRowId' prop to extract a unique identifier.\n Using row index as fallback ID, but this may cause issues with pagination/filtering."),t??0),[a]),[c,d]=l(()=>new Set(t?Array.from(t):[]));o(()=>{t&&d(e=>{const r=new Set(Array.from(t));return Rr(e,r)?e:r})},[t]);const u=n(()=>{const t=new Map;return e.forEach((e,r)=>t.set(i(e,r),e)),t},[e,i]);o(()=>{if(0===c.size)return;let e=!1;for(const t of c)if(!u.has(t)){e=!0;break}e&&d(e=>{const t=new Set;return e.forEach(e=>{u.has(e)&&t.add(e)}),Rr(e,t)?e:t})},[u]);const m=s((e,t)=>{if(d(r=>{const n=new Set(r);return t?n.add(e):n.delete(e),n}),r){const t=u.get(e);t&&r(t)}},[u,r]),g=s(t=>{d(t?new Set(e.map((e,t)=>i(e,t))):new Set)},[e,i]);return{selectedRows:c,handleRowSelect:m,handleSelectAll:g}},Er=({data:e,virtualized:t=!0,rowHeight:r=40,overscan:i=10,height:c})=>{const d=a(null),[u,m]=l(0),g=a(null),h=a(0),[f,x]=l(c);o(()=>{const e=d.current;if(!e)return;const t=new ResizeObserver(([e])=>{const t=e.contentRect.height;t>0&&x(t)});t.observe(e);const r=e.clientHeight;return r>0&&x(r),()=>t.disconnect()},[]),o(()=>{c>0&&x(c)},[c]);const p=n(()=>{if(!t)return{startIndex:0,endIndex:e.length-1,offsetY:0};const n=Math.max(1,Math.ceil(f/r)),l=Math.max(i,Math.max(8,Math.min(2*n,50))),o=Math.max(0,Math.floor(u/r)-l),a=Math.ceil(f/r);return{startIndex:o,endIndex:Math.min(e.length-1,o+a+2*l),offsetY:o*r}},[u,f,e.length,r,i,t]),y=n(()=>t?e.slice(p.startIndex,p.endIndex+1):e,[e,p,t]),b=e.length*r,v=s(e=>{h.current=e.target.scrollTop,null==g.current&&(g.current=requestAnimationFrame(()=>{g.current=null,m(h.current)}))},[]);return o(()=>()=>{null!=g.current&&cancelAnimationFrame(g.current)},[]),{scrollRef:d,virtualizedRange:p,visibleData:y,totalHeight:b,handleScroll:v}},Ar=()=>!0,Lr=u(function({data:e,columns:t,getRowId:r,height:i,density:c="md",headerDensity:d,headerHeight:u,onDensityChange:g,showDensityControl:h=!1,onRowSelect:f,onSelectedRowsChange:x,selectable:p=!1,isRowSelectable:y,showToolbar:b=!0,showExport:v=!1,filterable:w=!0,groupable:j=!1,virtualized:k=!0,rowHeight:M,overscan:R=6,rowStyle:D,onContextMenu:E,onRowDoubleClick:A,onRowClick:L,onCellClick:F,onCellContextMenu:z,cellFocusEnabled:$=!1,onCellFocusChange:I,cellSelectionEnabled:T=!1,canSelectCell:O=Ar,onCellSelectionChange:P,pagination:_={enabled:!1,mode:"client",pageSize:50},virtualizationThreshold:V=300,loading:K=!1,onFilterChange:B,onSort:W,onColumnConfigChange:H,initialColumnConfig:G,toolbarLeft:Y,toolbarRight:U,groupBarVisibility:q="auto",groupFooterVariant:X="chips",onCopyCells:J,selectedRowIds:Z,performanceConfig:Q={},exportOptions:ee,renderGroupActions:te,contextMenuItems:re},ne){const le=a(null),[oe,ae]=l(0);o(()=>{const e=le.current;if(!e)return;const t=()=>ae(e.clientWidth||0);t();const r=new ResizeObserver(()=>t());return r.observe(e),()=>r.disconnect()},[]);const[se,ie]=l(null),[ce,de]=l(null),[ue,me]=l(null),ge=a(!1),he=a(null),fe=a(null),[xe,pe]=l(null),[be,ve]=l(c);o(()=>{ve(c)},[c]);const we=n(()=>({sm:28,md:40,lg:56}),[]),Se=n(()=>null!=M?M:we[be],[M,be,we]),Re=n(()=>null!=u?u:we[d??"md"],[u,d,we]),{globalFilter:De,columnFilters:Ee,filteredData:Ae,setGlobalFilter:Le,setColumnFilter:Fe,clearAllFilters:ze}=vr({data:e,columns:t}),[$e,Ie]=l({key:null,direction:null}),[Te,Oe]=l(()=>{const e={};return t.forEach(t=>{e[t.key]=t.width||100}),e}),Pe=a(t.reduce((e,t)=>(e[t.key]=t.width||100,e),{})),_e=a(t.map(e=>e.key)),[Ve,Ke]=l(()=>_e.current.slice()),[Be,We]=l(new Set),[He,Ge]=l(()=>{const e={};return t.forEach(t=>{e[t.key]=!0}),e}),Ye=s(e=>{let t=e,r="asc";$e.key!==e?(t=e,r="asc"):"asc"===$e.direction?r="desc":"desc"===$e.direction?(t=null,r=null):r="asc",Ie({key:t,direction:r}),W&&"server"===_?.mode&&t&&r&&W(t,r)},[W,_?.mode,$e.key,$e.direction]),Ue=s((e,t)=>{Oe(r=>({...r,[e]:t}))},[]),qe=s(e=>null==e?0:8*("string"==typeof e?e:String(e)).length,[]),Xe=s(r=>{const n=t.find(e=>e.key===r);if(!n)return;const l=qe(n.header),o=e.slice(0,500);let a=0;for(const e of o)a=Math.max(a,qe(e[r]));const s=Math.max(60,Math.min(500,Math.max(l,a)+32));Oe(e=>({...e,[r]:s}))},[t,e,qe]),Je=s(()=>{t.forEach(e=>Xe(e.key))},[t,Xe]),Ze=s(()=>{Oe({...Pe.current}),We(new Set),Ge(e=>{const t={};return Object.keys(e).forEach(e=>t[e]=!0),t}),Ke(_e.current.slice())},[]),Qe=a(null),et=a(null),tt=s((e,t)=>{We(r=>{const n=new Set(r);return t?n.add(e):n.delete(e),n})},[]),rt=s((e,t)=>{Ge(r=>({...r,[e]:t}))},[]),{process:nt}=jr({enabled:!0}),[lt,ot]=l(Ae),at=Q?.sortWorkerThreshold??5e3;o(()=>{let e=!1;if(!$e.key)return void ot(Ae);const t=Ae;if(t.length<at){const e="asc"===$e.direction?1:-1,r=[...t].sort((t,r)=>{const n=t?.[$e.key],l=r?.[$e.key];return null==n&&null==l?0:null==n?-1*e:null==l?1*e:"number"==typeof n&&"number"==typeof l?(n-l)*e:String(n).localeCompare(String(l))*e});return void ot(r)}return nt(t,{key:$e.key,direction:$e.direction}).then(t=>{e||ot(t)}),()=>{e=!0}},[Ae,$e,nt,at]);const{paginationConfig:st,paginatedData:it,isServerLoading:ct,handlePageChange:dt,handlePageSizeChange:ut,resetPage:mt,currentPage:gt}=Mr({data:lt,pagination:_}),ht=K||ct,[ft,xt]=l(ht),[pt,yt]=l(!1),[bt,vt]=l(0);o(()=>{if(ht)return xt(!0),void yt(!1);if(ft){yt(!0);const e=setTimeout(()=>{xt(!1),yt(!1)},200);return()=>clearTimeout(e)}},[ht]);const wt=s(e=>{Le(e.target.value)},[Le]),{groupConfig:jt,displayData:kt,handleGroupBy:Nt,addGroupKey:Ct,removeGroupKey:St,setGroupKeys:Mt,toggleGroupExpansion:Rt,isGrouped:Dt,expandAllGroups:Et,collapseAllGroups:At}=(({data:e,columns:t})=>{const[r,a]=l({columnKeys:[],expanded:new Set}),s=n(()=>{const n=r.columnKeys;if(!n.length)return e;const l=[],o=(e,a,s)=>{const i=n[a],c=new Map;for(const t of e){const e=String(t[i]??kr),r=c.get(e);r?r.push(t):c.set(e,[t])}const d=Array.from(c.entries()).sort(([e],[t])=>e.localeCompare(t));for(const[e,c]of d){const d=[...s,`${i}=${e}`],u=Nr(d);if(l.push({id:`group-${u}`,_isGroupHeader:!0,_groupKey:u,_groupCount:c.length,_groupLevel:a,_groupColumnKey:i,_groupValue:e,_groupRows:c}),!r.expanded.has(u))continue;if(a<n.length-1)o(c,a+1,d);else for(const e of c)l.push(e);const m=Sr(c,t);l.push({id:`group-footer-${u}`,_isGroupFooter:!0,_groupKey:u,_groupLevel:a,_groupAgg:m})}};return o(e,0,[]),l},[e,t,r.columnKeys,r.expanded]);return o(()=>{if(!r.columnKeys.length)return;const t=new Set;Cr(e,r.columnKeys,0,[],t);let n=!1;if(t.size!==r.expanded.size)n=!0;else for(const e of t)if(!r.expanded.has(e)){n=!0;break}n&&a(e=>({...e,expanded:t}))},[r.columnKeys,e]),{groupConfig:r,displayData:s,handleGroupBy:e=>{a({columnKeys:e?[e]:[],expanded:new Set})},addGroupKey:e=>{a(t=>t.columnKeys.includes(e)?t:{...t,columnKeys:[...t.columnKeys,e]})},removeGroupKey:e=>{a(t=>{const r=t.columnKeys.filter(t=>t!==e),n=new Set;for(const r of t.expanded)r.includes(`${e}=`)||n.add(r);return{columnKeys:r,expanded:n}})},setGroupKeys:e=>{a({columnKeys:[...e],expanded:new Set})},toggleGroupExpansion:e=>{a(t=>{const r=new Set(t.expanded);return r.has(e)?r.delete(e):r.add(e),{...t,expanded:r}})},expandAllGroups:()=>{const t=r.columnKeys;if(!t.length)return;const n=new Set;Cr(e,t,0,[],n),a(e=>({...e,expanded:n}))},collapseAllGroups:()=>{a(e=>({...e,expanded:new Set}))},isGrouped:r.columnKeys.length>0}})({data:lt,columns:t});m(ne,()=>({setGroupKeys:Mt,addGroupKey:Ct,removeGroupKey:St,expandAllGroups:Et,collapseAllGroups:At,toggleGroupExpansion:Rt,getGroupConfig:()=>jt,setColumnFilter:(e,t)=>{Fe(e,t)},clearColumnFilter:e=>{Fe(e,null)},clearAllFilters:()=>{ze()},setGlobalFilter:e=>{Le(e)}}),[jt,Fe,ze,Le]);const Lt=n(()=>new Set(Be),[Be]),Ft=_?.enabled?"server"===_.mode?e:it:lt,zt=Dt?kt:Ft,{selectedRows:$t,handleRowSelect:It,handleSelectAll:Tt}=Dr({data:zt,onRowSelect:f,selectedRowIds:Z,getRowId:r}),Ot=a(x);o(()=>{Ot.current=x},[x]),o(()=>{Ot.current&&Ot.current($t)},[$t]);const{exportData:Pt}=(({data:e,columns:t,selectedRows:r,filename:n="data",columnVisibility:l})=>{const o=s(()=>l?t.filter(e=>!1!==l[e.key]):t,[t,l]),a=s((e,t,r)=>{const n=new Blob([e],{type:r}),l=URL.createObjectURL(n),o=document.createElement("a");o.href=l,o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(l)},[]),i=s((e,t)=>{const r=o(),n=r.map(e=>e.header).join(","),l=e.map(e=>r.map(t=>{const r=String(e[t.key]??"");return r.includes(",")||r.includes('"')?`"${r.replace(/"/g,'""')}"`:r}).join(","));a([n,...l].join("\n"),`${t}.csv`,"text/csv")},[o,a]),c=s((e,t)=>{const r=o(),n=e.map(e=>{const t={};for(const n of r)t[n.header]=e[n.key];return t});a(JSON.stringify(n,null,2),`${t}.json`,"application/json")},[o,a]),d=s(async(e,t)=>{const r=o(),[{default:n},{saveAs:l}]=await Promise.all([import("exceljs"),import("file-saver")]),a=new n.Workbook,s=a.addWorksheet("Data"),i=e.slice(0,50),c=e=>{if(null==e)return"";if("number"==typeof e||"boolean"==typeof e||e instanceof Date)return e;const t=String(e);if(/[a-zA-Z]/.test(t))return t;if(/^-?[\d,]+\.?\d*$/.test(t.trim())){const e=Number(t.replace(/,/g,""));if(Number.isFinite(e))return e}return t};s.columns=r.map(e=>{const t=e.header||e.key;let r=t?.length||10;for(const t of i){const n=null==t[e.key]?"":String(t[e.key]);n.length>r&&(r=n.length)}return{header:t,key:e.key,width:Math.max(8,Math.min(50,Math.ceil(1.1*r)))}});for(const t of e){const e={};for(const n of r)e[n.key]=c(t[n.key]);s.addRow(e)}s.getRow(1).font={bold:!0},s.autoFilter={from:{row:1,column:1},to:{row:Math.max(1,s.rowCount),column:r.length}};const d=await a.xlsx.writeBuffer();l(new Blob([d],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}),`${t}.xlsx`)},[o]);return{exportData:s((t,l=!1)=>{const o=l&&r&&r.size>0?e.filter(e=>r.has(e.id)):e,a=l&&r&&r.size>0?`${n}_selected_${r.size}_rows`:n;switch(t){case"csv":i(o,a);break;case"json":c(o,a);break;case"xlsx":d(o,a);break;default:console.warn(`[KDGrid] Unsupported export format: ${t}`)}},[e,r,n,i,c,d]),canExportSelected:!!(r&&r.size>0),selectedCount:r?.size??0}})({data:Ft,columns:t,selectedRows:$t,filename:ee&&ee.filename||"grid-data",columnVisibility:He}),_t=s((e,t)=>{const r=Array.from($t||[]);"server"===ee?.exportMode&&"function"==typeof ee?.onServerExport?ee.onServerExport(e,t,r):Pt(e,t)},[ee?.exportMode,ee?.onServerExport,Pt,$t]),Vt=s(()=>{ze()},[ze]),Kt=s(e=>{ve(e),g&&g(e)},[g]),Bt=n(()=>!!k&&zt.length>V,[k,zt.length,V]),Wt=n(()=>({enableHorizontalVirtualization:!0,horizontalVirtualizationThreshold:50,sortWorkerThreshold:5e3,maxFilterCacheSize:5e3,enableAggressiveMemoization:!0,...Q}),[Q]),{scrollRef:Ht,virtualizedRange:Gt,visibleData:Yt,handleScroll:Ut}=Er({data:zt,virtualized:Bt,rowHeight:Se,overscan:R,height:i||400});o(()=>{const e=()=>{const e=Ht.current;e&&vt((e.offsetTop||0)+(Re||0)-1)};e();const t=new ResizeObserver(e);return le.current&&t.observe(le.current),Ht.current&&t.observe(Ht.current),()=>t.disconnect()},[Re]);const[qt,Xt]=l(0),Jt=a(0),Zt=a(null),Qt=s(e=>{Jt.current=e,null==Zt.current&&(Zt.current=requestAnimationFrame(()=>{Zt.current=null,Xt(Jt.current)}))},[]),[er,tr]=l(0);o(()=>{const e=Ht.current;if(!e)return;const t=()=>tr(e.clientWidth||0);t();const r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[Ht]),o(()=>{if(!B)return;if(!_?.enabled||"server"!==_.mode)return;const e=t.filter(e=>!!e.filterable).map(e=>e.key);B({globalFilter:De,columnFilters:Ee,filterableKeys:e})},[De,Ee]),o(()=>{if(!G)return;const e=new Set(t.map(e=>e.key));if(G.columnWidths){const t=Object.fromEntries(Object.entries(G.columnWidths).filter(([t])=>e.has(t)));Oe(e=>({...e,...t}))}if(G.columnVisibility){const t=Object.fromEntries(Object.entries(G.columnVisibility).filter(([t])=>e.has(t)));Ge(e=>({...e,...t}))}if(G.pinnedColumns){const t=G.pinnedColumns.filter(t=>e.has(t));We(new Set(t))}if(G.sortConfig){const e="asc"===G.sortConfig.direction||"desc"===G.sortConfig.direction?G.sortConfig.direction:null;Ie({key:e?G.sortConfig.key:null,direction:e})}if(G.filters){Le(G.filters.globalFilter||"");const t=Object.entries(G.filters.columnFilters||{}).filter(([t])=>e.has(t));for(const[e,r]of t)Fe(e,r)}if(G.columnOrder&&G.columnOrder.length){const r=G.columnOrder.filter(t=>e.has(t)),n=t.map(e=>e.key).filter(e=>!r.includes(e));Ke([...r,...n])}G.groupConfig?.columnKeys&&G.groupConfig.columnKeys.length&&Mt(G.groupConfig.columnKeys),G.density&&ve(G.density)},[]),o(()=>{if(!H)return;const e=setTimeout(()=>{H({columnWidths:Te,columnVisibility:He,pinnedColumns:Array.from(Be),sortConfig:$e,groupConfig:{columnKeys:jt.columnKeys},filters:{globalFilter:De,columnFilters:Ee},columnOrder:Ve,density:be})},200);return()=>clearTimeout(e)},[H,Te,He,Be,$e,jt,De,Ee,Ve,be]);const rr=n(()=>{if(0===t.length)return[];const e=new Map(Ve.map((e,t)=>[e,t])),r=t.filter(e=>!1!==He[e.key]).sort((t,r)=>(e.get(t.key)||0)-(e.get(r.key)||0)).map(e=>{const t=Te[e.key]??e.width,r=Number.isFinite(Number(t))?Number(t):100,n=!1!==e.sortable;return{...e,width:r,sortable:n}}),n=Math.max(0,oe-(p?C:0)),l=r.reduce((e,t)=>e+t.width,0);if(n>l){const e=r.filter(e=>e.flex);if(e.length>0){const t=n-l,r=e.reduce((e,t)=>e+Math.max(0,!0===t.flex?1:"number"==typeof t.flex?t.flex:1),0);if(r>0)for(const n of e)n.width=Math.max(n.minWidth??0,Math.min(n.maxWidth??Number.POSITIVE_INFINITY,n.width+t*(!0===n.flex?1:"number"==typeof n.flex?n.flex:1)/r))}}const o=[],a=[];for(const e of r)Lt.has(e.key)?o.push(e):a.push(e);if(jt.columnKeys&&jt.columnKeys.length>0){const e=new Map(jt.columnKeys.map((e,t)=>[e,t]));a.sort((t,r)=>(e.get(t.key)??Number.POSITIVE_INFINITY)-(e.get(r.key)??Number.POSITIVE_INFINITY))}return[...o,...a]},[t,Te,Lt,He,Ve,jt.columnKeys,oe,p]),nr=n(()=>Wt.enableHorizontalVirtualization&&rr.length>Wt.horizontalVirtualizationThreshold,[rr.length,Wt.enableHorizontalVirtualization,Wt.horizontalVirtualizationThreshold]),lr=n(()=>rr.filter(e=>Lt.has(e.key)),[rr,Lt]),or=n(()=>rr.filter(e=>!Lt.has(e.key)),[rr,Lt]),ar=n(()=>{const e=or.map(e=>e.width||100),t=new Array(e.length+1).fill(0);for(let r=0;r<e.length;r++)t[r+1]=t[r]+e[r];return{widths:e,prefix:t,totalWidth:t[e.length]||0}},[or]),sr=n(()=>{if(!nr)return rr;const e=p?C:0,t=lr.reduce((e,t)=>e+(t.width||100),0),r=Math.max(0,qt-200),n=qt+er+200,l=e+t,o=Math.max(0,r-l),a=Math.max(0,Math.min(ar.totalWidth,n-l)),s=(e=>{if(!ar.widths.length)return 0;let t=0,r=ar.widths.length-1,n=0;for(;t<=r;){const l=t+r>>1;ar.prefix[l+1]>=e?(n=l,r=l-1):t=l+1}return Math.max(0,Math.min(n,ar.widths.length-1))})(o),i=(e=>{if(!ar.widths.length)return-1;let t=0,r=ar.widths.length-1,n=ar.widths.length-1;for(;t<=r;){const l=t+r>>1;ar.prefix[l]<=e?(n=l,t=l+1):r=l-1}return Math.max(0,Math.min(n,ar.widths.length-1))})(a),c=i>=s&&i>=0?or.slice(s,i+1):[];return[...lr,...c]},[nr,rr,qt,er,p,lr,or,ar]),ir=n(()=>{const e=new Map;return or.forEach((t,r)=>e.set(t.key,r)),e},[or]),{hvPadLeftMemo:cr,hvPadRightMemo:dr}=n(()=>{if(!nr)return{hvPadLeftMemo:0,hvPadRightMemo:0};const e=sr.filter(e=>!Lt.has(e.key));if(!e.length)return{hvPadLeftMemo:0,hvPadRightMemo:0};const t=ir.get(e[0].key),r=ir.get(e[e.length-1].key);return null==t||null==r?{hvPadLeftMemo:0,hvPadRightMemo:0}:{hvPadLeftMemo:ar.prefix[t],hvPadRightMemo:ar.totalWidth-ar.prefix[r+1]}},[nr,sr,Lt,ir,ar]),ur=n(()=>rr.some(e=>e.footerAggregate),[rr]);o(()=>{const e=Ht.current;if(!e)return;let t=!1;const r=()=>{if(t)return;t=!0;const r=et.current;r&&r.scrollLeft!==e.scrollLeft&&(r.scrollLeft=e.scrollLeft),Qt(e.scrollLeft),requestAnimationFrame(()=>{t=!1})};return e.addEventListener("scroll",r,{passive:!0}),et.current&&(et.current.scrollLeft=e.scrollLeft),()=>{e.removeEventListener("scroll",r)}},[Ht,ur]);const mr=n(()=>{const e=new Map;return rr.forEach((t,r)=>e.set(t.key,r)),e},[rr]),gr=n(()=>{const e=new Map;return rr.forEach(t=>e.set(t.key,t)),e},[rr]),hr=n(()=>zt.filter(e=>!e._isGroupHeader&&!e._isGroupFooter),[zt]),fr=n(()=>{const e=new Map;return hr.forEach((t,r)=>e.set(t.id,r)),e},[hr]),xr=n(()=>{const e=new Map;return hr.forEach(t=>e.set(t.id,t)),e},[hr]),pr=a(null),yr=a(P),wr=a(J);o(()=>{wr.current=J},[J]),o(()=>{yr.current=P},[P]);const Rr=n(()=>rr.map(e=>e.key),[rr]),Lr=n(()=>(e,t)=>{if(!T)return!1;if(!ce||!ue)return!1;const r=fr.get(e),n=mr.get(t);if(null==r||null==n)return!1;const l=xr.get(e),o=gr.get(t);if(l&&o&&!O(l,o))return!1;const a=Math.min(ce.rowIndex,ue.rowIndex),s=Math.max(ce.rowIndex,ue.rowIndex),i=Math.min(ce.colIndex,ue.colIndex),c=Math.max(ce.colIndex,ue.colIndex);return r>=a&&r<=s&&n>=i&&n<=c},[T,ce,ue,fr,mr,xr,gr,O]),Fr=n(()=>(e,t)=>se?.rowId===e&&se?.columnKey===t,[se]),zr=s(e=>{const t=Ht.current;if(!t)return;const r=Math.abs(e.deltaX)>=Math.abs(e.deltaY)?e.deltaX:e.deltaY;0!==r&&(e.preventDefault(),t.scrollBy({left:r,top:0,behavior:"auto"}))},[]),$r=s(({row:e,column:t,event:r})=>{const n=fr.get(e.id),l=mr.get(t.key);$&&null!=n&&null!=l&&(document.body.hasAttribute("data-modal-open")||(ie({rowId:e.id,columnKey:t.key}),I&&I({row:e,column:t,value:e[t.key],rowIndex:n,colIndex:l}))),T&&O(e,t)&&0===r.button&&(ge.current=!0,he.current={x:r.clientX,y:r.clientY},null!=n&&null!=l&&(ie({rowId:e.id,columnKey:t.key}),de({rowIndex:n,colIndex:l}),me({rowIndex:n,colIndex:l}),pe({x:r.clientX,y:r.clientY,rows:1,cols:1})))},[$,I,T,O,fr,mr]),Ir=s(({row:e,column:t,event:r})=>{if(!T)return;if(!ge.current||!ce)return;if(!O(e,t))return;const n=fr.get(e.id),l=mr.get(t.key);if(null==n||null==l)return;me({rowIndex:n,colIndex:l}),he.current={x:r.clientX,y:r.clientY};const o=Math.min(ce.rowIndex,n),a=Math.max(ce.rowIndex,n),s=Math.min(ce.colIndex,l),i=Math.max(ce.colIndex,l);pe({x:r.clientX,y:r.clientY,rows:a-o+1,cols:i-s+1})},[T,O,ce,fr,mr]);o(()=>{const e=()=>{ge.current=!1,pe(null),fe.current&&(cancelAnimationFrame(fe.current),fe.current=null)};return window.addEventListener("mouseup",e),()=>window.removeEventListener("mouseup",e)},[]),o(()=>{const e=e=>{ge.current&&(he.current={x:e.clientX,y:e.clientY})};return window.addEventListener("mousemove",e),()=>window.removeEventListener("mousemove",e)},[]);const Tr=s(()=>{if(null!=fe.current)return;const e=()=>{if(fe.current=null,!ge.current)return;const t=Ht.current,r=he.current;if(t&&r){const e=t.getBoundingClientRect(),n=24,l=24;let o=0,a=0;r.x<e.left+n?o=-(e.left+n-r.x):r.x>e.right-n&&(o=r.x-(e.right-n)),r.y<e.top+n?a=-(e.top+n-r.y):r.y>e.bottom-n&&(a=r.y-(e.bottom-n));const s=e=>Math.max(-l,Math.min(l,e));o=s(o),a=s(a),0===o&&0===a||t.scrollBy({left:o,top:a,behavior:"auto"})}fe.current=requestAnimationFrame(e)};fe.current=requestAnimationFrame(e)},[]);o(()=>{ge.current&&Tr()},[Tr,ce]),o(()=>{const e=e=>{if("Escape"===e.key)return de(null),me(null),ie(null),void pe(null);const t=e.shiftKey,r=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(e.key);if(!t||!r||!T)return;e.preventDefault();let n=ue;if(!n){if(!se)return;{const e=fr.get(se.rowId),t=mr.get(se.columnKey);if(null==e||null==t)return;de({rowIndex:e,colIndex:t}),n={rowIndex:e,colIndex:t}}}const l=hr.length-1,o=rr.length-1;let a=n.rowIndex,s=n.colIndex;"ArrowUp"===e.key&&(a=Math.max(0,a-1)),"ArrowDown"===e.key&&(a=Math.min(l,a+1)),"ArrowLeft"===e.key&&(s=Math.max(0,s-1)),"ArrowRight"===e.key&&(s=Math.min(o,s+1)),me({rowIndex:a,colIndex:s});const i=Ht.current;if(i){const e=i.getBoundingClientRect();pe({x:e.right-16,y:e.bottom-16,rows:Math.abs((ce?.rowIndex??a)-a)+1,cols:Math.abs((ce?.colIndex??s)-s)+1})}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[T,se,ce,ue,fr,mr,hr.length,rr.length]),o(()=>{if(!$)return;const e=Ht.current,t=Qe.current,r=r=>{if(!se)return;if(document.body.hasAttribute("data-modal-open"))return;const{key:n}=r;if("ArrowLeft"!==n&&"ArrowRight"!==n&&"ArrowUp"!==n&&"ArrowDown"!==n)return;r.preventDefault();const l=fr.get(se.rowId),o=mr.get(se.columnKey);if(null==l||null==o)return;let a=l,s=o;"ArrowLeft"===r.key&&(s=Math.max(0,o-1)),"ArrowRight"===r.key&&(s=Math.min(rr.length-1,o+1)),"ArrowUp"===r.key&&(a=Math.max(0,l-1)),"ArrowDown"===r.key&&(a=Math.min(hr.length-1,l+1));const i=hr[a],c=rr[s];i&&c&&(ie({rowId:i.id,columnKey:c.key}),I&&I({row:i,column:c,value:i[c.key],rowIndex:a,colIndex:s}),((r,n)=>{if(!e)return;const l=e.clientHeight,o=r*Se,a=o+Se;o<e.scrollTop?e.scrollTop=o:a>e.scrollTop+l&&(e.scrollTop=a-l);const s=rr[n]?.width||100;let i=p?C:0;for(let e=0;e<n;e++)i+=rr[e]?.width||100;const c=i+s,d=e.clientWidth;i<e.scrollLeft?e.scrollLeft=i:c>e.scrollLeft+d&&(e.scrollLeft=c-d),t&&(t.scrollLeft=e.scrollLeft)})(a,s))};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[$,se,hr,rr,Se,p,fr,mr,I]),o(()=>{if(!T||!ce||!ue){const e={bounds:null,cells:[]},t="none";return void(t!==pr.current&&(pr.current=t,yr.current?.(e)))}const e=Math.min(ce.rowIndex,ue.rowIndex),t=Math.max(ce.rowIndex,ue.rowIndex),r=Math.min(ce.colIndex,ue.colIndex),n=Math.max(ce.colIndex,ue.colIndex),l=[];for(let o=e;o<=t;o++){const e=hr[o];if(e)for(let t=r;t<=n;t++){const r=rr[t];r&&O(e,r)&&l.push({row:e,column:r,value:e[r.key],rowIndex:o,colIndex:t})}}const o={bounds:{rowStart:e,rowEnd:t,colStart:r,colEnd:n},cells:l},a=`${e}-${t}-${r}-${n}|len:${l.length}`;a!==pr.current&&(pr.current=a,yr.current?.(o))},[T,ce,ue,hr,Rr,O]),o(()=>{if(!T&&!$)return;const e=async e=>{if(!e.metaKey&&!e.ctrlKey||"c"!==e.key.toLowerCase())return;const t=!!e.shiftKey,r=!(!ce||!ue),n=!(!$||!se);if(!r&&!n)return;if(!r&&n){const e=window.getSelection();if(e&&e.toString().length>0)return;const t=document.activeElement;if(t&&("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable))return}e.preventDefault();const l=(()=>{const e=[];if(r&&ce&&ue){const t=Math.min(ce.rowIndex,ue.rowIndex),r=Math.max(ce.rowIndex,ue.rowIndex),n=Math.min(ce.colIndex,ue.colIndex),l=Math.max(ce.colIndex,ue.colIndex);for(let o=t;o<=r;o++){const t=hr[o];if(t)for(let r=n;r<=l;r++){const n=rr[r];n&&O(t,n)&&e.push({row:t,column:n,value:t[n.key],rowIndex:o,colIndex:r})}}}else if(n&&se){const t=fr.get(se.rowId),r=mr.get(se.columnKey);if(null!=t&&null!=r){const n=hr[t],l=rr[r];n&&l&&e.push({row:n,column:l,value:n[l.key],rowIndex:t,colIndex:r})}}return e})();if(!l.length)return;const o=e=>{const t=null==e?"":String(e);return t.includes('"')||t.includes("\t")||t.includes("\n")||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t};let a="";if(r&&ce&&ue){const e=Math.min(ce.rowIndex,ue.rowIndex),r=Math.max(ce.rowIndex,ue.rowIndex),n=Math.min(ce.colIndex,ue.colIndex),l=Math.max(ce.colIndex,ue.colIndex);if(t){const e=[];for(let t=n;t<=l;t++){const r=rr[t];r&&e.push(o(r.header??r.key))}a+=e.join("\t")+"\n"}for(let t=e;t<=r;t++){const e=hr[t];if(!e)continue;const s=[];for(let t=n;t<=l;t++){const r=rr[t];r&&(O(e,r)?s.push(o(e[r.key])):s.push(""))}a+=s.join("\t"),t<r&&(a+="\n")}}else a=o(l[0].value);try{await navigator.clipboard.writeText(a)}catch{console.warn("Failed to write to clipboard")}if("function"==typeof wr.current){const e=r&&ce&&ue?{rowStart:Math.min(ce.rowIndex,ue.rowIndex),rowEnd:Math.max(ce.rowIndex,ue.rowIndex),colStart:Math.min(ce.colIndex,ue.colIndex),colEnd:Math.max(ce.colIndex,ue.colIndex)}:null;try{wr.current({text:a,bounds:e,cells:l,isRectangular:!!e,isFocusedCell:!e})}catch{}}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[T,$,ce,ue,se,hr,rr,O,fr,mr,ne]);const Or=rr.reduce((e,t)=>e+(t.width||100),0);return o(()=>{1!==gt&&(_?.enabled&&"server"===_.mode?dt(1):mt())},[De,Ee]),N.jsxs("div",{ref:le,className:"border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden bg-white dark:bg-gray-900 h-full flex flex-col","data-grid-container":!0,children:[b&&w&&N.jsx(br,{globalFilter:De,filteredDataLength:Ae.length,totalDataLength:st.totalRows,paginationMode:_?.mode,selectedRowsCount:$t.size,showExport:v,columns:t,columnFilters:Ee,columnVisibility:He,onResetColumns:Ze,exportOptions:{enabled:(ee?.enabled??!0)&&v,formats:ee?.formats??["xlsx"],filename:ee?.filename??"grid-data",onExport:_t},customLeftContent:Y,customRightContent:U,onGlobalFilterChange:wt,onClearFilters:Vt,onColumnFilter:Fe,onColumnVisibilityChange:rt,columnOrder:Ve,onColumnOrderChange:Ke,pinnedColumns:Be,onScrollToColumn:e=>{const t=Ht.current,r=Qe.current;if(!t)return;const n=mr.get(e);if(null==n)return;const l=rr[n]?.width||100;let o=p?C:0;for(let e=0;e<n;e++)o+=rr[e]?.width||100;const a=o+l,s=t.clientWidth;if(o<t.scrollLeft)t.scrollTo({left:o,behavior:"smooth"});else if(a>t.scrollLeft+s)t.scrollTo({left:a-s,behavior:"smooth"});else{const e=Math.max(0,o-Math.max(0,(s-l)/2));t.scrollTo({left:e,behavior:"smooth"})}r&&(r.scrollLeft=t.scrollLeft)},density:be,onDensityChange:Kt,showDensityControl:h}),N.jsxs("div",{className:"flex flex-col relative flex-1 min-h-50",children:[j&&("visible"===q||"auto"===q&&jt.columnKeys.length>0)&&N.jsx(ke,{columns:t,groupedKeys:jt.columnKeys,onRemove:St,onReorder:Mt,onDropColumnKey:Ct,isAnyExpanded:jt.expanded.size>0,onToggleExpandAll:()=>{jt.expanded.size>0?At():Et()}}),N.jsxs("div",{ref:Ht,className:"flex-1 overflow-auto relative [&::-webkit-scrollbar]:thin "+(T?"select-none":""),onScroll:Ut,children:[N.jsx("div",{className:"sticky top-0 z-3",children:N.jsx("div",{style:{minWidth:`${Or+(p?C:0)}px`},children:(()=>{const t=lr,r=sr.filter(e=>!Lt.has(e.key));return N.jsx(ye,{pinnedColumns:t,unpinnedColumns:r,hvPadLeft:cr,hvPadRight:dr,headerHeight:Re,sortConfig:$e,columnFilters:Ee,selectable:p,selectedRows:$t,totalRows:zt.length,data:e,onSort:Ye,onColumnFilter:Fe,onSelectAll:()=>Tt($t.size!==zt.length),onColumnResize:Ue,pinnedKeySet:Lt,onColumnPin:tt,groupable:j,groupedByColumn:jt.columnKeys[0]||null,groupedByColumns:jt.columnKeys,onGroupToggle:(e,t)=>t?Ct(e):St(e),onGroupBy:Nt,onAutosizeColumn:Xe,onAutosizeAllColumns:Je,onResetColumns:Ze,columnOrder:Ve,onColumnOrderChange:Ke,paginationMode:_?.enabled?_.mode:null})})()})}),N.jsx("div",{style:{minWidth:`${Or+(p?C:0)}px`,height:Bt?zt.length*Se+"px":"auto"},children:K||0!==zt.length?N.jsx("div",{style:{transform:`translateY(${Bt?Gt.offsetY:0}px)`,willChange:"transform",contain:"content"},children:(()=>{const e=[];let n=[];const l=()=>{if(!n.length)return;const t=`chunk-${n[0]?.id}-${n.length}-${Gt.offsetY}`;e.push(N.jsx("div",{style:{opacity:K?.5:1},children:N.jsx(je,{data:n,columns:sr,selectedRows:$t,virtualized:!1,virtualizedRange:{startIndex:0,endIndex:n.length-1,offsetY:0},rowHeight:Se,selectable:p,isRowSelectable:y,onRowSelect:It,pinnedColumns:Lt,hvPadLeft:cr,hvPadRight:dr,rowStyle:D,globalFilter:De,onContextMenu:E,onRowDoubleClick:A,onRowClick:L,onCellClick:F,onCellContextMenu:z,isCellFocused:Fr,isCellSelected:Lr,onCellMouseDown:$r,onCellMouseEnter:Ir,contextMenuItems:re,getRowId:r})},t)),n=[]};for(const r of Yt)if(r._isGroupHeader)l(),e.push(N.jsx(Ne,{row:r,isExpanded:jt.expanded.has(r._groupKey||""),onToggle:Rt,viewportWidth:oe,selectable:p,rowHeight:Se,getHeaderLabel:e=>t.find(t=>t.key===e)?.header||e,getValueLabel:(e,r)=>{const n=t.find(t=>t.key===e);if(n?.formatter)try{return n.formatter(r)}catch(e){return String(r??"")}return String(r??"")},renderGroupActions:te},r.id));else if(r._isGroupFooter)if(l(),"chips"===X){const t=rr.filter(e=>!!e.aggregate&&r._groupAgg&&void 0!==r._groupAgg[e.key]).map(e=>{const t=r._groupAgg[e.key],n=e.aggregateFormatter||e.formatter,l=n?(()=>{try{return n(t)}catch{return String(t)}})():String(t);return N.jsxs("span",{className:"px-2.5 py-1 rounded-md bg-blue-50 dark:bg-blue-900/40 text-blue-700 dark:text-blue-200 text-xs font-medium",title:`${e.header}`,children:[e.header,": ",l]},e.key)});e.push(N.jsx("div",{className:"sticky left-0 z-1",style:{minWidth:`${Or+(p?C:0)}px`,height:`${Se}px`},children:N.jsxs("div",{className:"flex items-center justify-between h-full border-t border-blue-200 dark:border-blue-800 bg-blue-50/60 dark:bg-blue-900/20 px-4",role:"contentinfo",children:[N.jsx("div",{className:"flex items-center gap-2 flex-wrap overflow-hidden",children:t.length?t:N.jsx("span",{className:"text-xs text-gray-500",children:"No aggregates"})}),N.jsx("span",{className:"text-[10px] uppercase tracking-wide text-blue-700 dark:text-blue-300",children:"Group Summary"})]})},r.id))}else e.push(N.jsx("div",{className:"sticky left-0 z-1 bg-blue-100 dark:bg-gray-900",style:{minWidth:`${Or+(p?C:0)}px`,height:`${Se}px`},children:N.jsxs("div",{className:"flex h-full border-t border-blue-200 dark:border-blue-800 bg-blue-50/60 dark:bg-blue-900/20",role:"contentinfo",children:[p&&N.jsx("div",{style:{width:C},className:"shrink-0"}),rr.map(e=>{const t=e.width||100,n=r._groupAgg?r._groupAgg[e.key]:void 0,l=e.aggregateFormatter||e.formatter,o=void 0===n?"":l?(()=>{try{return l(n)}catch{return n}})():n;let a;if("number"==typeof o)a=Number.isInteger(o)?String(o):o.toFixed(2);else if(isNaN(o)||""===o||null===o)a=String(o??"");else{const e=Number(o);a=Number.isInteger(e)?String(e):e.toFixed(2)}return N.jsx("div",{className:"px-2 text-xs font-medium text-blue-800 dark:text-blue-200 flex items-center overflow-hidden",style:{width:t,minWidth:t,maxWidth:t},title:a?`${e.header}: ${a}`:void 0,children:N.jsx("span",{className:"truncate w-full",children:a})},`agg-cell-${r._groupKey}-${e.key}`)})]})},r.id));else n.push(r);return l(),e})()}):N.jsx(N.Fragment,{})})]}),ft&&N.jsx("div",{className:"pointer-events-none absolute left-0 right-0 h-1 bg-gray-200 overflow-hidden z-30 "+(pt?"opacity-0 transition-opacity duration-200":"opacity-100"),style:{top:bt},children:N.jsx("div",{className:"h-full w-1/3 bg-blue-500 animate-[slide_1.2s_linear_infinite]"})}),!K&&0===zt.length&&N.jsx("div",{className:"pointer-events-none absolute inset-0 z-0 flex items-center justify-center",children:N.jsx("div",{className:"pointer-events-auto",children:N.jsx(Ce,{hasFilters:!!De||Object.keys(Ee).length>0,hasData:e.length>0})})})]}),ur&&N.jsx("div",{ref:et,className:"shrink-0 overflow-x-hidden overflow-y-visible [&::-webkit-scrollbar]:hidden",style:{scrollbarWidth:"none",msOverflowStyle:"none"},onWheel:zr,children:N.jsx("div",{className:"bg-gray-50 dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700",style:{minWidth:`${Or+(p?C:0)}px`,height:`${Se}px`},children:N.jsx(S,{columns:rr,data:hr,selectable:p,rowHeight:Se,pinnedColumns:Lt})})}),N.jsx(Me,{paginationConfig:st,currentPage:st.currentPage,isServerLoading:ct,selectedRowsCount:$t.size,totalDataLength:e.length,filteredDataLength:"server"===_?.mode?void 0:Ae.length,paginationMode:_.mode,onPageChange:dt,onPageSizeChange:ut}),xe&&N.jsx("div",{className:"fixed z-50 pointer-events-none select-none",style:{top:xe.y+12,left:xe.x+12},children:N.jsxs("div",{className:"px-2 py-1 rounded bg-gray-800 text-white text-xs shadow-lg opacity-90",children:[xe.rows," × ",xe.cols]})})]})});export{S as FooterAggregate,ye as GridHeader,je as GridRows,Lr as KDGrid,Me as PaginationControls,br as SearchToolbar,vr as useAdvancedFiltering,Mr as usePagination,Dr as useSelection,Er as useVirtualization};
2
2
  //# sourceMappingURL=index.esm.js.map