yk-grid 0.1.0 → 0.1.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.
@@ -5,4 +5,4 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
5
5
  <%s {...props} />
6
6
  React keys must be passed directly to JSX without using spread:
7
7
  let props = %s;
8
- <%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===C&&(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`),b=Symbol.for(`react.consumer`),x=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),ee=Symbol.for(`react.suspense`),te=Symbol.for(`react.suspense_list`),ne=Symbol.for(`react.memo`),C=Symbol.for(`react.lazy`),w=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)}})()})),A=o(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=O():t.exports=k()}))(),j={asc:`ascending`,desc:`descending`};function M({filled:e}){return(0,A.jsx)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 10 10`,fill:`none`,"aria-hidden":`true`,children:e?(0,A.jsx)(`path`,{d:`M1 1h8L6 5v3.5L4 7.5V5L1 1z`,fill:`currentColor`}):(0,A.jsx)(`path`,{d:`M1 1h8L6 5v3.5L4 7.5V5L1 1z`,stroke:`currentColor`,strokeWidth:`1`,fill:`none`})})}function ae({column:e,sortEntry:t,sortIndex:n,totalSorts:r,width:i,onSort:a,enableResize:o,onResize:s,enableMenu:c,menuOpen:l,onToggleMenu:u,columnMenuSlot:d,filterActive:f=!1,filterPanelOpen:p=!1,onToggleFilter:m}){let h=e.sortable!==!1&&!!a,g=o&&e.resizable!==!1&&!!s,_=t?.direction;function v(t){h&&a(e.id,t.shiftKey)}function y(t){h&&(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),a(e.id,t.shiftKey))}function b(t){t.preventDefault(),t.stopPropagation();let n=t.clientX,r=t.target.closest(`th`).getBoundingClientRect().width;function i(t){let i=t.clientX-n,a=Math.max(e.minWidth??50,r+i);s(e.id,Math.round(a))}function a(){document.removeEventListener(`mousemove`,i),document.removeEventListener(`mouseup`,a)}document.addEventListener(`mousemove`,i),document.addEventListener(`mouseup`,a)}let x=_?j[_]:h?`none`:void 0;return(0,A.jsxs)(`th`,{style:{width:i??e.width,position:`relative`},"aria-sort":x,onClick:h?v:void 0,onKeyDown:h?y:void 0,tabIndex:h?0:void 0,role:h?`columnheader`:void 0,className:[D.th,h&&D.sortable].filter(Boolean).join(` `),children:[(0,A.jsxs)(`span`,{className:D.content,children:[(0,A.jsx)(`span`,{className:D.label,children:e.header}),h&&(0,A.jsxs)(`span`,{className:D.indicators,"aria-hidden":`true`,children:[_===`asc`&&(0,A.jsx)(`span`,{className:D.arrow,children:`↑`}),_===`desc`&&(0,A.jsx)(`span`,{className:D.arrow,children:`↓`}),!_&&(0,A.jsx)(`span`,{className:D.arrowIdle,children:`↕`}),r>1&&n>=0&&(0,A.jsx)(`span`,{className:D.sortIndex,children:n+1})]}),(0,A.jsxs)(`span`,{className:[D.headerActions,m&&D.headerActionsVisible].filter(Boolean).join(` `),children:[m&&(0,A.jsx)(`button`,{type:`button`,className:[D.filterBtn,(f||p)&&D.filterBtnActive].filter(Boolean).join(` `),onClick:t=>{t.stopPropagation(),m(e.id,t.currentTarget.getBoundingClientRect())},"aria-label":`Filter ${e.header}`,"aria-haspopup":`dialog`,"aria-expanded":p,tabIndex:-1,children:(0,A.jsx)(M,{filled:f})}),c&&e.hideable!==!1&&(0,A.jsx)(`button`,{type:`button`,className:[D.menuBtn,l&&D.menuBtnOpen].filter(Boolean).join(` `),onClick:t=>{t.stopPropagation(),u?.(e.id,t.currentTarget.getBoundingClientRect())},"aria-label":`Column options for ${e.header}`,"aria-expanded":l,tabIndex:-1,children:`⋮`})]})]}),g&&(0,A.jsx)(`span`,{className:D.resizeHandle,onMouseDown:b,role:`separator`,"aria-label":`Resize ${e.header}`,"aria-orientation":`vertical`}),d]})}var N={panel:`_panel_l8qj5_1`,heading:`_heading_l8qj5_13`,section:`_section_l8qj5_24`,field:`_field_l8qj5_33`,label:`_label_l8qj5_39`,select:`_select_l8qj5_45`,input:`_input_l8qj5_65`,rangeRow:`_rangeRow_l8qj5_100`,rangeSep:`_rangeSep_l8qj5_110`,searchRow:`_searchRow_l8qj5_118`,searchIcon:`_searchIcon_l8qj5_124`,searchInput:`_searchInput_l8qj5_132`,checkboxList:`_checkboxList_l8qj5_163`,checkboxItem:`_checkboxItem_l8qj5_175`,checkbox:`_checkbox_l8qj5_163`,checkboxLabel:`_checkboxLabel_l8qj5_203`,noResults:`_noResults_l8qj5_211`,clearBtn:`_clearBtn_l8qj5_221`,srOnly:`_srOnly_l8qj5_248`},oe=[{value:`eq`,label:`Equals`,symbol:`=`},{value:`gt`,label:`Greater than`,symbol:`>`},{value:`gte`,label:`Greater than or equal`,symbol:`≥`},{value:`lt`,label:`Less than`,symbol:`<`},{value:`lte`,label:`Less than or equal`,symbol:`≤`},{value:`between`,label:`Between`,symbol:`↔`}];function P(e){return e===`gt`||e===`gte`||e===`lt`||e===`lte`||e===`between`?e:`eq`}function F(e){let t=e.trim();if(t===``)return null;let n=Number(t);return isNaN(n)?null:n}var I=300;function se({column:e,filterEntry:t,filterOptions:n,anchorRect:r,onClose:i,onChange:a}){let o=(0,l.useRef)(null),s=(0,l.useId)(),c=Math.min(r.left,typeof window<`u`?window.innerWidth-252:r.left),u={top:r.bottom+6,left:Math.max(4,c)};(0,l.useEffect)(()=>{function e(e){o.current&&!o.current.contains(e.target)&&i()}function t(e){e.key===`Escape`&&i()}function n(){i()}return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),window.addEventListener(`scroll`,n,{capture:!0,passive:!0}),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t),window.removeEventListener(`scroll`,n,{capture:!0})}},[i]);let f=e.filterType??`text`;return(0,d.createPortal)((0,A.jsxs)(`div`,{ref:o,className:N.panel,style:u,role:`dialog`,"aria-labelledby":s,"aria-modal":`false`,children:[(0,A.jsxs)(`p`,{id:s,className:N.heading,children:[`Filter `,e.header]}),f===`number`&&(0,A.jsx)(ce,{columnHeader:e.header,filterEntry:t,onChange:a}),(f===`text`||f===`date`)&&(0,A.jsx)(le,{columnHeader:e.header,filterType:f,filterEntry:t,onChange:a}),f===`select`&&(0,A.jsx)(ue,{columnHeader:e.header,options:n??e.filterOptions??[],filterEntry:t,onChange:a})]}),document.body)}function ce({columnHeader:e,filterEntry:t,onChange:n}){let r=(0,l.useId)(),i=(0,l.useId)(),[a,o]=(0,l.useState)(()=>P(t?.operator??null)),[s,c]=(0,l.useState)(()=>{let e=t?.value;return e==null?``:Array.isArray(e)?e[0]===void 0?``:String(e[0]):String(e)}),[u,d]=(0,l.useState)(()=>{let e=t?.value;return Array.isArray(e)?e[1]===void 0?``:String(e[1]):``}),f=(0,l.useRef)(null);function p(e,t,r){f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{if(e===`between`){let e=F(t),i=F(r);n(e!==null&&i!==null?[e,i]:null,`between`)}else n(F(t),e)},I)}let m=s!==``||u!==``;return(0,A.jsxs)(`div`,{className:N.section,children:[(0,A.jsxs)(`div`,{className:N.field,children:[(0,A.jsx)(`label`,{htmlFor:r,className:N.label,children:`Operator`}),(0,A.jsx)(`select`,{id:r,className:N.select,value:a,onChange:e=>{let t=e.target.value;o(t),p(t,s,u)},children:oe.map(e=>(0,A.jsxs)(`option`,{value:e.value,children:[e.symbol,` `,e.label]},e.value))})]}),a===`between`?(0,A.jsxs)(`div`,{className:N.field,children:[(0,A.jsx)(`label`,{className:N.label,children:`Range`}),(0,A.jsxs)(`div`,{className:N.rangeRow,children:[(0,A.jsx)(`input`,{type:`number`,className:N.input,value:s,placeholder:`Min`,onChange:e=>{c(e.target.value),p(a,e.target.value,u)},"aria-label":`Minimum value for ${e}`,style:{fontVariantNumeric:`tabular-nums`},autoFocus:!0}),(0,A.jsx)(`span`,{className:N.rangeSep,"aria-hidden":`true`,children:`–`}),(0,A.jsx)(`input`,{type:`number`,className:N.input,value:u,placeholder:`Max`,onChange:e=>{d(e.target.value),p(a,s,e.target.value)},"aria-label":`Maximum value for ${e}`,style:{fontVariantNumeric:`tabular-nums`}})]})]}):(0,A.jsxs)(`div`,{className:N.field,children:[(0,A.jsx)(`label`,{htmlFor:i,className:N.label,children:`Value`}),(0,A.jsx)(`input`,{id:i,type:`number`,className:N.input,value:s,placeholder:`Enter value…`,onChange:e=>{c(e.target.value),p(a,e.target.value,u)},"aria-label":`Filter value for ${e}`,style:{fontVariantNumeric:`tabular-nums`},autoFocus:!0})]}),m&&(0,A.jsx)(`button`,{type:`button`,className:N.clearBtn,onClick:()=>{f.current&&clearTimeout(f.current),c(``),d(``),n(null,a)},children:`Clear filter`})]})}function le({columnHeader:e,filterType:t,filterEntry:n,onChange:r}){let i=(0,l.useId)(),a=t===`date`?`eq`:`contains`,[o,s]=(0,l.useState)(n?.value==null?``:String(n.value)),c=(0,l.useRef)(null);function u(e){c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{r(e.trim()===``?null:e.trim(),a)},I)}return(0,A.jsxs)(`div`,{className:N.section,children:[(0,A.jsxs)(`div`,{className:N.field,children:[(0,A.jsx)(`label`,{htmlFor:i,className:N.label,children:t===`date`?`Date`:`Contains`}),(0,A.jsx)(`input`,{id:i,type:t===`date`?`date`:`text`,className:N.input,value:o,placeholder:t===`date`?void 0:`Filter…`,onChange:e=>{s(e.target.value),u(e.target.value)},"aria-label":`Filter ${e}`,autoFocus:!0})]}),o!==``&&(0,A.jsx)(`button`,{type:`button`,className:N.clearBtn,onClick:()=>{c.current&&clearTimeout(c.current),s(``),r(null,a)},children:`Clear filter`})]})}function L(e){if(!e)return new Set;let{value:t}=e;return Array.isArray(t)?new Set(t.map(String)):t!=null&&String(t)!==``?new Set([String(t)]):new Set}function ue({columnHeader:e,options:t,filterEntry:n,onChange:r}){let i=(0,l.useId)(),[a,o]=(0,l.useState)(``),[s,c]=(0,l.useState)(()=>L(n)),u=t.filter(e=>e.toLowerCase().includes(a.toLowerCase())),d=u.length>0&&u.every(e=>s.has(e)),f=u.some(e=>s.has(e)),p=(0,l.useRef)(null);(0,l.useEffect)(()=>{p.current&&(p.current.indeterminate=f&&!d)},[f,d]);let m=(0,l.useCallback)(e=>{c(e),r(e.size>0?Array.from(e):null,`in`)},[r]);function h(){if(d){let e=new Set(s);u.forEach(t=>e.delete(t)),m(e)}else{let e=new Set(s);u.forEach(t=>e.add(t)),m(e)}}function g(e){let t=new Set(s);t.has(e)?t.delete(e):t.add(e),m(t)}return(0,A.jsxs)(`div`,{className:N.section,children:[(0,A.jsxs)(`div`,{className:N.searchRow,children:[(0,A.jsxs)(`label`,{htmlFor:i,className:N.srOnly,children:[`Search `,e,` options`]}),(0,A.jsx)(`span`,{className:N.searchIcon,"aria-hidden":`true`,children:(0,A.jsx)(de,{})}),(0,A.jsx)(`input`,{id:i,type:`search`,className:N.searchInput,value:a,placeholder:`Search…`,onChange:e=>o(e.target.value),autoFocus:!0})]}),(0,A.jsxs)(`div`,{className:N.checkboxList,role:`group`,"aria-label":`Filter ${e} by value`,children:[t.length>0&&(0,A.jsxs)(`label`,{className:N.checkboxItem,children:[(0,A.jsx)(`input`,{ref:p,type:`checkbox`,className:N.checkbox,checked:d,onChange:h,"aria-label":`Select all`}),(0,A.jsx)(`span`,{className:N.checkboxLabel,children:`(Select All)`})]}),u.length===0&&(0,A.jsx)(`p`,{className:N.noResults,children:`No matching options`}),u.map(e=>(0,A.jsxs)(`label`,{className:N.checkboxItem,children:[(0,A.jsx)(`input`,{type:`checkbox`,className:N.checkbox,checked:s.has(e),onChange:()=>g(e),"aria-label":e}),(0,A.jsx)(`span`,{className:N.checkboxLabel,children:e})]},e))]}),s.size>0&&(0,A.jsx)(`button`,{type:`button`,className:N.clearBtn,onClick:()=>m(new Set),children:`Clear filter`})]})}function de(){return(0,A.jsxs)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 12 12`,"aria-hidden":`true`,style:{display:`block`},children:[(0,A.jsx)(`circle`,{cx:`5`,cy:`5`,r:`3.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.3`}),(0,A.jsx)(`line`,{x1:`7.8`,y1:`7.8`,x2:`11`,y2:`11`,stroke:`currentColor`,strokeWidth:`1.3`,strokeLinecap:`round`})]})}var R={groupRow:`_groupRow_16hmo_1`,labelCell:`_labelCell_16hmo_10`,toggleBtn:`_toggleBtn_16hmo_18`,colHeader:`_colHeader_16hmo_45`,groupValue:`_groupValue_16hmo_53`,childCount:`_childCount_16hmo_58`,aggregateCell:`_aggregateCell_16hmo_63`};function z(e){return e===null?`(empty)`:e instanceof Date?e.toLocaleDateString():String(e)}function fe(e,t){return e===null?null:t===`avg`?e.toFixed(2):t===`count`?String(e):e.toLocaleString()}function pe({row:e,columns:t,visibleColumnIds:n,onToggle:r}){let i=t.filter(e=>n.has(e.id)),a=t.find(t=>t.id===e.columnId);return(0,A.jsx)(`tr`,{className:R.groupRow,"aria-level":e.depth+1,children:i.map((t,n)=>{if(n===0)return(0,A.jsxs)(`td`,{className:R.labelCell,style:{paddingLeft:`${e.depth*1.5+.5}rem`},colSpan:1,children:[(0,A.jsx)(`button`,{className:R.toggleBtn,onClick:r,"aria-expanded":e.isExpanded,"aria-label":`${e.isExpanded?`Collapse`:`Expand`} group ${z(e.value)}`,type:`button`,children:e.isExpanded?`▼`:`▶`}),(0,A.jsxs)(`span`,{className:R.colHeader,children:[a?.header??e.columnId,`:`]}),(0,A.jsx)(`span`,{className:R.groupValue,children:z(e.value)}),(0,A.jsxs)(`span`,{className:R.childCount,children:[`(`,e.childCount,`)`]})]},t.id);let i=e.aggregates[t.id],o=t.aggregation;return(0,A.jsx)(`td`,{className:R.aggregateCell,children:o&&i!==void 0?fe(i,o):null},t.id)})})}var me={td:`_td_13y42_1`,editable:`_editable_13y42_5`,editInput:`_editInput_13y42_13`};function he({column:e,row:t,onCellClick:n,isEditing:r=!1,onStartEdit:i,onCommitEdit:a,onCancelEdit:o}){let s=e.accessor(t),[c,u]=(0,l.useState)(``),d=(0,l.useRef)(!1),f=(0,l.useRef)(!1);(0,l.useEffect)(()=>{r&&(u(s===null?``:String(s)),d.current=!1,f.current=!1)},[r,s]);let p=()=>{if(f.current||d.current)return;d.current=!0;let n=e.filterType===`number`||typeof s==`number`?parseFloat(c)||0:c;a?.(n,t,e),o?.()},m=()=>{f.current=!0,o?.()};if(r){let t=e.filterType===`number`||typeof s==`number`;return(0,A.jsx)(`td`,{children:(0,A.jsx)(`input`,{className:me.editInput,type:t?`number`:`text`,value:c,"aria-label":`Edit ${e.header}`,autoFocus:!0,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`||e.key===`Tab`?(e.preventDefault(),p()):e.key===`Escape`&&m()},onBlur:p})})}let h=!!n,g=!!e.editable&&!!i,_=e.cell?e.cell(s,t):String(s??``);return(0,A.jsx)(`td`,{className:g?me.editable:void 0,onClick:h?r=>{r.stopPropagation(),n(s,t,e,r)}:void 0,onDoubleClick:g?i:void 0,style:h?{cursor:`pointer`}:void 0,children:_})}var ge={selectionCell:`_selectionCell_1237t_1`,checkbox:`_checkbox_1237t_12`},_e={width:40,minWidth:40,maxWidth:40};function ve({checked:e,indeterminate:t,onChange:n,ariaLabel:r,isHeader:i=!1}){let a=l.default.useRef(null);return l.default.useEffect(()=>{a.current&&(a.current.indeterminate=!!t)},[t]),(0,A.jsx)(i?`th`:`td`,{className:ge.selectionCell,role:i?`columnheader`:`gridcell`,style:_e,children:(0,A.jsx)(`input`,{ref:a,type:`checkbox`,className:ge.checkbox,checked:e,onChange:n,"aria-label":r})})}function ye({row:e,rowIndex:t,rowId:n,columns:r,visibleColumnIds:i,selectionMode:a=`none`,isSelected:o=!1,onToggleSelect:s,onRowClick:c,onCellClick:l,editingColumnId:u,onStartEdit:d,onCommitEdit:f,onCancelEdit:p}){let m=!!c,h=u!==void 0;return(0,A.jsxs)(`tr`,{"aria-selected":a===`none`?void 0:o,onClick:m?n=>{h||c(e,t,n)}:void 0,onKeyDown:m?n=>{h||(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),c(e,t,n))}:void 0,role:m?`button`:void 0,tabIndex:m?0:void 0,style:m?{cursor:`pointer`}:void 0,children:[a!==`none`&&(0,A.jsx)(ve,{checked:o,onChange:()=>s?.(n),ariaLabel:o?`Deselect row`:`Select row`}),r.filter(e=>i.has(e.id)).map(t=>(0,A.jsx)(he,{column:t,row:e,onCellClick:l,isEditing:u===t.id,onStartEdit:d?()=>d(n,t.id):void 0,onCommitEdit:f,onCancelEdit:p},t.id))]})}var B={wrapper:`_wrapper_1x1x3_16`,tableContainer:`_tableContainer_1x1x3_26`,loadingOverlay:`_loadingOverlay_1x1x3_32`,spinner:`_spinner_1x1x3_42`,spin:`_spin_1x1x3_42`,table:`_table_1x1x3_26`,vsOuter:`_vsOuter_1x1x3_96`,vsBody:`_vsBody_1x1x3_101`,emptyState:`_emptyState_1x1x3_105`,toolbar:`_toolbar_1x1x3_112`,pagination:`_pagination_1x1x3_122`,paginationControls:`_paginationControls_1x1x3_132`,paginationBtn:`_paginationBtn_1x1x3_138`,paginationInfo:`_paginationInfo_1x1x3_166`,pageSizeLabel:`_pageSizeLabel_1x1x3_173`,pageSizeSelect:`_pageSizeSelect_1x1x3_181`},V=[10,20,50,100];function be({pageIndex:e,pageCount:t,pageSize:n,totalRows:r,onPageChange:i,onPageSizeChange:a}){let o=r===0?0:e*n+1,s=Math.min((e+1)*n,r);return(0,A.jsxs)(`div`,{className:B.pagination,role:`navigation`,"aria-label":`Pagination`,children:[(0,A.jsx)(`span`,{className:B.paginationInfo,children:r===0?`No results`:`${o}–${s} of ${r}`}),(0,A.jsxs)(`div`,{className:B.paginationControls,children:[(0,A.jsxs)(`label`,{className:B.pageSizeLabel,children:[`Rows`,(0,A.jsx)(`select`,{className:B.pageSizeSelect,value:n,onChange:e=>a(Number(e.target.value)),"aria-label":`Rows per page`,children:V.map(e=>(0,A.jsx)(`option`,{value:e,children:e},e))})]}),(0,A.jsx)(`button`,{className:B.paginationBtn,disabled:e===0,onClick:()=>i(0),"aria-label":`First page`,children:`«`}),(0,A.jsx)(`button`,{className:B.paginationBtn,disabled:e===0,onClick:()=>i(e-1),"aria-label":`Previous page`,children:`‹`}),(0,A.jsxs)(`span`,{className:B.paginationInfo,"aria-current":`page`,children:[e+1,` / `,t]}),(0,A.jsx)(`button`,{className:B.paginationBtn,disabled:e>=t-1,onClick:()=>i(e+1),"aria-label":`Next page`,children:`›`}),(0,A.jsx)(`button`,{className:B.paginationBtn,disabled:e>=t-1,onClick:()=>i(t-1),"aria-label":`Last page`,children:`»`})]})]})}var H={toolbar:`_toolbar_12gxd_1`,selectionCount:`_selectionCount_12gxd_12`,clearBtn:`_clearBtn_12gxd_21`,exportBtn:`_exportBtn_12gxd_36`};function xe({selectedRows:e,selectedIds:t,processedRows:n,gridState:r,clearSelection:i,enableCsvExport:a,onExport:o,toolbarActions:s,columns:c}){if(!(a||s||e.length>0))return null;let l={selectedRows:e,selectedIds:t,processedRows:n,gridState:r,clearSelection:i};return(0,A.jsxs)(`div`,{className:H.toolbar,role:`toolbar`,"aria-label":`Grid toolbar`,children:[e.length>0&&(0,A.jsxs)(`span`,{className:H.selectionCount,"aria-live":`polite`,"aria-atomic":`true`,children:[e.length,` row`,e.length===1?``:`s`,` selected`,(0,A.jsx)(`button`,{type:`button`,className:H.clearBtn,onClick:i,"aria-label":`Clear selection`,children:`×`})]}),s?.(l),a&&(0,A.jsx)(`button`,{type:`button`,className:H.exportBtn,onClick:o,"aria-label":`Export to CSV`,children:`Export CSV`})]})}var U={menu:`_menu_1efgk_1`,heading:`_heading_1efgk_12`,list:`_list_1efgk_22`,item:`_item_1efgk_28`,label:`_label_1efgk_32`,checkbox:`_checkbox_1efgk_46`};function Se({columns:e,columnVisibility:t,anchorRect:n,onToggleColumn:r,onClose:i}){let a=(0,l.useRef)(null);(0,l.useEffect)(()=>{function e(e){a.current&&!a.current.contains(e.target)&&i()}function t(e){e.key===`Escape`&&i()}function n(){i()}return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),window.addEventListener(`scroll`,n,{capture:!0,passive:!0}),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t),window.removeEventListener(`scroll`,n,{capture:!0})}},[i]);let o=e.filter(e=>e.hideable!==!1);return(0,d.createPortal)((0,A.jsxs)(`div`,{ref:a,className:U.menu,style:{top:n.bottom+2,left:n.left},role:`dialog`,"aria-label":`Column visibility`,children:[(0,A.jsx)(`p`,{className:U.heading,children:`Columns`}),(0,A.jsx)(`ul`,{className:U.list,role:`list`,children:o.map(e=>{let n=t[e.id]!==!1&&!(e.defaultHidden&&t[e.id]===void 0);return(0,A.jsx)(`li`,{className:U.item,children:(0,A.jsxs)(`label`,{className:U.label,children:[(0,A.jsx)(`input`,{type:`checkbox`,className:U.checkbox,checked:n,onChange:()=>r(e.id,!n)}),e.header]})},e.id)})})]}),document.body)}var Ce=f.z.object({sorts:f.z.array(f.z.object({columnId:f.z.string(),direction:f.z.enum([`asc`,`desc`])})).optional(),filters:f.z.array(f.z.object({columnId:f.z.string(),operator:f.z.enum([`eq`,`contains`,`gt`,`gte`,`lt`,`lte`,`between`,`in`]),value:f.z.union([f.z.string(),f.z.number(),f.z.array(f.z.union([f.z.string(),f.z.number()]))])})).optional(),grouping:f.z.array(f.z.string()).optional(),reset:f.z.boolean().optional(),explanation:f.z.string()});async function W(e,t,n,r,i){let a=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({prompt:t,columns:n.map(e=>({id:e.id,header:e.header,filterType:e.filterType})),currentState:r}),signal:i});if(!a.ok){let e=await a.text().catch(()=>``),t=e;try{t=JSON.parse(e).error??e}catch{}throw Error(t||`Request failed: ${a.status}`)}let o=await a.json();return Ce.parse(o)}var G={aiBar:`_aiBar_13i5a_1`,form:`_form_13i5a_10`,icon:`_icon_13i5a_16`,input:`_input_13i5a_24`,submitBtn:`_submitBtn_13i5a_54`,spinner:`_spinner_13i5a_82`,spin:`_spin_13i5a_82`,resultRow:`_resultRow_13i5a_96`,explanation:`_explanation_13i5a_103`,clearBtn:`_clearBtn_13i5a_111`,error:`_error_13i5a_130`};function we({endpoint:e,placeholder:t,columns:n,gridState:r,onCommand:i,onReset:a}){let[o,s]=(0,l.useState)(``),[c,u]=(0,l.useState)(`idle`),[d,f]=(0,l.useState)(null),[p,m]=(0,l.useState)(null),h=(0,l.useRef)(null),g=(0,l.useCallback)(async t=>{t.preventDefault();let a=o.trim();if(!a||c===`loading`)return;h.current?.abort();let l=new AbortController;h.current=l,u(`loading`),f(null),m(null);try{let t=await W(e,a,n,r,l.signal);i(t),f(t.explanation),u(`idle`),s(``)}catch(e){if(e.name===`AbortError`)return;m(e.message??`Request failed`),u(`error`)}},[o,c,e,n,r,i]);return(0,A.jsxs)(`div`,{className:G.aiBar,children:[(0,A.jsxs)(`form`,{className:G.form,onSubmit:g,role:`search`,children:[(0,A.jsx)(`span`,{className:G.icon,"aria-hidden":`true`,children:`✦`}),(0,A.jsx)(`input`,{className:G.input,type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:t??`Ask the grid… e.g. "show completed orders over £500"`,disabled:c===`loading`,"aria-label":`AI grid command`,autoComplete:`off`,spellCheck:!1}),(0,A.jsx)(`button`,{type:`submit`,className:G.submitBtn,disabled:!o.trim()||c===`loading`,"aria-label":`Send AI command`,children:c===`loading`?(0,A.jsx)(`span`,{className:G.spinner,"aria-hidden":`true`}):`Ask`})]}),d&&c===`idle`&&(0,A.jsxs)(`div`,{className:G.resultRow,children:[(0,A.jsx)(`p`,{className:G.explanation,role:`status`,"aria-live":`polite`,children:d}),(0,A.jsx)(`button`,{type:`button`,className:G.clearBtn,onClick:()=>{f(null),a()},children:`Clear`})]}),p&&c===`error`&&(0,A.jsx)(`p`,{className:G.error,role:`alert`,children:p})]})}function K({data:e,columns:t,getRowId:n,onRowClick:r,onCellClick:i,dataMode:a=`server`,pageSize:o=20,rowCount:s,loading:c,onStateChange:d,selectionMode:f=`none`,selectAllScope:p=`page`,onSelectionChange:m,enableCsvExport:_,csvFilename:v=`export.csv`,enableColumnResize:y,enableColumnVisibility:b,toolbarActions:x,emptyState:S,className:T,initialState:D,fetchFilterOptions:O,ai:k,height:j,estimatedRowHeight:M=41,onCellEdit:N},oe){let{state:P,dispatch:F}=g((0,l.useMemo)(()=>h(D,o),[])),[I,ce]=(0,l.useState)(null),[le,L]=(0,l.useState)(null),[ue,de]=(0,l.useState)(null),[R,z]=(0,l.useState)(null),fe=(0,l.useCallback)((e,t)=>{ce(n=>n===e?(L(null),null):(L(t),e))},[]),me=(0,l.useCallback)((e,t)=>{de(n=>n===e?(z(null),null):(z(t),e))},[]),he=(0,l.useCallback)((e,t)=>{F({type:`SET_COLUMN_VISIBILITY`,columnId:e,visible:t})},[F]),ge=(0,l.useCallback)((e,t,n)=>{let r=t===null||t===``||Array.isArray(t)&&t.length===0,i;if(r)i=P.filters.filter(t=>t.columnId!==e);else{let r={columnId:e,operator:n,value:t},a=P.filters.findIndex(t=>t.columnId===e);i=a>=0?P.filters.map((e,t)=>t===a?r:e):[...P.filters,r]}F({type:`SET_FILTER`,filters:i})},[P.filters,F]),_e=(0,l.useCallback)((e,t)=>{let n=P.sorts.find(t=>t.columnId===e),r;if(n)r=n.direction===`asc`?P.sorts.map(t=>t.columnId===e?{...t,direction:`desc`}:t):P.sorts.filter(t=>t.columnId!==e);else{let n={columnId:e,direction:`asc`};r=t?[...P.sorts,n]:[n]}F({type:`SET_SORT`,sorts:r})},[P.sorts,F]),V=(0,l.useMemo)(()=>{let e=new Set;for(let n of t){let t=P.columnVisibility[n.id]===!1,r=n.defaultHidden&&P.columnVisibility[n.id]===void 0;!t&&!r&&e.add(n.id)}return e},[t,P.columnVisibility]),H=(0,l.useMemo)(()=>{if(a!==`client`)return{};let n={};for(let r of t)if(r.filterType===`select`&&!r.filterOptions){let t=new Set;for(let n of e){let e=r.accessor(n);e!=null&&e!==``&&t.add(String(e))}n[r.id]=Array.from(t).sort()}return n},[e,t,a]),[U,Ce]=(0,l.useState)({});(0,l.useEffect)(()=>{if(!O)return;let e=t.filter(e=>e.filterable===!0&&e.filterType===`select`&&!e.filterOptions);for(let t of e)O(t.id).then(e=>{Ce(n=>({...n,[t.id]:e}))}).catch(()=>{})},[O]);let W=(0,l.useMemo)(()=>a===`server`?e:ee(e,t,P.filters),[e,t,P.filters,a]),G=(0,l.useMemo)(()=>a===`server`?e.map(e=>({_type:`data`,row:e})):te(e,t,P),[e,t,P,a]),K=(0,l.useMemo)(()=>a===`server`?G:ne(G,P.pagination),[G,P.pagination,a]),Te=a===`server`?s??0:G.length,Ee=C(Te,P.pagination.pageSize),De=(0,l.useMemo)(()=>w(P.selection,e,n),[P.selection,e,n]),Oe=(0,l.useMemo)(()=>f===`none`?[]:K.flatMap(e=>e._type===`data`?[n(e.row)]:[]),[K,f,n]),ke=(0,l.useMemo)(()=>f===`none`?[]:W.map(n),[W,f,n]),q=p===`filtered`?ke:Oe,J=q.length>0&&q.every(e=>P.selection.has(e)),Ae=!J&&q.some(e=>P.selection.has(e)),je=(0,l.useCallback)(()=>{F(J?{type:`CLEAR_SELECTION`}:{type:`SELECT_ALL`,rowIds:q})},[J,q,F]),Me=(0,l.useCallback)(e=>{F({type:`TOGGLE_SELECT`,rowId:e,mode:f===`single`?`single`:`multiple`})},[f,F]),Ne=(0,l.useRef)(m);(0,l.useEffect)(()=>{Ne.current=m},[m]);let Pe=(0,l.useRef)(``);(0,l.useEffect)(()=>{let t=JSON.stringify(Array.from(P.selection).sort());if(t!==Pe.current&&(Pe.current=t,Ne.current)){let t=w(P.selection,e,n);Ne.current(t,Array.from(P.selection))}},[P.selection,e,n]);let Fe=(0,l.useRef)(d);(0,l.useEffect)(()=>{Fe.current=d},[d]);let Ie=(0,l.useRef)(null);(0,l.useEffect)(()=>{if(a!==`server`)return;let e=JSON.stringify({sorts:P.sorts,filters:P.filters,grouping:P.grouping,pagination:P.pagination});e!==Ie.current&&(Ie.current=e,Fe.current?.(P))},[P,a]);let Le=(0,l.useCallback)(r=>{re(E(r?.selectedOnly?w(P.selection,e,n):W,t),v)},[P.selection,e,n,W,t,v]),Re=(0,l.useMemo)(()=>new Set(t.map(e=>e.id)),[t]),ze=(0,l.useCallback)(e=>{ie(e,Re).forEach(e=>F(e))},[Re,F]),[Y,Be]=(0,l.useState)(null),Ve=(0,l.useCallback)((e,t)=>{Be({rowId:e,columnId:t})},[]),He=(0,l.useCallback)((e,t,n)=>{N?.(e,t,n),Be(null)},[N]),Ue=(0,l.useCallback)(()=>{Be(null)},[]);(0,l.useImperativeHandle)(oe,()=>({getSelectedRows:()=>w(P.selection,e,n),getProcessedRows:()=>W,getGridState:()=>P,clearSelection:()=>F({type:`CLEAR_SELECTION`}),exportCsv:Le,setState:e=>{e.sorts&&F({type:`SET_SORT`,sorts:e.sorts}),e.filters&&F({type:`SET_FILTER`,filters:e.filters}),e.grouping&&F({type:`SET_GROUPING`,grouping:e.grouping})}}));let X=t.filter(e=>V.has(e.id)),Z=j!==void 0,We=(0,l.useRef)(null),Ge=(0,u.useVirtualizer)({count:Z?K.length:0,getScrollElement:()=>Z?We.current:null,estimateSize:()=>M,overscan:8}),Q=Ge.getVirtualItems(),$=(0,l.useMemo)(()=>{let e=[];f!==`none`&&e.push(40);for(let t of X)e.push(P.columnSizing[t.id]??t.width??150);return e},[X,f,P.columnSizing]),Ke=(0,l.useMemo)(()=>$.reduce((e,t)=>e+t,0),[$]),qe=(0,l.useMemo)(()=>({minWidth:Ke}),[Ke]),Je=(0,A.jsxs)(`colgroup`,{children:[f!==`none`&&(0,A.jsx)(`col`,{style:{width:40,minWidth:40,maxWidth:40}}),X.map((e,t)=>{let n=P.columnSizing[e.id]??e.width??150;return(0,A.jsx)(`col`,{style:t===X.length-1?void 0:{width:n}},e.id)})]}),Ye=(0,A.jsxs)(`tr`,{children:[f!==`none`&&(0,A.jsx)(ve,{checked:J,indeterminate:Ae,onChange:je,ariaLabel:J?`Deselect all`:`Select all`,isHeader:!0}),X.map(e=>{let n=P.sorts.findIndex(t=>t.columnId===e.id),r=ue===e.id,i=P.filters.some(t=>t.columnId===e.id),a=I===e.id;return(0,A.jsx)(ae,{column:e,sortEntry:n>=0?P.sorts[n]:void 0,sortIndex:n,totalSorts:P.sorts.length,width:P.columnSizing[e.id],onSort:_e,enableResize:y,onResize:(e,t)=>F({type:`SET_COLUMN_SIZE`,columnId:e,width:t}),enableMenu:b,menuOpen:r,onToggleMenu:me,filterActive:i,filterPanelOpen:a,onToggleFilter:e.filterable===!0?fe:void 0,columnMenuSlot:b&&r&&R?(0,A.jsx)(Se,{columns:t,columnVisibility:P.columnVisibility,anchorRect:R,onToggleColumn:he,onClose:()=>de(null)}):null},e.id)})]}),Xe=()=>{if(K.length===0)return(0,A.jsx)(`tr`,{children:(0,A.jsx)(`td`,{colSpan:X.length+(f===`none`?0:1),children:(0,A.jsx)(`div`,{className:B.emptyState,children:S??`No data`})})});if(!Z)return K.map((e,a)=>{if(e._type===`group`)return(0,A.jsx)(pe,{row:e,columns:t,visibleColumnIds:V,onToggle:()=>F({type:`TOGGLE_EXPAND`,groupId:e.id})},e.id);let o=n(e.row);return(0,A.jsx)(ye,{row:e.row,rowIndex:a,rowId:o,columns:t,visibleColumnIds:V,selectionMode:f,isSelected:P.selection.has(o),onToggleSelect:Me,onRowClick:r,onCellClick:i,editingColumnId:Y?.rowId===o?Y.columnId:void 0,onStartEdit:N?Ve:void 0,onCommitEdit:N?He:void 0,onCancelEdit:Ue},o)});let e=Q.length>0?Q[0]?.start??0:0,a=Q.length>0?Ge.getTotalSize()-(Q[Q.length-1]?.end??0):0;return(0,A.jsxs)(A.Fragment,{children:[e>0&&(0,A.jsx)(`tr`,{children:(0,A.jsx)(`td`,{style:{height:e,padding:0,border:`none`},colSpan:$.length})}),Q.map(e=>{let a=K[e.index];if(a._type===`group`)return(0,A.jsx)(pe,{row:a,columns:t,visibleColumnIds:V,onToggle:()=>F({type:`TOGGLE_EXPAND`,groupId:a.id})},a.id);let o=n(a.row);return(0,A.jsx)(ye,{row:a.row,rowIndex:e.index,rowId:o,columns:t,visibleColumnIds:V,selectionMode:f,isSelected:P.selection.has(o),onToggleSelect:Me,onRowClick:r,onCellClick:i,editingColumnId:Y?.rowId===o?Y.columnId:void 0,onStartEdit:N?Ve:void 0,onCommitEdit:N?He:void 0,onCancelEdit:Ue},o)}),a>0&&(0,A.jsx)(`tr`,{children:(0,A.jsx)(`td`,{style:{height:a,padding:0,border:`none`},colSpan:$.length})})]})},Ze=typeof j==`number`?`${j}px`:j;return(0,A.jsxs)(`div`,{className:[B.wrapper,T].filter(Boolean).join(` `),children:[(0,A.jsx)(xe,{selectedRows:De,selectedIds:Array.from(P.selection),processedRows:W,gridState:P,clearSelection:()=>F({type:`CLEAR_SELECTION`}),enableCsvExport:_,onExport:()=>Le(),toolbarActions:x,columns:t}),k&&(0,A.jsx)(we,{endpoint:k.endpoint,placeholder:k.placeholder,columns:t,gridState:P,onCommand:ze,onReset:()=>F({type:`RESET`})}),c&&(0,A.jsx)(`div`,{className:B.loadingOverlay,role:`status`,"aria-label":`Loading`,children:(0,A.jsx)(`div`,{className:B.spinner})}),Z?(0,A.jsxs)(`div`,{className:B.vsOuter,children:[(0,A.jsxs)(`table`,{className:B.table,style:qe,children:[Je,(0,A.jsx)(`thead`,{children:Ye})]}),(0,A.jsx)(`div`,{ref:We,className:B.vsBody,style:{height:Ze,overflowY:`auto`,overflowX:`clip`,minWidth:Ke},children:(0,A.jsxs)(`table`,{className:B.table,role:`grid`,style:qe,children:[Je,(0,A.jsx)(`tbody`,{children:Xe()})]})})]}):(0,A.jsx)(`div`,{className:B.tableContainer,children:(0,A.jsxs)(`table`,{className:B.table,role:`grid`,style:qe,children:[Je,(0,A.jsx)(`thead`,{children:Ye}),(0,A.jsx)(`tbody`,{children:Xe()})]})}),I!==null&&le!==null&&(()=>{let e=t.find(e=>e.id===I);return e?(0,A.jsx)(se,{column:e,anchorRect:le,filterEntry:P.filters.find(e=>e.columnId===I),filterOptions:H[I]??U[I],onChange:(e,t)=>ge(I,e,t),onClose:()=>{ce(null),L(null)}}):null})(),(0,A.jsx)(be,{pageIndex:P.pagination.pageIndex,pageCount:Ee,pageSize:P.pagination.pageSize,totalRows:Te,onPageChange:e=>F({type:`SET_PAGE`,pageIndex:e}),onPageSizeChange:e=>F({type:`SET_PAGE_SIZE`,pageSize:e})})]})}var Te=(0,l.forwardRef)(K);exports.DataGrid=Te;
8
+ <%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===C&&(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`),b=Symbol.for(`react.consumer`),x=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),ee=Symbol.for(`react.suspense`),te=Symbol.for(`react.suspense_list`),ne=Symbol.for(`react.memo`),C=Symbol.for(`react.lazy`),w=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)}})()})),A=o(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=O():t.exports=k()}))(),j={asc:`ascending`,desc:`descending`};function M({filled:e}){return(0,A.jsx)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,width:`10`,height:`10`,"aria-hidden":`true`,children:e?(0,A.jsx)(`path`,{d:`M6 10.5A0.5 0.5 0 0 1 6.5 10h3a0.5 0.5 0 0 1 0 1h-3A0.5 0.5 0 0 1 6 10.5M4 7.5A0.5 0.5 0 0 1 4.5 7h7a0.5 0.5 0 0 1 0 1h-7A0.5 0.5 0 0 1 4 7.5M2 4.5A0.5 0.5 0 0 1 2.5 4h11a0.5 0.5 0 0 1 0 1h-11A0.5 0.5 0 0 1 2 4.5`,fill:`currentColor`}):(0,A.jsx)(`path`,{d:`M6 10.5A0.5 0.5 0 0 1 6.5 10h3a0.5 0.5 0 0 1 0 1h-3A0.5 0.5 0 0 1 6 10.5M4 7.5A0.5 0.5 0 0 1 4.5 7h7a0.5 0.5 0 0 1 0 1h-7A0.5 0.5 0 0 1 4 7.5M2 4.5A0.5 0.5 0 0 1 2.5 4h11a0.5 0.5 0 0 1 0 1h-11A0.5 0.5 0 0 1 2 4.5`,stroke:`currentColor`,strokeWidth:`1`,fill:`none`})})}function ae({column:e,sortEntry:t,sortIndex:n,totalSorts:r,width:i,onSort:a,enableResize:o,onResize:s,enableMenu:c,menuOpen:l,onToggleMenu:u,columnMenuSlot:d,filterActive:f=!1,filterPanelOpen:p=!1,onToggleFilter:m}){let h=e.sortable!==!1&&!!a,g=o&&e.resizable!==!1&&!!s,_=t?.direction;function v(t){h&&a(e.id,t.shiftKey)}function y(t){h&&(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),a(e.id,t.shiftKey))}function b(t){t.preventDefault(),t.stopPropagation();let n=t.clientX,r=t.target.closest(`th`).getBoundingClientRect().width;function i(t){let i=t.clientX-n,a=Math.max(e.minWidth??50,r+i);s(e.id,Math.round(a))}function a(){document.removeEventListener(`mousemove`,i),document.removeEventListener(`mouseup`,a)}document.addEventListener(`mousemove`,i),document.addEventListener(`mouseup`,a)}let x=_?j[_]:h?`none`:void 0;return(0,A.jsxs)(`th`,{style:{width:i??e.width,position:`relative`},"aria-sort":x,onClick:h?v:void 0,onKeyDown:h?y:void 0,tabIndex:h?0:void 0,role:h?`columnheader`:void 0,className:[D.th,h&&D.sortable].filter(Boolean).join(` `),children:[(0,A.jsxs)(`span`,{className:D.content,children:[(0,A.jsx)(`span`,{className:D.label,children:e.header}),h&&(0,A.jsxs)(`span`,{className:D.indicators,"aria-hidden":`true`,children:[_===`asc`&&(0,A.jsx)(`span`,{className:D.arrow,children:`↑`}),_===`desc`&&(0,A.jsx)(`span`,{className:D.arrow,children:`↓`}),!_&&(0,A.jsx)(`span`,{className:D.arrowIdle,children:`↕`}),r>1&&n>=0&&(0,A.jsx)(`span`,{className:D.sortIndex,children:n+1})]}),(0,A.jsxs)(`span`,{className:[D.headerActions,m&&D.headerActionsVisible].filter(Boolean).join(` `),children:[m&&(0,A.jsx)(`button`,{type:`button`,className:[D.filterBtn,(f||p)&&D.filterBtnActive].filter(Boolean).join(` `),onClick:t=>{t.stopPropagation(),m(e.id,t.currentTarget.getBoundingClientRect())},"aria-label":`Filter ${e.header}`,"aria-haspopup":`dialog`,"aria-expanded":p,tabIndex:-1,children:(0,A.jsx)(M,{filled:f})}),c&&e.hideable!==!1&&(0,A.jsx)(`button`,{type:`button`,className:[D.menuBtn,l&&D.menuBtnOpen].filter(Boolean).join(` `),onClick:t=>{t.stopPropagation(),u?.(e.id,t.currentTarget.getBoundingClientRect())},"aria-label":`Column options for ${e.header}`,"aria-expanded":l,tabIndex:-1,children:`⋮`})]})]}),g&&(0,A.jsx)(`span`,{className:D.resizeHandle,onMouseDown:b,role:`separator`,"aria-label":`Resize ${e.header}`,"aria-orientation":`vertical`}),d]})}var N={panel:`_panel_l8qj5_1`,heading:`_heading_l8qj5_13`,section:`_section_l8qj5_24`,field:`_field_l8qj5_33`,label:`_label_l8qj5_39`,select:`_select_l8qj5_45`,input:`_input_l8qj5_65`,rangeRow:`_rangeRow_l8qj5_100`,rangeSep:`_rangeSep_l8qj5_110`,searchRow:`_searchRow_l8qj5_118`,searchIcon:`_searchIcon_l8qj5_124`,searchInput:`_searchInput_l8qj5_132`,checkboxList:`_checkboxList_l8qj5_163`,checkboxItem:`_checkboxItem_l8qj5_175`,checkbox:`_checkbox_l8qj5_163`,checkboxLabel:`_checkboxLabel_l8qj5_203`,noResults:`_noResults_l8qj5_211`,clearBtn:`_clearBtn_l8qj5_221`,srOnly:`_srOnly_l8qj5_248`},oe=[{value:`eq`,label:`Equals`,symbol:`=`},{value:`gt`,label:`Greater than`,symbol:`>`},{value:`gte`,label:`Greater than or equal`,symbol:`≥`},{value:`lt`,label:`Less than`,symbol:`<`},{value:`lte`,label:`Less than or equal`,symbol:`≤`},{value:`between`,label:`Between`,symbol:`↔`}];function P(e){return e===`gt`||e===`gte`||e===`lt`||e===`lte`||e===`between`?e:`eq`}function F(e){let t=e.trim();if(t===``)return null;let n=Number(t);return isNaN(n)?null:n}var I=300;function se({column:e,filterEntry:t,filterOptions:n,anchorRect:r,onClose:i,onChange:a}){let o=(0,l.useRef)(null),s=(0,l.useId)(),c=Math.min(r.left,typeof window<`u`?window.innerWidth-252:r.left),u={top:r.bottom+6,left:Math.max(4,c)};(0,l.useEffect)(()=>{function e(e){o.current&&!o.current.contains(e.target)&&i()}function t(e){e.key===`Escape`&&i()}function n(){i()}return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),window.addEventListener(`scroll`,n,{capture:!0,passive:!0}),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t),window.removeEventListener(`scroll`,n,{capture:!0})}},[i]);let f=e.filterType??`text`;return(0,d.createPortal)((0,A.jsxs)(`div`,{ref:o,className:N.panel,style:u,role:`dialog`,"aria-labelledby":s,"aria-modal":`false`,children:[(0,A.jsxs)(`p`,{id:s,className:N.heading,children:[`Filter `,e.header]}),f===`number`&&(0,A.jsx)(ce,{columnHeader:e.header,filterEntry:t,onChange:a}),(f===`text`||f===`date`)&&(0,A.jsx)(le,{columnHeader:e.header,filterType:f,filterEntry:t,onChange:a}),f===`select`&&(0,A.jsx)(ue,{columnHeader:e.header,options:n??e.filterOptions??[],filterEntry:t,onChange:a})]}),document.body)}function ce({columnHeader:e,filterEntry:t,onChange:n}){let r=(0,l.useId)(),i=(0,l.useId)(),[a,o]=(0,l.useState)(()=>P(t?.operator??null)),[s,c]=(0,l.useState)(()=>{let e=t?.value;return e==null?``:Array.isArray(e)?e[0]===void 0?``:String(e[0]):String(e)}),[u,d]=(0,l.useState)(()=>{let e=t?.value;return Array.isArray(e)?e[1]===void 0?``:String(e[1]):``}),f=(0,l.useRef)(null);function p(e,t,r){f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{if(e===`between`){let e=F(t),i=F(r);n(e!==null&&i!==null?[e,i]:null,`between`)}else n(F(t),e)},I)}let m=s!==``||u!==``;return(0,A.jsxs)(`div`,{className:N.section,children:[(0,A.jsxs)(`div`,{className:N.field,children:[(0,A.jsx)(`label`,{htmlFor:r,className:N.label,children:`Operator`}),(0,A.jsx)(`select`,{id:r,className:N.select,value:a,onChange:e=>{let t=e.target.value;o(t),p(t,s,u)},children:oe.map(e=>(0,A.jsxs)(`option`,{value:e.value,children:[e.symbol,` `,e.label]},e.value))})]}),a===`between`?(0,A.jsxs)(`div`,{className:N.field,children:[(0,A.jsx)(`label`,{className:N.label,children:`Range`}),(0,A.jsxs)(`div`,{className:N.rangeRow,children:[(0,A.jsx)(`input`,{type:`number`,className:N.input,value:s,placeholder:`Min`,onChange:e=>{c(e.target.value),p(a,e.target.value,u)},"aria-label":`Minimum value for ${e}`,style:{fontVariantNumeric:`tabular-nums`},autoFocus:!0}),(0,A.jsx)(`span`,{className:N.rangeSep,"aria-hidden":`true`,children:`–`}),(0,A.jsx)(`input`,{type:`number`,className:N.input,value:u,placeholder:`Max`,onChange:e=>{d(e.target.value),p(a,s,e.target.value)},"aria-label":`Maximum value for ${e}`,style:{fontVariantNumeric:`tabular-nums`}})]})]}):(0,A.jsxs)(`div`,{className:N.field,children:[(0,A.jsx)(`label`,{htmlFor:i,className:N.label,children:`Value`}),(0,A.jsx)(`input`,{id:i,type:`number`,className:N.input,value:s,placeholder:`Enter value…`,onChange:e=>{c(e.target.value),p(a,e.target.value,u)},"aria-label":`Filter value for ${e}`,style:{fontVariantNumeric:`tabular-nums`},autoFocus:!0})]}),m&&(0,A.jsx)(`button`,{type:`button`,className:N.clearBtn,onClick:()=>{f.current&&clearTimeout(f.current),c(``),d(``),n(null,a)},children:`Clear filter`})]})}function le({columnHeader:e,filterType:t,filterEntry:n,onChange:r}){let i=(0,l.useId)(),a=t===`date`?`eq`:`contains`,[o,s]=(0,l.useState)(n?.value==null?``:String(n.value)),c=(0,l.useRef)(null);function u(e){c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{r(e.trim()===``?null:e.trim(),a)},I)}return(0,A.jsxs)(`div`,{className:N.section,children:[(0,A.jsxs)(`div`,{className:N.field,children:[(0,A.jsx)(`label`,{htmlFor:i,className:N.label,children:t===`date`?`Date`:`Contains`}),(0,A.jsx)(`input`,{id:i,type:t===`date`?`date`:`text`,className:N.input,value:o,placeholder:t===`date`?void 0:`Filter…`,onChange:e=>{s(e.target.value),u(e.target.value)},"aria-label":`Filter ${e}`,autoFocus:!0})]}),o!==``&&(0,A.jsx)(`button`,{type:`button`,className:N.clearBtn,onClick:()=>{c.current&&clearTimeout(c.current),s(``),r(null,a)},children:`Clear filter`})]})}function L(e){if(!e)return new Set;let{value:t}=e;return Array.isArray(t)?new Set(t.map(String)):t!=null&&String(t)!==``?new Set([String(t)]):new Set}function ue({columnHeader:e,options:t,filterEntry:n,onChange:r}){let i=(0,l.useId)(),[a,o]=(0,l.useState)(``),[s,c]=(0,l.useState)(()=>L(n)),u=t.filter(e=>e.toLowerCase().includes(a.toLowerCase())),d=u.length>0&&u.every(e=>s.has(e)),f=u.some(e=>s.has(e)),p=(0,l.useRef)(null);(0,l.useEffect)(()=>{p.current&&(p.current.indeterminate=f&&!d)},[f,d]);let m=(0,l.useCallback)(e=>{c(e),r(e.size>0?Array.from(e):null,`in`)},[r]);function h(){if(d){let e=new Set(s);u.forEach(t=>e.delete(t)),m(e)}else{let e=new Set(s);u.forEach(t=>e.add(t)),m(e)}}function g(e){let t=new Set(s);t.has(e)?t.delete(e):t.add(e),m(t)}return(0,A.jsxs)(`div`,{className:N.section,children:[(0,A.jsxs)(`div`,{className:N.searchRow,children:[(0,A.jsxs)(`label`,{htmlFor:i,className:N.srOnly,children:[`Search `,e,` options`]}),(0,A.jsx)(`span`,{className:N.searchIcon,"aria-hidden":`true`,children:(0,A.jsx)(de,{})}),(0,A.jsx)(`input`,{id:i,type:`search`,className:N.searchInput,value:a,placeholder:`Search…`,onChange:e=>o(e.target.value),autoFocus:!0})]}),(0,A.jsxs)(`div`,{className:N.checkboxList,role:`group`,"aria-label":`Filter ${e} by value`,children:[t.length>0&&(0,A.jsxs)(`label`,{className:N.checkboxItem,children:[(0,A.jsx)(`input`,{ref:p,type:`checkbox`,className:N.checkbox,checked:d,onChange:h,"aria-label":`Select all`}),(0,A.jsx)(`span`,{className:N.checkboxLabel,children:`(Select All)`})]}),u.length===0&&(0,A.jsx)(`p`,{className:N.noResults,children:`No matching options`}),u.map(e=>(0,A.jsxs)(`label`,{className:N.checkboxItem,children:[(0,A.jsx)(`input`,{type:`checkbox`,className:N.checkbox,checked:s.has(e),onChange:()=>g(e),"aria-label":e}),(0,A.jsx)(`span`,{className:N.checkboxLabel,children:e})]},e))]}),s.size>0&&(0,A.jsx)(`button`,{type:`button`,className:N.clearBtn,onClick:()=>m(new Set),children:`Clear filter`})]})}function de(){return(0,A.jsxs)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 12 12`,"aria-hidden":`true`,style:{display:`block`},children:[(0,A.jsx)(`circle`,{cx:`5`,cy:`5`,r:`3.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.3`}),(0,A.jsx)(`line`,{x1:`7.8`,y1:`7.8`,x2:`11`,y2:`11`,stroke:`currentColor`,strokeWidth:`1.3`,strokeLinecap:`round`})]})}var R={groupRow:`_groupRow_16hmo_1`,labelCell:`_labelCell_16hmo_10`,toggleBtn:`_toggleBtn_16hmo_18`,colHeader:`_colHeader_16hmo_45`,groupValue:`_groupValue_16hmo_53`,childCount:`_childCount_16hmo_58`,aggregateCell:`_aggregateCell_16hmo_63`};function z(e){return e===null?`(empty)`:e instanceof Date?e.toLocaleDateString():String(e)}function fe(e,t){return e===null?null:t===`avg`?e.toFixed(2):t===`count`?String(e):e.toLocaleString()}function pe({row:e,columns:t,visibleColumnIds:n,onToggle:r}){let i=t.filter(e=>n.has(e.id)),a=t.find(t=>t.id===e.columnId);return(0,A.jsx)(`tr`,{className:R.groupRow,"aria-level":e.depth+1,children:i.map((t,n)=>{if(n===0)return(0,A.jsxs)(`td`,{className:R.labelCell,style:{paddingLeft:`${e.depth*1.5+.5}rem`},colSpan:1,children:[(0,A.jsx)(`button`,{className:R.toggleBtn,onClick:r,"aria-expanded":e.isExpanded,"aria-label":`${e.isExpanded?`Collapse`:`Expand`} group ${z(e.value)}`,type:`button`,children:e.isExpanded?`▼`:`▶`}),(0,A.jsxs)(`span`,{className:R.colHeader,children:[a?.header??e.columnId,`:`]}),(0,A.jsx)(`span`,{className:R.groupValue,children:z(e.value)}),(0,A.jsxs)(`span`,{className:R.childCount,children:[`(`,e.childCount,`)`]})]},t.id);let i=e.aggregates[t.id],o=t.aggregation;return(0,A.jsx)(`td`,{className:R.aggregateCell,children:o&&i!==void 0?fe(i,o):null},t.id)})})}var me={td:`_td_13y42_1`,editable:`_editable_13y42_5`,editInput:`_editInput_13y42_13`};function he({column:e,row:t,onCellClick:n,isEditing:r=!1,onStartEdit:i,onCommitEdit:a,onCancelEdit:o}){let s=e.accessor(t),[c,u]=(0,l.useState)(``),d=(0,l.useRef)(!1),f=(0,l.useRef)(!1);(0,l.useEffect)(()=>{r&&(u(s===null?``:String(s)),d.current=!1,f.current=!1)},[r,s]);let p=()=>{if(f.current||d.current)return;d.current=!0;let n=e.filterType===`number`||typeof s==`number`?parseFloat(c)||0:c;a?.(n,t,e),o?.()},m=()=>{f.current=!0,o?.()};if(r){let t=e.filterType===`number`||typeof s==`number`;return(0,A.jsx)(`td`,{children:(0,A.jsx)(`input`,{className:me.editInput,type:t?`number`:`text`,value:c,"aria-label":`Edit ${e.header}`,autoFocus:!0,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`||e.key===`Tab`?(e.preventDefault(),p()):e.key===`Escape`&&m()},onBlur:p})})}let h=!!n,g=!!e.editable&&!!i,_=e.cell?e.cell(s,t):String(s??``);return(0,A.jsx)(`td`,{className:g?me.editable:void 0,onClick:h?r=>{r.stopPropagation(),n(s,t,e,r)}:void 0,onDoubleClick:g?i:void 0,style:h?{cursor:`pointer`}:void 0,children:_})}var ge={selectionCell:`_selectionCell_1237t_1`,checkbox:`_checkbox_1237t_12`},_e={width:40,minWidth:40,maxWidth:40};function ve({checked:e,indeterminate:t,onChange:n,ariaLabel:r,isHeader:i=!1}){let a=l.default.useRef(null);return l.default.useEffect(()=>{a.current&&(a.current.indeterminate=!!t)},[t]),(0,A.jsx)(i?`th`:`td`,{className:ge.selectionCell,role:i?`columnheader`:`gridcell`,style:_e,children:(0,A.jsx)(`input`,{ref:a,type:`checkbox`,className:ge.checkbox,checked:e,onChange:n,"aria-label":r})})}function ye({row:e,rowIndex:t,rowId:n,columns:r,visibleColumnIds:i,selectionMode:a=`none`,isSelected:o=!1,onToggleSelect:s,onRowClick:c,onCellClick:l,editingColumnId:u,onStartEdit:d,onCommitEdit:f,onCancelEdit:p}){let m=!!c,h=u!==void 0;return(0,A.jsxs)(`tr`,{"aria-selected":a===`none`?void 0:o,onClick:m?n=>{h||c(e,t,n)}:void 0,onKeyDown:m?n=>{h||(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),c(e,t,n))}:void 0,role:m?`button`:void 0,tabIndex:m?0:void 0,style:m?{cursor:`pointer`}:void 0,children:[a!==`none`&&(0,A.jsx)(ve,{checked:o,onChange:()=>s?.(n),ariaLabel:o?`Deselect row`:`Select row`}),r.filter(e=>i.has(e.id)).map(t=>(0,A.jsx)(he,{column:t,row:e,onCellClick:l,isEditing:u===t.id,onStartEdit:d?()=>d(n,t.id):void 0,onCommitEdit:f,onCancelEdit:p},t.id))]})}var B={wrapper:`_wrapper_1x1x3_16`,tableContainer:`_tableContainer_1x1x3_26`,loadingOverlay:`_loadingOverlay_1x1x3_32`,spinner:`_spinner_1x1x3_42`,spin:`_spin_1x1x3_42`,table:`_table_1x1x3_26`,vsOuter:`_vsOuter_1x1x3_96`,vsBody:`_vsBody_1x1x3_101`,emptyState:`_emptyState_1x1x3_105`,toolbar:`_toolbar_1x1x3_112`,pagination:`_pagination_1x1x3_122`,paginationControls:`_paginationControls_1x1x3_132`,paginationBtn:`_paginationBtn_1x1x3_138`,paginationInfo:`_paginationInfo_1x1x3_166`,pageSizeLabel:`_pageSizeLabel_1x1x3_173`,pageSizeSelect:`_pageSizeSelect_1x1x3_181`},V=[10,20,50,100];function be({pageIndex:e,pageCount:t,pageSize:n,totalRows:r,onPageChange:i,onPageSizeChange:a}){let o=r===0?0:e*n+1,s=Math.min((e+1)*n,r);return(0,A.jsxs)(`div`,{className:B.pagination,role:`navigation`,"aria-label":`Pagination`,children:[(0,A.jsx)(`span`,{className:B.paginationInfo,children:r===0?`No results`:`${o}–${s} of ${r}`}),(0,A.jsxs)(`div`,{className:B.paginationControls,children:[(0,A.jsxs)(`label`,{className:B.pageSizeLabel,children:[`Rows`,(0,A.jsx)(`select`,{className:B.pageSizeSelect,value:n,onChange:e=>a(Number(e.target.value)),"aria-label":`Rows per page`,children:V.map(e=>(0,A.jsx)(`option`,{value:e,children:e},e))})]}),(0,A.jsx)(`button`,{className:B.paginationBtn,disabled:e===0,onClick:()=>i(0),"aria-label":`First page`,children:`«`}),(0,A.jsx)(`button`,{className:B.paginationBtn,disabled:e===0,onClick:()=>i(e-1),"aria-label":`Previous page`,children:`‹`}),(0,A.jsxs)(`span`,{className:B.paginationInfo,"aria-current":`page`,children:[e+1,` / `,t]}),(0,A.jsx)(`button`,{className:B.paginationBtn,disabled:e>=t-1,onClick:()=>i(e+1),"aria-label":`Next page`,children:`›`}),(0,A.jsx)(`button`,{className:B.paginationBtn,disabled:e>=t-1,onClick:()=>i(t-1),"aria-label":`Last page`,children:`»`})]})]})}var H={toolbar:`_toolbar_12gxd_1`,selectionCount:`_selectionCount_12gxd_12`,clearBtn:`_clearBtn_12gxd_21`,exportBtn:`_exportBtn_12gxd_36`};function xe({selectedRows:e,selectedIds:t,processedRows:n,gridState:r,clearSelection:i,enableCsvExport:a,onExport:o,toolbarActions:s,columns:c}){if(!(a||s||e.length>0))return null;let l={selectedRows:e,selectedIds:t,processedRows:n,gridState:r,clearSelection:i};return(0,A.jsxs)(`div`,{className:H.toolbar,role:`toolbar`,"aria-label":`Grid toolbar`,children:[e.length>0&&(0,A.jsxs)(`span`,{className:H.selectionCount,"aria-live":`polite`,"aria-atomic":`true`,children:[e.length,` row`,e.length===1?``:`s`,` selected`,(0,A.jsx)(`button`,{type:`button`,className:H.clearBtn,onClick:i,"aria-label":`Clear selection`,children:`×`})]}),s?.(l),a&&(0,A.jsx)(`button`,{type:`button`,className:H.exportBtn,onClick:o,"aria-label":`Export to CSV`,children:`Export CSV`})]})}var U={menu:`_menu_1efgk_1`,heading:`_heading_1efgk_12`,list:`_list_1efgk_22`,item:`_item_1efgk_28`,label:`_label_1efgk_32`,checkbox:`_checkbox_1efgk_46`};function Se({columns:e,columnVisibility:t,anchorRect:n,onToggleColumn:r,onClose:i}){let a=(0,l.useRef)(null);(0,l.useEffect)(()=>{function e(e){a.current&&!a.current.contains(e.target)&&i()}function t(e){e.key===`Escape`&&i()}function n(){i()}return document.addEventListener(`pointerdown`,e),document.addEventListener(`keydown`,t),window.addEventListener(`scroll`,n,{capture:!0,passive:!0}),()=>{document.removeEventListener(`pointerdown`,e),document.removeEventListener(`keydown`,t),window.removeEventListener(`scroll`,n,{capture:!0})}},[i]);let o=e.filter(e=>e.hideable!==!1);return(0,d.createPortal)((0,A.jsxs)(`div`,{ref:a,className:U.menu,style:{top:n.bottom+2,left:n.left},role:`dialog`,"aria-label":`Column visibility`,children:[(0,A.jsx)(`p`,{className:U.heading,children:`Columns`}),(0,A.jsx)(`ul`,{className:U.list,role:`list`,children:o.map(e=>{let n=t[e.id]!==!1&&!(e.defaultHidden&&t[e.id]===void 0);return(0,A.jsx)(`li`,{className:U.item,children:(0,A.jsxs)(`label`,{className:U.label,children:[(0,A.jsx)(`input`,{type:`checkbox`,className:U.checkbox,checked:n,onChange:()=>r(e.id,!n)}),e.header]})},e.id)})})]}),document.body)}var Ce=f.z.object({sorts:f.z.array(f.z.object({columnId:f.z.string(),direction:f.z.enum([`asc`,`desc`])})).optional(),filters:f.z.array(f.z.object({columnId:f.z.string(),operator:f.z.enum([`eq`,`contains`,`gt`,`gte`,`lt`,`lte`,`between`,`in`]),value:f.z.union([f.z.string(),f.z.number(),f.z.array(f.z.union([f.z.string(),f.z.number()]))])})).optional(),grouping:f.z.array(f.z.string()).optional(),reset:f.z.boolean().optional(),explanation:f.z.string()});async function W(e,t,n,r,i){let a=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({prompt:t,columns:n.map(e=>({id:e.id,header:e.header,filterType:e.filterType})),currentState:r}),signal:i});if(!a.ok){let e=await a.text().catch(()=>``),t=e;try{t=JSON.parse(e).error??e}catch{}throw Error(t||`Request failed: ${a.status}`)}let o=await a.json();return Ce.parse(o)}var G={aiBar:`_aiBar_13i5a_1`,form:`_form_13i5a_10`,icon:`_icon_13i5a_16`,input:`_input_13i5a_24`,submitBtn:`_submitBtn_13i5a_54`,spinner:`_spinner_13i5a_82`,spin:`_spin_13i5a_82`,resultRow:`_resultRow_13i5a_96`,explanation:`_explanation_13i5a_103`,clearBtn:`_clearBtn_13i5a_111`,error:`_error_13i5a_130`};function we({endpoint:e,placeholder:t,columns:n,gridState:r,onCommand:i,onReset:a}){let[o,s]=(0,l.useState)(``),[c,u]=(0,l.useState)(`idle`),[d,f]=(0,l.useState)(null),[p,m]=(0,l.useState)(null),h=(0,l.useRef)(null),g=(0,l.useCallback)(async t=>{t.preventDefault();let a=o.trim();if(!a||c===`loading`)return;h.current?.abort();let l=new AbortController;h.current=l,u(`loading`),f(null),m(null);try{let t=await W(e,a,n,r,l.signal);i(t),f(t.explanation),u(`idle`),s(``)}catch(e){if(e.name===`AbortError`)return;m(e.message??`Request failed`),u(`error`)}},[o,c,e,n,r,i]);return(0,A.jsxs)(`div`,{className:G.aiBar,children:[(0,A.jsxs)(`form`,{className:G.form,onSubmit:g,role:`search`,children:[(0,A.jsx)(`span`,{className:G.icon,"aria-hidden":`true`,children:`✦`}),(0,A.jsx)(`input`,{className:G.input,type:`text`,value:o,onChange:e=>s(e.target.value),placeholder:t??`Ask the grid… e.g. "show completed orders over £500"`,disabled:c===`loading`,"aria-label":`AI grid command`,autoComplete:`off`,spellCheck:!1}),(0,A.jsx)(`button`,{type:`submit`,className:G.submitBtn,disabled:!o.trim()||c===`loading`,"aria-label":`Send AI command`,children:c===`loading`?(0,A.jsx)(`span`,{className:G.spinner,"aria-hidden":`true`}):`Ask`})]}),d&&c===`idle`&&(0,A.jsxs)(`div`,{className:G.resultRow,children:[(0,A.jsx)(`p`,{className:G.explanation,role:`status`,"aria-live":`polite`,children:d}),(0,A.jsx)(`button`,{type:`button`,className:G.clearBtn,onClick:()=>{f(null),a()},children:`Clear`})]}),p&&c===`error`&&(0,A.jsx)(`p`,{className:G.error,role:`alert`,children:p})]})}function K({data:e,columns:t,getRowId:n,onRowClick:r,onCellClick:i,dataMode:a=`server`,pageSize:o=20,rowCount:s,loading:c,onStateChange:d,selectionMode:f=`none`,selectAllScope:p=`page`,onSelectionChange:m,enableCsvExport:_,csvFilename:v=`export.csv`,enableColumnResize:y,enableColumnVisibility:b,toolbarActions:x,emptyState:S,className:T,initialState:D,fetchFilterOptions:O,ai:k,height:j,estimatedRowHeight:M=41,onCellEdit:N},oe){let{state:P,dispatch:F}=g((0,l.useMemo)(()=>h(D,o),[])),[I,ce]=(0,l.useState)(null),[le,L]=(0,l.useState)(null),[ue,de]=(0,l.useState)(null),[R,z]=(0,l.useState)(null),fe=(0,l.useCallback)((e,t)=>{ce(n=>n===e?(L(null),null):(L(t),e))},[]),me=(0,l.useCallback)((e,t)=>{de(n=>n===e?(z(null),null):(z(t),e))},[]),he=(0,l.useCallback)((e,t)=>{F({type:`SET_COLUMN_VISIBILITY`,columnId:e,visible:t})},[F]),ge=(0,l.useCallback)((e,t,n)=>{let r=t===null||t===``||Array.isArray(t)&&t.length===0,i;if(r)i=P.filters.filter(t=>t.columnId!==e);else{let r={columnId:e,operator:n,value:t},a=P.filters.findIndex(t=>t.columnId===e);i=a>=0?P.filters.map((e,t)=>t===a?r:e):[...P.filters,r]}F({type:`SET_FILTER`,filters:i})},[P.filters,F]),_e=(0,l.useCallback)((e,t)=>{let n=P.sorts.find(t=>t.columnId===e),r;if(n)r=n.direction===`asc`?P.sorts.map(t=>t.columnId===e?{...t,direction:`desc`}:t):P.sorts.filter(t=>t.columnId!==e);else{let n={columnId:e,direction:`asc`};r=t?[...P.sorts,n]:[n]}F({type:`SET_SORT`,sorts:r})},[P.sorts,F]),V=(0,l.useMemo)(()=>{let e=new Set;for(let n of t){let t=P.columnVisibility[n.id]===!1,r=n.defaultHidden&&P.columnVisibility[n.id]===void 0;!t&&!r&&e.add(n.id)}return e},[t,P.columnVisibility]),H=(0,l.useMemo)(()=>{if(a!==`client`)return{};let n={};for(let r of t)if(r.filterType===`select`&&!r.filterOptions){let t=new Set;for(let n of e){let e=r.accessor(n);e!=null&&e!==``&&t.add(String(e))}n[r.id]=Array.from(t).sort()}return n},[e,t,a]),[U,Ce]=(0,l.useState)({});(0,l.useEffect)(()=>{if(!O)return;let e=t.filter(e=>e.filterable===!0&&e.filterType===`select`&&!e.filterOptions);for(let t of e)O(t.id).then(e=>{Ce(n=>({...n,[t.id]:e}))}).catch(()=>{})},[O]);let W=(0,l.useMemo)(()=>a===`server`?e:ee(e,t,P.filters),[e,t,P.filters,a]),G=(0,l.useMemo)(()=>a===`server`?e.map(e=>({_type:`data`,row:e})):te(e,t,P),[e,t,P,a]),K=(0,l.useMemo)(()=>a===`server`?G:ne(G,P.pagination),[G,P.pagination,a]),Te=a===`server`?s??0:G.length,Ee=C(Te,P.pagination.pageSize),De=(0,l.useMemo)(()=>w(P.selection,e,n),[P.selection,e,n]),Oe=(0,l.useMemo)(()=>f===`none`?[]:K.flatMap(e=>e._type===`data`?[n(e.row)]:[]),[K,f,n]),ke=(0,l.useMemo)(()=>f===`none`?[]:W.map(n),[W,f,n]),q=p===`filtered`?ke:Oe,J=q.length>0&&q.every(e=>P.selection.has(e)),Ae=!J&&q.some(e=>P.selection.has(e)),je=(0,l.useCallback)(()=>{F(J?{type:`CLEAR_SELECTION`}:{type:`SELECT_ALL`,rowIds:q})},[J,q,F]),Me=(0,l.useCallback)(e=>{F({type:`TOGGLE_SELECT`,rowId:e,mode:f===`single`?`single`:`multiple`})},[f,F]),Ne=(0,l.useRef)(m);(0,l.useEffect)(()=>{Ne.current=m},[m]);let Pe=(0,l.useRef)(``);(0,l.useEffect)(()=>{let t=JSON.stringify(Array.from(P.selection).sort());if(t!==Pe.current&&(Pe.current=t,Ne.current)){let t=w(P.selection,e,n);Ne.current(t,Array.from(P.selection))}},[P.selection,e,n]);let Fe=(0,l.useRef)(d);(0,l.useEffect)(()=>{Fe.current=d},[d]);let Ie=(0,l.useRef)(null);(0,l.useEffect)(()=>{if(a!==`server`)return;let e=JSON.stringify({sorts:P.sorts,filters:P.filters,grouping:P.grouping,pagination:P.pagination});e!==Ie.current&&(Ie.current=e,Fe.current?.(P))},[P,a]);let Le=(0,l.useCallback)(r=>{re(E(r?.selectedOnly?w(P.selection,e,n):W,t),v)},[P.selection,e,n,W,t,v]),Re=(0,l.useMemo)(()=>new Set(t.map(e=>e.id)),[t]),ze=(0,l.useCallback)(e=>{ie(e,Re).forEach(e=>F(e))},[Re,F]),[Y,Be]=(0,l.useState)(null),Ve=(0,l.useCallback)((e,t)=>{Be({rowId:e,columnId:t})},[]),He=(0,l.useCallback)((e,t,n)=>{N?.(e,t,n),Be(null)},[N]),Ue=(0,l.useCallback)(()=>{Be(null)},[]);(0,l.useImperativeHandle)(oe,()=>({getSelectedRows:()=>w(P.selection,e,n),getProcessedRows:()=>W,getGridState:()=>P,clearSelection:()=>F({type:`CLEAR_SELECTION`}),exportCsv:Le,setState:e=>{e.sorts&&F({type:`SET_SORT`,sorts:e.sorts}),e.filters&&F({type:`SET_FILTER`,filters:e.filters}),e.grouping&&F({type:`SET_GROUPING`,grouping:e.grouping})}}));let X=t.filter(e=>V.has(e.id)),Z=j!==void 0,We=(0,l.useRef)(null),Ge=(0,u.useVirtualizer)({count:Z?K.length:0,getScrollElement:()=>Z?We.current:null,estimateSize:()=>M,overscan:8}),Q=Ge.getVirtualItems(),$=(0,l.useMemo)(()=>{let e=[];f!==`none`&&e.push(40);for(let t of X)e.push(P.columnSizing[t.id]??t.width??150);return e},[X,f,P.columnSizing]),Ke=(0,l.useMemo)(()=>$.reduce((e,t)=>e+t,0),[$]),qe=(0,l.useMemo)(()=>({minWidth:Ke}),[Ke]),Je=(0,A.jsxs)(`colgroup`,{children:[f!==`none`&&(0,A.jsx)(`col`,{style:{width:40,minWidth:40,maxWidth:40}}),X.map((e,t)=>{let n=P.columnSizing[e.id]??e.width??150;return(0,A.jsx)(`col`,{style:t===X.length-1?void 0:{width:n}},e.id)})]}),Ye=(0,A.jsxs)(`tr`,{children:[f!==`none`&&(0,A.jsx)(ve,{checked:J,indeterminate:Ae,onChange:je,ariaLabel:J?`Deselect all`:`Select all`,isHeader:!0}),X.map(e=>{let n=P.sorts.findIndex(t=>t.columnId===e.id),r=ue===e.id,i=P.filters.some(t=>t.columnId===e.id),a=I===e.id;return(0,A.jsx)(ae,{column:e,sortEntry:n>=0?P.sorts[n]:void 0,sortIndex:n,totalSorts:P.sorts.length,width:P.columnSizing[e.id],onSort:_e,enableResize:y,onResize:(e,t)=>F({type:`SET_COLUMN_SIZE`,columnId:e,width:t}),enableMenu:b,menuOpen:r,onToggleMenu:me,filterActive:i,filterPanelOpen:a,onToggleFilter:e.filterable===!0?fe:void 0,columnMenuSlot:b&&r&&R?(0,A.jsx)(Se,{columns:t,columnVisibility:P.columnVisibility,anchorRect:R,onToggleColumn:he,onClose:()=>de(null)}):null},e.id)})]}),Xe=()=>{if(K.length===0)return(0,A.jsx)(`tr`,{children:(0,A.jsx)(`td`,{colSpan:X.length+(f===`none`?0:1),children:(0,A.jsx)(`div`,{className:B.emptyState,children:S??`No data`})})});if(!Z)return K.map((e,a)=>{if(e._type===`group`)return(0,A.jsx)(pe,{row:e,columns:t,visibleColumnIds:V,onToggle:()=>F({type:`TOGGLE_EXPAND`,groupId:e.id})},e.id);let o=n(e.row);return(0,A.jsx)(ye,{row:e.row,rowIndex:a,rowId:o,columns:t,visibleColumnIds:V,selectionMode:f,isSelected:P.selection.has(o),onToggleSelect:Me,onRowClick:r,onCellClick:i,editingColumnId:Y?.rowId===o?Y.columnId:void 0,onStartEdit:N?Ve:void 0,onCommitEdit:N?He:void 0,onCancelEdit:Ue},o)});let e=Q.length>0?Q[0]?.start??0:0,a=Q.length>0?Ge.getTotalSize()-(Q[Q.length-1]?.end??0):0;return(0,A.jsxs)(A.Fragment,{children:[e>0&&(0,A.jsx)(`tr`,{children:(0,A.jsx)(`td`,{style:{height:e,padding:0,border:`none`},colSpan:$.length})}),Q.map(e=>{let a=K[e.index];if(a._type===`group`)return(0,A.jsx)(pe,{row:a,columns:t,visibleColumnIds:V,onToggle:()=>F({type:`TOGGLE_EXPAND`,groupId:a.id})},a.id);let o=n(a.row);return(0,A.jsx)(ye,{row:a.row,rowIndex:e.index,rowId:o,columns:t,visibleColumnIds:V,selectionMode:f,isSelected:P.selection.has(o),onToggleSelect:Me,onRowClick:r,onCellClick:i,editingColumnId:Y?.rowId===o?Y.columnId:void 0,onStartEdit:N?Ve:void 0,onCommitEdit:N?He:void 0,onCancelEdit:Ue},o)}),a>0&&(0,A.jsx)(`tr`,{children:(0,A.jsx)(`td`,{style:{height:a,padding:0,border:`none`},colSpan:$.length})})]})},Ze=typeof j==`number`?`${j}px`:j;return(0,A.jsxs)(`div`,{className:[B.wrapper,T].filter(Boolean).join(` `),children:[(0,A.jsx)(xe,{selectedRows:De,selectedIds:Array.from(P.selection),processedRows:W,gridState:P,clearSelection:()=>F({type:`CLEAR_SELECTION`}),enableCsvExport:_,onExport:()=>Le(),toolbarActions:x,columns:t}),k&&(0,A.jsx)(we,{endpoint:k.endpoint,placeholder:k.placeholder,columns:t,gridState:P,onCommand:ze,onReset:()=>F({type:`RESET`})}),c&&(0,A.jsx)(`div`,{className:B.loadingOverlay,role:`status`,"aria-label":`Loading`,children:(0,A.jsx)(`div`,{className:B.spinner})}),Z?(0,A.jsxs)(`div`,{className:B.vsOuter,children:[(0,A.jsxs)(`table`,{className:B.table,style:qe,children:[Je,(0,A.jsx)(`thead`,{children:Ye})]}),(0,A.jsx)(`div`,{ref:We,className:B.vsBody,style:{height:Ze,overflowY:`auto`,overflowX:`clip`,minWidth:Ke},children:(0,A.jsxs)(`table`,{className:B.table,role:`grid`,style:qe,children:[Je,(0,A.jsx)(`tbody`,{children:Xe()})]})})]}):(0,A.jsx)(`div`,{className:B.tableContainer,children:(0,A.jsxs)(`table`,{className:B.table,role:`grid`,style:qe,children:[Je,(0,A.jsx)(`thead`,{children:Ye}),(0,A.jsx)(`tbody`,{children:Xe()})]})}),I!==null&&le!==null&&(()=>{let e=t.find(e=>e.id===I);return e?(0,A.jsx)(se,{column:e,anchorRect:le,filterEntry:P.filters.find(e=>e.columnId===I),filterOptions:H[I]??U[I],onChange:(e,t)=>ge(I,e,t),onClose:()=>{ce(null),L(null)}}):null})(),(0,A.jsx)(be,{pageIndex:P.pagination.pageIndex,pageCount:Ee,pageSize:P.pagination.pageSize,totalRows:Te,onPageChange:e=>F({type:`SET_PAGE`,pageIndex:e}),onPageSizeChange:e=>F({type:`SET_PAGE_SIZE`,pageSize:e})})]})}var Te=(0,l.forwardRef)(K);exports.DataGrid=Te;
@@ -506,16 +506,16 @@ var O = {
506
506
  };
507
507
  function N({ filled: e }) {
508
508
  return /* @__PURE__ */ (0, j.jsx)("svg", {
509
+ viewBox: "0 0 16 16",
510
+ fill: "none",
509
511
  width: "10",
510
512
  height: "10",
511
- viewBox: "0 0 10 10",
512
- fill: "none",
513
513
  "aria-hidden": "true",
514
514
  children: e ? /* @__PURE__ */ (0, j.jsx)("path", {
515
- d: "M1 1h8L6 5v3.5L4 7.5V5L1 1z",
515
+ d: "M6 10.5A0.5 0.5 0 0 1 6.5 10h3a0.5 0.5 0 0 1 0 1h-3A0.5 0.5 0 0 1 6 10.5M4 7.5A0.5 0.5 0 0 1 4.5 7h7a0.5 0.5 0 0 1 0 1h-7A0.5 0.5 0 0 1 4 7.5M2 4.5A0.5 0.5 0 0 1 2.5 4h11a0.5 0.5 0 0 1 0 1h-11A0.5 0.5 0 0 1 2 4.5",
516
516
  fill: "currentColor"
517
517
  }) : /* @__PURE__ */ (0, j.jsx)("path", {
518
- d: "M1 1h8L6 5v3.5L4 7.5V5L1 1z",
518
+ d: "M6 10.5A0.5 0.5 0 0 1 6.5 10h3a0.5 0.5 0 0 1 0 1h-3A0.5 0.5 0 0 1 6 10.5M4 7.5A0.5 0.5 0 0 1 4.5 7h7a0.5 0.5 0 0 1 0 1h-7A0.5 0.5 0 0 1 4 7.5M2 4.5A0.5 0.5 0 0 1 2.5 4h11a0.5 0.5 0 0 1 0 1h-11A0.5 0.5 0 0 1 2 4.5",
519
519
  stroke: "currentColor",
520
520
  strokeWidth: "1",
521
521
  fill: "none"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yk-grid",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Production-ready AI-assisted React DataGrid component with sorting, filtering, grouping, pagination, virtual scrolling, and optional natural-language query input",
5
5
  "keywords": [
6
6
  "react",
@@ -16,6 +16,7 @@
16
16
  "ai",
17
17
  "natural-language"
18
18
  ],
19
+ "homepage": "https://ykehinde.github.io/yk-grid/",
19
20
  "repository": {
20
21
  "type": "git",
21
22
  "url": "https://github.com/YKehinde/yk-grid.git"