react-flexi-datatable 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3 -7
- package/dist/index.js +377 -547
- package/package.json +6 -4
- package/dist/react-flexi-datatable.css +0 -3
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("react"),require("lucide-react")):typeof define==`function`&&define.amd?define([`exports`,`react`,`lucide-react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.FlexiTable={},e.React,e.LucideReact))})(this,function(e,t,n){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),u=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var s=o(t),l=0,u=s.length,d;l<u;l++)d=s[l],!c.call(e,d)&&d!==n&&i(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=a(t,d))||r.enumerable});return e};t=((e,t,n)=>(n=e==null?{}:r(s(e)),u(t||!e||!e.__esModule||!c.call(e,`default`)?i(n,`default`,{value:e,enumerable:!0}):n,e)))(t,1);var d=l((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),f=l((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===T?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case _:return`Fragment`;case y:return`Profiler`;case v:return`StrictMode`;case te:return`Suspense`;case S:return`SuspenseList`;case ne:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case g:return`Portal`;case b:return e.displayName||`Context`;case ee:return(e._context.displayName||`Context`)+`.Consumer`;case x:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case C:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case w:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===_)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===w)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=E.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(re.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){O||(O=!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))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function l(){var e=t(this.type);return k[e]||(k[e]=!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.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:h,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:l}),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:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,n,i,o,l,d){var p=n.children;if(p!==void 0){if(o){if(ie(p)){for(o=0;o<p.length;o++)f(p[o]);Object.freeze&&Object.freeze(p)}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 f(p)}if(re.call(n,`key`)){p=t(e);var m=Object.keys(n).filter(function(e){return e!==`key`});o=0<m.length?`{key: someKey, `+m.join(`: ..., `)+`: ...}`:`{key: someKey}`,M[p+o]||(m=0<m.length?`{`+m.join(`: ..., `)+`: ...}`:`{}`,console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
2
|
-
let props = %s;
|
|
3
|
-
<%s {...props} />
|
|
4
|
-
React keys must be passed directly to JSX without using spread:
|
|
5
|
-
let props = %s;
|
|
6
|
-
<%s key={someKey} {...props} />`,o,p,m,p),M[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===w&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===h}var m=require("react"),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),_=Symbol.for(`react.fragment`),v=Symbol.for(`react.strict_mode`),y=Symbol.for(`react.profiler`),ee=Symbol.for(`react.consumer`),b=Symbol.for(`react.context`),x=Symbol.for(`react.forward_ref`),te=Symbol.for(`react.suspense`),S=Symbol.for(`react.suspense_list`),C=Symbol.for(`react.memo`),w=Symbol.for(`react.lazy`),ne=Symbol.for(`react.activity`),T=Symbol.for(`react.client.reference`),E=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,re=Object.prototype.hasOwnProperty,ie=Array.isArray,D=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var O,k={},A=m.react_stack_bottom_frame.bind(m,o)(),j=D(i(o)),M={};e.Fragment=_,e.jsx=function(e,t,n){var r=1e4>E.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):A,r?D(i(e)):j)},e.jsxs=function(e,t,n){var r=1e4>E.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):A,r?D(i(e)):j)}})()})),p=l(((e,t)=>{t.exports=process.env.NODE_ENV===`production`?d():f()}))(),m=`border border-slate-200 rounded-lg bg-white`,h={Active:`bg-emerald-50 text-emerald-700`,Inactive:`bg-slate-100 text-slate-600`,Pending:`bg-amber-50 text-amber-700`};function g({config:e,data:r=[],onView:i,onEdit:a,onDelete:o,onBulkEdit:s}){let c=`table_cols_${e.id||e.title||`default`}`,[l,u]=(0,t.useState)(r),[d,f]=(0,t.useState)(``),[g,_]=(0,t.useState)({}),[v,y]=(0,t.useState)({key:null,dir:null}),[ee,b]=(0,t.useState)(1),[x,te]=(0,t.useState)(e.pageSize||10),[S,C]=(0,t.useState)(()=>{try{let e=localStorage.getItem(`${c}_visible`);if(e)return JSON.parse(e)}catch{}return Object.fromEntries(e.columns.map(e=>[e.key,e.visible!==!1]))}),[w,ne]=(0,t.useState)(()=>{try{let e=localStorage.getItem(`${c}_order`);if(e)return JSON.parse(e)}catch{}return e.columns.map(e=>e.key)}),[T,E]=(0,t.useState)(()=>{try{let e=localStorage.getItem(`${c}_widths`);if(e)return JSON.parse(e)}catch{}return Object.fromEntries(e.columns.map(e=>[e.key,e.width||160]))}),[re,ie]=(0,t.useState)(null),[D,O]=(0,t.useState)(null),[k,A]=(0,t.useState)(null),[j,M]=(0,t.useState)([]),[N,P]=(0,t.useState)(null),[ae,oe]=(0,t.useState)(!1),[se,ce]=(0,t.useState)(!1),[F,I]=(0,t.useState)({row:0,col:0}),[le,ue]=(0,t.useState)(null),[L,R]=(0,t.useState)({}),[z,de]=(0,t.useState)(!1),[fe,B]=(0,t.useState)([]),[V,H]=(0,t.useState)({}),[U,W]=(0,t.useState)(1),G=(0,t.useRef)(null),pe=(0,t.useRef)(null),me=(0,t.useRef)(null),K=(0,t.useRef)(null);(0,t.useEffect)(()=>{e.searchable&&K.current&&K.current.focus()},[e.searchable]),(0,t.useEffect)(()=>{let e=e=>{pe.current&&!pe.current.contains(e.target)&&ce(!1),me.current&&!me.current.contains(e.target)&&oe(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,t.useEffect)(()=>u(r),[r]),(0,t.useEffect)(()=>b(1),[d,g,x]),(0,t.useEffect)(()=>{try{localStorage.setItem(`${c}_order`,JSON.stringify(w))}catch{}},[w,c]),(0,t.useEffect)(()=>{try{localStorage.setItem(`${c}_visible`,JSON.stringify(S))}catch{}},[S,c]),(0,t.useEffect)(()=>{try{localStorage.setItem(`${c}_widths`,JSON.stringify(T))}catch{}},[T,c]);let he=()=>{let t=e.columns.map(e=>e.key),n=Object.fromEntries(e.columns.map(e=>[e.key,e.visible!==!1])),r=Object.fromEntries(e.columns.map(e=>[e.key,e.width||160]));ne(t),C(n),E(r);try{localStorage.removeItem(`${c}_order`),localStorage.removeItem(`${c}_visible`),localStorage.removeItem(`${c}_widths`)}catch{}},ge=(e,t)=>{e.preventDefault(),e.stopPropagation();let n=e.clientX,r=T[t]||160,i=e=>{let i=e.clientX-n,a=Math.max(70,r+i);E(e=>({...e,[t]:a}))},a=()=>{document.removeEventListener(`mousemove`,i),document.removeEventListener(`mouseup`,a),ie(null)};ie(t),document.addEventListener(`mousemove`,i),document.addEventListener(`mouseup`,a)},q=(0,t.useMemo)(()=>{let t=Object.fromEntries(e.columns.map(e=>[e.key,e]));return w.map(e=>t[e]).filter(e=>e&&S[e.key])},[e.columns,w,S]),J=(0,t.useMemo)(()=>e.columns.filter(e=>e.editable!==!1),[e.columns]),_e=t=>{if(t.options)return t.options;let n=e.filters?.find(e=>e.key===t.key);return n?.options?n.options.filter(e=>e.value!==`all`).map(e=>e.value):null},Y=e.columnordering!==!1&&e.columnOrdering!==!1,ve=Y&&e.dropcolumn!==!1&&e.dropColumn!==!1,ye=(e,t)=>{Y&&(O(t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`move`)},be=(e,t)=>{e.preventDefault(),ve&&(e.dataTransfer.dropEffect=`move`,k!==t&&A(t))},xe=(e,t)=>{e.preventDefault(),e.stopPropagation();let n=e.dataTransfer.getData(`text/plain`)||D;n&&n!==t&&ne(e=>{let r=[...e],i=r.indexOf(n),a=r.indexOf(t);return i!==-1&&a!==-1&&(r.splice(i,1),r.splice(a,0,n)),r}),O(null),A(null)},Se=e=>{e&&(C(t=>Object.values(t).filter(Boolean).length<=1?t:{...t,[e]:!1}),O(null),A(null))},X=(0,t.useMemo)(()=>{let t=[...l];if(d.trim()){let n=d.toLowerCase(),r=e.columns.filter(e=>e.searchable!==!1).map(e=>e.key);t=t.filter(e=>r.some(t=>String(e[t]??``).toLowerCase().includes(n)))}return Object.entries(g).forEach(([e,n])=>{n&&n!==`all`&&(t=t.filter(t=>String(t[e])===String(n)))}),v.key&&t.sort((e,t)=>{let n=String(e[v.key]??``).toLowerCase(),r=String(t[v.key]??``).toLowerCase(),i=n.localeCompare(r,void 0,{numeric:!0});return v.dir===`asc`?i:-i}),t},[l,d,g,v,e.columns]),Z=Math.max(1,Math.ceil(X.length/x)),Q=Math.min(ee,Z),$=X.slice((Q-1)*x,Q*x),Ce=(0,t.useMemo)(()=>j.length>0?j:$.map(e=>e.id),[j,$]),we=e=>{if(v.key!==e)return y({key:e,dir:`asc`});if(v.dir===`asc`)return y({key:e,dir:`desc`});y({key:null,dir:null})},Te=e=>M(e?$.map(e=>e.id):[]),Ee=e=>M(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),De=e=>{ue(e.id),R({...e})},Oe=()=>{ue(null),R({})},ke=()=>{u(e=>e.map(e=>e.id===le?L:e)),a?.(L),ue(null),R({})},Ae=()=>{let e={},t=j.length>0?j:$.map(e=>e.id);l.forEach(n=>{t.includes(n.id)&&(e[n.id]={...n})}),H(e),B(J.map(e=>e.key)),de(!0)},je=()=>{de(!1),H({}),B([])},Me=()=>{let e=j.length>0?j:$.map(e=>e.id);u(t=>t.map(t=>e.includes(t.id)&&V[t.id]||t)),s?.(e,V),de(!1),H({}),B([])};return(0,t.useEffect)(()=>{let t=t=>{if(!e.keyboardNavigation||!$.length)return;let n=document.activeElement;if(n&&([`TEXTAREA`].includes(n.tagName)||n.tagName===`INPUT`&&n.type!==`checkbox`||n.tagName===`SELECT`))return;let r=!!(e.actions?.view||e.actions?.edit||e.actions?.delete),a=q.length+ +!!e.selectable,o=q.length+ +!!e.selectable+ +!!r,s=n?.closest(`[data-cell]`),c=F.row,l=F.col;if(s){let e=s.getAttribute(`data-cell`);if(e){let t=e.split(`-`).map(Number);t.length===2&&!isNaN(t[0])&&!isNaN(t[1])&&(c=t[0],l=t[1])}}if(t.key===`ArrowDown`){t.preventDefault();let e=Math.min($.length-1,c+1);I({row:e,col:l})}else if(t.key===`ArrowUp`){t.preventDefault();let e=Math.max(-1,c-1);I({row:e,col:l})}else if(t.key===`ArrowRight`){if(t.preventDefault(),r&&l===a){let e=G.current?.querySelector(`[data-cell="${c}-${l}"]`),t=e?Array.from(e.querySelectorAll(`button`)):[];if(U<t.length-1){W(e=>e+1);return}}let e=Math.min(o-1,l+1);I({row:c,col:e})}else if(t.key===`ArrowLeft`){if(t.preventDefault(),r&&l===a&&U>0){W(e=>e-1);return}let e=Math.max(0,l-1);I({row:c,col:e})}else if(t.key===`Enter`||t.key===` `){if(c===-1){if(e.selectable&&l===0)t.preventDefault(),Te($.length>0&&!$.every(e=>j.includes(e.id)));else{let n=e.selectable?l-1:l,r=q[n];r&&r.sortable&&(t.preventDefault(),we(r.key))}}else{let o=$[c];n&&(n.type===`checkbox`||n.tagName===`BUTTON`)?(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),n.click()):o&&(e.selectable&&l===0?(t.preventDefault(),Ee(o.id)):r&&l===a?(t.preventDefault(),De(o)):t.key===`Enter`&&(t.preventDefault(),i?.(o)))}}};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e.keyboardNavigation,$,q,F,U,Ee,Te,we,i,e.selectable,j]),(0,t.useEffect)(()=>{if(!e.keyboardNavigation||!G.current||document.activeElement===K.current)return;let t=G.current.querySelector(`[data-cell="${F.row}-${F.col}"]`);if(t){let e=Array.from(t.querySelectorAll(`input, button, select`));e.length>0?(e[Math.min(U,e.length-1)]||e[0]).focus():t.focus()}},[F,U,e.keyboardNavigation,$]),(0,p.jsxs)(`div`,{className:`space-y-3`,children:[(0,p.jsx)(`div`,{className:`${m} p-4`,children:(0,p.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`h2`,{className:`text-lg font-semibold`,children:e.title}),(0,p.jsxs)(`p`,{className:`text-sm text-slate-500`,children:[X.length,` records`]})]}),(0,p.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[e.searchable&&(0,p.jsxs)(`div`,{className:`relative`,children:[(0,p.jsx)(n.Search,{size:16,className:`absolute left-3 top-1/2 -translate-y-1/2 text-slate-400`}),(0,p.jsx)(`input`,{ref:K,autoFocus:!0,value:d,onChange:e=>f(e.target.value),placeholder:`Search...`,className:`w-56 rounded-lg border border-slate-200 py-2 pl-9 pr-8 text-sm outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/20`}),d&&(0,p.jsx)(`button`,{onClick:()=>{f(``),K.current?.focus()},className:`absolute right-2 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600`,children:(0,p.jsx)(n.X,{size:15})})]}),e.filterable&&(0,p.jsxs)(`div`,{ref:pe,className:`relative`,children:[(0,p.jsxs)(`button`,{onClick:()=>ce(e=>!e),className:`flex items-center gap-2 rounded-lg border border-slate-200 px-3 py-2 text-sm`,children:[(0,p.jsx)(n.SlidersHorizontal,{size:16}),`Filter`]}),se&&(0,p.jsxs)(`div`,{className:`absolute right-0 z-30 mt-2 w-64 rounded-xl border bg-white p-4 shadow-xl`,children:[e.filters?.map(e=>(0,p.jsxs)(`label`,{className:`mb-3 block text-sm`,children:[(0,p.jsx)(`span`,{className:`mb-1 block font-medium`,children:e.label}),(0,p.jsx)(`select`,{value:g[e.key]||`all`,onChange:t=>_(n=>({...n,[e.key]:t.target.value})),className:`w-full rounded-lg border p-2`,children:e.options.map(e=>(0,p.jsx)(`option`,{value:e.value,children:e.label},e.value))})]},e.key)),(0,p.jsx)(`button`,{onClick:()=>_({}),className:`text-sm font-medium text-slate-600`,children:`Clear filters`})]})]}),e.columnVisibility&&(0,p.jsxs)(`div`,{ref:me,className:`relative`,children:[(0,p.jsxs)(`button`,{onClick:()=>oe(e=>!e),className:`flex items-center gap-2 rounded-lg border border-slate-200 px-3 py-2 text-sm`,children:[(0,p.jsx)(n.Columns3,{size:16}),`Columns`]}),ae&&(0,p.jsxs)(`div`,{className:`absolute right-0 z-30 mt-2 w-64 rounded-xl border bg-white p-3.5 shadow-xl`,children:[(0,p.jsxs)(`div`,{className:`flex items-center justify-between pb-2 mb-2 border-b`,children:[(0,p.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wider text-slate-500`,children:`Columns & Layout`}),(0,p.jsxs)(`button`,{onClick:he,className:`flex items-center gap-1 text-xs text-indigo-600 hover:text-indigo-800 font-medium`,title:`Reset default layout`,children:[(0,p.jsx)(n.RotateCcw,{size:12}),`Reset`]})]}),(0,p.jsx)(`div`,{className:`space-y-1 max-h-64 overflow-y-auto`,children:w.map(t=>{let r=e.columns.find(e=>e.key===t);if(!r)return null;let i=S[t]!==!1;return(0,p.jsxs)(`div`,{draggable:!0,onDragStart:e=>ye(e,r.key),onDragOver:e=>be(e,r.key),onDrop:e=>xe(e,r.key),className:`flex items-center justify-between p-2 text-sm rounded-lg hover:bg-slate-50 cursor-grab active:cursor-grabbing transition-colors ${D===r.key?`opacity-30 bg-slate-100`:``} ${k===r.key&&D!==r.key?`border-l-4 border-l-indigo-600 bg-indigo-50/60`:``}`,children:[(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(`span`,{title:`Drag to reorder`,className:`text-slate-300 hover:text-slate-500 cursor-grab`,children:(0,p.jsx)(n.GripVertical,{size:14})}),(0,p.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer select-none`,children:[(0,p.jsx)(`input`,{type:`checkbox`,checked:i,onChange:()=>C(e=>{let t=Object.values(e).filter(Boolean).length;return e[r.key]&&t===1?e:{...e,[r.key]:!e[r.key]}}),className:`rounded text-indigo-600 focus:ring-indigo-500`}),(0,p.jsx)(`span`,{className:i?`font-medium text-slate-800`:`text-slate-400 line-through`,children:r.label})]})]}),(0,p.jsxs)(`span`,{className:`text-xs text-slate-400 font-mono`,children:[T[r.key]||160,`px`]})]},r.key)})}),(0,p.jsx)(`p`,{className:`mt-2.5 pt-2 border-t text-[11px] text-slate-400 text-center`,children:`Drag handles to reorder | Drag column edge to resize`})]})]}),e.bulkEditable!==!1&&J.length>0&&(0,p.jsxs)(`button`,{onClick:Ae,className:`flex items-center gap-2 rounded-lg border px-3 py-2 text-sm font-medium transition-colors ${z?`border-indigo-500 bg-indigo-600 text-white`:j.length>0?`border-indigo-300 bg-indigo-50 text-indigo-700 hover:bg-indigo-100`:`border-slate-200 bg-white text-slate-700 hover:bg-slate-50`}`,children:[(0,p.jsx)(n.Edit3,{size:16}),`Bulk Edit`,j.length>0?` (${j.length})`:``]}),e.exportable&&(0,p.jsxs)(`button`,{onClick:()=>{let e=q.map(e=>e.label).join(`,`),t=X.map(e=>q.map(t=>`"${String(e[t.key]??``).replaceAll(`"`,`""`)}"`).join(`,`)).join(`
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));let c=require("react");c=s(c,1);let l=require("lucide-react"),u=require("react/jsx-runtime");var d=`border border-slate-200 rounded-lg bg-white`,ee={Active:`bg-emerald-50 text-emerald-700`,Inactive:`bg-slate-100 text-slate-600`,Pending:`bg-amber-50 text-amber-700`};function f({config:e,data:t=[],onView:n,onEdit:r,onDelete:i,onBulkEdit:a}){let o=`table_cols_${e.id||e.title||`default`}`,[s,f]=(0,c.useState)(t),[p,m]=(0,c.useState)(``),[h,te]=(0,c.useState)({}),[g,_]=(0,c.useState)({key:null,dir:null}),[ne,v]=(0,c.useState)(1),[y,re]=(0,c.useState)(e.pageSize||10),[b,x]=(0,c.useState)(()=>{try{let e=localStorage.getItem(`${o}_visible`);if(e)return JSON.parse(e)}catch{}return Object.fromEntries(e.columns.map(e=>[e.key,e.visible!==!1]))}),[S,ie]=(0,c.useState)(()=>{try{let e=localStorage.getItem(`${o}_order`);if(e)return JSON.parse(e)}catch{}return e.columns.map(e=>e.key)}),[C,ae]=(0,c.useState)(()=>{try{let e=localStorage.getItem(`${o}_widths`);if(e)return JSON.parse(e)}catch{}return Object.fromEntries(e.columns.map(e=>[e.key,e.width||160]))}),[oe,se]=(0,c.useState)(null),[w,T]=(0,c.useState)(null),[E,D]=(0,c.useState)(null),[O,k]=(0,c.useState)([]),[A,j]=(0,c.useState)(null),[ce,le]=(0,c.useState)(!1),[ue,de]=(0,c.useState)(!1),[M,N]=(0,c.useState)({row:0,col:0}),[fe,P]=(0,c.useState)(null),[F,I]=(0,c.useState)({}),[L,R]=(0,c.useState)(!1),[pe,z]=(0,c.useState)([]),[B,V]=(0,c.useState)({}),[H,U]=(0,c.useState)(1),W=(0,c.useRef)(null),G=(0,c.useRef)(null),me=(0,c.useRef)(null),K=(0,c.useRef)(null);(0,c.useEffect)(()=>{e.searchable&&K.current&&K.current.focus()},[e.searchable]),(0,c.useEffect)(()=>{let e=e=>{G.current&&!G.current.contains(e.target)&&de(!1),me.current&&!me.current.contains(e.target)&&le(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,c.useEffect)(()=>f(t),[t]),(0,c.useEffect)(()=>v(1),[p,h,y]),(0,c.useEffect)(()=>{try{localStorage.setItem(`${o}_order`,JSON.stringify(S))}catch{}},[S,o]),(0,c.useEffect)(()=>{try{localStorage.setItem(`${o}_visible`,JSON.stringify(b))}catch{}},[b,o]),(0,c.useEffect)(()=>{try{localStorage.setItem(`${o}_widths`,JSON.stringify(C))}catch{}},[C,o]);let he=()=>{let t=e.columns.map(e=>e.key),n=Object.fromEntries(e.columns.map(e=>[e.key,e.visible!==!1])),r=Object.fromEntries(e.columns.map(e=>[e.key,e.width||160]));ie(t),x(n),ae(r);try{localStorage.removeItem(`${o}_order`),localStorage.removeItem(`${o}_visible`),localStorage.removeItem(`${o}_widths`)}catch{}},ge=(e,t)=>{e.preventDefault(),e.stopPropagation();let n=e.clientX,r=C[t]||160,i=e=>{let i=e.clientX-n,a=Math.max(70,r+i);ae(e=>({...e,[t]:a}))},a=()=>{document.removeEventListener(`mousemove`,i),document.removeEventListener(`mouseup`,a),se(null)};se(t),document.addEventListener(`mousemove`,i),document.addEventListener(`mouseup`,a)},q=(0,c.useMemo)(()=>{let t=Object.fromEntries(e.columns.map(e=>[e.key,e]));return S.map(e=>t[e]).filter(e=>e&&b[e.key])},[e.columns,S,b]),J=(0,c.useMemo)(()=>e.columns.filter(e=>e.editable!==!1),[e.columns]),_e=t=>{if(t.options)return t.options;let n=e.filters?.find(e=>e.key===t.key);return n?.options?n.options.filter(e=>e.value!==`all`).map(e=>e.value):null},Y=e.columnordering!==!1&&e.columnOrdering!==!1,ve=Y&&e.dropcolumn!==!1&&e.dropColumn!==!1,ye=(e,t)=>{Y&&(T(t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`move`)},be=(e,t)=>{e.preventDefault(),ve&&(e.dataTransfer.dropEffect=`move`,E!==t&&D(t))},xe=(e,t)=>{e.preventDefault(),e.stopPropagation();let n=e.dataTransfer.getData(`text/plain`)||w;n&&n!==t&&ie(e=>{let r=[...e],i=r.indexOf(n),a=r.indexOf(t);return i!==-1&&a!==-1&&(r.splice(i,1),r.splice(a,0,n)),r}),T(null),D(null)},Se=e=>{e&&(x(t=>Object.values(t).filter(Boolean).length<=1?t:{...t,[e]:!1}),T(null),D(null))},X=(0,c.useMemo)(()=>{let t=[...s];if(p.trim()){let n=p.toLowerCase(),r=e.columns.filter(e=>e.searchable!==!1).map(e=>e.key);t=t.filter(e=>r.some(t=>String(e[t]??``).toLowerCase().includes(n)))}return Object.entries(h).forEach(([e,n])=>{n&&n!==`all`&&(t=t.filter(t=>String(t[e])===String(n)))}),g.key&&t.sort((e,t)=>{let n=String(e[g.key]??``).toLowerCase(),r=String(t[g.key]??``).toLowerCase(),i=n.localeCompare(r,void 0,{numeric:!0});return g.dir===`asc`?i:-i}),t},[s,p,h,g,e.columns]),Z=Math.max(1,Math.ceil(X.length/y)),Q=Math.min(ne,Z),$=X.slice((Q-1)*y,Q*y),Ce=(0,c.useMemo)(()=>O.length>0?O:$.map(e=>e.id),[O,$]),we=e=>{if(g.key!==e)return _({key:e,dir:`asc`});if(g.dir===`asc`)return _({key:e,dir:`desc`});_({key:null,dir:null})},Te=e=>k(e?$.map(e=>e.id):[]),Ee=e=>k(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),De=e=>{P(e.id),I({...e})},Oe=()=>{P(null),I({})},ke=()=>{f(e=>e.map(e=>e.id===fe?F:e)),r?.(F),P(null),I({})},Ae=()=>{let e={},t=O.length>0?O:$.map(e=>e.id);s.forEach(n=>{t.includes(n.id)&&(e[n.id]={...n})}),V(e),z(J.map(e=>e.key)),R(!0)},je=()=>{R(!1),V({}),z([])},Me=()=>{let e=O.length>0?O:$.map(e=>e.id);f(t=>t.map(t=>e.includes(t.id)&&B[t.id]||t)),a?.(e,B),R(!1),V({}),z([])};return(0,c.useEffect)(()=>{let t=t=>{if(!e.keyboardNavigation||!$.length)return;let r=document.activeElement;if(r&&([`TEXTAREA`].includes(r.tagName)||r.tagName===`INPUT`&&r.type!==`checkbox`||r.tagName===`SELECT`))return;let i=!!(e.actions?.view||e.actions?.edit||e.actions?.delete),a=q.length+ +!!e.selectable,o=q.length+ +!!e.selectable+ +!!i,s=r?.closest(`[data-cell]`),c=M.row,l=M.col;if(s){let e=s.getAttribute(`data-cell`);if(e){let t=e.split(`-`).map(Number);t.length===2&&!isNaN(t[0])&&!isNaN(t[1])&&(c=t[0],l=t[1])}}if(t.key===`ArrowDown`){t.preventDefault();let e=Math.min($.length-1,c+1);N({row:e,col:l})}else if(t.key===`ArrowUp`){t.preventDefault();let e=Math.max(-1,c-1);N({row:e,col:l})}else if(t.key===`ArrowRight`){if(t.preventDefault(),i&&l===a){let e=W.current?.querySelector(`[data-cell="${c}-${l}"]`),t=e?Array.from(e.querySelectorAll(`button`)):[];if(H<t.length-1){U(e=>e+1);return}}let e=Math.min(o-1,l+1);N({row:c,col:e})}else if(t.key===`ArrowLeft`){if(t.preventDefault(),i&&l===a&&H>0){U(e=>e-1);return}let e=Math.max(0,l-1);N({row:c,col:e})}else if(t.key===`Enter`||t.key===` `){if(c===-1){if(e.selectable&&l===0)t.preventDefault(),Te($.length>0&&!$.every(e=>O.includes(e.id)));else{let n=e.selectable?l-1:l,r=q[n];r&&r.sortable&&(t.preventDefault(),we(r.key))}}else{let o=$[c];r&&(r.type===`checkbox`||r.tagName===`BUTTON`)?(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),r.click()):o&&(e.selectable&&l===0?(t.preventDefault(),Ee(o.id)):i&&l===a?(t.preventDefault(),De(o)):t.key===`Enter`&&(t.preventDefault(),n?.(o)))}}};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e.keyboardNavigation,$,q,M,H,Ee,Te,we,n,e.selectable,O]),(0,c.useEffect)(()=>{if(!e.keyboardNavigation||!W.current||document.activeElement===K.current)return;let t=W.current.querySelector(`[data-cell="${M.row}-${M.col}"]`);if(t){let e=Array.from(t.querySelectorAll(`input, button, select`));e.length>0?(e[Math.min(H,e.length-1)]||e[0]).focus():t.focus()}},[M,H,e.keyboardNavigation,$]),(0,u.jsxs)(`div`,{className:`space-y-3`,children:[(0,u.jsx)(`div`,{className:`${d} p-4`,children:(0,u.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between`,children:[(0,u.jsxs)(`div`,{children:[(0,u.jsx)(`h2`,{className:`text-lg font-semibold`,children:e.title}),(0,u.jsxs)(`p`,{className:`text-sm text-slate-500`,children:[X.length,` records`]})]}),(0,u.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[e.searchable&&(0,u.jsxs)(`div`,{className:`relative`,children:[(0,u.jsx)(l.Search,{size:16,className:`absolute left-3 top-1/2 -translate-y-1/2 text-slate-400`}),(0,u.jsx)(`input`,{ref:K,autoFocus:!0,value:p,onChange:e=>m(e.target.value),placeholder:`Search...`,className:`w-56 rounded-lg border border-slate-200 py-2 pl-9 pr-8 text-sm outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/20`}),p&&(0,u.jsx)(`button`,{onClick:()=>{m(``),K.current?.focus()},className:`absolute right-2 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600`,children:(0,u.jsx)(l.X,{size:15})})]}),e.filterable&&(0,u.jsxs)(`div`,{ref:G,className:`relative`,children:[(0,u.jsxs)(`button`,{onClick:()=>de(e=>!e),className:`flex items-center gap-2 rounded-lg border border-slate-200 px-3 py-2 text-sm`,children:[(0,u.jsx)(l.SlidersHorizontal,{size:16}),`Filter`]}),ue&&(0,u.jsxs)(`div`,{className:`absolute right-0 z-30 mt-2 w-64 rounded-xl border bg-white p-4 shadow-xl`,children:[e.filters?.map(e=>(0,u.jsxs)(`label`,{className:`mb-3 block text-sm`,children:[(0,u.jsx)(`span`,{className:`mb-1 block font-medium`,children:e.label}),(0,u.jsx)(`select`,{value:h[e.key]||`all`,onChange:t=>te(n=>({...n,[e.key]:t.target.value})),className:`w-full rounded-lg border p-2`,children:e.options.map(e=>(0,u.jsx)(`option`,{value:e.value,children:e.label},e.value))})]},e.key)),(0,u.jsx)(`button`,{onClick:()=>te({}),className:`text-sm font-medium text-slate-600`,children:`Clear filters`})]})]}),e.columnVisibility&&(0,u.jsxs)(`div`,{ref:me,className:`relative`,children:[(0,u.jsxs)(`button`,{onClick:()=>le(e=>!e),className:`flex items-center gap-2 rounded-lg border border-slate-200 px-3 py-2 text-sm`,children:[(0,u.jsx)(l.Columns3,{size:16}),`Columns`]}),ce&&(0,u.jsxs)(`div`,{className:`absolute right-0 z-30 mt-2 w-64 rounded-xl border bg-white p-3.5 shadow-xl`,children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between pb-2 mb-2 border-b`,children:[(0,u.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-wider text-slate-500`,children:`Columns & Layout`}),(0,u.jsxs)(`button`,{onClick:he,className:`flex items-center gap-1 text-xs text-indigo-600 hover:text-indigo-800 font-medium`,title:`Reset default layout`,children:[(0,u.jsx)(l.RotateCcw,{size:12}),`Reset`]})]}),(0,u.jsx)(`div`,{className:`space-y-1 max-h-64 overflow-y-auto`,children:S.map(t=>{let n=e.columns.find(e=>e.key===t);if(!n)return null;let r=b[t]!==!1;return(0,u.jsxs)(`div`,{draggable:!0,onDragStart:e=>ye(e,n.key),onDragOver:e=>be(e,n.key),onDrop:e=>xe(e,n.key),className:`flex items-center justify-between p-2 text-sm rounded-lg hover:bg-slate-50 cursor-grab active:cursor-grabbing transition-colors ${w===n.key?`opacity-30 bg-slate-100`:``} ${E===n.key&&w!==n.key?`border-l-4 border-l-indigo-600 bg-indigo-50/60`:``}`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,u.jsx)(`span`,{title:`Drag to reorder`,className:`text-slate-300 hover:text-slate-500 cursor-grab`,children:(0,u.jsx)(l.GripVertical,{size:14})}),(0,u.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer select-none`,children:[(0,u.jsx)(`input`,{type:`checkbox`,checked:r,onChange:()=>x(e=>{let t=Object.values(e).filter(Boolean).length;return e[n.key]&&t===1?e:{...e,[n.key]:!e[n.key]}}),className:`rounded text-indigo-600 focus:ring-indigo-500`}),(0,u.jsx)(`span`,{className:r?`font-medium text-slate-800`:`text-slate-400 line-through`,children:n.label})]})]}),(0,u.jsxs)(`span`,{className:`text-xs text-slate-400 font-mono`,children:[C[n.key]||160,`px`]})]},n.key)})}),(0,u.jsx)(`p`,{className:`mt-2.5 pt-2 border-t text-[11px] text-slate-400 text-center`,children:`Drag handles to reorder | Drag column edge to resize`})]})]}),e.bulkEditable!==!1&&J.length>0&&(0,u.jsxs)(`button`,{onClick:Ae,className:`flex items-center gap-2 rounded-lg border px-3 py-2 text-sm font-medium transition-colors ${L?`border-indigo-500 bg-indigo-600 text-white`:O.length>0?`border-indigo-300 bg-indigo-50 text-indigo-700 hover:bg-indigo-100`:`border-slate-200 bg-white text-slate-700 hover:bg-slate-50`}`,children:[(0,u.jsx)(l.Edit3,{size:16}),`Bulk Edit`,O.length>0?` (${O.length})`:``]}),e.exportable&&(0,u.jsxs)(`button`,{onClick:()=>{let e=q.map(e=>e.label).join(`,`),t=X.map(e=>q.map(t=>`"${String(e[t.key]??``).replaceAll(`"`,`""`)}"`).join(`,`)).join(`
|
|
7
2
|
`),n=new Blob([e+`
|
|
8
|
-
`+t],{type:`text/csv`}),r=document.createElement(`a`);r.href=URL.createObjectURL(n),r.download=`table-export.csv`,r.click(),URL.revokeObjectURL(r.href)},className:`flex items-center gap-2 rounded-lg border border-slate-200 px-3 py-2 text-sm`,children:[(0,p.jsx)(n.Download,{size:16}),`Export`]})]})]})}),ve&&(0,p.jsx)(`div`,{onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`},onDrop:e=>{e.preventDefault();let t=e.dataTransfer.getData(`text/plain`)||D;t&&Se(t)},className:`transition-all duration-200 overflow-hidden ${D?`max-h-24 opacity-100 my-2`:`max-h-0 opacity-0 my-0 pointer-events-none`}`,children:(0,p.jsxs)(`div`,{className:`flex items-center justify-center gap-2 rounded-xl border-2 border-dashed border-rose-400 bg-rose-50 p-3 text-sm font-semibold text-rose-700 shadow-sm`,children:[(0,p.jsx)(n.Trash2,{size:20,className:`text-rose-600 animate-bounce`}),(0,p.jsxs)(`span`,{children:[`Drop column header here to hide column `,(0,p.jsx)(`b`,{children:e.columns.find(e=>e.key===D)?.label})]})]})}),z&&(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-xl border border-indigo-200 bg-indigo-50/80 p-3.5 shadow-sm`,children:[(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(n.Edit3,{size:18,className:`text-indigo-600`}),(0,p.jsxs)(`span`,{className:`font-semibold text-slate-900 text-sm`,children:[`Bulk Edit Mode (`,Ce.length,` records):`]})]}),(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,p.jsx)(`span`,{className:`text-xs font-medium text-slate-600`,children:`Select columns to edit:`}),J.map(e=>{let t=fe.includes(e.key);return(0,p.jsxs)(`button`,{type:`button`,onClick:()=>{B(t?t=>t.filter(t=>t!==e.key):t=>[...t,e.key])},className:`flex items-center gap-1.5 rounded-lg px-2.5 py-1 text-xs font-medium border transition-all ${t?`border-indigo-500 bg-indigo-600 text-white shadow-xs`:`border-slate-200 bg-white text-slate-700 hover:border-slate-300 hover:bg-slate-50`}`,children:[(0,p.jsx)(`span`,{className:`flex h-3.5 w-3.5 items-center justify-center rounded border ${t?`border-white bg-white text-indigo-600`:`border-slate-300 bg-white`}`,children:t&&(0,p.jsx)(n.Check,{size:10,strokeWidth:3})}),(0,p.jsx)(`span`,{children:e.label})]},e.key)})]})]}),(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsxs)(`button`,{onClick:je,className:`flex items-center gap-1.5 rounded-lg border border-slate-200 bg-white px-3 py-1.5 text-xs font-medium text-slate-700 hover:bg-slate-50 transition-colors`,children:[(0,p.jsx)(n.X,{size:14,className:`text-rose-500`}),`Cancel`]}),(0,p.jsxs)(`button`,{onClick:Me,className:`flex items-center gap-1.5 rounded-lg bg-emerald-600 px-3.5 py-1.5 text-xs font-medium text-white hover:bg-emerald-700 shadow-sm transition-colors`,children:[(0,p.jsx)(n.Check,{size:14}),`Save`]})]})]}),(0,p.jsxs)(`div`,{className:`${m} overflow-hidden`,children:[(0,p.jsx)(`div`,{className:`overflow-x-auto`,children:(0,p.jsxs)(`table`,{ref:G,className:`min-w-full text-sm table-fixed`,children:[(0,p.jsx)(`thead`,{className:`border-b bg-slate-50`,children:(0,p.jsxs)(`tr`,{children:[e.selectable&&(0,p.jsx)(`th`,{"data-cell":`-1-0`,className:`w-12 px-4 py-3`,children:(0,p.jsx)(`input`,{type:`checkbox`,checked:$.length>0&&$.every(e=>j.includes(e.id)),onChange:e=>Te(e.target.checked),onFocus:()=>I({row:-1,col:0})})}),q.map((t,r)=>{let i=e.selectable?r+1:r,a=D===t.key,o=k===t.key&&D!==t.key,s=T[t.key]||t.width||160;return(0,p.jsxs)(`th`,{"data-cell":`-1-${i}`,style:{width:`${s}px`,minWidth:`${s}px`},draggable:Y,onDragStart:e=>ye(e,t.key),onDragOver:e=>be(e,t.key),onDragLeave:()=>A(null),onDrop:e=>xe(e,t.key),onDragEnd:()=>{O(null),A(null)},"aria-sort":v.key===t.key?v.dir:`none`,className:`group relative whitespace-nowrap px-4 py-3 text-left font-semibold text-slate-600 ${Y?`cursor-grab active:cursor-grabbing`:``} transition-colors select-none ${a?`opacity-30 bg-slate-100`:``} ${o?`border-l-4 border-l-indigo-600 bg-indigo-50/60`:``}`,children:[(0,p.jsxs)(`div`,{className:`flex items-center justify-between gap-1.5 pr-2`,children:[(0,p.jsxs)(`div`,{className:`flex items-center gap-1.5 overflow-hidden`,children:[Y&&(0,p.jsx)(`span`,{title:`Drag header to reorder`,className:`text-slate-300 group-hover:text-slate-500 cursor-grab shrink-0`,children:(0,p.jsx)(n.GripVertical,{size:14})}),(0,p.jsxs)(`button`,{disabled:!t.sortable,onClick:()=>t.sortable&&we(t.key),className:`flex items-center gap-1 truncate ${t.sortable?`hover:text-slate-900`:``}`,children:[(0,p.jsx)(`span`,{className:`truncate`,children:t.label}),t.sortable&&(v.key===t.key?v.dir===`asc`?(0,p.jsx)(n.ChevronUp,{size:15,className:`shrink-0`}):(0,p.jsx)(n.ChevronDown,{size:15,className:`shrink-0`}):(0,p.jsx)(n.ChevronsUpDown,{size:15,className:`text-slate-400 shrink-0`}))]})]}),(0,p.jsx)(`button`,{type:`button`,title:`Hide column`,onClick:e=>{e.stopPropagation(),Se(t.key)},className:`opacity-0 group-hover:opacity-100 transition-opacity p-0.5 text-slate-400 hover:text-rose-600 rounded shrink-0`,children:(0,p.jsx)(n.EyeOff,{size:13})})]}),(0,p.jsx)(`div`,{draggable:!1,onMouseDown:e=>ge(e,t.key),onDoubleClick:e=>{e.stopPropagation(),E(e=>({...e,[t.key]:t.width||160}))},title:`Drag to resize column width`,className:`absolute right-0 top-0 bottom-0 w-2.5 cursor-col-resize group-hover:bg-indigo-300/50 hover:!bg-indigo-500 transition-colors z-10 ${re===t.key?`bg-indigo-600 w-1`:``}`})]},t.key)}),(e.actions?.view||e.actions?.edit||e.actions?.delete)&&(0,p.jsx)(`th`,{className:`sticky right-0 bg-slate-50 px-4 py-3 text-right font-semibold text-slate-600 w-32`,children:`Actions`})]})}),(0,p.jsxs)(`tbody`,{children:[$.map((t,r)=>{let a=le===t.id,o=z&&Ce.includes(t.id);return(0,p.jsxs)(`tr`,{className:`border-b last:border-0 ${a||o?`bg-indigo-50/20`:`hover:bg-slate-50`}`,children:[e.selectable&&(0,p.jsx)(`td`,{"data-cell":`${r}-0`,className:`px-4 py-3`,children:(0,p.jsx)(`input`,{type:`checkbox`,checked:j.includes(t.id),onChange:()=>Ee(t.id),onFocus:()=>I({row:r,col:0})})}),q.map((n,i)=>{let s=e.selectable?i+1:i,c=o&&fe.includes(n.key)&&n.editable!==!1,l=_e(n),u=T[n.key]||n.width||160,d=t[n.key],f=d==null?``:String(d),m=f.length>25;return(0,p.jsx)(`td`,{"data-cell":`${r}-${s}`,style:{width:`${u}px`,minWidth:`${u}px`},className:`px-4 py-3 truncate`,tabIndex:-1,title:m?f:void 0,children:a&&n.editable!==!1?l?(0,p.jsx)(`select`,{value:L[n.key]??``,onChange:e=>R({...L,[n.key]:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&ke(),e.key===`Escape`&&Oe()},className:`w-full rounded-md border border-indigo-300 bg-white px-2 py-1 text-sm outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500`,children:l.map(e=>{let t=typeof e==`object`?e.value:e,n=typeof e==`object`?e.label:e;return(0,p.jsx)(`option`,{value:t,children:n},t)})}):(0,p.jsx)(`input`,{type:`text`,value:L[n.key]??``,onChange:e=>R({...L,[n.key]:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&ke(),e.key===`Escape`&&Oe()},className:`w-full rounded-md border border-indigo-300 bg-white px-2 py-1 text-sm outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500`}):c?l?(0,p.jsx)(`select`,{value:V[t.id]?.[n.key]??t[n.key]??``,onChange:e=>H(r=>({...r,[t.id]:{...r[t.id]||t,[n.key]:e.target.value}})),onKeyDown:e=>{e.key===`Enter`&&Me(),e.key===`Escape`&&je()},className:`w-full rounded-md border border-indigo-400 bg-white px-2 py-1 text-sm outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500`,children:l.map(e=>{let t=typeof e==`object`?e.value:e,n=typeof e==`object`?e.label:e;return(0,p.jsx)(`option`,{value:t,children:n},t)})}):(0,p.jsx)(`input`,{type:`text`,value:V[t.id]?.[n.key]??t[n.key]??``,onChange:e=>H(r=>({...r,[t.id]:{...r[t.id]||t,[n.key]:e.target.value}})),onKeyDown:e=>{e.key===`Enter`&&Me(),e.key===`Escape`&&je()},className:`w-full rounded-md border border-indigo-400 bg-white px-2 py-1 text-sm outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500`}):n.render?n.render(d,t,r):n.key===`status`?(0,p.jsx)(`span`,{className:`rounded-full px-2.5 py-1 text-xs font-medium ${h[d]||`bg-slate-100 text-slate-600`}`,children:d}):m?(0,p.jsxs)(`span`,{title:f,children:[f.slice(0,25),`...`]}):f},n.key)}),(e.actions?.view||e.actions?.edit||e.actions?.delete)&&(0,p.jsx)(`td`,{"data-cell":`${r}-${q.length+ +!!e.selectable}`,className:`sticky right-0 bg-white px-4 py-3 w-32`,children:a?(0,p.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,p.jsx)(`button`,{title:`Save`,onClick:ke,className:`rounded-md bg-emerald-100 p-2 text-emerald-700 hover:bg-emerald-200`,children:(0,p.jsx)(n.Check,{size:16})}),(0,p.jsx)(`button`,{title:`Cancel`,onClick:Oe,className:`rounded-md bg-rose-100 p-2 text-rose-700 hover:bg-rose-200`,children:(0,p.jsx)(n.X,{size:16})})]}):(0,p.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[e.actions.view&&(0,p.jsx)(`button`,{title:`View`,onClick:()=>i?.(t),onFocus:()=>{I({row:r,col:q.length+ +!!e.selectable}),W(0)},className:`rounded-md p-2 hover:bg-slate-100 focus:outline-none focus:ring-2 focus:ring-slate-400`,children:(0,p.jsx)(n.Eye,{size:16})}),e.actions.edit&&(0,p.jsx)(`button`,{title:`Edit`,onClick:()=>De(t),onFocus:()=>{I({row:r,col:q.length+ +!!e.selectable}),W(1)},className:`rounded-md p-2 hover:bg-slate-100 focus:outline-none focus:ring-2 focus:ring-slate-400`,children:(0,p.jsx)(n.Pencil,{size:16})}),e.actions.delete&&(0,p.jsx)(`button`,{title:`Delete`,onClick:()=>P(t),onFocus:()=>{I({row:r,col:q.length+ +!!e.selectable}),W(2)},className:`rounded-md p-2 text-red-600 hover:bg-red-50 focus:outline-none focus:ring-2 focus:ring-red-400`,children:(0,p.jsx)(n.Trash2,{size:16})})]})})]},t.id)}),!$.length&&(0,p.jsx)(`tr`,{children:(0,p.jsxs)(`td`,{colSpan:q.length+ +!!e.selectable+1,className:`px-6 py-16 text-center`,children:[(0,p.jsx)(`div`,{className:`font-medium`,children:`No records found`}),(0,p.jsx)(`div`,{className:`mt-1 text-sm text-slate-500`,children:`Try changing your search or filters.`})]})})]})]})}),(0,p.jsxs)(`div`,{className:`flex flex-col gap-3 border-t bg-white px-4 py-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,p.jsxs)(`div`,{className:`text-sm text-slate-500`,children:[`Showing `,X.length?(Q-1)*x+1:0,`–`,Math.min(Q*x,X.length),` of `,X.length]}),(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(`select`,{value:x,onChange:e=>te(Number(e.target.value)),className:`rounded-lg border border-slate-200 px-2 py-1.5 text-sm`,children:e.pageSizeOptions.map(e=>(0,p.jsxs)(`option`,{value:e,children:[e,`/page`]},e))}),(0,p.jsx)(`button`,{disabled:Q===1,onClick:()=>b(1),className:`rounded-md border p-1.5 disabled:opacity-40`,children:(0,p.jsx)(n.ChevronsLeft,{size:16})}),(0,p.jsx)(`button`,{disabled:Q===1,onClick:()=>b(e=>e-1),className:`rounded-md border p-1.5 disabled:opacity-40`,children:(0,p.jsx)(n.ChevronLeft,{size:16})}),(0,p.jsxs)(`span`,{className:`px-2 text-sm`,children:[`Page `,Q,` of `,Z]}),(0,p.jsx)(`button`,{disabled:Q===Z,onClick:()=>b(e=>e+1),className:`rounded-md border p-1.5 disabled:opacity-40`,children:(0,p.jsx)(n.ChevronRight,{size:16})}),(0,p.jsx)(`button`,{disabled:Q===Z,onClick:()=>b(Z),className:`rounded-md border p-1.5 disabled:opacity-40`,children:(0,p.jsx)(n.ChevronsRight,{size:16})})]})]})]}),j.length>0&&!z&&(0,p.jsxs)(`div`,{className:`fixed bottom-5 left-1/2 z-40 flex -translate-x-1/2 items-center gap-3 rounded-xl bg-slate-900 px-4 py-2.5 text-sm text-white shadow-xl`,children:[(0,p.jsxs)(`span`,{className:`font-medium pl-1`,children:[j.length,` selected`]}),e.bulkEditable!==!1&&J.length>0&&(0,p.jsxs)(`button`,{onClick:Ae,className:`flex items-center gap-1.5 rounded-lg bg-indigo-600 px-3 py-1.5 text-xs font-semibold text-white hover:bg-indigo-500 transition-colors shadow-sm`,children:[(0,p.jsx)(n.Edit3,{size:14}),`Bulk Edit`]}),(0,p.jsx)(`button`,{onClick:()=>M([]),className:`text-xs text-slate-400 hover:text-white underline pr-1`,children:`Clear`})]}),N&&(0,p.jsx)(`div`,{onClick:e=>{e.target===e.currentTarget&&P(null)},className:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4`,children:(0,p.jsxs)(`div`,{className:`w-full max-w-sm rounded-2xl bg-white p-6 shadow-2xl`,children:[(0,p.jsx)(`h3`,{className:`text-lg font-semibold`,children:`Delete record?`}),(0,p.jsxs)(`p`,{className:`mt-2 text-sm text-slate-500`,children:[`Are you sure you want to delete `,(0,p.jsx)(`b`,{children:N.name}),`? This action cannot be undone.`]}),(0,p.jsxs)(`div`,{className:`mt-6 flex justify-end gap-2`,children:[(0,p.jsx)(`button`,{onClick:()=>P(null),className:`rounded-lg border px-4 py-2 text-sm`,children:`Cancel`}),(0,p.jsx)(`button`,{onClick:()=>{u(e=>e.filter(e=>e.id!==N.id)),M(e=>e.filter(e=>e!==N.id)),P(null),o?.(N)},className:`rounded-lg bg-red-600 px-4 py-2 text-sm font-medium text-white`,children:`Delete`})]})]})})]})}var _=g;e.DataTable=g,e.default=_});
|
|
3
|
+
`+t],{type:`text/csv`}),r=document.createElement(`a`);r.href=URL.createObjectURL(n),r.download=`table-export.csv`,r.click(),URL.revokeObjectURL(r.href)},className:`flex items-center gap-2 rounded-lg border border-slate-200 px-3 py-2 text-sm`,children:[(0,u.jsx)(l.Download,{size:16}),`Export`]})]})]})}),ve&&(0,u.jsx)(`div`,{onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`},onDrop:e=>{e.preventDefault();let t=e.dataTransfer.getData(`text/plain`)||w;t&&Se(t)},className:`transition-all duration-200 overflow-hidden ${w?`max-h-24 opacity-100 my-2`:`max-h-0 opacity-0 my-0 pointer-events-none`}`,children:(0,u.jsxs)(`div`,{className:`flex items-center justify-center gap-2 rounded-xl border-2 border-dashed border-rose-400 bg-rose-50 p-3 text-sm font-semibold text-rose-700 shadow-sm`,children:[(0,u.jsx)(l.Trash2,{size:20,className:`text-rose-600 animate-bounce`}),(0,u.jsxs)(`span`,{children:[`Drop column header here to hide column `,(0,u.jsx)(`b`,{children:e.columns.find(e=>e.key===w)?.label})]})]})}),L&&(0,u.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-xl border border-indigo-200 bg-indigo-50/80 p-3.5 shadow-sm`,children:[(0,u.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,u.jsx)(l.Edit3,{size:18,className:`text-indigo-600`}),(0,u.jsxs)(`span`,{className:`font-semibold text-slate-900 text-sm`,children:[`Bulk Edit Mode (`,Ce.length,` records):`]})]}),(0,u.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,u.jsx)(`span`,{className:`text-xs font-medium text-slate-600`,children:`Select columns to edit:`}),J.map(e=>{let t=pe.includes(e.key);return(0,u.jsxs)(`button`,{type:`button`,onClick:()=>{z(t?t=>t.filter(t=>t!==e.key):t=>[...t,e.key])},className:`flex items-center gap-1.5 rounded-lg px-2.5 py-1 text-xs font-medium border transition-all ${t?`border-indigo-500 bg-indigo-600 text-white shadow-xs`:`border-slate-200 bg-white text-slate-700 hover:border-slate-300 hover:bg-slate-50`}`,children:[(0,u.jsx)(`span`,{className:`flex h-3.5 w-3.5 items-center justify-center rounded border ${t?`border-white bg-white text-indigo-600`:`border-slate-300 bg-white`}`,children:t&&(0,u.jsx)(l.Check,{size:10,strokeWidth:3})}),(0,u.jsx)(`span`,{children:e.label})]},e.key)})]})]}),(0,u.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,u.jsxs)(`button`,{onClick:je,className:`flex items-center gap-1.5 rounded-lg border border-slate-200 bg-white px-3 py-1.5 text-xs font-medium text-slate-700 hover:bg-slate-50 transition-colors`,children:[(0,u.jsx)(l.X,{size:14,className:`text-rose-500`}),`Cancel`]}),(0,u.jsxs)(`button`,{onClick:Me,className:`flex items-center gap-1.5 rounded-lg bg-emerald-600 px-3.5 py-1.5 text-xs font-medium text-white hover:bg-emerald-700 shadow-sm transition-colors`,children:[(0,u.jsx)(l.Check,{size:14}),`Save`]})]})]}),(0,u.jsxs)(`div`,{className:`${d} overflow-hidden`,children:[(0,u.jsx)(`div`,{className:`overflow-x-auto`,children:(0,u.jsxs)(`table`,{ref:W,className:`min-w-full text-sm table-fixed`,children:[(0,u.jsx)(`thead`,{className:`border-b bg-slate-50`,children:(0,u.jsxs)(`tr`,{children:[e.selectable&&(0,u.jsx)(`th`,{"data-cell":`-1-0`,className:`w-12 px-4 py-3`,children:(0,u.jsx)(`input`,{type:`checkbox`,checked:$.length>0&&$.every(e=>O.includes(e.id)),onChange:e=>Te(e.target.checked),onFocus:()=>N({row:-1,col:0})})}),q.map((t,n)=>{let r=e.selectable?n+1:n,i=w===t.key,a=E===t.key&&w!==t.key,o=C[t.key]||t.width||160;return(0,u.jsxs)(`th`,{"data-cell":`-1-${r}`,style:{width:`${o}px`,minWidth:`${o}px`},draggable:Y,onDragStart:e=>ye(e,t.key),onDragOver:e=>be(e,t.key),onDragLeave:()=>D(null),onDrop:e=>xe(e,t.key),onDragEnd:()=>{T(null),D(null)},"aria-sort":g.key===t.key?g.dir:`none`,className:`group relative whitespace-nowrap px-4 py-3 text-left font-semibold text-slate-600 ${Y?`cursor-grab active:cursor-grabbing`:``} transition-colors select-none ${i?`opacity-30 bg-slate-100`:``} ${a?`border-l-4 border-l-indigo-600 bg-indigo-50/60`:``}`,children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between gap-1.5 pr-2`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-1.5 overflow-hidden`,children:[Y&&(0,u.jsx)(`span`,{title:`Drag header to reorder`,className:`text-slate-300 group-hover:text-slate-500 cursor-grab shrink-0`,children:(0,u.jsx)(l.GripVertical,{size:14})}),(0,u.jsxs)(`button`,{disabled:!t.sortable,onClick:()=>t.sortable&&we(t.key),className:`flex items-center gap-1 truncate ${t.sortable?`hover:text-slate-900`:``}`,children:[(0,u.jsx)(`span`,{className:`truncate`,children:t.label}),t.sortable&&(g.key===t.key?g.dir===`asc`?(0,u.jsx)(l.ChevronUp,{size:15,className:`shrink-0`}):(0,u.jsx)(l.ChevronDown,{size:15,className:`shrink-0`}):(0,u.jsx)(l.ChevronsUpDown,{size:15,className:`text-slate-400 shrink-0`}))]})]}),(0,u.jsx)(`button`,{type:`button`,title:`Hide column`,onClick:e=>{e.stopPropagation(),Se(t.key)},className:`opacity-0 group-hover:opacity-100 transition-opacity p-0.5 text-slate-400 hover:text-rose-600 rounded shrink-0`,children:(0,u.jsx)(l.EyeOff,{size:13})})]}),(0,u.jsx)(`div`,{draggable:!1,onMouseDown:e=>ge(e,t.key),onDoubleClick:e=>{e.stopPropagation(),ae(e=>({...e,[t.key]:t.width||160}))},title:`Drag to resize column width`,className:`absolute right-0 top-0 bottom-0 w-2.5 cursor-col-resize group-hover:bg-indigo-300/50 hover:!bg-indigo-500 transition-colors z-10 ${oe===t.key?`bg-indigo-600 w-1`:``}`})]},t.key)}),(e.actions?.view||e.actions?.edit||e.actions?.delete)&&(0,u.jsx)(`th`,{className:`sticky right-0 bg-slate-50 px-4 py-3 text-right font-semibold text-slate-600 w-32`,children:`Actions`})]})}),(0,u.jsxs)(`tbody`,{children:[$.map((t,r)=>{let i=fe===t.id,a=L&&Ce.includes(t.id);return(0,u.jsxs)(`tr`,{className:`border-b last:border-0 ${i||a?`bg-indigo-50/20`:`hover:bg-slate-50`}`,children:[e.selectable&&(0,u.jsx)(`td`,{"data-cell":`${r}-0`,className:`px-4 py-3`,children:(0,u.jsx)(`input`,{type:`checkbox`,checked:O.includes(t.id),onChange:()=>Ee(t.id),onFocus:()=>N({row:r,col:0})})}),q.map((n,o)=>{let s=e.selectable?o+1:o,c=a&&pe.includes(n.key)&&n.editable!==!1,l=_e(n),d=C[n.key]||n.width||160,f=t[n.key],p=f==null?``:String(f),m=p.length>25;return(0,u.jsx)(`td`,{"data-cell":`${r}-${s}`,style:{width:`${d}px`,minWidth:`${d}px`},className:`px-4 py-3 truncate`,tabIndex:-1,title:m?p:void 0,children:i&&n.editable!==!1?l?(0,u.jsx)(`select`,{value:F[n.key]??``,onChange:e=>I({...F,[n.key]:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&ke(),e.key===`Escape`&&Oe()},className:`w-full rounded-md border border-indigo-300 bg-white px-2 py-1 text-sm outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500`,children:l.map(e=>{let t=typeof e==`object`?e.value:e,n=typeof e==`object`?e.label:e;return(0,u.jsx)(`option`,{value:t,children:n},t)})}):(0,u.jsx)(`input`,{type:`text`,value:F[n.key]??``,onChange:e=>I({...F,[n.key]:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&ke(),e.key===`Escape`&&Oe()},className:`w-full rounded-md border border-indigo-300 bg-white px-2 py-1 text-sm outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500`}):c?l?(0,u.jsx)(`select`,{value:B[t.id]?.[n.key]??t[n.key]??``,onChange:e=>V(r=>({...r,[t.id]:{...r[t.id]||t,[n.key]:e.target.value}})),onKeyDown:e=>{e.key===`Enter`&&Me(),e.key===`Escape`&&je()},className:`w-full rounded-md border border-indigo-400 bg-white px-2 py-1 text-sm outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500`,children:l.map(e=>{let t=typeof e==`object`?e.value:e,n=typeof e==`object`?e.label:e;return(0,u.jsx)(`option`,{value:t,children:n},t)})}):(0,u.jsx)(`input`,{type:`text`,value:B[t.id]?.[n.key]??t[n.key]??``,onChange:e=>V(r=>({...r,[t.id]:{...r[t.id]||t,[n.key]:e.target.value}})),onKeyDown:e=>{e.key===`Enter`&&Me(),e.key===`Escape`&&je()},className:`w-full rounded-md border border-indigo-400 bg-white px-2 py-1 text-sm outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500`}):n.render?n.render(f,t,r):n.key===`status`?(0,u.jsx)(`span`,{className:`rounded-full px-2.5 py-1 text-xs font-medium ${ee[f]||`bg-slate-100 text-slate-600`}`,children:f}):m?(0,u.jsxs)(`span`,{title:p,children:[p.slice(0,25),`...`]}):p},n.key)}),(e.actions?.view||e.actions?.edit||e.actions?.delete)&&(0,u.jsx)(`td`,{"data-cell":`${r}-${q.length+ +!!e.selectable}`,className:`sticky right-0 bg-white px-4 py-3 w-32`,children:i?(0,u.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,u.jsx)(`button`,{title:`Save`,onClick:ke,className:`rounded-md bg-emerald-100 p-2 text-emerald-700 hover:bg-emerald-200`,children:(0,u.jsx)(l.Check,{size:16})}),(0,u.jsx)(`button`,{title:`Cancel`,onClick:Oe,className:`rounded-md bg-rose-100 p-2 text-rose-700 hover:bg-rose-200`,children:(0,u.jsx)(l.X,{size:16})})]}):(0,u.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[e.actions.view&&(0,u.jsx)(`button`,{title:`View`,onClick:()=>n?.(t),onFocus:()=>{N({row:r,col:q.length+ +!!e.selectable}),U(0)},className:`rounded-md p-2 hover:bg-slate-100 focus:outline-none focus:ring-2 focus:ring-slate-400`,children:(0,u.jsx)(l.Eye,{size:16})}),e.actions.edit&&(0,u.jsx)(`button`,{title:`Edit`,onClick:()=>De(t),onFocus:()=>{N({row:r,col:q.length+ +!!e.selectable}),U(1)},className:`rounded-md p-2 hover:bg-slate-100 focus:outline-none focus:ring-2 focus:ring-slate-400`,children:(0,u.jsx)(l.Pencil,{size:16})}),e.actions.delete&&(0,u.jsx)(`button`,{title:`Delete`,onClick:()=>j(t),onFocus:()=>{N({row:r,col:q.length+ +!!e.selectable}),U(2)},className:`rounded-md p-2 text-red-600 hover:bg-red-50 focus:outline-none focus:ring-2 focus:ring-red-400`,children:(0,u.jsx)(l.Trash2,{size:16})})]})})]},t.id)}),!$.length&&(0,u.jsx)(`tr`,{children:(0,u.jsxs)(`td`,{colSpan:q.length+ +!!e.selectable+1,className:`px-6 py-16 text-center`,children:[(0,u.jsx)(`div`,{className:`font-medium`,children:`No records found`}),(0,u.jsx)(`div`,{className:`mt-1 text-sm text-slate-500`,children:`Try changing your search or filters.`})]})})]})]})}),(0,u.jsxs)(`div`,{className:`flex flex-col gap-3 border-t bg-white px-4 py-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,u.jsxs)(`div`,{className:`text-sm text-slate-500`,children:[`Showing `,X.length?(Q-1)*y+1:0,`–`,Math.min(Q*y,X.length),` of `,X.length]}),(0,u.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,u.jsx)(`select`,{value:y,onChange:e=>re(Number(e.target.value)),className:`rounded-lg border border-slate-200 px-2 py-1.5 text-sm`,children:e.pageSizeOptions.map(e=>(0,u.jsxs)(`option`,{value:e,children:[e,`/page`]},e))}),(0,u.jsx)(`button`,{disabled:Q===1,onClick:()=>v(1),className:`rounded-md border p-1.5 disabled:opacity-40`,children:(0,u.jsx)(l.ChevronsLeft,{size:16})}),(0,u.jsx)(`button`,{disabled:Q===1,onClick:()=>v(e=>e-1),className:`rounded-md border p-1.5 disabled:opacity-40`,children:(0,u.jsx)(l.ChevronLeft,{size:16})}),(0,u.jsxs)(`span`,{className:`px-2 text-sm`,children:[`Page `,Q,` of `,Z]}),(0,u.jsx)(`button`,{disabled:Q===Z,onClick:()=>v(e=>e+1),className:`rounded-md border p-1.5 disabled:opacity-40`,children:(0,u.jsx)(l.ChevronRight,{size:16})}),(0,u.jsx)(`button`,{disabled:Q===Z,onClick:()=>v(Z),className:`rounded-md border p-1.5 disabled:opacity-40`,children:(0,u.jsx)(l.ChevronsRight,{size:16})})]})]})]}),O.length>0&&!L&&(0,u.jsxs)(`div`,{className:`fixed bottom-5 left-1/2 z-40 flex -translate-x-1/2 items-center gap-3 rounded-xl bg-slate-900 px-4 py-2.5 text-sm text-white shadow-xl`,children:[(0,u.jsxs)(`span`,{className:`font-medium pl-1`,children:[O.length,` selected`]}),e.bulkEditable!==!1&&J.length>0&&(0,u.jsxs)(`button`,{onClick:Ae,className:`flex items-center gap-1.5 rounded-lg bg-indigo-600 px-3 py-1.5 text-xs font-semibold text-white hover:bg-indigo-500 transition-colors shadow-sm`,children:[(0,u.jsx)(l.Edit3,{size:14}),`Bulk Edit`]}),(0,u.jsx)(`button`,{onClick:()=>k([]),className:`text-xs text-slate-400 hover:text-white underline pr-1`,children:`Clear`})]}),A&&(0,u.jsx)(`div`,{onClick:e=>{e.target===e.currentTarget&&j(null)},className:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4`,children:(0,u.jsxs)(`div`,{className:`w-full max-w-sm rounded-2xl bg-white p-6 shadow-2xl`,children:[(0,u.jsx)(`h3`,{className:`text-lg font-semibold`,children:`Delete record?`}),(0,u.jsxs)(`p`,{className:`mt-2 text-sm text-slate-500`,children:[`Are you sure you want to delete `,(0,u.jsx)(`b`,{children:A.name}),`? This action cannot be undone.`]}),(0,u.jsxs)(`div`,{className:`mt-6 flex justify-end gap-2`,children:[(0,u.jsx)(`button`,{onClick:()=>j(null),className:`rounded-lg border px-4 py-2 text-sm`,children:`Cancel`}),(0,u.jsx)(`button`,{onClick:()=>{f(e=>e.filter(e=>e.id!==A.id)),k(e=>e.filter(e=>e!==A.id)),j(null),i?.(A)},className:`rounded-lg bg-red-600 px-4 py-2 text-sm font-medium text-white`,children:`Delete`})]})]})})]})}var p=`/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
4
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-400:oklch(70.4% .191 22.216);--color-red-600:oklch(57.7% .245 27.325);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-700:oklch(55.5% .163 48.998);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-bounce:bounce 1s infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.visible\\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\\/2{top:50%}.right-0{right:0}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:0}.bottom-5{bottom:calc(var(--spacing) * 5)}.left-1{left:var(--spacing)}.left-1\\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-inline:auto}.my-0{margin-block:0}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.block{display:block}.flex{display:flex}.grid{display:grid}.table{display:table}.h-3{height:calc(var(--spacing) * 3)}.h-3\\.5{height:calc(var(--spacing) * 3.5)}.max-h-0{max-height:0}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-screen{min-height:100vh}.w-1{width:var(--spacing)}.w-2{width:calc(var(--spacing) * 2)}.w-2\\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\\.5{width:calc(var(--spacing) * 3.5)}.w-12{width:calc(var(--spacing) * 12)}.w-32{width:calc(var(--spacing) * 32)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.max-w-sm{max-width:var(--container-sm)}.min-w-full{min-width:100%}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.-translate-x-1{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-bounce{animation:var(--animate-bounce)}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-emerald-200{border-color:var(--color-emerald-200)}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-300{border-color:var(--color-indigo-300)}.border-indigo-400{border-color:var(--color-indigo-400)}.border-indigo-500{border-color:var(--color-indigo-500)}.border-rose-400{border-color:var(--color-rose-400)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-white{border-color:var(--color-white)}.border-l-indigo-600{border-left-color:var(--color-indigo-600)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-black{background-color:var(--color-black)}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-indigo-50\\/20{background-color:#eef2ff33}@supports (color:color-mix(in lab, red, red)){.bg-indigo-50\\/20{background-color:color-mix(in oklab, var(--color-indigo-50) 20%, transparent)}}.bg-indigo-50\\/60{background-color:#eef2ff99}@supports (color:color-mix(in lab, red, red)){.bg-indigo-50\\/60{background-color:color-mix(in oklab, var(--color-indigo-50) 60%, transparent)}}.bg-indigo-50\\/80{background-color:#eef2ffcc}@supports (color:color-mix(in lab, red, red)){.bg-indigo-50\\/80{background-color:color-mix(in oklab, var(--color-indigo-50) 80%, transparent)}}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-red-600{background-color:var(--color-red-600)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-100{background-color:var(--color-rose-100)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-white{background-color:var(--color-white)}.p-0{padding:0}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pl-1{padding-left:var(--spacing)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[11px\\]{font-size:11px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.text-amber-700{color:var(--color-amber-700)}.text-emerald-700{color:var(--color-emerald-700)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-red-600{color:var(--color-red-600)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:bg-indigo-300\\/50:is(:where(.group):hover *){background-color:#a4b3ff80}@supports (color:color-mix(in lab, red, red)){.group-hover\\:bg-indigo-300\\/50:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--color-indigo-300) 50%, transparent)}}.group-hover\\:text-slate-500:is(:where(.group):hover *){color:var(--color-slate-500)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.last\\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media (hover:hover){.hover\\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\\:\\!bg-indigo-500:hover{background-color:var(--color-indigo-500)!important}.hover\\:bg-emerald-200:hover{background-color:var(--color-emerald-200)}.hover\\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\\:bg-indigo-100:hover{background-color:var(--color-indigo-100)}.hover\\:bg-indigo-500:hover{background-color:var(--color-indigo-500)}.hover\\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\\:bg-rose-200:hover{background-color:var(--color-rose-200)}.hover\\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\\:text-indigo-800:hover{color:var(--color-indigo-800)}.hover\\:text-rose-600:hover{color:var(--color-rose-600)}.hover\\:text-slate-500:hover{color:var(--color-slate-500)}.hover\\:text-slate-600:hover{color:var(--color-slate-600)}.hover\\:text-slate-900:hover{color:var(--color-slate-900)}.hover\\:text-white:hover{color:var(--color-white)}}.focus\\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\\:ring-indigo-500\\/20:focus{--tw-ring-color:#625fff33}@supports (color:color-mix(in lab, red, red)){.focus\\:ring-indigo-500\\/20:focus{--tw-ring-color:color-mix(in oklab, var(--color-indigo-500) 20%, transparent)}}.focus\\:ring-red-400:focus{--tw-ring-color:var(--color-red-400)}.focus\\:ring-slate-400:focus{--tw-ring-color:var(--color-slate-400)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:opacity-40:disabled{opacity:.4}@media (width>=40rem){.sm\\:flex-row{flex-direction:row}.sm\\:items-center{align-items:center}.sm\\:justify-between{justify-content:space-between}.sm\\:p-6{padding:calc(var(--spacing) * 6)}}@media (width>=64rem){.lg\\:flex-row{flex-direction:row}.lg\\:items-center{align-items:center}.lg\\:justify-between{justify-content:space-between}.lg\\:p-10{padding:calc(var(--spacing) * 10)}}}*{box-sizing:border-box}body{color:#0f172a;background:#f8fafc;margin:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}`;if(typeof document<`u`){let e=`react-flexi-datatable-styles`;if(!document.getElementById(e)){let t=document.createElement(`style`);t.id=e,t.textContent=p,document.head.appendChild(t)}}var m=f;exports.DataTable=f,exports.default=m;
|