react-open-source-grid 1.3.2 → 1.3.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.
@@ -37,7 +37,7 @@ use chrome, FireFox or Internet Explorer 11`)}var a=e(`safe-buffer`),o=e(`random
37
37
  `,n.NAME_START_CHAR=`:A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿`,n.NAME_CHAR=`-`+n.NAME_START_CHAR+`.0-9·̀-ͯ‿-⁀`,n.CHAR_RE=RegExp(`^[`+n.CHAR+`]$`,`u`),n.S_RE=RegExp(`^[`+n.S+`]+$`,`u`),n.NAME_START_CHAR_RE=RegExp(`^[`+n.NAME_START_CHAR+`]$`,`u`),n.NAME_CHAR_RE=RegExp(`^[`+n.NAME_CHAR+`]$`,`u`),n.NAME_RE=RegExp(`^[`+n.NAME_START_CHAR+`][`+n.NAME_CHAR+`]*$`,`u`),n.NMTOKEN_RE=RegExp(`^[`+n.NAME_CHAR+`]+$`,`u`);function r(e){return e>=65&&e<=90||e>=97&&e<=122||e===58||e===95||e===8204||e===8205||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}n.S_LIST=[32,10,13,9],n.isChar=function(e){return e>=32&&e<=55295||e===10||e===13||e===9||e>=57344&&e<=65533||e>=65536&&e<=1114111},n.isS=function(e){return e===32||e===10||e===13||e===9},n.isNameStartChar=r,n.isNameChar=function(e){return r(e)||e>=48&&e<=57||e===45||e===46||e===183||e>=768&&e<=879||e>=8255&&e<=8256}},{}],544:[function(e,t,n){Object.defineProperty(n,`__esModule`,{value:!0}),n.CHAR=`-퟿-�𐀀-􏿿`,n.RESTRICTED_CHAR=`-\b\v\f--„†-Ÿ`,n.S=` \r
38
38
  `,n.NAME_START_CHAR=`:A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿`,n.NAME_CHAR=`-`+n.NAME_START_CHAR+`.0-9·̀-ͯ‿-⁀`,n.CHAR_RE=RegExp(`^[`+n.CHAR+`]$`,`u`),n.RESTRICTED_CHAR_RE=RegExp(`^[`+n.RESTRICTED_CHAR+`]$`,`u`),n.S_RE=RegExp(`^[`+n.S+`]+$`,`u`),n.NAME_START_CHAR_RE=RegExp(`^[`+n.NAME_START_CHAR+`]$`,`u`),n.NAME_CHAR_RE=RegExp(`^[`+n.NAME_CHAR+`]$`,`u`),n.NAME_RE=RegExp(`^[`+n.NAME_START_CHAR+`][`+n.NAME_CHAR+`]*$`,`u`),n.NMTOKEN_RE=RegExp(`^[`+n.NAME_CHAR+`]+$`,`u`);function r(e){return e>=65&&e<=90||e>=97&&e<=122||e===58||e===95||e===8204||e===8205||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}n.S_LIST=[32,10,13,9],n.isChar=function(e){return e>=1&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111},n.isRestrictedChar=function(e){return e>=1&&e<=8||e===11||e===12||e>=14&&e<=31||e>=127&&e<=132||e>=134&&e<=159},n.isCharAndNotRestricted=function(e){return e===9||e===10||e===13||e>31&&e<127||e===133||e>159&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111},n.isS=function(e){return e===32||e===10||e===13||e===9},n.isNameStartChar=r,n.isNameChar=function(e){return r(e)||e>=48&&e<=57||e===45||e===46||e===183||e>=768&&e<=879||e>=8255&&e<=8256}},{}],545:[function(e,t,n){function r(e){return e>=65&&e<=90||e===95||e>=97&&e<=122||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}Object.defineProperty(n,`__esModule`,{value:!0}),n.NC_NAME_START_CHAR=`A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿`,n.NC_NAME_CHAR=`-`+n.NC_NAME_START_CHAR+`.0-9·̀-ͯ‿-⁀`,n.NC_NAME_START_CHAR_RE=RegExp(`^[`+n.NC_NAME_START_CHAR+`]$`,`u`),n.NC_NAME_CHAR_RE=RegExp(`^[`+n.NC_NAME_CHAR+`]$`,`u`),n.NC_NAME_RE=RegExp(`^[`+n.NC_NAME_START_CHAR+`][`+n.NC_NAME_CHAR+`]*$`,`u`),n.isNCNameStartChar=r,n.isNCNameChar=function(e){return r(e)||e===45||e===46||e>=48&&e<=57||e===183||e>=768&&e<=879||e>=8255&&e<=8256}},{}]},{},[15])(15)}))}))(),1);const Vn=(e,t,n=`export.csv`)=>{let r=t.map(e=>e.headerName),i=e.map(e=>t.map(t=>{let n=e[t.field];if(n==null)return``;let r=String(n);return r.includes(`,`)||r.includes(`
39
39
  `)||r.includes(`"`)?`"${r.replace(/"/g,`""`)}"`:r}).join(`,`)),a=[r.join(`,`),...i].join(`
40
- `);Wn(new Blob([a],{type:`text/csv;charset=utf-8;`}),n)},Hn=async(e,t,n={})=>{let{filename:r=`export.xlsx`,styling:i=`basic`}=n,a=new Bn.default.Workbook,o=a.addWorksheet(`Sheet1`),s=t.map(e=>e.headerName);o.addRow(s),e.forEach(e=>{let n=t.map(t=>e[t.field]??``);o.addRow(n)}),o.columns=t.map(t=>{let n=t.headerName.length,r=Math.max(...e.map(e=>String(e[t.field]??``).length)),i=Math.max(n,r)+2;return{width:Math.min(i,50)}}),i===`professional`&&Un(o,t);let c=await a.xlsx.writeBuffer();Wn(new Blob([c],{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}),r)};var Un=(e,t)=>{let n=e.getRow(1);n.font={bold:!0,color:{argb:`FFFFFFFF`},size:11},n.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:`FF2F5496`}},n.alignment={horizontal:`center`,vertical:`middle`,wrapText:!0},n.height=20,e.eachRow((e,t)=>{e.eachCell(e=>{e.border={top:{style:`thin`,color:{argb:`FFD3D3D3`}},left:{style:`thin`,color:{argb:`FFD3D3D3`}},bottom:{style:`thin`,color:{argb:`FFD3D3D3`}},right:{style:`thin`,color:{argb:`FFD3D3D3`}}},t>1&&t%2==0&&(e.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:`FFF2F2F2`}}),t>1&&(e.alignment={horizontal:`left`,vertical:`middle`})})}),e.views=[{state:`frozen`,ySplit:1}]},Wn=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)};const Gn=(e,t)=>{let n=new Date().toISOString().replace(/[:.]/g,`-`).slice(0,-5);return`data_export_${t===`all`?`full`:t}_${n}.${e}`},Kn=async(e,t,n)=>{if(e.length===0){alert(`No data to export`);return}let r=n.filename||Gn(n.format,n.scope);n.format===`csv`?Vn(e,t,r):n.format===`xlsx`&&await Hn(e,t,{filename:r,styling:n.styling})},qn=({columns:e,fullDataset:t,filteredData:n,selectedRows:r,currentPageData:i,onExport:a})=>{let[o,s]=(0,b.useState)(!1),[c,l]=(0,b.useState)(`csv`),[u,d]=(0,b.useState)(`filtered`),[f,p]=(0,b.useState)(`basic`),[m,h]=(0,b.useState)(null),g=b.useRef(null),_=()=>{switch(u){case`all`:return t;case`filtered`:return n;case`selected`:return r.size>0?n.filter(e=>r.has(e.id)):[];case`page`:return i;default:return n}},v=()=>{let t=_();if(t.length===0){alert(`No ${u===`selected`?`selected`:u} data to export`);return}Kn(t,e,{format:c,scope:u,styling:c===`xlsx`?f:void 0}),a?.(!0),s(!1)},y=[{value:`all`,label:`Full Dataset`,disabled:!1},{value:`filtered`,label:`Filtered Data`,disabled:n.length===0},{value:`selected`,label:`Selected Rows (${r.size})`,disabled:r.size===0},{value:`page`,label:`Current Page`,disabled:i.length===0}];return(0,Z.jsxs)(`div`,{style:{position:`relative`},children:[(0,Z.jsxs)(`button`,{ref:g,onClick:()=>{if(!o){let e=g.current?.getBoundingClientRect();e&&h(e)}s(!o)},style:{padding:`8px 12px`,backgroundColor:`#2563eb`,color:`white`,borderRadius:`6px`,border:`none`,fontSize:`14px`,fontWeight:`500`,display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,transition:`background-color 0.2s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#1d4ed8`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`#2563eb`},title:`Export data to CSV or XLSX format`,children:[(0,Z.jsx)(`svg`,{style:{width:`16px`,height:`16px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M12 19l9 2-9-18-9 18 9-2m0 0v-8m0 8l-6-4m6 4l6-4`})}),`Export`]}),o&&m&&(0,Z.jsxs)(`div`,{style:{position:`fixed`,left:`${m.left}px`,top:`${m.bottom+8}px`,backgroundColor:`#ffffff`,border:`1px solid #e5e7eb`,borderRadius:`8px`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.05)`,zIndex:50,padding:`20px`,width:`420px`,minWidth:`420px`,maxWidth:`420px`,maxHeight:`90vh`,overflowY:`auto`},children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Format`}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`16px`},children:[(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`format`,value:`csv`,checked:c===`csv`,onChange:e=>l(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`CSV`})]}),(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`format`,value:`xlsx`,checked:c===`xlsx`,onChange:e=>l(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`XLSX (Excel)`})]})]})]}),(0,Z.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Data Scope`}),(0,Z.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`10px`},children:y.map(e=>(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`10px`,padding:`10px 12px`,borderRadius:`6px`,cursor:e.disabled?`not-allowed`:`pointer`,opacity:e.disabled?.5:1,backgroundColor:`transparent`,transition:`background-color 0.15s`,userSelect:`none`},onMouseEnter:t=>{e.disabled||(t.currentTarget.style.backgroundColor=`#f3f4f6`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`scope`,value:e.value,checked:u===e.value,onChange:e=>d(e.target.value),disabled:e.disabled,style:{width:`16px`,height:`16px`,cursor:e.disabled?`not-allowed`:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:e.label})]},e.value))})]}),c===`xlsx`&&(0,Z.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Styling`}),(0,Z.jsx)(`div`,{style:{marginBottom:`10px`},children:(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`16px`},children:[(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`styling`,value:`basic`,checked:f===`basic`,onChange:e=>p(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`Basic`})]}),(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`styling`,value:`professional`,checked:f===`professional`,onChange:e=>p(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`Professional`})]})]})}),(0,Z.jsx)(`p`,{style:{fontSize:`12px`,color:`#6b7280`,margin:`0`},children:`Professional adds colors, borders, and frozen header row`})]}),(0,Z.jsxs)(`div`,{style:{backgroundColor:`#f3f4f6`,borderRadius:`6px`,padding:`12px`,marginBottom:`20px`,fontSize:`13px`,color:`#4b5563`},children:[(0,Z.jsxs)(`p`,{style:{margin:`6px 0`},children:[(0,Z.jsx)(`strong`,{children:`Data to export:`}),` `,_().length,` row(s)`]}),(0,Z.jsxs)(`p`,{style:{margin:`6px 0`},children:[(0,Z.jsx)(`strong`,{children:`Columns:`}),` `,e.length]})]}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`10px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{onClick:()=>s(!1),style:{padding:`10px 16px`,border:`1px solid #d1d5db`,color:`#374151`,backgroundColor:`#ffffff`,borderRadius:`6px`,fontSize:`14px`,fontWeight:`500`,cursor:`pointer`,transition:`background-color 0.2s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#f9fafb`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`#ffffff`},children:`Cancel`}),(0,Z.jsx)(`button`,{onClick:v,disabled:_().length===0,style:{padding:`10px 16px`,backgroundColor:_().length===0?`#9ca3af`:`#2563eb`,color:`#ffffff`,borderRadius:`6px`,border:`none`,fontSize:`14px`,fontWeight:`500`,cursor:_().length===0?`not-allowed`:`pointer`,opacity:_().length===0?.6:1,transition:`background-color 0.2s`},onMouseEnter:e=>{_().length>0&&(e.currentTarget.style.backgroundColor=`#1d4ed8`)},onMouseLeave:e=>{_().length>0&&(e.currentTarget.style.backgroundColor=`#2563eb`)},children:`Export Now`})]})]}),o&&(0,Z.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:40},onClick:()=>s(!1)})]})};var Jn=e=>{if(e.filterType)return e.filterType===`multi`?`set`:e.filterType;let t=e.field.toLowerCase();return t.includes(`date`)||t.includes(`time`)?`date`:t.includes(`salary`)||t.includes(`price`)||t.includes(`amount`)||t.includes(`count`)?`number`:t.includes(`status`)||t.includes(`department`)||t.includes(`category`)?`set`:`text`},Yn=e=>{switch(e){case`text`:return[{value:`contains`,label:`Contains`},{value:`notContains`,label:`Not Contains`},{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Not Equals`},{value:`startsWith`,label:`Starts With`},{value:`endsWith`,label:`Ends With`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`number`:return[{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Not Equals`},{value:`greaterThan`,label:`Greater Than`},{value:`greaterThanOrEqual`,label:`Greater Than or Equal`},{value:`lessThan`,label:`Less Than`},{value:`lessThanOrEqual`,label:`Less Than or Equal`},{value:`inRange`,label:`In Range`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`date`:return[{value:`equals`,label:`Equals`},{value:`before`,label:`Before`},{value:`after`,label:`After`},{value:`inRange`,label:`In Range`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`set`:return[{value:`in`,label:`In`},{value:`notIn`,label:`Not In`}];default:return[]}},Xn=e=>![`isEmpty`,`isNotEmpty`].includes(e),Zn=e=>e===`inRange`,Qn=e=>[`in`,`notIn`].includes(e);const $n=({column:e,filterValue:t,onApply:n,onClose:r,rows:i,anchorEl:a})=>{let o=Jn(e),s=Yn(o),c=t?.conditions||[{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}],[l,u]=(0,b.useState)(t?.operator||`AND`),[d,f]=(0,b.useState)(c),[p,m]=(0,b.useState)({}),h=o===`set`?Array.from(new Set(i.map(t=>t[e.field]).filter(e=>e!=null))):[],g=()=>{f([...d,{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}])},_=e=>{if(d.length>1){f(d.filter((t,n)=>n!==e));let t={...p};delete t[e],m(t)}},v=(e,t)=>{f(d.map((n,r)=>r===e?{...n,...t}:n))},y=(e,t)=>{m({...p,[e]:t})},x=()=>{let e=d.filter(e=>Xn(e.type)?Qn(e.type)?e.values&&e.values.length>0:Zn(e.type)?e.value!=null&&e.value!==``&&e.value2!=null&&e.value2!==``:e.value!=null&&e.value!==``:!0);e.length===0?n(null):n({operator:l,conditions:e}),r()},S=()=>{f([{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}]),m({}),n(null)},C=()=>{f([{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}]),u(`AND`),m({})},w=(e,t)=>{if(Qn(e.type)){let n=new Set(e.values||[]),r=p[t]?.searchTerm||``,i=h.filter(e=>String(e).toLowerCase().includes(r.toLowerCase())),a=e=>{let r=new Set(n);r.has(e)?r.delete(e):r.add(e),v(t,{values:Array.from(r)})};return(0,Z.jsxs)(`div`,{style:{marginTop:`8px`},children:[(0,Z.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`,marginBottom:`8px`},value:r,onChange:e=>y(t,{searchTerm:e.target.value}),placeholder:`Search values...`}),(0,Z.jsxs)(`div`,{style:{maxHeight:`150px`,overflowY:`auto`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,padding:`4px`},children:[(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,cursor:`pointer`,padding:`4px 6px`,fontSize:`var(--grid-font-size-sm, 12px)`},children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:n.size===i.length&&i.length>0,onChange:()=>{n.size===i.length?v(t,{values:[]}):v(t,{values:i})},style:{width:`14px`,height:`14px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontWeight:500,color:`var(--grid-text)`},children:`(Select All)`})]}),i.map((e,t)=>(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,cursor:`pointer`,padding:`4px 6px`,fontSize:`var(--grid-font-size-sm, 12px)`},children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:n.has(e),onChange:()=>a(e),style:{width:`14px`,height:`14px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{color:`var(--grid-text)`},children:String(e)})]},t))]}),n.size>0&&(0,Z.jsxs)(`div`,{style:{marginTop:`6px`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-primary)`,fontWeight:500},children:[n.size,` selected`]})]})}return Xn(e.type)?Zn(e.type)?(0,Z.jsxs)(`div`,{style:{marginTop:`8px`,display:`flex`,gap:`8px`,alignItems:`center`},children:[(0,Z.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{flex:1,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value||``,onChange:e=>v(t,{value:e.target.value}),placeholder:`From`}),(0,Z.jsx)(`span`,{style:{color:`var(--grid-text-secondary)`,fontSize:`var(--grid-font-size-sm, 12px)`},children:`to`}),(0,Z.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{flex:1,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value2||``,onChange:e=>v(t,{value2:e.target.value}),placeholder:`To`})]}):(0,Z.jsx)(`div`,{style:{marginTop:`8px`},children:(0,Z.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value||``,onChange:e=>v(t,{value:e.target.value}),placeholder:`Enter ${o}...`})}):null};return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:a?a.getBoundingClientRect().bottom+5:0,left:a?a.getBoundingClientRect().left:0,minWidth:`380px`,maxWidth:`450px`,maxHeight:`600px`,backgroundColor:`var(--grid-bg)`,boxShadow:`0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 10px 10px -5px rgba(0, 0, 0, 0.1)`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1001,display:`flex`,flexDirection:`column`,overflowY:`auto`},onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`16px`,paddingBottom:`12px`,borderBottom:`1px solid var(--grid-border)`},children:[(0,Z.jsxs)(`h4`,{style:{margin:0,fontSize:`var(--grid-font-size, 14px)`,fontWeight:600,color:`var(--grid-text)`},children:[`Advanced Filter: `,e.headerName]}),(0,Z.jsx)(`p`,{style:{margin:`4px 0 0 0`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-text-secondary)`},children:`Add multiple conditions with AND/OR logic`})]}),d.length>1&&(0,Z.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`6px`},children:`Combine Conditions`}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,Z.jsx)(`button`,{style:{flex:1,padding:`6px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:l===`AND`?`var(--grid-text-inverse)`:`var(--grid-text)`,backgroundColor:l===`AND`?`var(--grid-primary)`:`var(--grid-bg-alt)`,border:l===`AND`?`none`:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:()=>u(`AND`),children:`AND`}),(0,Z.jsx)(`button`,{style:{flex:1,padding:`6px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:l===`OR`?`var(--grid-text-inverse)`:`var(--grid-text)`,backgroundColor:l===`OR`?`var(--grid-primary)`:`var(--grid-bg-alt)`,border:l===`OR`?`none`:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:()=>u(`OR`),children:`OR`})]})]}),(0,Z.jsx)(`div`,{style:{flex:1,overflowY:`auto`,marginBottom:`12px`},children:d.map((e,t)=>(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`,padding:`12px`,backgroundColor:`var(--grid-bg-alt)`,borderRadius:`var(--grid-border-radius, 6px)`,border:`1px solid var(--grid-border)`},children:[(0,Z.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:`8px`},children:[(0,Z.jsxs)(`label`,{style:{fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`},children:[`Condition `,t+1]}),d.length>1&&(0,Z.jsx)(`button`,{style:{padding:`2px 8px`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-danger, #dc2626)`,backgroundColor:`transparent`,border:`none`,cursor:`pointer`,borderRadius:`var(--grid-border-radius, 4px)`},onClick:()=>_(t),onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-danger-bg, rgba(220, 38, 38, 0.1))`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Remove condition`,children:`✕`})]}),(0,Z.jsx)(`select`,{style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.type,onChange:e=>v(t,{type:e.target.value,value:``,value2:``,values:[]}),children:s.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value))}),w(e,t),t<d.length-1&&d.length>1&&(0,Z.jsx)(`div`,{style:{marginTop:`12px`,padding:`4px 8px`,textAlign:`center`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:600,color:`var(--grid-primary)`,backgroundColor:`var(--grid-primary-bg)`,borderRadius:`var(--grid-border-radius, 4px)`},children:l})]},t))}),(0,Z.jsx)(`button`,{style:{width:`100%`,padding:`8px 12px`,marginBottom:`12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-primary)`,backgroundColor:`var(--grid-primary-bg)`,border:`1px dashed var(--grid-primary)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:g,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover-bg)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-bg)`,children:`+ Add Condition`}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,paddingTop:`12px`,borderTop:`1px solid var(--grid-border)`},children:[(0,Z.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:C,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Reset`}),(0,Z.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:S,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:x,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})};var er=e=>e!=null&&`operator`in e&&`conditions`in e,tr=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=er(e)?null:e,s=o?.type||`contains`,c=o?.value||``,[l,u]=(0,b.useState)(s),[d,f]=(0,b.useState)(c);return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow-medium, 0 10px 15px -3px rgba(0, 0, 0, 0.1))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Z.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:l,onChange:e=>u(e.target.value),children:[(0,Z.jsx)(`option`,{value:`contains`,children:`Contains`}),(0,Z.jsx)(`option`,{value:`notContains`,children:`Not Contains`}),(0,Z.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Z.jsx)(`option`,{value:`startsWith`,children:`Starts With`}),(0,Z.jsx)(`option`,{value:`endsWith`,children:`Ends With`})]})]}),(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Value`}),(0,Z.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`8px 12px`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:d,onChange:e=>f(e.target.value),placeholder:`Enter text...`,autoFocus:!0})]}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{f(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{t(d?{type:l,value:d}:null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},nr=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=er(e)?null:e,s=o?.type||`equals`,c=o?.value||``,l=o?.value2||``,[u,d]=(0,b.useState)(s),[f,p]=(0,b.useState)(c),[m,h]=(0,b.useState)(l);return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Z.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:u,onChange:e=>d(e.target.value),children:[(0,Z.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Z.jsx)(`option`,{value:`notEquals`,children:`Not Equals`}),(0,Z.jsx)(`option`,{value:`greaterThan`,children:`Greater Than`}),(0,Z.jsx)(`option`,{value:`greaterThanOrEqual`,children:`Greater Than or Equal`}),(0,Z.jsx)(`option`,{value:`lessThan`,children:`Less Than`}),(0,Z.jsx)(`option`,{value:`lessThanOrEqual`,children:`Less Than or Equal`}),(0,Z.jsx)(`option`,{value:`inRange`,children:`In Range`})]})]}),(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Value`}),(0,Z.jsx)(`input`,{type:`number`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),placeholder:`Enter number...`,autoFocus:!0})]}),u===`inRange`&&(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`To`}),(0,Z.jsx)(`input`,{type:`number`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:m,onChange:e=>h(e.target.value),placeholder:`Enter max value...`})]}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{p(``),h(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{if(f){let e={type:u,value:parseFloat(f)};u===`inRange`&&m&&(e.value2=parseFloat(m)),t(e)}else t(null);n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},rr=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=er(e)?null:e,s=o?.type||`equals`,c=o?.value||``,l=o?.value2||``,[u,d]=(0,b.useState)(s),[f,p]=(0,b.useState)(c),[m,h]=(0,b.useState)(l);return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Z.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:u,onChange:e=>d(e.target.value),children:[(0,Z.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Z.jsx)(`option`,{value:`before`,children:`Before`}),(0,Z.jsx)(`option`,{value:`after`,children:`After`}),(0,Z.jsx)(`option`,{value:`inRange`,children:`In Range`})]})]}),(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Date`}),(0,Z.jsx)(`input`,{type:`date`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),autoFocus:!0})]}),u===`inRange`&&(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`To`}),(0,Z.jsx)(`input`,{type:`date`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:m,onChange:e=>h(e.target.value)})]}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{p(``),h(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{if(f){let e={type:u,value:f};u===`inRange`&&m&&(e.value2=m),t(e)}else t(null);n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},ir=({column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a,showAdvancedButton:o,onSwitchToAdvanced:s})=>{let c=Array.from(new Set(i.map(t=>t[e.field]).filter(e=>e!=null))),l=er(t)?null:t,[u,d]=(0,b.useState)(l&&l.values?new Set(l.values):new Set),[f,p]=(0,b.useState)(``),m=c.filter(e=>String(e).toLowerCase().includes(f.toLowerCase())),h=e=>{let t=new Set(u);t.has(e)?t.delete(e):t.add(e),d(t)};return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:a?a.getBoundingClientRect().bottom+5:0,left:a?a.getBoundingClientRect().left:0,minWidth:`280px`,maxHeight:`400px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3,display:`flex`,flexDirection:`column`},onClick:e=>e.stopPropagation(),children:[(0,Z.jsx)(`div`,{style:{marginBottom:`12px`},children:(0,Z.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),placeholder:`Search values...`,autoFocus:!0})}),(0,Z.jsx)(`div`,{style:{marginBottom:`8px`},children:(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,padding:`8px`,borderRadius:`4px`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:u.size===m.length&&m.length>0,onChange:()=>{u.size===m.length?d(new Set):d(new Set(m))},style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`},children:`(Select All)`})]})}),(0,Z.jsx)(`div`,{style:{flex:1,overflowY:`auto`,marginBottom:`12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,maxHeight:`200px`},children:m.map((e,t)=>(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,padding:`8px`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:u.has(e),onChange:()=>h(e),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`},children:String(e)})]},t))}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`,paddingTop:`8px`,borderTop:`1px solid var(--grid-border)`},children:[(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{d(new Set),n(null),r()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsxs)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{u.size>0?n({type:`set`,values:Array.from(u)}):n(null),r()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:[`Apply (`,u.size,`)`]})]})]})},ar=({column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a})=>(0,Z.jsx)(ir,{column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a});const or=({columns:e,displayColumnOrder:t,columnWidths:n,filterConfig:r,dispatch:i,pinnedLeft:a,pinnedRight:o,rows:s})=>{let[c,l]=(0,b.useState)(null),[u,d]=(0,b.useState)({}),[f,p]=(0,b.useState)(null),m=new Set(a),h=new Set(o),g={},_=0;a.forEach(e=>{g[e]=_,_+=n[e]||150});let v={},y=0;[...o].reverse().forEach(e=>{v[e]=y,y+=n[e]||150});let x=new Map(e.map(e=>[e.field,e])),S=e=>{let t={width:`${n[e]||150}px`};return m.has(e)?(t.position=`sticky`,t.left=`${g[e]}px`,t.zIndex=20,t.backgroundColor=`var(--grid-header-bg)`):h.has(e)&&(t.position=`sticky`,t.right=`${v[e]}px`,t.zIndex=20,t.backgroundColor=`var(--grid-header-bg)`),t},C=e=>{if(e.filterType)return e.filterType;let t=e.field.toLowerCase();return t.includes(`date`)||t.includes(`time`)?`date`:t.includes(`salary`)||t.includes(`price`)||t.includes(`amount`)||t.includes(`count`)?`number`:t.includes(`status`)||t.includes(`department`)||t.includes(`category`)?`set`:`text`},w=(e,t)=>{t.stopPropagation();let n=r[e];er(n)||t.shiftKey?(d({...u,[e]:t.currentTarget}),p(e),l(null)):(d({...u,[e]:t.currentTarget}),l(e),p(null))},T=()=>{l(null),p(null)},E=(e,t)=>{i({type:`SET_FILTER`,payload:{field:e,value:t}})},D=e=>{l(null),p(e)};(0,b.useEffect)(()=>{let e=()=>{c&&l(null)};if(c)return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[c]);let O=e=>{let t=C(e),n={column:e,filterValue:r[e.field],onApplyFilter:t=>E(e.field,t),onClose:T,rows:s,anchorEl:u[e.field],showAdvancedButton:!0,onSwitchToAdvanced:()=>D(e.field)};switch(t){case`number`:return(0,Z.jsx)(nr,{...n});case`date`:return(0,Z.jsx)(rr,{...n});case`set`:return(0,Z.jsx)(ir,{...n});case`multi`:return(0,Z.jsx)(ar,{...n});default:return(0,Z.jsx)(tr,{...n})}},k=e=>{let t=r[e.field],n=u[e.field];return(0,Z.jsx)($n,{column:e,filterValue:er(t)?t:null,onApply:t=>E(e.field,t),onClose:T,rows:s,anchorEl:n})},A=e=>{let t=r[e];if(!t)return``;if(er(t)){let e=t.conditions.length;return`${e} condition${e>1?`s`:``} (${t.operator})`}return t.type===`set`&&t.values?`${t.values.length} selected`:t.type===`inRange`?`${t.value} - ${t.value2}`:String(t.value||``)},j=e=>!!r[e];return(0,Z.jsx)(Z.Fragment,{children:(0,Z.jsx)(`div`,{style:{display:`flex`,minWidth:`100%`,borderBottom:`1px solid var(--grid-border)`,backgroundColor:`var(--grid-header-bg)`},children:t.map(e=>{let t=x.get(e);if(!t||t.filterable===!1)return(0,Z.jsx)(`div`,{style:{...S(e),borderRight:`1px solid var(--grid-border)`,flexShrink:0,minHeight:`38px`}},e);let n=j(e);return(0,Z.jsxs)(`div`,{style:{...S(e),borderRight:`1px solid var(--grid-border)`,flexShrink:0,padding:`6px 8px`,position:`relative`,display:`flex`,alignItems:`center`},children:[(0,Z.jsx)(`div`,{style:{width:`100%`,cursor:`pointer`},onClick:t=>w(e,t),title:`Click to filter, Shift+Click for advanced filter`,children:(0,Z.jsxs)(`div`,{style:{width:`100%`,padding:`4px 8px`,fontSize:`var(--grid-font-size-sm, 12px)`,border:`1px solid`,borderColor:n?`var(--grid-primary)`:`var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,backgroundColor:n?`var(--grid-primary-bg)`:`var(--grid-bg)`,color:n?`var(--grid-primary)`:`var(--grid-text-secondary)`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`6px`,transition:`border-color 0.15s`},onMouseEnter:e=>{n||(e.currentTarget.style.borderColor=`var(--grid-border-hover)`)},onMouseLeave:e=>{n||(e.currentTarget.style.borderColor=`var(--grid-border)`)},children:[(0,Z.jsx)(`span`,{style:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:n?A(e):`Filter...`}),(0,Z.jsx)(`svg`,{style:{flexShrink:0,color:n?`var(--grid-primary)`:`var(--grid-text-muted)`},width:`12`,height:`12`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,strokeWidth:`2.5`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 4h18v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V20l-4-2v-3.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z`})})]})}),c===e&&O(t),f===e&&k(t)]},e)})})})},sr=({manager:e,currentLayout:t,onLoadPreset:n,onResetLayout:r})=>{let[i,a]=(0,b.useState)([]),[o,s]=(0,b.useState)(!1),[c,l]=(0,b.useState)(!1),[u,d]=(0,b.useState)(``),[f,p]=(0,b.useState)(``),[m,h]=(0,b.useState)(!1),[g,_]=(0,b.useState)(null),v=(0,b.useCallback)(async()=>{try{h(!0),a((await e.listPresets()).filter(e=>e.id!==`__autosave__`)),_(null)}catch(e){_(`Failed to load presets`),console.error(e)}finally{h(!1)}},[e]);(0,b.useEffect)(()=>{v()},[v]);let y=async()=>{if(!u.trim()){_(`Please enter a preset name`);return}try{h(!0);let{createPreset:n}=await w(async()=>{let{createPreset:e}=await import(`./layoutPersistence-CdrvofCV.js`);return{createPreset:e}},[]),r=n(u.trim(),t,f.trim());await e.savePreset(r),await v(),l(!1),d(``),p(``),_(null)}catch(e){_(`Failed to save preset`),console.error(e)}finally{h(!1)}},x=async t=>{try{h(!0);let r=await e.loadPreset(t);r&&(n(r.layout),s(!1),_(null))}catch(e){_(`Failed to load preset`),console.error(e)}finally{h(!1)}},S=async(t,n)=>{if(n.stopPropagation(),confirm(`Are you sure you want to delete this preset?`))try{h(!0),await e.deletePreset(t),await v(),_(null)}catch(e){_(`Failed to delete preset`),console.error(e)}finally{h(!1)}},C=async(n,r)=>{if(r.stopPropagation(),confirm(`Update this preset with current layout?`))try{h(!0);let r={...n,layout:t};await e.savePreset(r),await v(),_(null)}catch(e){_(`Failed to update preset`),console.error(e)}finally{h(!1)}},T=e=>new Date(e).toLocaleString();return(0,Z.jsxs)(`div`,{className:`relative inline-block`,children:[(0,Z.jsxs)(`button`,{onClick:()=>s(!o),style:{padding:`6px 12px`,fontSize:`14px`,backgroundColor:`white`,border:`1px solid #d1d5db`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,gap:`8px`},disabled:m,children:[(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 7h16M4 12h16M4 17h16`})}),`Layout Presets`,(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0,transform:o?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 0.2s`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 9l-7 7-7-7`})})]}),o&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:10},onClick:()=>s(!1)}),(0,Z.jsxs)(`div`,{style:{position:`absolute`,right:0,marginTop:`8px`,width:`320px`,backgroundColor:`white`,border:`1px solid #d1d5db`,borderRadius:`8px`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1)`,zIndex:20,maxHeight:`384px`,overflowY:`auto`},children:[(0,Z.jsx)(`div`,{style:{padding:`12px`,borderBottom:`1px solid #e5e7eb`,backgroundColor:`#f9fafb`},children:(0,Z.jsx)(`h3`,{style:{fontWeight:`600`,fontSize:`14px`,color:`#111827`},children:`Layout Presets`})}),g&&(0,Z.jsx)(`div`,{style:{padding:`12px`,backgroundColor:`#fef2f2`,borderBottom:`1px solid #fecaca`},children:(0,Z.jsx)(`p`,{style:{fontSize:`14px`,color:`#dc2626`},children:g})}),(0,Z.jsxs)(`div`,{style:{padding:`8px`,borderBottom:`1px solid #e5e7eb`,display:`flex`,gap:`8px`},children:[(0,Z.jsxs)(`button`,{onClick:()=>{l(!0),s(!1)},style:{flex:1,padding:`8px 12px`,fontSize:`14px`,backgroundColor:`#2563eb`,color:`white`,border:`none`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`8px`},children:[(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4`})}),`Save Current`]}),(0,Z.jsxs)(`button`,{onClick:()=>{r(),s(!1)},style:{flex:1,padding:`8px 12px`,fontSize:`14px`,backgroundColor:`#4b5563`,color:`white`,border:`none`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`8px`},children:[(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15`})}),`Reset`]})]}),(0,Z.jsx)(`div`,{style:{maxHeight:`256px`,overflowY:`auto`},children:m&&i.length===0?(0,Z.jsx)(`div`,{style:{padding:`16px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`Loading presets...`}):i.length===0?(0,Z.jsx)(`div`,{style:{padding:`16px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`No saved presets. Save your current layout to get started.`}):(0,Z.jsx)(`div`,{children:i.map(e=>(0,Z.jsx)(`div`,{style:{padding:`12px`,cursor:`pointer`,borderBottom:`1px solid #e5e7eb`},onClick:()=>x(e.id),onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#f9fafb`;let t=e.currentTarget.querySelector(`.preset-actions`);t&&(t.style.opacity=`1`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`;let t=e.currentTarget.querySelector(`.preset-actions`);t&&(t.style.opacity=`0`)},children:(0,Z.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`},children:[(0,Z.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,Z.jsx)(`h4`,{style:{fontSize:`14px`,fontWeight:`500`,color:`#111827`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name}),e.description&&(0,Z.jsx)(`p`,{style:{fontSize:`12px`,color:`#6b7280`,marginTop:`4px`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.description}),(0,Z.jsxs)(`p`,{style:{fontSize:`12px`,color:`#9ca3af`,marginTop:`4px`},children:[`Updated: `,T(e.updatedAt)]})]}),(0,Z.jsxs)(`div`,{className:`preset-actions`,style:{display:`flex`,gap:`4px`,marginLeft:`8px`,opacity:0,transition:`opacity 0.2s`},children:[(0,Z.jsx)(`button`,{onClick:t=>C(e,t),style:{padding:`4px`,color:`#2563eb`,backgroundColor:`transparent`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#eff6ff`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Update with current layout`,children:(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15`})})}),(0,Z.jsx)(`button`,{onClick:t=>S(e.id,t),style:{padding:`4px`,color:`#dc2626`,backgroundColor:`transparent`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#fef2f2`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Delete preset`,children:(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16`})})})]})]})},e.id))})})]})]}),c&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{style:{position:`fixed`,inset:0,backgroundColor:`rgba(0, 0, 0, 0.5)`,zIndex:30,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>l(!1)}),(0,Z.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:40,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`16px`},children:(0,Z.jsxs)(`div`,{style:{backgroundColor:`white`,borderRadius:`8px`,boxShadow:`0 25px 50px -12px rgba(0, 0, 0, 0.25)`,maxWidth:`448px`,width:`100%`,padding:`24px`},onClick:e=>e.stopPropagation(),children:[(0,Z.jsx)(`h2`,{style:{fontSize:`20px`,fontWeight:`600`,marginBottom:`16px`},children:`Save Layout Preset`}),g&&(0,Z.jsx)(`div`,{style:{marginBottom:`16px`,padding:`12px`,backgroundColor:`#fef2f2`,border:`1px solid #fecaca`,borderRadius:`4px`},children:(0,Z.jsx)(`p`,{style:{fontSize:`14px`,color:`#dc2626`},children:g})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,Z.jsx)(`label`,{htmlFor:`preset-name`,style:{display:`block`,fontSize:`14px`,fontWeight:`500`,color:`#374151`,marginBottom:`4px`},children:`Preset Name *`}),(0,Z.jsx)(`input`,{id:`preset-name`,type:`text`,value:u,onChange:e=>d(e.target.value),style:{width:`100%`,padding:`8px 12px`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`14px`},placeholder:`e.g., Sales Dashboard Layout`,autoFocus:!0})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{htmlFor:`preset-description`,style:{display:`block`,fontSize:`14px`,fontWeight:`500`,color:`#374151`,marginBottom:`4px`},children:`Description (optional)`}),(0,Z.jsx)(`textarea`,{id:`preset-description`,value:f,onChange:e=>p(e.target.value),style:{width:`100%`,padding:`8px 12px`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`14px`},placeholder:`Add a description...`,rows:3})]})]}),(0,Z.jsxs)(`div`,{style:{marginTop:`24px`,display:`flex`,gap:`12px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{onClick:()=>{l(!1),d(``),p(``),_(null)},style:{padding:`8px 16px`,fontSize:`14px`,color:`#374151`,backgroundColor:`#f3f4f6`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#e5e7eb`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`#f3f4f6`,disabled:m,children:`Cancel`}),(0,Z.jsx)(`button`,{onClick:y,style:{padding:`8px 16px`,fontSize:`14px`,color:`white`,backgroundColor:`#2563eb`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#1d4ed8`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`#2563eb`,disabled:m,children:m?`Saving...`:`Save Preset`})]})]})})]})]})},cr=({x:e,y:t,items:n,onClose:r})=>{let i=(0,b.useRef)(null);(0,b.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r()},t=e=>{i.current&&!i.current.contains(e.target)&&(e.preventDefault(),r())},n=setTimeout(()=>{document.addEventListener(`mousedown`,e),document.addEventListener(`contextmenu`,t)},100);return()=>{clearTimeout(n),document.removeEventListener(`mousedown`,e),document.removeEventListener(`contextmenu`,t)}},[r]),(0,b.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[r]),(0,b.useEffect)(()=>{if(i.current){let n=i.current,r=n.getBoundingClientRect(),a=window.innerWidth,o=window.innerHeight,s=e,c=t;r.right>a&&(s=a-r.width-10),r.bottom>o&&(c=o-r.height-10),(s!==e||c!==t)&&(n.style.left=`${s}px`,n.style.top=`${c}px`)}},[e,t]);let a=(0,b.useCallback)(e=>{e.disabled||e.type===`separator`||(e.onClick&&e.onClick(),e.submenu||r())},[r]),o=(e,t)=>e.type===`separator`?(0,Z.jsx)(`div`,{className:`context-menu-separator`,role:`separator`},`separator-${t}`):(0,Z.jsxs)(`div`,{className:`context-menu-item ${e.disabled?`disabled`:``} ${e.danger?`danger`:``}`,onClick:()=>a(e),role:`menuitem`,"aria-disabled":e.disabled,tabIndex:e.disabled?-1:0,children:[e.icon&&(0,Z.jsx)(`span`,{className:`context-menu-icon`,children:e.icon}),(0,Z.jsx)(`span`,{className:`context-menu-label`,children:e.label}),e.shortcut&&(0,Z.jsx)(`span`,{className:`context-menu-shortcut`,children:e.shortcut}),e.submenu&&(0,Z.jsx)(`span`,{className:`context-menu-arrow`,children:`▶`})]},e.id||t);return(0,Z.jsx)(`div`,{ref:i,className:`context-menu`,style:{left:e,top:t},role:`menu`,"aria-label":`Context menu`,children:n.map((e,t)=>o(e,t))})},lr=async(e,t,n,r=!1)=>{let i=Array.from(e),a=n.filter(e=>i.includes(e.id));if(a.length===0)return;let o=``;r&&(o+=t.map(e=>e.headerName).join(` `)+`
40
+ `);Wn(new Blob([a],{type:`text/csv;charset=utf-8;`}),n)},Hn=async(e,t,n={})=>{let{filename:r=`export.xlsx`,styling:i=`basic`}=n,a=new Bn.default.Workbook,o=a.addWorksheet(`Sheet1`),s=t.map(e=>e.headerName);o.addRow(s),e.forEach(e=>{let n=t.map(t=>e[t.field]??``);o.addRow(n)}),o.columns=t.map(t=>{let n=t.headerName.length,r=Math.max(...e.map(e=>String(e[t.field]??``).length)),i=Math.max(n,r)+2;return{width:Math.min(i,50)}}),i===`professional`&&Un(o,t);let c=await a.xlsx.writeBuffer();Wn(new Blob([c],{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}),r)};var Un=(e,t)=>{let n=e.getRow(1);n.font={bold:!0,color:{argb:`FFFFFFFF`},size:11},n.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:`FF2F5496`}},n.alignment={horizontal:`center`,vertical:`middle`,wrapText:!0},n.height=20,e.eachRow((e,t)=>{e.eachCell(e=>{e.border={top:{style:`thin`,color:{argb:`FFD3D3D3`}},left:{style:`thin`,color:{argb:`FFD3D3D3`}},bottom:{style:`thin`,color:{argb:`FFD3D3D3`}},right:{style:`thin`,color:{argb:`FFD3D3D3`}}},t>1&&t%2==0&&(e.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:`FFF2F2F2`}}),t>1&&(e.alignment={horizontal:`left`,vertical:`middle`})})}),e.views=[{state:`frozen`,ySplit:1}]},Wn=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)};const Gn=(e,t)=>{let n=new Date().toISOString().replace(/[:.]/g,`-`).slice(0,-5);return`data_export_${t===`all`?`full`:t}_${n}.${e}`},Kn=async(e,t,n)=>{if(e.length===0){alert(`No data to export`);return}let r=n.filename||Gn(n.format,n.scope);n.format===`csv`?Vn(e,t,r):n.format===`xlsx`&&await Hn(e,t,{filename:r,styling:n.styling})},qn=({columns:e,fullDataset:t,filteredData:n,selectedRows:r,currentPageData:i,onExport:a})=>{let[o,s]=(0,b.useState)(!1),[c,l]=(0,b.useState)(`csv`),[u,d]=(0,b.useState)(`filtered`),[f,p]=(0,b.useState)(`basic`),[m,h]=(0,b.useState)(null),g=b.useRef(null),_=()=>{switch(u){case`all`:return t;case`filtered`:return n;case`selected`:return r.size>0?n.filter(e=>r.has(e.id)):[];case`page`:return i;default:return n}},v=()=>{let t=_();if(t.length===0){alert(`No ${u===`selected`?`selected`:u} data to export`);return}Kn(t,e,{format:c,scope:u,styling:c===`xlsx`?f:void 0}),a?.(!0),s(!1)},y=[{value:`all`,label:`Full Dataset`,disabled:!1},{value:`filtered`,label:`Filtered Data`,disabled:n.length===0},{value:`selected`,label:`Selected Rows (${r.size})`,disabled:r.size===0},{value:`page`,label:`Current Page`,disabled:i.length===0}];return(0,Z.jsxs)(`div`,{style:{position:`relative`},children:[(0,Z.jsxs)(`button`,{ref:g,onClick:()=>{if(!o){let e=g.current?.getBoundingClientRect();e&&h(e)}s(!o)},style:{padding:`8px 12px`,backgroundColor:`#2563eb`,color:`white`,borderRadius:`6px`,border:`none`,fontSize:`14px`,fontWeight:`500`,display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,transition:`background-color 0.2s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#1d4ed8`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`#2563eb`},title:`Export data to CSV or XLSX format`,children:[(0,Z.jsx)(`svg`,{style:{width:`16px`,height:`16px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M12 19l9 2-9-18-9 18 9-2m0 0v-8m0 8l-6-4m6 4l6-4`})}),`Export`]}),o&&m&&(0,Z.jsxs)(`div`,{style:{position:`fixed`,left:`${m.left}px`,top:`${m.bottom+8}px`,backgroundColor:`#ffffff`,border:`1px solid #e5e7eb`,borderRadius:`8px`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.05)`,zIndex:50,padding:`20px`,width:`420px`,minWidth:`420px`,maxWidth:`420px`,maxHeight:`90vh`,overflowY:`auto`},children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Format`}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`16px`},children:[(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`format`,value:`csv`,checked:c===`csv`,onChange:e=>l(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`CSV`})]}),(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`format`,value:`xlsx`,checked:c===`xlsx`,onChange:e=>l(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`XLSX (Excel)`})]})]})]}),(0,Z.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Data Scope`}),(0,Z.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`10px`},children:y.map(e=>(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`10px`,padding:`10px 12px`,borderRadius:`6px`,cursor:e.disabled?`not-allowed`:`pointer`,opacity:e.disabled?.5:1,backgroundColor:`transparent`,transition:`background-color 0.15s`,userSelect:`none`},onMouseEnter:t=>{e.disabled||(t.currentTarget.style.backgroundColor=`#f3f4f6`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`scope`,value:e.value,checked:u===e.value,onChange:e=>d(e.target.value),disabled:e.disabled,style:{width:`16px`,height:`16px`,cursor:e.disabled?`not-allowed`:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:e.label})]},e.value))})]}),c===`xlsx`&&(0,Z.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Styling`}),(0,Z.jsx)(`div`,{style:{marginBottom:`10px`},children:(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`16px`},children:[(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`styling`,value:`basic`,checked:f===`basic`,onChange:e=>p(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`Basic`})]}),(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Z.jsx)(`input`,{type:`radio`,name:`styling`,value:`professional`,checked:f===`professional`,onChange:e=>p(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`Professional`})]})]})}),(0,Z.jsx)(`p`,{style:{fontSize:`12px`,color:`#6b7280`,margin:`0`},children:`Professional adds colors, borders, and frozen header row`})]}),(0,Z.jsxs)(`div`,{style:{backgroundColor:`#f3f4f6`,borderRadius:`6px`,padding:`12px`,marginBottom:`20px`,fontSize:`13px`,color:`#4b5563`},children:[(0,Z.jsxs)(`p`,{style:{margin:`6px 0`},children:[(0,Z.jsx)(`strong`,{children:`Data to export:`}),` `,_().length,` row(s)`]}),(0,Z.jsxs)(`p`,{style:{margin:`6px 0`},children:[(0,Z.jsx)(`strong`,{children:`Columns:`}),` `,e.length]})]}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`10px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{onClick:()=>s(!1),style:{padding:`10px 16px`,border:`1px solid #d1d5db`,color:`#374151`,backgroundColor:`#ffffff`,borderRadius:`6px`,fontSize:`14px`,fontWeight:`500`,cursor:`pointer`,transition:`background-color 0.2s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#f9fafb`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`#ffffff`},children:`Cancel`}),(0,Z.jsx)(`button`,{onClick:v,disabled:_().length===0,style:{padding:`10px 16px`,backgroundColor:_().length===0?`#9ca3af`:`#2563eb`,color:`#ffffff`,borderRadius:`6px`,border:`none`,fontSize:`14px`,fontWeight:`500`,cursor:_().length===0?`not-allowed`:`pointer`,opacity:_().length===0?.6:1,transition:`background-color 0.2s`},onMouseEnter:e=>{_().length>0&&(e.currentTarget.style.backgroundColor=`#1d4ed8`)},onMouseLeave:e=>{_().length>0&&(e.currentTarget.style.backgroundColor=`#2563eb`)},children:`Export Now`})]})]}),o&&(0,Z.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:40},onClick:()=>s(!1)})]})};var Jn=e=>{if(e.filterType)return e.filterType===`multi`?`set`:e.filterType;let t=e.field.toLowerCase();return t.includes(`date`)||t.includes(`time`)?`date`:t.includes(`salary`)||t.includes(`price`)||t.includes(`amount`)||t.includes(`count`)?`number`:t.includes(`status`)||t.includes(`department`)||t.includes(`category`)?`set`:`text`},Yn=e=>{switch(e){case`text`:return[{value:`contains`,label:`Contains`},{value:`notContains`,label:`Not Contains`},{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Not Equals`},{value:`startsWith`,label:`Starts With`},{value:`endsWith`,label:`Ends With`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`number`:return[{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Not Equals`},{value:`greaterThan`,label:`Greater Than`},{value:`greaterThanOrEqual`,label:`Greater Than or Equal`},{value:`lessThan`,label:`Less Than`},{value:`lessThanOrEqual`,label:`Less Than or Equal`},{value:`inRange`,label:`In Range`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`date`:return[{value:`equals`,label:`Equals`},{value:`before`,label:`Before`},{value:`after`,label:`After`},{value:`inRange`,label:`In Range`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`set`:return[{value:`in`,label:`In`},{value:`notIn`,label:`Not In`}];default:return[]}},Xn=e=>![`isEmpty`,`isNotEmpty`].includes(e),Zn=e=>e===`inRange`,Qn=e=>[`in`,`notIn`].includes(e);const $n=({column:e,filterValue:t,onApply:n,onClose:r,rows:i,anchorEl:a})=>{let o=Jn(e),s=Yn(o),c=t?.conditions||[{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}],[l,u]=(0,b.useState)(t?.operator||`AND`),[d,f]=(0,b.useState)(c),[p,m]=(0,b.useState)({}),h=o===`set`?Array.from(new Set(i.map(t=>t[e.field]).filter(e=>e!=null))):[],g=()=>{f([...d,{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}])},_=e=>{if(d.length>1){f(d.filter((t,n)=>n!==e));let t={...p};delete t[e],m(t)}},v=(e,t)=>{f(d.map((n,r)=>r===e?{...n,...t}:n))},y=(e,t)=>{m({...p,[e]:t})},x=()=>{let e=d.filter(e=>Xn(e.type)?Qn(e.type)?e.values&&e.values.length>0:Zn(e.type)?e.value!=null&&e.value!==``&&e.value2!=null&&e.value2!==``:e.value!=null&&e.value!==``:!0);e.length===0?n(null):n({operator:l,conditions:e}),r()},S=()=>{f([{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}]),m({}),n(null)},C=()=>{f([{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}]),u(`AND`),m({})},w=(e,t)=>{if(Qn(e.type)){let n=new Set(e.values||[]),r=p[t]?.searchTerm||``,i=h.filter(e=>String(e).toLowerCase().includes(r.toLowerCase())),a=e=>{let r=new Set(n);r.has(e)?r.delete(e):r.add(e),v(t,{values:Array.from(r)})};return(0,Z.jsxs)(`div`,{style:{marginTop:`8px`},children:[(0,Z.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`,marginBottom:`8px`},value:r,onChange:e=>y(t,{searchTerm:e.target.value}),placeholder:`Search values...`}),(0,Z.jsxs)(`div`,{style:{maxHeight:`150px`,overflowY:`auto`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,padding:`4px`},children:[(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,cursor:`pointer`,padding:`4px 6px`,fontSize:`var(--grid-font-size-sm, 12px)`},children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:n.size===i.length&&i.length>0,onChange:()=>{n.size===i.length?v(t,{values:[]}):v(t,{values:i})},style:{width:`14px`,height:`14px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontWeight:500,color:`var(--grid-text)`},children:`(Select All)`})]}),i.map((e,t)=>(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,cursor:`pointer`,padding:`4px 6px`,fontSize:`var(--grid-font-size-sm, 12px)`},children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:n.has(e),onChange:()=>a(e),style:{width:`14px`,height:`14px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{color:`var(--grid-text)`},children:String(e)})]},t))]}),n.size>0&&(0,Z.jsxs)(`div`,{style:{marginTop:`6px`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-primary)`,fontWeight:500},children:[n.size,` selected`]})]})}return Xn(e.type)?Zn(e.type)?(0,Z.jsxs)(`div`,{style:{marginTop:`8px`,display:`flex`,gap:`8px`,alignItems:`center`},children:[(0,Z.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{flex:1,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value||``,onChange:e=>v(t,{value:e.target.value}),placeholder:`From`}),(0,Z.jsx)(`span`,{style:{color:`var(--grid-text-secondary)`,fontSize:`var(--grid-font-size-sm, 12px)`},children:`to`}),(0,Z.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{flex:1,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value2||``,onChange:e=>v(t,{value2:e.target.value}),placeholder:`To`})]}):(0,Z.jsx)(`div`,{style:{marginTop:`8px`},children:(0,Z.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value||``,onChange:e=>v(t,{value:e.target.value}),placeholder:`Enter ${o}...`})}):null};return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:a?a.getBoundingClientRect().bottom+5:0,left:a?a.getBoundingClientRect().left:0,minWidth:`380px`,maxWidth:`450px`,maxHeight:`600px`,backgroundColor:`var(--grid-bg)`,boxShadow:`0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 10px 10px -5px rgba(0, 0, 0, 0.1)`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1001,display:`flex`,flexDirection:`column`,overflowY:`auto`},onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`16px`,paddingBottom:`12px`,borderBottom:`1px solid var(--grid-border)`},children:[(0,Z.jsxs)(`h4`,{style:{margin:0,fontSize:`var(--grid-font-size, 14px)`,fontWeight:600,color:`var(--grid-text)`},children:[`Advanced Filter: `,e.headerName]}),(0,Z.jsx)(`p`,{style:{margin:`4px 0 0 0`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-text-secondary)`},children:`Add multiple conditions with AND/OR logic`})]}),d.length>1&&(0,Z.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`6px`},children:`Combine Conditions`}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,Z.jsx)(`button`,{style:{flex:1,padding:`6px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:l===`AND`?`var(--grid-text-inverse)`:`var(--grid-text)`,backgroundColor:l===`AND`?`var(--grid-primary)`:`var(--grid-bg-alt)`,border:l===`AND`?`none`:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:()=>u(`AND`),children:`AND`}),(0,Z.jsx)(`button`,{style:{flex:1,padding:`6px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:l===`OR`?`var(--grid-text-inverse)`:`var(--grid-text)`,backgroundColor:l===`OR`?`var(--grid-primary)`:`var(--grid-bg-alt)`,border:l===`OR`?`none`:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:()=>u(`OR`),children:`OR`})]})]}),(0,Z.jsx)(`div`,{style:{flex:1,overflowY:`auto`,marginBottom:`12px`},children:d.map((e,t)=>(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`,padding:`12px`,backgroundColor:`var(--grid-bg-alt)`,borderRadius:`var(--grid-border-radius, 6px)`,border:`1px solid var(--grid-border)`},children:[(0,Z.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:`8px`},children:[(0,Z.jsxs)(`label`,{style:{fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`},children:[`Condition `,t+1]}),d.length>1&&(0,Z.jsx)(`button`,{style:{padding:`2px 8px`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-danger, #dc2626)`,backgroundColor:`transparent`,border:`none`,cursor:`pointer`,borderRadius:`var(--grid-border-radius, 4px)`},onClick:()=>_(t),onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-danger-bg, rgba(220, 38, 38, 0.1))`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Remove condition`,children:`✕`})]}),(0,Z.jsx)(`select`,{style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.type,onChange:e=>v(t,{type:e.target.value,value:``,value2:``,values:[]}),children:s.map(e=>(0,Z.jsx)(`option`,{value:e.value,children:e.label},e.value))}),w(e,t),t<d.length-1&&d.length>1&&(0,Z.jsx)(`div`,{style:{marginTop:`12px`,padding:`4px 8px`,textAlign:`center`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:600,color:`var(--grid-primary)`,backgroundColor:`var(--grid-primary-bg)`,borderRadius:`var(--grid-border-radius, 4px)`},children:l})]},t))}),(0,Z.jsx)(`button`,{style:{width:`100%`,padding:`8px 12px`,marginBottom:`12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-primary)`,backgroundColor:`var(--grid-primary-bg)`,border:`1px dashed var(--grid-primary)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:g,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover-bg)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-bg)`,children:`+ Add Condition`}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,paddingTop:`12px`,borderTop:`1px solid var(--grid-border)`},children:[(0,Z.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:C,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Reset`}),(0,Z.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:S,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:x,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})};var er=e=>e!=null&&`operator`in e&&`conditions`in e,tr=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=er(e)?null:e,s=o?.type||`contains`,c=o?.value||``,[l,u]=(0,b.useState)(s),[d,f]=(0,b.useState)(c);return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow-medium, 0 10px 15px -3px rgba(0, 0, 0, 0.1))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Z.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:l,onChange:e=>u(e.target.value),children:[(0,Z.jsx)(`option`,{value:`contains`,children:`Contains`}),(0,Z.jsx)(`option`,{value:`notContains`,children:`Not Contains`}),(0,Z.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Z.jsx)(`option`,{value:`startsWith`,children:`Starts With`}),(0,Z.jsx)(`option`,{value:`endsWith`,children:`Ends With`})]})]}),(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Value`}),(0,Z.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`8px 12px`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:d,onChange:e=>f(e.target.value),placeholder:`Enter text...`,autoFocus:!0})]}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{f(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{t(d?{type:l,value:d}:null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},nr=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=er(e)?null:e,s=o?.type||`equals`,c=o?.value||``,l=o?.value2||``,[u,d]=(0,b.useState)(s),[f,p]=(0,b.useState)(c),[m,h]=(0,b.useState)(l);return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Z.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:u,onChange:e=>d(e.target.value),children:[(0,Z.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Z.jsx)(`option`,{value:`notEquals`,children:`Not Equals`}),(0,Z.jsx)(`option`,{value:`greaterThan`,children:`Greater Than`}),(0,Z.jsx)(`option`,{value:`greaterThanOrEqual`,children:`Greater Than or Equal`}),(0,Z.jsx)(`option`,{value:`lessThan`,children:`Less Than`}),(0,Z.jsx)(`option`,{value:`lessThanOrEqual`,children:`Less Than or Equal`}),(0,Z.jsx)(`option`,{value:`inRange`,children:`In Range`})]})]}),(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Value`}),(0,Z.jsx)(`input`,{type:`number`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),placeholder:`Enter number...`,autoFocus:!0})]}),u===`inRange`&&(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`To`}),(0,Z.jsx)(`input`,{type:`number`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:m,onChange:e=>h(e.target.value),placeholder:`Enter max value...`})]}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{p(``),h(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{if(f){let e={type:u,value:parseFloat(f)};u===`inRange`&&m&&(e.value2=parseFloat(m)),t(e)}else t(null);n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},rr=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=er(e)?null:e,s=o?.type||`equals`,c=o?.value||``,l=o?.value2||``,[u,d]=(0,b.useState)(s),[f,p]=(0,b.useState)(c),[m,h]=(0,b.useState)(l);return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Z.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:u,onChange:e=>d(e.target.value),children:[(0,Z.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Z.jsx)(`option`,{value:`before`,children:`Before`}),(0,Z.jsx)(`option`,{value:`after`,children:`After`}),(0,Z.jsx)(`option`,{value:`inRange`,children:`In Range`})]})]}),(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Date`}),(0,Z.jsx)(`input`,{type:`date`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),autoFocus:!0})]}),u===`inRange`&&(0,Z.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Z.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`To`}),(0,Z.jsx)(`input`,{type:`date`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:m,onChange:e=>h(e.target.value)})]}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{p(``),h(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{if(f){let e={type:u,value:f};u===`inRange`&&m&&(e.value2=m),t(e)}else t(null);n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},ir=({column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a,showAdvancedButton:o,onSwitchToAdvanced:s})=>{let c=Array.from(new Set(i.map(t=>t[e.field]).filter(e=>e!=null))),l=er(t)?null:t,[u,d]=(0,b.useState)(l&&l.values?new Set(l.values):new Set),[f,p]=(0,b.useState)(``),m=c.filter(e=>String(e).toLowerCase().includes(f.toLowerCase())),h=e=>{let t=new Set(u);t.has(e)?t.delete(e):t.add(e),d(t)};return(0,Z.jsxs)(`div`,{style:{position:`fixed`,top:a?a.getBoundingClientRect().bottom+5:0,left:a?a.getBoundingClientRect().left:0,minWidth:`280px`,maxHeight:`400px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3,display:`flex`,flexDirection:`column`},onClick:e=>e.stopPropagation(),children:[(0,Z.jsx)(`div`,{style:{marginBottom:`12px`},children:(0,Z.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),placeholder:`Search values...`,autoFocus:!0})}),(0,Z.jsx)(`div`,{style:{marginBottom:`8px`},children:(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,padding:`8px`,borderRadius:`4px`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:u.size===m.length&&m.length>0,onChange:()=>{u.size===m.length?d(new Set):d(new Set(m))},style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`},children:`(Select All)`})]})}),(0,Z.jsx)(`div`,{style:{flex:1,overflowY:`auto`,marginBottom:`12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,maxHeight:`200px`},children:m.map((e,t)=>(0,Z.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,padding:`8px`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:u.has(e),onChange:()=>h(e),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Z.jsx)(`span`,{style:{fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`},children:String(e)})]},t))}),(0,Z.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`,paddingTop:`8px`,borderTop:`1px solid var(--grid-border)`},children:[(0,Z.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{d(new Set),n(null),r()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Z.jsxs)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{u.size>0?n({type:`set`,values:Array.from(u)}):n(null),r()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:[`Apply (`,u.size,`)`]})]})]})},ar=({column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a})=>(0,Z.jsx)(ir,{column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a});const or=({columns:e,displayColumnOrder:t,columnWidths:n,filterConfig:r,dispatch:i,pinnedLeft:a,pinnedRight:o,rows:s})=>{let[c,l]=(0,b.useState)(null),[u,d]=(0,b.useState)({}),[f,p]=(0,b.useState)(null),m=new Set(a),h=new Set(o),g={},_=0;a.forEach(e=>{g[e]=_,_+=n[e]||150});let v={},y=0;[...o].reverse().forEach(e=>{v[e]=y,y+=n[e]||150});let x=new Map(e.map(e=>[e.field,e])),S=e=>{let t={width:`${n[e]||150}px`};return m.has(e)?(t.position=`sticky`,t.left=`${g[e]}px`,t.zIndex=20,t.backgroundColor=`var(--grid-header-bg)`):h.has(e)&&(t.position=`sticky`,t.right=`${v[e]}px`,t.zIndex=20,t.backgroundColor=`var(--grid-header-bg)`),t},C=e=>{if(e.filterType)return e.filterType;let t=e.field.toLowerCase();return t.includes(`date`)||t.includes(`time`)?`date`:t.includes(`salary`)||t.includes(`price`)||t.includes(`amount`)||t.includes(`count`)?`number`:t.includes(`status`)||t.includes(`department`)||t.includes(`category`)?`set`:`text`},w=(e,t)=>{t.stopPropagation();let n=r[e];er(n)||t.shiftKey?(d({...u,[e]:t.currentTarget}),p(e),l(null)):(d({...u,[e]:t.currentTarget}),l(e),p(null))},T=()=>{l(null),p(null)},E=(e,t)=>{i({type:`SET_FILTER`,payload:{field:e,value:t}})},D=e=>{l(null),p(e)};(0,b.useEffect)(()=>{let e=()=>{c&&l(null)};if(c)return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[c]);let O=e=>{let t=C(e),n={column:e,filterValue:r[e.field],onApplyFilter:t=>E(e.field,t),onClose:T,rows:s,anchorEl:u[e.field],showAdvancedButton:!0,onSwitchToAdvanced:()=>D(e.field)};switch(t){case`number`:return(0,Z.jsx)(nr,{...n});case`date`:return(0,Z.jsx)(rr,{...n});case`set`:return(0,Z.jsx)(ir,{...n});case`multi`:return(0,Z.jsx)(ar,{...n});default:return(0,Z.jsx)(tr,{...n})}},k=e=>{let t=r[e.field],n=u[e.field];return(0,Z.jsx)($n,{column:e,filterValue:er(t)?t:null,onApply:t=>E(e.field,t),onClose:T,rows:s,anchorEl:n})},A=e=>{let t=r[e];if(!t)return``;if(er(t)){let e=t.conditions.length;return`${e} condition${e>1?`s`:``} (${t.operator})`}return t.type===`set`&&t.values?`${t.values.length} selected`:t.type===`inRange`?`${t.value} - ${t.value2}`:String(t.value||``)},j=e=>!!r[e];return(0,Z.jsx)(Z.Fragment,{children:(0,Z.jsx)(`div`,{style:{display:`flex`,minWidth:`100%`,borderBottom:`1px solid var(--grid-border)`,backgroundColor:`var(--grid-header-bg)`},children:t.map(e=>{let t=x.get(e);if(!t||t.filterable===!1)return(0,Z.jsx)(`div`,{style:{...S(e),borderRight:`1px solid var(--grid-border)`,flexShrink:0,minHeight:`38px`}},e);let n=j(e);return(0,Z.jsxs)(`div`,{style:{...S(e),borderRight:`1px solid var(--grid-border)`,flexShrink:0,padding:`6px 8px`,position:`relative`,display:`flex`,alignItems:`center`},children:[(0,Z.jsx)(`div`,{style:{width:`100%`,cursor:`pointer`},onClick:t=>w(e,t),title:`Click to filter, Shift+Click for advanced filter`,children:(0,Z.jsxs)(`div`,{style:{width:`100%`,padding:`4px 8px`,fontSize:`var(--grid-font-size-sm, 12px)`,border:`1px solid`,borderColor:n?`var(--grid-primary)`:`var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,backgroundColor:n?`var(--grid-primary-bg)`:`var(--grid-bg)`,color:n?`var(--grid-primary)`:`var(--grid-text-secondary)`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`6px`,transition:`border-color 0.15s`},onMouseEnter:e=>{n||(e.currentTarget.style.borderColor=`var(--grid-border-hover)`)},onMouseLeave:e=>{n||(e.currentTarget.style.borderColor=`var(--grid-border)`)},children:[(0,Z.jsx)(`span`,{style:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:n?A(e):`Filter...`}),(0,Z.jsx)(`svg`,{style:{flexShrink:0,color:n?`var(--grid-primary)`:`var(--grid-text-muted)`},width:`12`,height:`12`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,strokeWidth:`2.5`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 4h18v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V20l-4-2v-3.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z`})})]})}),c===e&&O(t),f===e&&k(t)]},e)})})})},sr=({manager:e,currentLayout:t,onLoadPreset:n,onResetLayout:r})=>{let[i,a]=(0,b.useState)([]),[o,s]=(0,b.useState)(!1),[c,l]=(0,b.useState)(!1),[u,d]=(0,b.useState)(``),[f,p]=(0,b.useState)(``),[m,h]=(0,b.useState)(!1),[g,_]=(0,b.useState)(null),v=(0,b.useCallback)(async()=>{try{h(!0),a((await e.listPresets()).filter(e=>e.id!==`__autosave__`)),_(null)}catch(e){_(`Failed to load presets`),console.error(e)}finally{h(!1)}},[e]);(0,b.useEffect)(()=>{v()},[v]);let y=async()=>{if(!u.trim()){_(`Please enter a preset name`);return}try{h(!0);let{createPreset:n}=await w(async()=>{let{createPreset:e}=await import(`./layoutPersistence-ClnecWpt.js`);return{createPreset:e}},[]),r=n(u.trim(),t,f.trim());await e.savePreset(r),await v(),l(!1),d(``),p(``),_(null)}catch(e){_(`Failed to save preset`),console.error(e)}finally{h(!1)}},x=async t=>{try{h(!0);let r=await e.loadPreset(t);r&&(n(r.layout),s(!1),_(null))}catch(e){_(`Failed to load preset`),console.error(e)}finally{h(!1)}},S=async(t,n)=>{if(n.stopPropagation(),confirm(`Are you sure you want to delete this preset?`))try{h(!0),await e.deletePreset(t),await v(),_(null)}catch(e){_(`Failed to delete preset`),console.error(e)}finally{h(!1)}},C=async(n,r)=>{if(r.stopPropagation(),confirm(`Update this preset with current layout?`))try{h(!0);let r={...n,layout:t};await e.savePreset(r),await v(),_(null)}catch(e){_(`Failed to update preset`),console.error(e)}finally{h(!1)}},T=e=>new Date(e).toLocaleString();return(0,Z.jsxs)(`div`,{className:`relative inline-block`,children:[(0,Z.jsxs)(`button`,{onClick:()=>s(!o),style:{padding:`6px 12px`,fontSize:`14px`,backgroundColor:`white`,border:`1px solid #d1d5db`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,gap:`8px`},disabled:m,children:[(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 7h16M4 12h16M4 17h16`})}),`Layout Presets`,(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0,transform:o?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 0.2s`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 9l-7 7-7-7`})})]}),o&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:10},onClick:()=>s(!1)}),(0,Z.jsxs)(`div`,{style:{position:`absolute`,right:0,marginTop:`8px`,width:`320px`,backgroundColor:`white`,border:`1px solid #d1d5db`,borderRadius:`8px`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1)`,zIndex:20,maxHeight:`384px`,overflowY:`auto`},children:[(0,Z.jsx)(`div`,{style:{padding:`12px`,borderBottom:`1px solid #e5e7eb`,backgroundColor:`#f9fafb`},children:(0,Z.jsx)(`h3`,{style:{fontWeight:`600`,fontSize:`14px`,color:`#111827`},children:`Layout Presets`})}),g&&(0,Z.jsx)(`div`,{style:{padding:`12px`,backgroundColor:`#fef2f2`,borderBottom:`1px solid #fecaca`},children:(0,Z.jsx)(`p`,{style:{fontSize:`14px`,color:`#dc2626`},children:g})}),(0,Z.jsxs)(`div`,{style:{padding:`8px`,borderBottom:`1px solid #e5e7eb`,display:`flex`,gap:`8px`},children:[(0,Z.jsxs)(`button`,{onClick:()=>{l(!0),s(!1)},style:{flex:1,padding:`8px 12px`,fontSize:`14px`,backgroundColor:`#2563eb`,color:`white`,border:`none`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`8px`},children:[(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4`})}),`Save Current`]}),(0,Z.jsxs)(`button`,{onClick:()=>{r(),s(!1)},style:{flex:1,padding:`8px 12px`,fontSize:`14px`,backgroundColor:`#4b5563`,color:`white`,border:`none`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`8px`},children:[(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15`})}),`Reset`]})]}),(0,Z.jsx)(`div`,{style:{maxHeight:`256px`,overflowY:`auto`},children:m&&i.length===0?(0,Z.jsx)(`div`,{style:{padding:`16px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`Loading presets...`}):i.length===0?(0,Z.jsx)(`div`,{style:{padding:`16px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`No saved presets. Save your current layout to get started.`}):(0,Z.jsx)(`div`,{children:i.map(e=>(0,Z.jsx)(`div`,{style:{padding:`12px`,cursor:`pointer`,borderBottom:`1px solid #e5e7eb`},onClick:()=>x(e.id),onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#f9fafb`;let t=e.currentTarget.querySelector(`.preset-actions`);t&&(t.style.opacity=`1`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`;let t=e.currentTarget.querySelector(`.preset-actions`);t&&(t.style.opacity=`0`)},children:(0,Z.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`},children:[(0,Z.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,Z.jsx)(`h4`,{style:{fontSize:`14px`,fontWeight:`500`,color:`#111827`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name}),e.description&&(0,Z.jsx)(`p`,{style:{fontSize:`12px`,color:`#6b7280`,marginTop:`4px`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.description}),(0,Z.jsxs)(`p`,{style:{fontSize:`12px`,color:`#9ca3af`,marginTop:`4px`},children:[`Updated: `,T(e.updatedAt)]})]}),(0,Z.jsxs)(`div`,{className:`preset-actions`,style:{display:`flex`,gap:`4px`,marginLeft:`8px`,opacity:0,transition:`opacity 0.2s`},children:[(0,Z.jsx)(`button`,{onClick:t=>C(e,t),style:{padding:`4px`,color:`#2563eb`,backgroundColor:`transparent`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#eff6ff`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Update with current layout`,children:(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15`})})}),(0,Z.jsx)(`button`,{onClick:t=>S(e.id,t),style:{padding:`4px`,color:`#dc2626`,backgroundColor:`transparent`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#fef2f2`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Delete preset`,children:(0,Z.jsx)(`svg`,{style:{width:`14px`,height:`14px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Z.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16`})})})]})]})},e.id))})})]})]}),c&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{style:{position:`fixed`,inset:0,backgroundColor:`rgba(0, 0, 0, 0.5)`,zIndex:30,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>l(!1)}),(0,Z.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:40,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`16px`},children:(0,Z.jsxs)(`div`,{style:{backgroundColor:`white`,borderRadius:`8px`,boxShadow:`0 25px 50px -12px rgba(0, 0, 0, 0.25)`,maxWidth:`448px`,width:`100%`,padding:`24px`},onClick:e=>e.stopPropagation(),children:[(0,Z.jsx)(`h2`,{style:{fontSize:`20px`,fontWeight:`600`,marginBottom:`16px`},children:`Save Layout Preset`}),g&&(0,Z.jsx)(`div`,{style:{marginBottom:`16px`,padding:`12px`,backgroundColor:`#fef2f2`,border:`1px solid #fecaca`,borderRadius:`4px`},children:(0,Z.jsx)(`p`,{style:{fontSize:`14px`,color:`#dc2626`},children:g})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,Z.jsx)(`label`,{htmlFor:`preset-name`,style:{display:`block`,fontSize:`14px`,fontWeight:`500`,color:`#374151`,marginBottom:`4px`},children:`Preset Name *`}),(0,Z.jsx)(`input`,{id:`preset-name`,type:`text`,value:u,onChange:e=>d(e.target.value),style:{width:`100%`,padding:`8px 12px`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`14px`},placeholder:`e.g., Sales Dashboard Layout`,autoFocus:!0})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`label`,{htmlFor:`preset-description`,style:{display:`block`,fontSize:`14px`,fontWeight:`500`,color:`#374151`,marginBottom:`4px`},children:`Description (optional)`}),(0,Z.jsx)(`textarea`,{id:`preset-description`,value:f,onChange:e=>p(e.target.value),style:{width:`100%`,padding:`8px 12px`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`14px`},placeholder:`Add a description...`,rows:3})]})]}),(0,Z.jsxs)(`div`,{style:{marginTop:`24px`,display:`flex`,gap:`12px`,justifyContent:`flex-end`},children:[(0,Z.jsx)(`button`,{onClick:()=>{l(!1),d(``),p(``),_(null)},style:{padding:`8px 16px`,fontSize:`14px`,color:`#374151`,backgroundColor:`#f3f4f6`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#e5e7eb`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`#f3f4f6`,disabled:m,children:`Cancel`}),(0,Z.jsx)(`button`,{onClick:y,style:{padding:`8px 16px`,fontSize:`14px`,color:`white`,backgroundColor:`#2563eb`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#1d4ed8`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`#2563eb`,disabled:m,children:m?`Saving...`:`Save Preset`})]})]})})]})]})},cr=({x:e,y:t,items:n,onClose:r})=>{let i=(0,b.useRef)(null);(0,b.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r()},t=e=>{i.current&&!i.current.contains(e.target)&&(e.preventDefault(),r())},n=setTimeout(()=>{document.addEventListener(`mousedown`,e),document.addEventListener(`contextmenu`,t)},100);return()=>{clearTimeout(n),document.removeEventListener(`mousedown`,e),document.removeEventListener(`contextmenu`,t)}},[r]),(0,b.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[r]),(0,b.useEffect)(()=>{if(i.current){let n=i.current,r=n.getBoundingClientRect(),a=window.innerWidth,o=window.innerHeight,s=e,c=t;r.right>a&&(s=a-r.width-10),r.bottom>o&&(c=o-r.height-10),(s!==e||c!==t)&&(n.style.left=`${s}px`,n.style.top=`${c}px`)}},[e,t]);let a=(0,b.useCallback)(e=>{e.disabled||e.type===`separator`||(e.onClick&&e.onClick(),e.submenu||r())},[r]),o=(e,t)=>e.type===`separator`?(0,Z.jsx)(`div`,{className:`context-menu-separator`,role:`separator`},`separator-${t}`):(0,Z.jsxs)(`div`,{className:`context-menu-item ${e.disabled?`disabled`:``} ${e.danger?`danger`:``}`,onClick:()=>a(e),role:`menuitem`,"aria-disabled":e.disabled,tabIndex:e.disabled?-1:0,children:[e.icon&&(0,Z.jsx)(`span`,{className:`context-menu-icon`,children:e.icon}),(0,Z.jsx)(`span`,{className:`context-menu-label`,children:e.label}),e.shortcut&&(0,Z.jsx)(`span`,{className:`context-menu-shortcut`,children:e.shortcut}),e.submenu&&(0,Z.jsx)(`span`,{className:`context-menu-arrow`,children:`▶`})]},e.id||t);return(0,Z.jsx)(`div`,{ref:i,className:`context-menu`,style:{left:e,top:t},role:`menu`,"aria-label":`Context menu`,children:n.map((e,t)=>o(e,t))})},lr=async(e,t,n,r=!1)=>{let i=Array.from(e),a=n.filter(e=>i.includes(e.id));if(a.length===0)return;let o=``;r&&(o+=t.map(e=>e.headerName).join(` `)+`
41
41
  `),o+=a.map(e=>t.map(t=>{let n=e[t.field];return n==null?``:typeof n==`object`?JSON.stringify(n):String(n)}).join(` `)).join(`
42
42
  `);try{await navigator.clipboard.writeText(o)}catch(e){console.error(`Failed to copy to clipboard:`,e);let t=document.createElement(`textarea`);t.value=o,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t)}},ur=(e,t,n,r=`export.csv`)=>{let i=Array.from(e),a=n.filter(e=>i.includes(e.id));if(a.length===0)return;let o=``;o+=t.map(e=>`"${e.headerName}"`).join(`,`)+`
43
43
  `,o+=a.map(e=>t.map(t=>{let n=e[t.field];return n==null?`""`:typeof n==`object`?`"${JSON.stringify(n).replace(/"/g,`""`)}"`:`"${String(n).replace(/"/g,`""`)}"`}).join(`,`)).join(`
@@ -830,7 +830,7 @@ const [tasks, setTasks] = useState<Row[]>(initialTasks);
830
830
  }
831
831
  }}
832
832
  tableId="task-list"
833
- />`})]})]})},vp=()=>{let[e,t]=(0,b.useState)(!1),[n,r]=(0,b.useState)(!1),[i,a]=(0,b.useState)(!1),[o,s]=(0,b.useState)(!0),c=(0,b.useRef)(null),l=(0,b.useRef)(null),u=(0,b.useRef)(null);(0,b.useEffect)(()=>(c.current||=Ji({flashDuration:250,enableFlash:n,batchInterval:50,maxUpdatesPerFrame:3e3,cpuThreshold:.95,enableLiveSorting:!1,enableRankingMovement:!i}),()=>{c.current&&=(c.current.destroy(),null)}),[]),(0,b.useEffect)(()=>{c.current&&(c.current.config.enableFlash=n,c.current.config.enableRankingMovement=!i)},[n,i]);let[d,f]=(0,b.useState)([]),p=(0,b.useRef)(0),m=(0,b.useRef)(0),h=(0,b.useRef)(0),g=(0,b.useRef)(0);(0,b.useEffect)(()=>{h.current=Date.now();let e=setInterval(()=>{let e=Date.now(),t=(e-h.current)/1e3,n=t>0?Math.round(p.current/t):0;g.current=n,p.current=0,h.current=e;let r=document.querySelector(`.updates-per-sec-badge`);r&&(r.textContent=`${n} updates/s`)},1e3);return()=>clearInterval(e)},[]),(0,b.useEffect)(()=>{if(!c.current)return;let{feed:e,createConnection:t}=Zi({symbols:void 0,updateFrequency:30,priceVolatility:.003,burstProbability:.05,burstSize:3});l.current=e;let n=t();u.current=n;let r=c.current.onUpdate(e=>{f([...e])});return n.onmessage=e=>{try{let t=JSON.parse(e.data);t.type===`snapshot`?(c.current?.initialize(t.data),f([...t.data])):t.type===`tick`&&(p.current++,m.current++,c.current?.processUpdate({rowId:t.symbol,updates:t.updates,timestamp:t.timestamp}))}catch(e){console.error(`Error processing message:`,e)}},n.onopen=()=>{},n.onerror=()=>{},()=>{r(),e.stop(),n.readyState===1&&n.close()}},[ke().pathname]);let _=(0,b.useMemo)(()=>[{field:`symbol`,headerName:`Symbol`,width:100,sortable:!0,filterable:!0},{field:`price`,headerName:`Price`,width:120,sortable:!0,filterable:!0},{field:`change`,headerName:`Change`,width:100,sortable:!0},{field:`changePercent`,headerName:`Change %`,width:110,sortable:!0},{field:`bid`,headerName:`Bid`,width:110,sortable:!0},{field:`ask`,headerName:`Ask`,width:110,sortable:!0},{field:`size`,headerName:`Size`,width:100,sortable:!0},{field:`volume`,headerName:`Volume`,width:120,sortable:!0},{field:`high`,headerName:`High`,width:110,sortable:!0},{field:`low`,headerName:`Low`,width:110,sortable:!0},{field:`open`,headerName:`Open`,width:110,sortable:!0}],[]),v=(0,b.useMemo)(()=>({enabled:!0,flashDuration:500,enableFlash:n,enableLiveSorting:!1,enableRankingMovement:!i,densityMode:e}),[n,i,e]),y=(0,b.useMemo)(()=>({updatesPerSecond:g.current,totalUpdates:m.current,reconnectCount:0}),[]),[x,S]=(0,b.useState)({fps:0,avgFrameTime:0,pendingUpdates:0,activeFlashes:0,rowCount:0,isThrottled:!1});(0,b.useEffect)(()=>{let e=setInterval(()=>{c.current&&S(c.current.getMetrics())},100);return()=>clearInterval(e)},[]);let C=()=>{c.current&&(c.current.isPausedState()?c.current.resume():c.current.pause(),S(c.current.getMetrics()))},w=()=>{t(e=>!e)},T=()=>{r(e=>!e)},E=()=>{a(e=>!e)},D=()=>{s(e=>!e)},O=c.current?.isPausedState()||!1,k=x.isThrottled;return(0,Z.jsxs)(`div`,{className:`live-market-demo`,children:[(0,Z.jsxs)(`div`,{className:`demo-header`,children:[(0,Z.jsx)(`h1`,{children:`Live Market Data Grid`}),(0,Z.jsx)(`p`,{className:`demo-description`,children:`High-performance streaming market data with 400+ updates/sec`})]}),(0,Z.jsxs)(`div`,{className:`demo-controls`,children:[(0,Z.jsxs)(`div`,{className:`control-group`,children:[(0,Z.jsx)(`button`,{className:`control-btn ${O?`paused`:`active`}`,onClick:C,title:O?`Resume live data streaming`:`Pause live data streaming`,children:O?`▶ Resume`:`⏸ Pause`}),(0,Z.jsx)(`button`,{className:`control-btn ${e?`active`:``}`,onClick:w,title:e?`Switch to normal row height`:`Switch to compact row height`,children:e?`□ Normal`:`▪ Compact`}),(0,Z.jsx)(`button`,{className:`control-btn ${n?`active`:``}`,onClick:T,title:n?`Disable cell flash animations on value changes`:`Enable cell flash animations on value changes`,children:n?`✓ Flash On`:`✗ Flash Off`}),(0,Z.jsx)(`button`,{className:`control-btn ${i?`active`:``}`,onClick:E,title:i?`Enable live ranking - rows reorder by rank`:`Freeze ranking - prevent row reordering`,children:i?`🔒 Frozen`:`🔓 Live Rank`}),(0,Z.jsx)(`button`,{className:`control-btn ${o?`active`:``}`,onClick:D,title:o?`Hide performance statistics`:`Show performance statistics`,children:o?`📊 Hide Stats`:`📊 Show Stats`})]}),(0,Z.jsxs)(`div`,{className:`connection-info`,children:[(0,Z.jsx)(`span`,{className:`status-badge connected`,children:`CONNECTED`}),(0,Z.jsx)(`span`,{className:`metric-badge updates-per-sec-badge`,children:`0 updates/s`}),(0,Z.jsxs)(`span`,{className:`metric-badge`,children:[d.length,` symbols`]})]})]}),o&&(0,Z.jsxs)(`div`,{className:`metrics-panel`,children:[(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`FPS:`}),(0,Z.jsx)(`span`,{className:`metric-value ${x.fps<50?`warning`:``}`,children:x.fps})]}),(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`Frame Time:`}),(0,Z.jsxs)(`span`,{className:`metric-value ${x.avgFrameTime>20?`warning`:``}`,children:[x.avgFrameTime.toFixed(2),`ms`]})]}),(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`Pending Updates:`}),(0,Z.jsx)(`span`,{className:`metric-value ${x.pendingUpdates>100?`warning`:``}`,children:x.pendingUpdates})]}),(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`Active Flashes:`}),(0,Z.jsx)(`span`,{className:`metric-value`,children:x.activeFlashes})]}),(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`Total Updates:`}),(0,Z.jsx)(`span`,{className:`metric-value`,children:y.totalUpdates})]}),k&&(0,Z.jsxs)(`div`,{className:`metric-item warning`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`⚠ Status:`}),(0,Z.jsx)(`span`,{className:`metric-value critical`,children:`CPU THROTTLED`})]})]}),(0,Z.jsx)(`div`,{className:`grid-container ${O?`paused`:``} ${k?`throttled`:``}`,children:c.current&&(0,Z.jsx)(Ki,{columns:_,rows:d,engine:c.current,config:v,onRowClick:e=>console.log(`Row clicked:`,e),onCellClick:(e,t,n)=>console.log(`Cell clicked:`,e,t,n)})}),(0,Z.jsx)(`div`,{className:`demo-footer`,children:(0,Z.jsxs)(`p`,{children:[`💡 `,(0,Z.jsx)(`strong`,{children:`Tips:`}),` Use Pause to freeze updates • Enable Compact mode for more data • Flash animations show price direction • Watch CPU throttling in action`]})}),(0,Z.jsxs)(`div`,{style:{marginTop:`32px`,padding:`20px`,backgroundColor:`white`,borderRadius:`8px`},children:[(0,Z.jsx)(`h2`,{style:{fontSize:`20px`,fontWeight:`600`,marginBottom:`16px`,color:`#1f2937`},children:`Implementation Example`}),(0,Z.jsx)(Hf,{title:`Market Data Configuration`,language:`tsx`,code:`import { MarketDataGrid, createMarketDataEngine } from './components/DataGrid';
833
+ />`})]})]})},vp=()=>{let[e,t]=(0,b.useState)(!1),[n,r]=(0,b.useState)(!1),[i,a]=(0,b.useState)(!1),[o,s]=(0,b.useState)(!0),c=(0,b.useRef)(null),l=(0,b.useRef)(null),u=(0,b.useRef)(null);(0,b.useEffect)(()=>(c.current||=Ji({flashDuration:250,enableFlash:n,batchInterval:50,maxUpdatesPerFrame:3e3,cpuThreshold:.95,enableLiveSorting:!1,enableRankingMovement:!i}),()=>{c.current&&=(c.current.destroy(),null)}),[]),(0,b.useEffect)(()=>{c.current&&(c.current.config.enableFlash=n,c.current.config.enableRankingMovement=!i)},[n,i]);let[d,f]=(0,b.useState)([]),p=(0,b.useRef)(0),m=(0,b.useRef)(0),h=(0,b.useRef)(0),g=(0,b.useRef)(0);(0,b.useEffect)(()=>{h.current=Date.now();let e=setInterval(()=>{let e=Date.now(),t=(e-h.current)/1e3,n=t>0?Math.round(p.current/t):0;g.current=n,p.current=0,h.current=e;let r=document.querySelector(`.updates-per-sec-badge`);r&&(r.textContent=`${n} updates/s`)},1e3);return()=>clearInterval(e)},[]),(0,b.useEffect)(()=>{if(!c.current)return;let{feed:e,createConnection:t}=Zi({symbols:void 0,updateFrequency:30,priceVolatility:.003,burstProbability:.05,burstSize:3});l.current=e;let n=t();u.current=n;let r=c.current.onUpdate(e=>{f([...e])});return n.onmessage=e=>{try{let t=JSON.parse(e.data);t.type===`snapshot`?(c.current?.initialize(t.data),f([...t.data])):t.type===`tick`&&(p.current++,m.current++,c.current?.processUpdate({rowId:t.symbol,updates:t.updates,timestamp:t.timestamp}))}catch(e){console.error(`Error processing message:`,e)}},n.onopen=()=>{},n.onerror=()=>{},()=>{r(),e.stop(),n.readyState===1&&n.close()}},[ke().pathname]);let _=(0,b.useMemo)(()=>[{field:`symbol`,headerName:`Symbol`,width:100,sortable:!0,filterable:!0},{field:`price`,headerName:`Price`,width:120,sortable:!0,filterable:!0},{field:`change`,headerName:`Change`,width:100,sortable:!0},{field:`changePercent`,headerName:`Change %`,width:110,sortable:!0},{field:`bid`,headerName:`Bid`,width:110,sortable:!0},{field:`ask`,headerName:`Ask`,width:110,sortable:!0},{field:`size`,headerName:`Size`,width:100,sortable:!0},{field:`volume`,headerName:`Volume`,width:120,sortable:!0},{field:`high`,headerName:`High`,width:110,sortable:!0},{field:`low`,headerName:`Low`,width:110,sortable:!0},{field:`open`,headerName:`Open`,width:110,sortable:!0}],[]),v=(0,b.useMemo)(()=>({enabled:!0,flashDuration:500,enableFlash:n,enableLiveSorting:!1,enableRankingMovement:!i,densityMode:e}),[n,i,e]),y=(0,b.useMemo)(()=>({updatesPerSecond:g.current,totalUpdates:m.current,reconnectCount:0}),[]),[x,S]=(0,b.useState)({fps:0,avgFrameTime:0,pendingUpdates:0,activeFlashes:0,rowCount:0,isThrottled:!1});(0,b.useEffect)(()=>{let e=setInterval(()=>{c.current&&S(c.current.getMetrics())},100);return()=>clearInterval(e)},[]);let C=()=>{c.current&&(c.current.isPausedState()?c.current.resume():c.current.pause(),S(c.current.getMetrics()))},w=()=>{t(e=>!e)},T=()=>{r(e=>!e)},E=()=>{a(e=>!e)},D=()=>{s(e=>!e)},O=c.current?.isPausedState()||!1,k=x.isThrottled;return(0,Z.jsxs)(`div`,{className:`live-market-demo`,children:[(0,Z.jsxs)(`div`,{className:`demo-header`,children:[(0,Z.jsx)(`h1`,{children:`Live Market Data Grid`}),(0,Z.jsx)(`p`,{className:`demo-description`,children:`High-performance streaming market data with 1000+ updates/sec`})]}),(0,Z.jsxs)(`div`,{className:`demo-controls`,children:[(0,Z.jsxs)(`div`,{className:`control-group`,children:[(0,Z.jsx)(`button`,{className:`control-btn ${O?`paused`:`active`}`,onClick:C,title:O?`Resume live data streaming`:`Pause live data streaming`,children:O?`▶ Resume`:`⏸ Pause`}),(0,Z.jsx)(`button`,{className:`control-btn ${e?`active`:``}`,onClick:w,title:e?`Switch to normal row height`:`Switch to compact row height`,children:e?`□ Normal`:`▪ Compact`}),(0,Z.jsx)(`button`,{className:`control-btn ${n?`active`:``}`,onClick:T,title:n?`Disable cell flash animations on value changes`:`Enable cell flash animations on value changes`,children:n?`✓ Flash On`:`✗ Flash Off`}),(0,Z.jsx)(`button`,{className:`control-btn ${i?`active`:``}`,onClick:E,title:i?`Enable live ranking - rows reorder by rank`:`Freeze ranking - prevent row reordering`,children:i?`🔒 Frozen`:`🔓 Live Rank`}),(0,Z.jsx)(`button`,{className:`control-btn ${o?`active`:``}`,onClick:D,title:o?`Hide performance statistics`:`Show performance statistics`,children:o?`📊 Hide Stats`:`📊 Show Stats`})]}),(0,Z.jsxs)(`div`,{className:`connection-info`,children:[(0,Z.jsx)(`span`,{className:`status-badge connected`,children:`CONNECTED`}),(0,Z.jsx)(`span`,{className:`metric-badge updates-per-sec-badge`,children:`0 updates/s`}),(0,Z.jsxs)(`span`,{className:`metric-badge`,children:[d.length,` symbols`]})]})]}),o&&(0,Z.jsxs)(`div`,{className:`metrics-panel`,children:[(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`FPS:`}),(0,Z.jsx)(`span`,{className:`metric-value ${x.fps<50?`warning`:``}`,children:x.fps})]}),(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`Frame Time:`}),(0,Z.jsxs)(`span`,{className:`metric-value ${x.avgFrameTime>20?`warning`:``}`,children:[x.avgFrameTime.toFixed(2),`ms`]})]}),(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`Pending Updates:`}),(0,Z.jsx)(`span`,{className:`metric-value ${x.pendingUpdates>100?`warning`:``}`,children:x.pendingUpdates})]}),(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`Active Flashes:`}),(0,Z.jsx)(`span`,{className:`metric-value`,children:x.activeFlashes})]}),(0,Z.jsxs)(`div`,{className:`metric-item`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`Total Updates:`}),(0,Z.jsx)(`span`,{className:`metric-value`,children:y.totalUpdates})]}),k&&(0,Z.jsxs)(`div`,{className:`metric-item warning`,children:[(0,Z.jsx)(`span`,{className:`metric-label`,children:`⚠ Status:`}),(0,Z.jsx)(`span`,{className:`metric-value critical`,children:`CPU THROTTLED`})]})]}),(0,Z.jsx)(`div`,{className:`grid-container ${O?`paused`:``} ${k?`throttled`:``}`,children:c.current&&(0,Z.jsx)(Ki,{columns:_,rows:d,engine:c.current,config:v,onRowClick:e=>console.log(`Row clicked:`,e),onCellClick:(e,t,n)=>console.log(`Cell clicked:`,e,t,n)})}),(0,Z.jsx)(`div`,{className:`demo-footer`,children:(0,Z.jsxs)(`p`,{children:[`💡 `,(0,Z.jsx)(`strong`,{children:`Tips:`}),` Use Pause to freeze updates • Enable Compact mode for more data • Flash animations show price direction • Watch CPU throttling in action`]})}),(0,Z.jsxs)(`div`,{style:{marginTop:`32px`,padding:`20px`,backgroundColor:`white`,borderRadius:`8px`},children:[(0,Z.jsx)(`h2`,{style:{fontSize:`20px`,fontWeight:`600`,marginBottom:`16px`,color:`#1f2937`},children:`Implementation Example`}),(0,Z.jsx)(Hf,{title:`Market Data Configuration`,language:`tsx`,code:`import { MarketDataGrid, createMarketDataEngine } from './components/DataGrid';
834
834
 
835
835
  // Create market data engine
836
836
  const engine = createMarketDataEngine({
@@ -1 +1 @@
1
- import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./index-DLURCdJA.js";export{e as createPreset};
1
+ import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./index-C7Pq1adu.js";export{e as createPreset};
package/dist/index.html CHANGED
@@ -68,7 +68,7 @@
68
68
  }
69
69
  }(window.location))
70
70
  </script>
71
- <script type="module" crossorigin src="/assets/index-DLURCdJA.js"></script>
71
+ <script type="module" crossorigin src="/assets/index-C7Pq1adu.js"></script>
72
72
  <link rel="stylesheet" crossorigin href="/assets/index-DqLWhpvP.css">
73
73
  </head>
74
74
  <body>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-open-source-grid",
3
3
  "private": false,
4
- "version": "1.3.2",
4
+ "version": "1.3.3",
5
5
  "type": "module",
6
6
  "description": "A high-performance React DataGrid component with advanced features like virtual scrolling, infinite scrolling, tree data, market data mode, and more",
7
7
  "main": "./dist/assets/index.js",