@alaarab/ogrid-react-material 2.5.5 → 2.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,40 +1,6 @@
1
- <p align="center">
2
- <strong>OGrid for React Material</strong> — The lightweight React data grid with enterprise features and zero enterprise cost.
3
- </p>
1
+ # @alaarab/ogrid-react-material
4
2
 
5
- <p align="center">
6
- <a href="https://www.npmjs.com/package/@alaarab/ogrid-react-material"><img src="https://img.shields.io/npm/v/@alaarab/ogrid-react-material?color=%23217346&label=npm" alt="npm version" /></a>
7
- <a href="https://github.com/alaarab/ogrid/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT License" /></a>
8
- <img src="https://img.shields.io/badge/React-17%20%7C%2018%20%7C%2019-blue" alt="React 17, 18, 19" />
9
- <img src="https://img.shields.io/badge/TypeScript-strict-blue" alt="TypeScript strict" />
10
- </p>
11
-
12
- <p align="center">
13
- <a href="https://alaarab.github.io/ogrid/">Documentation</a> · <a href="https://alaarab.github.io/ogrid/docs/getting-started/overview">Getting Started</a> · <a href="https://alaarab.github.io/ogrid/docs/api/ogrid-props">API Reference</a>
14
- </p>
15
-
16
- ---
17
-
18
- OGrid data grid for **[Material UI v7](https://mui.com/)**, built on MUI Table. Also available for [Radix UI](https://www.npmjs.com/package/@alaarab/ogrid-react-radix) (default, lightweight) and [Fluent UI](https://www.npmjs.com/package/@alaarab/ogrid-react-fluent). Same API, just swap the import.
19
-
20
- ## Why OGrid?
21
-
22
- | | OGrid | AG Grid Community | AG Grid Enterprise |
23
- |---|---|---|---|
24
- | Spreadsheet selection | Built-in | - | $999/dev/year |
25
- | Clipboard (copy/paste) | Built-in | - | $999/dev/year |
26
- | Fill handle | Built-in | - | $999/dev/year |
27
- | Undo/redo | Built-in | - | $999/dev/year |
28
- | Context menu | Built-in | - | $999/dev/year |
29
- | Status bar | Built-in | - | $999/dev/year |
30
- | Side bar | Built-in | - | $999/dev/year |
31
- | Cell editing | Built-in | Built-in | Built-in |
32
- | Sorting & filtering | Built-in | Built-in | Built-in |
33
- | **License** | **MIT (free)** | MIT | Commercial |
34
-
35
- ## Features
36
-
37
- Sorting · Filtering (text, multi-select, date range, people picker) · Pagination · Cell editing (inline, select, checkbox, rich select, date, custom popover) · Spreadsheet selection · Clipboard · Fill handle · Undo/redo · Row selection · Column groups · Column pinning · Column resize · Column chooser · Side bar · Context menu · Status bar with aggregations · CSV export · Grid API · Server-side data · Column state persistence · Keyboard navigation (Excel-style Ctrl+Arrow) · Built-in column types (text, numeric, date, boolean) · React 17/18/19 · TypeScript strict
3
+ OGrid data grid for React, built with Material UI v7.
38
4
 
39
5
  ## Install
40
6
 
@@ -42,46 +8,17 @@ Sorting · Filtering (text, multi-select, date range, people picker) · Paginati
42
8
  npm install @alaarab/ogrid-react-material
43
9
  ```
44
10
 
45
- ### Peer Dependencies
46
-
47
- ```
48
- @mui/material ^7.0.0
49
- @mui/icons-material ^7.0.0
50
- @emotion/react ^11.0.0
51
- @emotion/styled ^11.0.0
52
- react ^17.0.0 || ^18.0.0 || ^19.0.0
53
- react-dom ^17.0.0 || ^18.0.0 || ^19.0.0
54
- ```
55
-
56
- ## Quick Start
11
+ ## Usage
57
12
 
58
13
  ```tsx
59
14
  import { OGrid, type IColumnDef } from '@alaarab/ogrid-react-material';
60
15
 
61
16
  const columns: IColumnDef<Employee>[] = [
62
17
  { columnId: 'name', name: 'Name', sortable: true, editable: true },
63
- { columnId: 'department', name: 'Department',
64
- filterable: { type: 'multiSelect' },
65
- cellEditor: 'richSelect', cellEditorParams: { values: ['Engineering', 'Sales', 'Marketing'] } },
66
- { columnId: 'salary', name: 'Salary', type: 'numeric', editable: true,
67
- valueFormatter: (v) => `$${Number(v).toLocaleString()}` },
18
+ { columnId: 'department', name: 'Department', filterable: { type: 'multiSelect' } },
68
19
  ];
69
20
 
70
- <OGrid
71
- columns={columns}
72
- data={employees}
73
- getRowId={(e) => e.id}
74
- editable
75
- cellSelection
76
- statusBar
77
- sideBar
78
- />
21
+ <OGrid columns={columns} data={employees} getRowId={(e) => e.id} />
79
22
  ```
80
23
 
81
- ## Documentation
82
-
83
- Full docs, API reference, and interactive examples at **[alaarab.github.io/ogrid](https://alaarab.github.io/ogrid/)**.
84
-
85
- ## License
86
-
87
- MIT — Free forever. No enterprise tiers. No feature paywalls.
24
+ See the [OGrid docs](https://alaarab.github.io/ogrid/) for full documentation.
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import*as ye from'react';import {useMemo,useCallback,useState,useRef,useEffect}from'react';import {Box,Tooltip,Typography,IconButton,Popover,useTheme,TextField,InputAdornment,Button,CircularProgress,FormControlLabel,Checkbox,Avatar,Table,TableHead,TableRow,TableCell,Select,MenuItem,Menu,Divider}from'@mui/material';import {createBaseFilterRenderers,useColumnHeaderFilterState,getColumnHeaderFilterStateParams,renderFilterContent,areGridRowPropsEqual,PaginationControlsBase,createOGrid,useListVirtualizer,CHECKBOX_COLUMN_WIDTH,STOP_PROPAGATION,ROW_NUMBER_COLUMN_WIDTH,useDataGridTableOrchestration,useColumnMeta,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,getCellInteractionProps,CellErrorBoundary,PREVENT_DEFAULT,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,getHeaderFilterConfig,MarchingAntsOverlay,FormulaRefOverlay,NOOP,getColumnHeaderMenuProps,useColumnChooserState,ColumnChooserContent,BaseInlineCellEditor,partitionColumnsForVirtualization,getContextMenuHandlers,GRID_CONTEXT_MENU_ITEMS,formatShortcut,getColumnHeaderMenuItems,getStatusBarParts}from'@alaarab/ogrid-react';export{BaseColumnHeaderMenu,BaseDropIndicator,BaseEmptyState,BaseInlineCellEditor,BaseLoadingOverlay,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CURSOR_CELL_STYLE,CellErrorBoundary,DEFAULT_MIN_COLUMN_WIDTH,DateFilterContent,EmptyState,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,GRID_ROOT_STYLE,GridContextMenu,MAX_PAGE_BUTTONS,MarchingAntsOverlay,NOOP,OGridLayout,PAGE_SIZE_OPTIONS,POPOVER_ANCHOR_STYLE,PREVENT_DEFAULT,ROW_NUMBER_COLUMN_WIDTH,STOP_PROPAGATION,SideBar,StatusBar,UndoRedoStack,areGridRowPropsEqual,booleanParser,buildCsvHeader,buildCsvRows,buildHeaderRows,buildInlineEditorProps,buildPopoverEditorProps,clampSelectionToBounds,computeAggregations,computeAutoScrollSpeed,computeTabNavigation,createOGrid,currencyParser,dateParser,deriveFilterOptionsFromData,editorInputStyle,editorWrapperStyle,emailParser,escapeCsvValue,exportToCsv,findCtrlArrowTarget,flattenColumns,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellInteractionProps,getCellRenderDescriptor,getCellValue,getColumnHeaderFilterStateParams,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getDateFilterContentProps,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getStatusBarParts,isInSelectionRange,isRowInRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,processClientSideData,rangesEqual,renderFilterContent,resolveCellDisplayContent,resolveCellStyle,richSelectDropdownStyle,richSelectNoMatchesStyle,richSelectOptionHighlightedStyle,richSelectOptionStyle,richSelectWrapperStyle,selectChevronStyle,selectDisplayStyle,selectEditorStyle,toUserLike,triggerCsvDownload,useActiveCell,useCellEditing,useCellSelection,useClipboard,useColumnChooserState,useColumnHeaderFilterState,useColumnMeta,useColumnReorder,useColumnResize,useContextMenu,useDataGridState,useDataGridTableOrchestration,useDateFilterState,useDebounce,useFillHandle,useFilterOptions,useInlineCellEditorState,useKeyboardNavigation,useLatestRef,useListVirtualizer,useMultiSelectFilterState,useOGrid,usePaginationControls,usePeopleFilterState,useRichSelectState,useRowSelection,useSelectState,useSideBarState,useTableLayout,useTextFilterState,useUndoRedo,useVirtualScroll}from'@alaarab/ogrid-react';import {createPortal}from'react-dom';import {FilterList,LastPage,ChevronRight,ChevronLeft,FirstPage,Search,Clear,ExpandLess,ExpandMore,ViewColumn}from'@mui/icons-material';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var ht=`
1
+ import*as Re from'react';import {useMemo,useCallback,useState,useRef,useEffect}from'react';import {Box,Tooltip,Typography,IconButton,Popover,useTheme,TextField,InputAdornment,Button,CircularProgress,FormControlLabel,Checkbox,Avatar,Table,TableHead,TableRow,TableCell,Select,MenuItem,Menu,Divider}from'@mui/material';import {createBaseFilterRenderers,useColumnHeaderFilterState,getColumnHeaderFilterStateParams,renderFilterContent,areGridRowPropsEqual,PaginationControlsBase,createOGrid,useListVirtualizer,CHECKBOX_COLUMN_WIDTH,STOP_PROPAGATION,ROW_NUMBER_COLUMN_WIDTH,useDataGridTableOrchestration,useColumnMeta,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,getCellInteractionProps,CellErrorBoundary,PREVENT_DEFAULT,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,getHeaderFilterConfig,MarchingAntsOverlay,FormulaRefOverlay,NOOP,getColumnHeaderMenuProps,useColumnChooserState,ColumnChooserContent,BaseInlineCellEditor,partitionColumnsForVirtualization,getContextMenuHandlers,GRID_CONTEXT_MENU_ITEMS,formatShortcut,getColumnHeaderMenuItems,getStatusBarParts}from'@alaarab/ogrid-react';export{BaseColumnHeaderMenu,BaseDropIndicator,BaseEmptyState,BaseInlineCellEditor,BaseLoadingOverlay,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CURSOR_CELL_STYLE,CellErrorBoundary,DEFAULT_MIN_COLUMN_WIDTH,DateFilterContent,EmptyState,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,GRID_ROOT_STYLE,GridContextMenu,MAX_PAGE_BUTTONS,MarchingAntsOverlay,NOOP,OGridLayout,PAGE_SIZE_OPTIONS,POPOVER_ANCHOR_STYLE,PREVENT_DEFAULT,ROW_NUMBER_COLUMN_WIDTH,STOP_PROPAGATION,SideBar,StatusBar,UndoRedoStack,areGridRowPropsEqual,booleanParser,buildCsvHeader,buildCsvRows,buildHeaderRows,buildInlineEditorProps,buildPopoverEditorProps,clampSelectionToBounds,computeAggregations,computeAutoScrollSpeed,computeTabNavigation,createOGrid,currencyParser,dateParser,deriveFilterOptionsFromData,editorInputStyle,editorWrapperStyle,emailParser,escapeCsvValue,exportToCsv,findCtrlArrowTarget,flattenColumns,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellInteractionProps,getCellRenderDescriptor,getCellValue,getColumnHeaderFilterStateParams,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getDateFilterContentProps,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getStatusBarParts,isInSelectionRange,isRowInRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,processClientSideData,rangesEqual,renderFilterContent,resolveCellDisplayContent,resolveCellStyle,richSelectDropdownStyle,richSelectNoMatchesStyle,richSelectOptionHighlightedStyle,richSelectOptionStyle,richSelectWrapperStyle,selectChevronStyle,selectDisplayStyle,selectEditorStyle,toUserLike,triggerCsvDownload,useActiveCell,useCellEditing,useCellSelection,useClipboard,useColumnChooserState,useColumnHeaderFilterState,useColumnMeta,useColumnReorder,useColumnResize,useContextMenu,useDataGridState,useDataGridTableOrchestration,useDateFilterState,useDebounce,useFillHandle,useFilterOptions,useInlineCellEditorState,useKeyboardNavigation,useLatestRef,useListVirtualizer,useMultiSelectFilterState,useOGrid,usePaginationControls,usePeopleFilterState,useRichSelectState,useRowSelection,useSelectState,useSideBarState,useTableLayout,useTextFilterState,useUndoRedo,useVirtualScroll}from'@alaarab/ogrid-react';import {createPortal}from'react-dom';import {FilterList,LastPage,ChevronRight,ChevronLeft,FirstPage,Search,Clear,ExpandLess,ExpandMore,ViewColumn}from'@mui/icons-material';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var Rt=`
2
2
  .ogrid-mat-row:hover > td { background-color: var(--ogrid-hover-bg); }
3
3
  .ogrid-mat-row:hover > td.ogrid-mat-row-number { background-color: var(--ogrid-header-bg, #f5f5f5); }
4
4
  .ogrid-mat-row--selected > td { background-color: var(--ogrid-selection-bg, rgba(25, 118, 210, 0.08)); }
@@ -15,6 +15,9 @@ table:not([data-virtual-scroll]) .ogrid-mat-tbody tr { content-visibility: auto;
15
15
 
16
16
  .ogrid-mat-cell--numeric { justify-content: flex-end; text-align: right; }
17
17
  .ogrid-mat-cell--boolean { justify-content: center; text-align: center; }
18
+ .ogrid-mat-boolean-checkbox { width: 18px; height: 18px; margin: 0; cursor: pointer; accent-color: var(--ogrid-accent, #1976d2); }
19
+ .ogrid-mat-boolean-checkbox:disabled { cursor: default; opacity: 0.5; }
20
+ .ogrid-mat-boolean-checkbox:focus-visible { outline: 2px solid var(--ogrid-accent, #1976d2); outline-offset: 2px; }
18
21
  .ogrid-mat-cell--editable { cursor: cell; }
19
22
 
20
23
  .ogrid-mat-cell--active { outline: 2px solid var(--ogrid-selection, #217346); outline-offset: -1px; z-index: var(--ogrid-z-active-cell, 2); position: relative; overflow: visible; contain: none; background-color: var(--ogrid-hover-bg); }
@@ -36,4 +39,4 @@ table:not([data-virtual-scroll]) .ogrid-mat-tbody tr { content-visibility: auto;
36
39
 
37
40
  .ogrid-mat-wrapper [data-drag-range] { background-color: rgba(33,115,70,0.12); }
38
41
  .ogrid-mat-wrapper [data-drag-anchor] { background-color: var(--ogrid-paper-bg, #fff); }
39
- `,yo=false;function Ro(){if(yo||typeof document>"u")return;yo=true;let e=document.createElement("style");e.setAttribute("data-ogrid-mat",""),e.textContent=ht,document.head.appendChild(e);}var ze=({value:e,onValueChange:t,onApply:r,onClear:o})=>jsxs(Box,{sx:{width:260},children:[jsx(Box,{sx:{p:1.5},children:jsx(TextField,{placeholder:"Enter search term...",value:e,onChange:i=>t(i.target.value),onKeyDown:i=>{i.stopPropagation(),i.key==="Enter"&&(i.preventDefault(),r());},autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}})}),jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,p:1.5,pt:0},children:[jsx(Button,{size:"small",disabled:!e,onClick:o,children:"Clear"}),jsx(Button,{size:"small",variant:"contained",onClick:r,children:"Apply"})]})]});ze.displayName="TextFilterPopover";var Io=40,Ge=({searchText:e,onSearchChange:t,options:r,filteredOptions:o,selected:i,onOptionToggle:c,onSelectAll:l,onClearSelection:m,onApply:s,isLoading:d})=>{let g=useListVirtualizer({count:o.length,itemHeight:Io,containerHeight:240});return jsxs(Box,{sx:{width:280},children:[jsxs(Box,{sx:{p:1.5,pb:.5},children:[jsx(TextField,{placeholder:"Search...",value:e,onChange:f=>t(f.target.value),onKeyDown:f=>f.stopPropagation(),autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}}),jsxs(Typography,{variant:"caption",color:"text.secondary",sx:{mt:.5,display:"block"},children:[o.length," of ",r.length," options"]})]}),jsxs(Box,{sx:{display:"flex",justifyContent:"space-between",px:1.5,py:.5},children:[jsxs(Button,{size:"small",onClick:l,children:["Select All (",o.length,")"]}),jsx(Button,{size:"small",onClick:m,children:"Clear"})]}),jsx(Box,{ref:g.containerRef,onScroll:g.onScroll,sx:{maxHeight:240,overflowY:"auto",px:.5},children:d?jsx(Box,{sx:{display:"flex",justifyContent:"center",py:2},children:jsx(CircularProgress,{size:24})}):o.length===0?jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No options found"}):jsx(Box,{sx:{height:g.totalHeight,position:"relative"},children:g.visibleItems.map(({index:f,offsetTop:v})=>{let x=o[f];return jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:i.has(x),onChange:R=>c(x,R.target.checked)}),label:jsx(Typography,{variant:"body2",children:x}),sx:{position:"absolute",top:v,width:"100%",height:Io,boxSizing:"border-box",display:"flex",alignItems:"center",mx:0,"& .MuiFormControlLabel-label":{flex:1,minWidth:0}}},x)})})}),jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,p:1.5,pt:1,borderTop:1,borderColor:"divider"},children:[jsx(Button,{size:"small",onClick:m,children:"Clear"}),jsx(Button,{size:"small",variant:"contained",onClick:s,children:"Apply"})]})]})};Ge.displayName="MultiSelectFilterPopover";var Ve=({selectedUser:e,searchText:t,onSearchChange:r,suggestions:o,isLoading:i,onUserSelect:c,onClearUser:l,inputRef:m})=>jsxs(Box,{sx:{width:300},children:[e&&jsxs(Box,{sx:{p:1.5,pb:1,borderBottom:1,borderColor:"divider"},children:[jsx(Typography,{variant:"caption",color:"text.secondary",children:"Currently filtered by:"}),jsxs(Box,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5},children:[jsx(Avatar,{src:e.photo,alt:e.displayName,sx:{width:32,height:32},children:e.displayName?.[0]}),jsxs(Box,{sx:{flex:1,minWidth:0},children:[jsx(Typography,{variant:"body2",noWrap:true,children:e.displayName}),jsx(Typography,{variant:"caption",color:"text.secondary",noWrap:true,children:e.email})]}),jsx(IconButton,{size:"small",onClick:l,"aria-label":"Remove filter",children:jsx(Clear,{fontSize:"small"})})]})]}),jsx(Box,{sx:{p:1.5,pb:.5},children:jsx(TextField,{inputRef:m,placeholder:"Search for a person...",value:t,onChange:s=>r(s.target.value),onKeyDown:s=>s.stopPropagation(),autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}})}),jsx(Box,{sx:{maxHeight:240,overflowY:"auto"},children:i&&t.trim()?jsx(Box,{sx:{display:"flex",justifyContent:"center",py:2},children:jsx(CircularProgress,{size:24})}):o.length===0&&t.trim()?jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No results found"}):t.trim()?o.map(s=>jsxs(Box,{onClick:()=>c(s),sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,cursor:"pointer","&:hover":{bgcolor:"action.hover"}},children:[jsx(Avatar,{src:s.photo,alt:s.displayName,sx:{width:32,height:32},children:s.displayName?.[0]}),jsxs(Box,{sx:{flex:1,minWidth:0},children:[jsx(Typography,{variant:"body2",noWrap:true,children:s.displayName}),jsx(Typography,{variant:"caption",color:"text.secondary",noWrap:true,children:s.email})]})]},s.id||s.email||s.displayName)):jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"Type to search..."})}),e&&jsx(Box,{sx:{p:1.5,pt:1,borderTop:1,borderColor:"divider"},children:jsx(Button,{size:"small",fullWidth:true,onClick:l,children:"Clear Filter"})})]});Ve.displayName="PeopleFilterPopover";var Ut=createBaseFilterRenderers({MultiSelectFilterPopover:Ge,TextFilterPopover:ze,PeopleFilterPopover:Ve}),xe=ye.memo(e=>{let{columnName:t,filterType:r,options:o=[],isLoadingOptions:i=false,selectedUser:c}=e,l=useColumnHeaderFilterState(getColumnHeaderFilterStateParams(e)),{headerRef:m,isFilterOpen:s,setFilterOpen:d,hasActiveFilter:g,popoverPosition:f,handlers:v}=l;return jsxs(Box,{ref:m,sx:{display:"flex",alignItems:"center",width:"100%",minWidth:0},children:[jsx(Box,{sx:{flex:1,minWidth:0,overflow:"hidden"},children:jsx(Tooltip,{title:t,arrow:true,children:jsx(Typography,{variant:"body2",fontWeight:600,noWrap:true,"data-header-label":true,sx:{lineHeight:1.4},children:t})})}),jsx(Box,{sx:{display:"flex",alignItems:"center",ml:.5,flexShrink:0},children:r!=="none"&&jsxs(IconButton,{size:"small",onClick:v.handleFilterIconClick,"aria-label":`Filter ${t}`,"aria-expanded":s,"aria-haspopup":"dialog",title:`Filter ${t}`,color:g||s?"primary":"default",sx:{p:.25,position:"relative"},children:[jsx(FilterList,{sx:{fontSize:16}}),g&&jsx(Box,{sx:{position:"absolute",top:2,right:2,width:6,height:6,borderRadius:"50%",bgcolor:"primary.main"}})]})}),jsxs(Popover,{open:s&&r!=="none",onClose:()=>d(false),anchorReference:"anchorPosition",anchorPosition:f??{top:0,left:0},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},slotProps:{paper:{sx:{mt:.5,overflow:"visible"},onClick:x=>x.stopPropagation()}},children:[jsx(Box,{sx:{borderBottom:1,borderColor:"divider",px:1.5,py:1},children:jsxs(Typography,{variant:"subtitle2",children:["Filter: ",t]})}),renderFilterContent(r,l,o??[],i,c,Ut)]})]})});xe.displayName="ColumnHeaderFilter";function Pe(e){let{isOpen:t,anchorElement:r,onClose:o,onPinLeft:i,onPinRight:c,onUnpin:l,onSortAsc:m,onSortDesc:s,onClearSort:d,onAutosizeThis:g,onAutosizeAll:f,canPinLeft:v,canPinRight:x,canUnpin:R,currentSort:I,isSortable:B,isResizable:M}=e,[C,O]=useState(void 0);useEffect(()=>{if(t&&r){let P=r.getBoundingClientRect();O({top:P.bottom+4,left:P.left});}else O(void 0);},[t,r]);let D=useMemo(()=>({canPinLeft:v,canPinRight:x,canUnpin:R,currentSort:I,isSortable:B,isResizable:M}),[v,x,R,I,B,M]),H=useMemo(()=>getColumnHeaderMenuItems(D),[D]),pe=useMemo(()=>({pinLeft:i,pinRight:c,unpin:l,sortAsc:m,sortDesc:s,clearSort:d,autosizeThis:g,autosizeAll:f}),[i,c,l,m,s,d,g,f]);return jsx(Menu,{open:t&&!!C,onClose:o,anchorReference:"anchorPosition",anchorPosition:C,slotProps:{paper:{sx:{minWidth:140}}},children:H.flatMap((P,re)=>{let q=[jsx(MenuItem,{disabled:P.disabled,onClick:()=>{pe[P.id](),o();},children:P.label},P.id)];return P.divider&&re<H.length-1&&q.push(jsx(Divider,{},`${P.id}-divider`)),q})})}function Bo(e){return jsx(BaseInlineCellEditor,{...e,renderCheckbox:(t,r,o)=>jsx(Checkbox,{checked:t,onChange:(i,c)=>r(c),onKeyDown:i=>i.key==="Escape"&&(i.preventDefault(),o()),size:"small"})})}var Qt=e=>({display:"inline-flex",alignItems:"center",gap:.5,...e?{}:{mr:2,"&::after":{content:'"|"',ml:2,color:"divider"}}});function Mo(e){let t=getStatusBarParts(e);return jsx(Box,{role:"status","aria-live":"polite",sx:{mt:"auto",px:1.5,py:.75,borderTop:1,borderColor:"divider",bgcolor:"action.hover"},children:t.map((r,o)=>jsxs(Typography,{component:"span",variant:"body2",sx:Qt(o===t.length-1),children:[jsx(Typography,{component:"span",color:"text.secondary",children:r.label}),jsx(Typography,{component:"span",fontWeight:600,children:r.value.toLocaleString()})]},r.key))})}function Oo(e){let{x:t,y:r,hasSelection:o,canUndo:i,canRedo:c,onClose:l}=e,m=ye.useMemo(()=>getContextMenuHandlers(e),[e]),s=ye.useCallback(d=>!!(d.disabledWhenNoSelection&&!o||d.id==="undo"&&!i||d.id==="redo"&&!c),[o,i,c]);return jsx(Menu,{open:true,onClose:l,anchorReference:"anchorPosition",anchorPosition:{top:r,left:t},MenuListProps:{dense:true,"aria-label":"Grid context menu"},children:GRID_CONTEXT_MENU_ITEMS.flatMap(d=>{let g=[];return d.dividerBefore&&g.push(jsx(Divider,{},`${d.id}-divider`)),g.push(jsxs(MenuItem,{onClick:m[d.id],disabled:s(d),children:[jsx("span",{style:{flex:1},children:d.label}),d.shortcut&&jsx("span",{style:{marginLeft:24,color:"var(--ogrid-fg-muted, rgba(0,0,0,0.4))",fontSize:"0.8em"},children:formatShortcut(d.shortcut)})]},d.id)),g})})}var cr={py:4,px:2,textAlign:"center",borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function Ho({emptyState:e}){return jsx(Box,{sx:cr,children:e.render?e.render():jsxs(Fragment,{children:[jsx(Typography,{variant:"h6",gutterBottom:true,children:"No results found"}),jsx(Typography,{variant:"body2",color:"text.secondary",children:e.message!=null?e.message:e.hasActiveFilters?jsxs(Fragment,{children:["No items match your current filters. Try adjusting your search or"," ",jsx(Button,{variant:"text",size:"small",onClick:e.onClearAll,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time."})]})})}var mr={position:"absolute",inset:0,zIndex:2,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--ogrid-loading-bg, rgba(255,255,255,0.7))"},gr={display:"flex",flexDirection:"column",alignItems:"center",gap:1,p:2,bgcolor:"background.paper",border:1,borderColor:"divider",borderRadius:1};function Fo({message:e}){return jsx(Box,{sx:mr,children:jsxs(Box,{sx:gr,children:[jsx(CircularProgress,{size:24}),jsx(Typography,{variant:"body2",color:"text.secondary",children:e})]})})}function Ao({dropIndicatorX:e,wrapperLeft:t}){return jsx(Box,{sx:{position:"absolute",top:0,bottom:0,width:3,bgcolor:"var(--ogrid-primary, #217346)",pointerEvents:"none",zIndex:100,transition:"left 0.05s",left:e-t}})}var zr={position:"relative",flex:1,minHeight:0,display:"flex",flexDirection:"column"},Ur={width:"100%",height:"100%",display:"flex",alignItems:"center",boxSizing:"border-box",outline:"2px solid var(--ogrid-selection-color, #217346)",outlineOffset:"-1px",zIndex:2,position:"relative",background:"var(--ogrid-bg, #fff)",overflow:"visible",padding:0},Gr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,maxWidth:CHECKBOX_COLUMN_WIDTH,textAlign:"center"},Vr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,p:0},Xr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,maxWidth:CHECKBOX_COLUMN_WIDTH,textAlign:"center",padding:0,position:"relative",height:"1px",borderBottom:"1px solid var(--ogrid-border, rgba(224,224,224,1))"},A="var(--ogrid-header-bg, #f5f5f5)",Kr={zIndex:8,bgcolor:A,"& th":{bgcolor:A}},zo={bgcolor:A},qe={textAlign:"center",fontSize:"11px",fontWeight:500,color:"text.secondary",py:"2px",px:"4px",bgcolor:A,borderBottom:1,borderColor:"divider",userSelect:"none",fontVariantNumeric:"tabular-nums"},Yr={textAlign:"center",fontWeight:600,borderBottom:2,borderColor:"divider",py:.75};function $r(e){switch(e){case "compact":return {px:"8px",py:"4px"};case "comfortable":return {px:"16px",py:"12px"};default:return {px:"10px",py:"6px"}}}var Uo={compact:{padding:"4px 8px"},normal:{padding:"6px 10px"},comfortable:{padding:"12px 16px"}},Ze={fontWeight:600,position:"sticky",top:0,zIndex:8,bgcolor:A},jr={...Ze,position:"sticky",left:0,top:0,zIndex:10,bgcolor:A,willChange:"transform",borderRight:"1px solid",borderRightColor:"divider",boxShadow:"2px 0 4px -1px rgba(0,0,0,0.1)"},qr={...Ze,position:"sticky",right:0,top:0,zIndex:10,bgcolor:A,willChange:"transform",borderLeft:"1px solid",borderLeftColor:"divider",boxShadow:"-2px 0 4px -1px rgba(0,0,0,0.1)"},Je={fontWeight:600,zIndex:8,bgcolor:A},Zr={...Je,position:"sticky",left:0,zIndex:10,bgcolor:A,willChange:"transform",borderRight:"1px solid",borderRightColor:"divider",boxShadow:"2px 0 4px -1px rgba(0,0,0,0.1)"},Jr={...Je,position:"sticky",right:0,zIndex:10,bgcolor:A,willChange:"transform",borderLeft:"1px solid",borderLeftColor:"divider",boxShadow:"-2px 0 4px -1px rgba(0,0,0,0.1)"},Go={position:"absolute",top:0,right:"-3px",bottom:0,width:"8px",cursor:"col-resize",userSelect:"none","&::after":{content:'""',position:"absolute",top:0,right:"3px",bottom:0,width:"2px"},"&:hover::after":{bgcolor:"primary.main"},"&:active::after":{bgcolor:"primary.dark"}},Qr={minHeight:"100%",minWidth:40},en={p:1},on={display:"flex",flexDirection:"column",minHeight:"100%"},tn={display:"flex",alignItems:"center",gap:.5},rn={background:"transparent",border:"none",cursor:"pointer",padding:"2px 4px",fontSize:"16px",lineHeight:1,color:"text.secondary",opacity:1,transition:"background-color 0.15s",borderRadius:"3px",display:"flex",alignItems:"center",justifyContent:"center",minWidth:"20px",height:"20px","&:hover":{bgcolor:"action.hover"}},nn={position:"relative",opacity:1},an={position:"relative",opacity:.6},Vo={padding:0,border:"none"};function ln(e){let{item:t,rowIndex:r,rowId:o,isSelected:i,columnLayouts:c,renderCellContent:l,handleSingleRowClick:m,handleRowCheckboxChange:s,lastMouseShiftRef:d,hasCheckboxCol:g,hasRowNumbersCol:f,rowNumberOffset:v,rowHeight:x,leftSpacerWidth:R,rightSpacerWidth:I,globalColIndexMap:B,rowNumWidth:M}=e;return jsxs("tr",{"data-row-id":o,onClick:m,"aria-selected":i||void 0,className:`ogrid-mat-row${i?" ogrid-mat-row--selected":""}`,style:x?{height:x}:void 0,children:[g&&jsx("td",{style:Xr,children:jsx("div",{"data-row-index":r,"data-col-index":0,onClick:STOP_PROPAGATION,className:"ogrid-mat-checkbox-wrapper",children:jsx(Checkbox,{checked:i,onChange:(C,O)=>s(o,O,r,d.current),size:"small","aria-label":`Select row ${r+1}`})})}),f&&(()=>{let C=M??ROW_NUMBER_COLUMN_WIDTH;return jsx("td",{className:"ogrid-mat-td ogrid-mat-row-number",style:{width:C,minWidth:C,maxWidth:C,left:g?CHECKBOX_COLUMN_WIDTH:0,borderBottom:"1px solid var(--ogrid-border, rgba(224,224,224,1))"},children:v+r+1})})(),R!=null&&R>0&&jsx("td",{style:{...Vo,width:R,minWidth:R},"aria-hidden":true}),c.map((C,O)=>{let D=B?B[O]:O;return jsx("td",{"data-column-id":C.col.columnId,className:C.tdClassName,style:{...C.tdStyle,minWidth:C.minWidth,width:C.width,maxWidth:C.maxWidth},children:l(t,C.col,r,D)},C.col.columnId)}),I!=null&&I>0&&jsx("td",{style:{...Vo,width:I,minWidth:I},"aria-hidden":true})]})}var sn=ye.memo(ln,areGridRowPropsEqual);Ro();function dn(e){let{virtualScrollEnabled:t,visibleRange:r,columnRange:o,items:i,getRowId:c,selectedRowIds:l,visibleCols:m,columnLayouts:s,renderCellContent:d,handleSingleRowClick:g,handleRowCheckboxChange:f,lastMouseShiftRef:v,hasCheckboxCol:x,hasRowNumbersCol:R,rowNumberOffset:I,rowHeight:B,selectionRange:M,activeCell:C,cutRange:O,copyRange:D,isDragging:H,editingCell:pe,pinnedColumns:P,rowNumWidth:re}=e,{rowLayouts:q,globalColIndexMap:ne,leftSpacerWidth:He,rightSpacerWidth:Ne}=ye.useMemo(()=>{if(!o)return {rowLayouts:s,globalColIndexMap:void 0,leftSpacerWidth:void 0,rightSpacerWidth:void 0};let y=partitionColumnsForVirtualization(m,o,P),_=[...y.pinnedLeft,...y.virtualizedUnpinned,...y.pinnedRight],Z=new Map(s.map(X=>[X.col.columnId,X])),J=[],ue=[];for(let X of _){let me=Z.get(X.columnId);me&&(J.push(me),ue.push(m.indexOf(X)));}return {rowLayouts:J,globalColIndexMap:ue,leftSpacerWidth:y.leftSpacerWidth,rightSpacerWidth:y.rightSpacerWidth}},[o,m,s,P]),w=(y,_)=>{let Z=c(y);return jsx(sn,{item:y,rowIndex:_,rowId:Z,isSelected:l.has(Z),columnLayouts:q,renderCellContent:d,handleSingleRowClick:g,handleRowCheckboxChange:f,lastMouseShiftRef:v,hasCheckboxCol:x,hasRowNumbersCol:R,rowNumberOffset:I,selectionRange:M,activeCell:C,cutRange:O,copyRange:D,isDragging:H,rowHeight:B,editingRowId:pe?.rowId??null,leftSpacerWidth:He,rightSpacerWidth:Ne,globalColIndexMap:ne,rowNumWidth:re},Z)};return jsxs("tbody",{className:"ogrid-mat-tbody",children:[t&&r.offsetTop>0&&jsx("tr",{style:{height:r.offsetTop},"aria-hidden":true}),t?i.slice(r.startIndex,r.endIndex+1).map((y,_)=>w(y,r.startIndex+_)):i.map((y,_)=>w(y,_)),t&&r.offsetBottom>0&&jsx("tr",{style:{height:r.offsetBottom},"aria-hidden":true})]})}function cn(e){let t=useDataGridTableOrchestration({props:e}),{wrapperRef:r,tableContainerRef:o,lastMouseShiftRef:i,interaction:c,pinning:l,handleResizeStart:m,handleResizeDoubleClick:s,getColumnWidth:d,isReorderDragging:g,dropIndicatorX:f,handleHeaderMouseDown:v,virtualScrollEnabled:x,visibleRange:R,columnRange:I,onHorizontalScroll:B,items:M,getRowId:C,emptyState:O,suppressHorizontalScroll:D,isLoading:H,loadingMessage:pe,ariaLabel:P,ariaLabelledBy:re,columnReorder:q,density:ne,rowHeight:He,rowNumberOffset:Ne,headerRows:w,allowOverflowX:y,fitToContent:_,showColumnLetters:Z,editCallbacks:J,interactionHandlers:ue,cellDescriptorInputRef:X,cellDescriptorCacheRef:me,pendingEditorValueRef:no,popoverAnchorElRef:Fe,handleSingleRowClick:jo,handlePasteVoid:qo,visibleCols:ge,hasCheckboxCol:ae,hasRowNumbersCol:Ce,colOffset:ao,minTableWidth:io,columnSizingOverrides:he,measuredColumnWidths:Zo,selectedRowIds:lo,handleRowCheckboxChange:Jo,handleSelectAll:Qo,allSelected:et,someSelected:ot,editingCell:tt,setPopoverAnchorEl:so,cancelPopoverEdit:co,setActiveCell:po,selectionRange:Q,hasCellSelection:rt,handleGridKeyDown:nt,handleFillHandleMouseDown:uo,handleCopy:at,handleCut:it,cutRange:mo,copyRange:go,canUndo:lt,canRedo:st,onUndo:dt,onRedo:ct,isDragging:Co,menuPosition:Ae,closeContextMenu:pt,headerFilterInput:ut,statusBarConfig:ie,showEmptyInGrid:ho,onCellError:fo,headerMenu:fe}=t,_e=useMemo(()=>$r(ne),[ne]),bo=useMemo(()=>({px:_e.px,py:_e.py}),[_e]),Se=useColumnMeta({visibleCols:ge,getColumnWidth:d,columnSizingOverrides:he,measuredColumnWidths:Zo,pinnedColumns:l.pinnedColumns,leftOffsets:l.leftOffsets,rightOffsets:l.rightOffsets,pinnedColLeftClass:"",pinnedColRightClass:""}),mt=useMemo(()=>ge.map(p=>{let u=l.pinnedColumns[p.columnId]==="left",h=l.pinnedColumns[p.columnId]==="right",N="ogrid-mat-td",n={};u?(N+=" ogrid-mat-td--pinned-left",l.leftOffsets[p.columnId]!=null&&(n.left=l.leftOffsets[p.columnId])):h&&(N+=" ogrid-mat-td--pinned-right",l.rightOffsets[p.columnId]!=null&&(n.right=l.rightOffsets[p.columnId]));let U=Se.cellStyles[p.columnId];return {col:p,tdClassName:N,tdStyle:n,minWidth:U?.minWidth??0,width:U?.width??d(p),maxWidth:U?.maxWidth??d(p)}}),[ge,Se,l.pinnedColumns,l.leftOffsets,l.rightOffsets,d]),gt=useMemo(()=>({position:"relative",flex:1,minHeight:H&&M.length===0?200:0,width:_?"fit-content":"100%",maxWidth:"100%",overflowX:D?"hidden":y?"auto":"hidden",overflowY:"auto",bgcolor:"background.paper",willChange:"scroll-position"}),[_,D,y,H,M.length]),xo=Uo[ne]??Uo.normal,Ct=useCallback((p,u,h,N)=>{let n=getCellRenderDescriptor(p,u,h,N,X.current,me.current),U=C(p),K;if(n.mode==="editing-inline")K=jsx("div",{className:"ogrid-mat-editing-cell",style:Ur,children:jsx(Bo,{...buildInlineEditorProps(p,u,n,J)})});else if(n.mode==="editing-popover"&&typeof u.cellEditor=="function"){let G=buildPopoverEditorProps(p,u,n,no.current,J),k=u.cellEditor;K=jsxs(Fragment,{children:[jsx(Box,{ref:Y=>{Y&&so(Y);},sx:Qr,"aria-hidden":true}),jsx(Popover,{open:!!Fe.current,anchorEl:Fe.current,onClose:co,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:jsx(Box,{sx:en,children:jsx(k,{...G})})})]});}else {let G;if(n.columnType==="boolean"){let $=!!n.displayValue;G=jsx("input",{type:"checkbox",checked:$,disabled:!n.canEditAny,onChange:n.canEditAny?()=>{J.commitCellEdit(p,u.columnId,$,!$,n.rowIndex,n.globalColIndex);}:void 0,onClick:le=>le.stopPropagation(),style:{margin:0,cursor:n.canEditAny?"pointer":"default",outline:"none"},"aria-label":$?"Checked":"Unchecked"});}else {let $=resolveCellDisplayContent(u,p,n.displayValue),le=resolveCellStyle(u,p,n.displayValue);G=le?jsx("span",{style:le,children:$}):$;}let k="ogrid-mat-cell";u.type==="numeric"?k+=" ogrid-mat-cell--numeric":u.type==="boolean"&&(k+=" ogrid-mat-cell--boolean"),n.canEditAny&&(k+=" ogrid-mat-cell--editable"),n.isActive&&(k+=" ogrid-mat-cell--active"),n.isActive&&n.isInRange&&(k+=" ogrid-mat-cell--active-in-range"),n.isInRange&&!n.isActive&&(k+=" ogrid-mat-cell--range"),n.isInCutRange&&(k+=" ogrid-mat-cell--cut");let Y=getCellInteractionProps(n,u.columnId,ue);K=jsxs("div",{className:k,...Y,style:xo,children:[G,n.canEditAny&&n.isSelectionEndCell&&jsx("div",{className:"ogrid-mat-fill-handle",onPointerDown:uo,"aria-label":"Fill handle"})]});}return jsx(CellErrorBoundary,{onError:fo,children:K},`${U}-${u.columnId}`)},[J,ue,uo,so,co,C,fo,X,me,xo,no,Fe]);return jsxs(Box,{sx:zr,children:[jsxs(Box,{ref:r,tabIndex:0,role:"region","aria-label":P??(re?void 0:"Data grid"),"aria-labelledby":re,onMouseDown:p=>{i.current=p.shiftKey;},onScroll:B?p=>B(p.target.scrollLeft):void 0,onKeyDown:nt,onContextMenu:PREVENT_DEFAULT,"data-density":ne,"data-overflow-x":y?"true":"false",className:"ogrid-mat-wrapper","data-ogrid-scroll-container":"",sx:gt,children:[jsx(Box,{sx:on,children:jsx("div",{style:{minWidth:y?io:void 0,overflowX:"clip"},children:jsxs(Box,{ref:o,sx:H&&M.length>0?an:nn,children:[jsxs(Table,{size:"small",role:"grid",sx:{minWidth:io,borderCollapse:"separate",borderSpacing:0},"data-virtual-scroll":x?"":void 0,children:[jsxs(TableHead,{sx:Kr,children:[Z&&jsxs(TableRow,{sx:zo,children:[ae&&jsx(TableCell,{sx:qe}),Ce&&jsx(TableCell,{sx:qe}),ge.map((p,u)=>{let h=Se.hdrStyles[p.columnId];return jsx(TableCell,{component:"th",sx:{...qe,minWidth:h?.minWidth,width:h?.width,maxWidth:h?.maxWidth},children:indexToColumnLetter(u)},p.columnId)})]}),w.map((p,u)=>jsxs(TableRow,{sx:zo,children:[u===w.length-1&&ae&&jsx(TableCell,{padding:"checkbox",rowSpan:w.length>1?1:void 0,sx:Gr,children:jsx(Checkbox,{checked:et,indeterminate:ot,onChange:(h,N)=>Qo(!!N),size:"small","aria-label":"Select all rows"})}),u===0&&u<w.length-1&&ae&&jsx(TableCell,{rowSpan:w.length-1,sx:Vr}),u===w.length-1&&Ce&&(()=>{let h=he?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return jsxs(TableCell,{component:"th",scope:"col",rowSpan:w.length>1?1:void 0,sx:{width:h,minWidth:h,maxWidth:h,textAlign:"center",fontWeight:600,backgroundColor:A,position:"sticky",left:ae?CHECKBOX_COLUMN_WIDTH:0,zIndex:4,...bo},children:["#",jsx(Box,{onPointerDown:N=>{po(null),c.setSelectionRange(null),r.current?.focus({preventScroll:true}),m(N,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},sx:Go})]})})(),u===0&&u<w.length-1&&Ce&&(()=>{let h=he?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return jsx(TableCell,{rowSpan:w.length-1,sx:{width:h,minWidth:h,position:"sticky",left:ae?CHECKBOX_COLUMN_WIDTH:0,zIndex:4,backgroundColor:"background.paper"}})})(),p.map((h,N)=>{if(h.isGroup)return jsx(TableCell,{colSpan:h.colSpan,component:"th",scope:"colgroup",sx:Yr,children:h.label},N);if(!h.columnDef)return null;let n=h.columnDef,U=l.pinnedColumns[n.columnId]==="left",K=l.pinnedColumns[n.columnId]==="right",G=t.stickyHeader?U?jr:K?qr:Ze:U?Zr:K?Jr:Je,k=U&&l.leftOffsets[n.columnId]!=null?{...G,left:l.leftOffsets[n.columnId]}:K&&l.rightOffsets[n.columnId]!=null?{...G,right:l.rightOffsets[n.columnId]}:G,Y=Se.hdrStyles[n.columnId],le=e.sortBy===n.columnId?e.sortDirection==="asc"?"ascending":"descending":void 0;return jsxs(TableCell,{component:"th",scope:"col","data-column-id":n.columnId,rowSpan:w.length>1?w.length-u:void 0,"aria-sort":le,sx:{...k,...bo,minWidth:Y?.minWidth,width:Y?.width,maxWidth:Y?.maxWidth,...q?{cursor:g?"grabbing":"grab"}:{},"&:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"-2px",zIndex:11}},onPointerDown:q?j=>v(n.columnId,j):void 0,children:[jsxs(Box,{sx:tn,children:[jsx(xe,{...getHeaderFilterConfig(n,ut)}),jsx(Box,{component:"button",onClick:j=>{j.stopPropagation(),fe.isOpen&&fe.openForColumn===n.columnId?fe.close():fe.open(n.columnId,j.currentTarget);},"aria-label":"Column options",title:"Column options",sx:rn,children:"\u22EE"})]}),jsx(Box,{onPointerDown:j=>{po(null),c.setSelectionRange(null),r.current?.focus({preventScroll:true}),m(j,n);},onDoubleClick:j=>s(j,n),sx:Go})]},n.columnId)})]},u))]}),!ho&&jsx(dn,{virtualScrollEnabled:x,visibleRange:R,columnRange:I,items:M,getRowId:C,selectedRowIds:lo,visibleCols:ge,columnLayouts:mt,renderCellContent:Ct,handleSingleRowClick:jo,handleRowCheckboxChange:Jo,lastMouseShiftRef:i,hasCheckboxCol:ae,hasRowNumbersCol:Ce,rowNumberOffset:Ne,rowHeight:He,selectionRange:Q,activeCell:c.activeCell,cutRange:mo,copyRange:go,isDragging:Co,editingCell:tt,pinnedColumns:l.pinnedColumns,rowNumWidth:Ce?he?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH:void 0})]}),g&&f!=null&&jsx(Ao,{dropIndicatorX:f,wrapperLeft:r.current?.getBoundingClientRect().left??0}),jsx(MarchingAntsOverlay,{containerRef:o,selectionRange:Q,copyRange:go,cutRange:mo,colOffset:ao,items:M,visibleColumns:e.visibleColumns,columnSizingOverrides:he,columnOrder:e.columnOrder,isDragging:Co}),e.formulaReferences&&e.formulaReferences.length>0&&jsx(FormulaRefOverlay,{containerRef:o,references:e.formulaReferences,colOffset:ao}),ho&&O&&jsx(Ho,{emptyState:O})]})})}),Ae&&createPortal(jsx(Oo,{x:Ae.x,y:Ae.y,hasSelection:rt,canUndo:lt,canRedo:st,onUndo:dt??NOOP,onRedo:ct??NOOP,onCopy:at,onCut:it,onPaste:qo,onSelectAll:t.interaction.handleSelectAllCells,onClose:pt}),document.body),jsx(Pe,{...getColumnHeaderMenuProps(fe)})]}),ie&&jsx(Mo,{totalCount:ie.totalCount,filteredCount:ie.filteredCount,selectedCount:ie.selectedCount??lo.size,selectedCellCount:Q?(Math.abs(Q.endRow-Q.startRow)+1)*(Math.abs(Q.endCol-Q.startCol)+1):void 0,aggregation:ie.aggregation,suppressRowCount:ie.suppressRowCount}),H&&jsx(Fo,{message:pe})]})}var Qe=ye.memo(cn);var Sn=({columnId:e,columnName:t,checked:r,disabled:o,onChange:i})=>jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:r,onChange:c=>{c.stopPropagation(),i(c.target.checked);},disabled:o}),label:jsx(Typography,{variant:"body2",children:t}),sx:{m:0}}),vn=({visibleCount:e,totalCount:t})=>jsx(Box,{sx:{px:1.5,py:1,borderBottom:1,borderColor:"divider",bgcolor:"action.hover"},children:jsxs(Typography,{variant:"subtitle2",fontWeight:600,children:["Select Columns (",e," of ",t,")"]})}),In=({children:e})=>jsx(Box,{sx:{maxHeight:320,overflowY:"auto",py:.5},children:e}),Pn=({children:e})=>jsx(Box,{sx:{px:1.5,minHeight:32,display:"flex",alignItems:"center"},children:e}),wn=({onClearAll:e,onSelectAll:t})=>jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"},children:[jsx(Button,{size:"small",onClick:e,sx:{textTransform:"none"},children:"Clear All"}),jsx(Button,{size:"small",variant:"contained",onClick:t,sx:{textTransform:"none"},children:"Select All"})]}),oo=e=>{let{columns:t,visibleColumns:r,onVisibilityChange:o,onSetVisibleColumns:i,className:c}=e,[l,m]=useState(null),s=useRef(null),{open:d,setOpen:g,handleClose:f,handleCheckboxChange:v,handleSelectAll:x,handleClearAll:R,visibleCount:I,totalCount:B}=useColumnChooserState({columns:t,visibleColumns:r,onVisibilityChange:o,onSetVisibleColumns:i});return jsxs(Box,{className:c,sx:{display:"inline-flex"},children:[jsxs(Button,{ref:s,variant:"outlined",size:"small",color:"inherit",startIcon:jsx(ViewColumn,{}),endIcon:d?jsx(ExpandLess,{}):jsx(ExpandMore,{}),onClick:D=>{d?(f(),m(null)):(m(D.currentTarget),g(true));},"aria-expanded":d,"aria-haspopup":"listbox",sx:{textTransform:"none",fontWeight:600,borderColor:d?"primary.main":"divider"},children:["Column Visibility (",I," of ",B,")"]}),jsx(Popover,{open:d,anchorEl:l,onClose:()=>{f(),m(null);},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},slotProps:{paper:{sx:{mt:.5,minWidth:220}}},children:jsx(ColumnChooserContent,{columns:t,visibleColumns:r,visibleCount:I,totalCount:B,handleSelectAll:x,handleClearAll:R,handleCheckboxChange:D=>H=>v(D)(H),CheckboxItem:Sn,Header:vn,OptionsListContainer:In,OptionItemContainer:Pn,Actions:wn})})]})};var Nn={first:jsx(FirstPage,{fontSize:"small"}),prev:jsx(ChevronLeft,{fontSize:"small"}),next:jsx(ChevronRight,{fontSize:"small"}),last:jsx(LastPage,{fontSize:"small"})},Fn=({variant:e,onClick:t,disabled:r,"aria-label":o})=>jsx(IconButton,{size:"small",onClick:t,disabled:r,"aria-label":o,children:Nn[e]}),An=({onClick:e,active:t,"aria-label":r,"aria-current":o,children:i})=>jsx(Button,{variant:t?"contained":"outlined",size:"small",onClick:e,"aria-label":r,"aria-current":o,sx:{minWidth:32,px:.5},children:i}),_n=({value:e,options:t,onChange:r,"aria-label":o})=>jsx(Select,{value:e,onChange:c=>r(Number(c.target.value)),size:"small","aria-label":o,sx:{minWidth:70},children:t.map(c=>jsx(MenuItem,{value:c,children:c},c))}),Wn=({children:e,className:t,role:r,"aria-label":o})=>jsx(Box,{className:t,role:r,"aria-label":o,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:2,px:1.5,width:"100%",minWidth:0,boxSizing:"border-box"},children:e}),zn=({children:e})=>jsx(Typography,{variant:"body2",color:"text.secondary",children:e}),Un=({children:e})=>jsx(Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:e}),Gn=({children:e})=>jsx(Box,{sx:{display:"flex",alignItems:"center",gap:1},children:e}),Vn=()=>jsx(Typography,{variant:"body2",color:"text.secondary",children:"Rows"}),Xn=()=>jsx(Typography,{variant:"body2",color:"text.secondary",sx:{mx:.5},"aria-hidden":true,children:"\u2026"}),Kn={NavButton:Fn,PageButton:An,PageSizeSelect:_n,OuterContainer:Wn,InfoText:zn,NavButtonsContainer:Un,PageSizeContainer:Gn,PageSizeLabel:Vn,Ellipsis:Xn},Le=ye.memo(e=>jsx(PaginationControlsBase,{...e,slots:Kn}));Le.displayName="PaginationControls";var qn=ye.forwardRef(function(t,r){let o=useTheme(),i=ye.useMemo(()=>({display:"flex",flexDirection:"column",gap:1,"--ogrid-bg":o.palette.background.default,"--ogrid-border":o.palette.divider,"--ogrid-header-bg":o.palette.mode==="dark"?o.palette.grey[800]:o.palette.grey[100],"--ogrid-fg":o.palette.text.primary,"--ogrid-fg-secondary":o.palette.text.secondary,"--ogrid-fg-muted":o.palette.text.disabled,"--ogrid-hover-bg":o.palette.action.hover,"--ogrid-paper-bg":o.palette.background.paper,"--ogrid-primary":o.palette.primary.main,"--ogrid-selection-bg":o.palette.action.selected}),[o]);return jsx(Box,{ref:r,sx:i,...t})}),$o=createOGrid({DataGridTable:Qe,ColumnChooser:oo,PaginationControls:Le,containerComponent:qn});export{oo as ColumnChooser,xe as ColumnHeaderFilter,Pe as ColumnHeaderMenu,Qe as DataGridTable,$o as OGrid,Le as PaginationControls};
42
+ `,Ro=false;function So(){if(Ro||typeof document>"u")return;Ro=true;let e=document.createElement("style");e.setAttribute("data-ogrid-mat",""),e.textContent=Rt,document.head.appendChild(e);}var Ve=({value:e,onValueChange:t,onApply:r,onClear:o})=>jsxs(Box,{sx:{width:260},children:[jsx(Box,{sx:{p:1.5},children:jsx(TextField,{placeholder:"Enter search term...",value:e,onChange:l=>t(l.target.value),onKeyDown:l=>{l.stopPropagation(),l.key==="Enter"&&(l.preventDefault(),r());},autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}})}),jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,p:1.5,pt:0},children:[jsx(Button,{size:"small",disabled:!e,onClick:o,children:"Clear"}),jsx(Button,{size:"small",variant:"contained",onClick:r,children:"Apply"})]})]});Ve.displayName="TextFilterPopover";var Po=40,Ke=({searchText:e,onSearchChange:t,options:r,filteredOptions:o,selected:l,onOptionToggle:s,onSelectAll:i,onClearSelection:m,onApply:d,isLoading:c})=>{let g=useListVirtualizer({count:o.length,itemHeight:Po,containerHeight:240});return jsxs(Box,{sx:{width:280},children:[jsxs(Box,{sx:{p:1.5,pb:.5},children:[jsx(TextField,{placeholder:"Search...",value:e,onChange:f=>t(f.target.value),onKeyDown:f=>f.stopPropagation(),autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}}),jsxs(Typography,{variant:"caption",color:"text.secondary",sx:{mt:.5,display:"block"},children:[o.length," of ",r.length," options"]})]}),jsxs(Box,{sx:{display:"flex",justifyContent:"space-between",px:1.5,py:.5},children:[jsxs(Button,{size:"small",onClick:i,children:["Select All (",o.length,")"]}),jsx(Button,{size:"small",onClick:m,children:"Clear"})]}),jsx(Box,{ref:g.containerRef,onScroll:g.onScroll,sx:{maxHeight:240,overflowY:"auto",px:.5},children:c?jsx(Box,{sx:{display:"flex",justifyContent:"center",py:2},children:jsx(CircularProgress,{size:24})}):o.length===0?jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No options found"}):jsx(Box,{sx:{height:g.totalHeight,position:"relative"},children:g.visibleItems.map(({index:f,offsetTop:I})=>{let x=o[f];return jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:l.has(x),onChange:S=>s(x,S.target.checked)}),label:jsx(Typography,{variant:"body2",children:x}),sx:{position:"absolute",top:I,width:"100%",height:Po,boxSizing:"border-box",display:"flex",alignItems:"center",mx:0,"& .MuiFormControlLabel-label":{flex:1,minWidth:0}}},x)})})}),jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,p:1.5,pt:1,borderTop:1,borderColor:"divider"},children:[jsx(Button,{size:"small",onClick:m,children:"Clear"}),jsx(Button,{size:"small",variant:"contained",onClick:d,children:"Apply"})]})]})};Ke.displayName="MultiSelectFilterPopover";var Ye=({selectedUser:e,searchText:t,onSearchChange:r,suggestions:o,isLoading:l,onUserSelect:s,onClearUser:i,inputRef:m})=>jsxs(Box,{sx:{width:300},children:[e&&jsxs(Box,{sx:{p:1.5,pb:1,borderBottom:1,borderColor:"divider"},children:[jsx(Typography,{variant:"caption",color:"text.secondary",children:"Currently filtered by:"}),jsxs(Box,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5},children:[jsx(Avatar,{src:e.photo,alt:e.displayName,sx:{width:32,height:32},children:e.displayName?.[0]}),jsxs(Box,{sx:{flex:1,minWidth:0},children:[jsx(Typography,{variant:"body2",noWrap:true,children:e.displayName}),jsx(Typography,{variant:"caption",color:"text.secondary",noWrap:true,children:e.email})]}),jsx(IconButton,{size:"small",onClick:i,"aria-label":"Remove filter",children:jsx(Clear,{fontSize:"small"})})]})]}),jsx(Box,{sx:{p:1.5,pb:.5},children:jsx(TextField,{inputRef:m,placeholder:"Search for a person...",value:t,onChange:d=>r(d.target.value),onKeyDown:d=>d.stopPropagation(),autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}})}),jsx(Box,{sx:{maxHeight:240,overflowY:"auto"},children:l&&t.trim()?jsx(Box,{sx:{display:"flex",justifyContent:"center",py:2},children:jsx(CircularProgress,{size:24})}):o.length===0&&t.trim()?jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No results found"}):t.trim()?o.map(d=>jsxs(Box,{onClick:()=>s(d),sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,cursor:"pointer","&:hover":{bgcolor:"action.hover"}},children:[jsx(Avatar,{src:d.photo,alt:d.displayName,sx:{width:32,height:32},children:d.displayName?.[0]}),jsxs(Box,{sx:{flex:1,minWidth:0},children:[jsx(Typography,{variant:"body2",noWrap:true,children:d.displayName}),jsx(Typography,{variant:"caption",color:"text.secondary",noWrap:true,children:d.email})]})]},d.id||d.email||d.displayName)):jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"Type to search..."})}),e&&jsx(Box,{sx:{p:1.5,pt:1,borderTop:1,borderColor:"divider"},children:jsx(Button,{size:"small",fullWidth:true,onClick:i,children:"Clear Filter"})})]});Ye.displayName="PeopleFilterPopover";var Yt=createBaseFilterRenderers({MultiSelectFilterPopover:Ke,TextFilterPopover:Ve,PeopleFilterPopover:Ye}),ye=Re.memo(e=>{let{columnName:t,filterType:r,options:o=[],isLoadingOptions:l=false,selectedUser:s}=e,i=useColumnHeaderFilterState(getColumnHeaderFilterStateParams(e)),{headerRef:m,isFilterOpen:d,setFilterOpen:c,hasActiveFilter:g,popoverPosition:f,handlers:I}=i;return jsxs(Box,{ref:m,sx:{display:"flex",alignItems:"center",width:"100%",minWidth:0},children:[jsx(Box,{sx:{flex:1,minWidth:0,overflow:"hidden"},children:jsx(Tooltip,{title:t,arrow:true,children:jsx(Typography,{variant:"body2",fontWeight:600,noWrap:true,"data-header-label":true,sx:{lineHeight:1.4},children:t})})}),jsx(Box,{sx:{display:"flex",alignItems:"center",ml:.5,flexShrink:0},children:r!=="none"&&jsxs(IconButton,{size:"small",onClick:I.handleFilterIconClick,"aria-label":`Filter ${t}`,"aria-expanded":d,"aria-haspopup":"dialog",title:`Filter ${t}`,color:g||d?"primary":"default",sx:{p:.25,position:"relative"},children:[jsx(FilterList,{sx:{fontSize:16}}),g&&jsx(Box,{sx:{position:"absolute",top:2,right:2,width:6,height:6,borderRadius:"50%",bgcolor:"primary.main"}})]})}),jsxs(Popover,{open:d&&r!=="none",onClose:()=>c(false),anchorReference:"anchorPosition",anchorPosition:f??{top:0,left:0},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},slotProps:{paper:{sx:{mt:.5,overflow:"visible"},onClick:x=>x.stopPropagation()}},children:[jsx(Box,{sx:{borderBottom:1,borderColor:"divider",px:1.5,py:1},children:jsxs(Typography,{variant:"subtitle2",children:["Filter: ",t]})}),renderFilterContent(r,i,o??[],l,s,Yt)]})]})});ye.displayName="ColumnHeaderFilter";function Te(e){let{isOpen:t,anchorElement:r,onClose:o,onPinLeft:l,onPinRight:s,onUnpin:i,onSortAsc:m,onSortDesc:d,onClearSort:c,onAutosizeThis:g,onAutosizeAll:f,canPinLeft:I,canPinRight:x,canUnpin:S,currentSort:P,isSortable:M,isResizable:D}=e,[C,O]=useState(void 0);useEffect(()=>{if(t&&r){let w=r.getBoundingClientRect();O({top:w.bottom+4,left:w.left});}else O(void 0);},[t,r]);let k=useMemo(()=>({canPinLeft:I,canPinRight:x,canUnpin:S,currentSort:P,isSortable:M,isResizable:D}),[I,x,S,P,M,D]),H=useMemo(()=>getColumnHeaderMenuItems(k),[k]),pe=useMemo(()=>({pinLeft:l,pinRight:s,unpin:i,sortAsc:m,sortDesc:d,clearSort:c,autosizeThis:g,autosizeAll:f}),[l,s,i,m,d,c,g,f]);return jsx(Menu,{open:t&&!!C,onClose:o,anchorReference:"anchorPosition",anchorPosition:C,slotProps:{paper:{sx:{minWidth:140}}},children:H.flatMap((w,ae)=>{let Z=[jsx(MenuItem,{disabled:w.disabled,onClick:()=>{pe[w.id](),o();},children:w.label},w.id)];return w.divider&&ae<H.length-1&&Z.push(jsx(Divider,{},`${w.id}-divider`)),Z})})}function Mo(e){return jsx(BaseInlineCellEditor,{...e,renderCheckbox:(t,r,o)=>jsx(Checkbox,{checked:t,onChange:(l,s)=>r(s),onKeyDown:l=>l.key==="Escape"&&(l.preventDefault(),o()),size:"small"})})}var nr=e=>({display:"inline-flex",alignItems:"center",gap:.5,...e?{}:{mr:2,"&::after":{content:'"|"',ml:2,color:"divider"}}});function Do(e){let t=getStatusBarParts(e);return jsx(Box,{role:"status","aria-live":"polite",sx:{mt:"auto",px:1.5,py:.75,borderTop:1,borderColor:"divider",bgcolor:"action.hover"},children:t.map((r,o)=>jsxs(Typography,{component:"span",variant:"body2",sx:nr(o===t.length-1),children:[jsx(Typography,{component:"span",color:"text.secondary",children:r.label}),jsx(Typography,{component:"span",fontWeight:600,children:r.value.toLocaleString()})]},r.key))})}function Oo(e){let{x:t,y:r,hasSelection:o,canUndo:l,canRedo:s,onClose:i}=e,m=Re.useMemo(()=>getContextMenuHandlers(e),[e]),d=Re.useCallback(c=>!!(c.disabledWhenNoSelection&&!o||c.id==="undo"&&!l||c.id==="redo"&&!s),[o,l,s]);return jsx(Menu,{open:true,onClose:i,anchorReference:"anchorPosition",anchorPosition:{top:r,left:t},MenuListProps:{dense:true,"aria-label":"Grid context menu"},children:GRID_CONTEXT_MENU_ITEMS.flatMap(c=>{let g=[];return c.dividerBefore&&g.push(jsx(Divider,{},`${c.id}-divider`)),g.push(jsxs(MenuItem,{onClick:m[c.id],disabled:d(c),children:[jsx("span",{style:{flex:1},children:c.label}),c.shortcut&&jsx("span",{style:{marginLeft:24,color:"var(--ogrid-fg-muted, rgba(0,0,0,0.4))",fontSize:"0.8em"},children:formatShortcut(c.shortcut)})]},c.id)),g})})}var Cr={py:4,px:2,textAlign:"center",borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function Ho({emptyState:e}){return jsx(Box,{sx:Cr,children:e.render?e.render():jsxs(Fragment,{children:[jsx(Typography,{variant:"h6",gutterBottom:true,children:"No results found"}),jsx(Typography,{variant:"body2",color:"text.secondary",children:e.message!=null?e.message:e.hasActiveFilters?jsxs(Fragment,{children:["No items match your current filters. Try adjusting your search or"," ",jsx(Button,{variant:"text",size:"small",onClick:e.onClearAll,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time."})]})})}var br={position:"absolute",inset:0,zIndex:2,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--ogrid-loading-bg, rgba(255,255,255,0.7))"},xr={display:"flex",flexDirection:"column",alignItems:"center",gap:1,p:2,bgcolor:"background.paper",border:1,borderColor:"divider",borderRadius:1};function _o({message:e}){return jsx(Box,{sx:br,children:jsxs(Box,{sx:xr,children:[jsx(CircularProgress,{size:24}),jsx(Typography,{variant:"body2",color:"text.secondary",children:e})]})})}function Ao({dropIndicatorX:e,wrapperLeft:t}){return jsx(Box,{sx:{position:"absolute",top:0,bottom:0,width:3,bgcolor:"var(--ogrid-primary, #217346)",pointerEvents:"none",zIndex:100,transition:"left 0.05s",left:e-t}})}var Vr={position:"relative",flex:1,minHeight:0,display:"flex",flexDirection:"column"},Xr={width:"100%",height:"100%",display:"flex",alignItems:"center",boxSizing:"border-box",outline:"2px solid var(--ogrid-selection-color, #217346)",outlineOffset:"-1px",zIndex:2,position:"relative",background:"var(--ogrid-bg, #fff)",overflow:"visible",padding:0},Kr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,maxWidth:CHECKBOX_COLUMN_WIDTH,textAlign:"center"},Yr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,p:0},$r={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,maxWidth:CHECKBOX_COLUMN_WIDTH,textAlign:"center",padding:0,position:"relative",height:"1px",borderBottom:"1px solid var(--ogrid-border, rgba(224,224,224,1))"},W="var(--ogrid-header-bg, #f5f5f5)",jr={zIndex:8,bgcolor:W,"& th":{bgcolor:W}},Vo={bgcolor:W},Qe={textAlign:"center",fontSize:"11px",fontWeight:500,color:"text.secondary",py:"2px",px:"4px",bgcolor:W,borderBottom:1,borderColor:"divider",userSelect:"none",fontVariantNumeric:"tabular-nums"},qr={textAlign:"center",fontWeight:600,borderBottom:2,borderColor:"divider",py:.75};function Zr(e){switch(e){case "compact":return {px:"8px",py:"4px"};case "comfortable":return {px:"16px",py:"12px"};default:return {px:"10px",py:"6px"}}}var Xo={compact:{padding:"4px 8px"},normal:{padding:"6px 10px"},comfortable:{padding:"12px 16px"}},Ko={compact:{"--ogrid-cell-padding-vertical":"4px","--ogrid-cell-padding-horizontal":"8px","--ogrid-cell-font-size":"12px"},normal:{"--ogrid-cell-padding-vertical":"6px","--ogrid-cell-padding-horizontal":"10px","--ogrid-cell-font-size":"13px"},comfortable:{"--ogrid-cell-padding-vertical":"12px","--ogrid-cell-padding-horizontal":"16px","--ogrid-cell-font-size":"14px"}},eo={fontWeight:600,position:"sticky",top:0,zIndex:8,bgcolor:W},Jr={...eo,position:"sticky",left:0,top:0,zIndex:10,bgcolor:W,willChange:"transform",borderRight:"1px solid",borderRightColor:"divider",boxShadow:"2px 0 4px -1px rgba(0,0,0,0.1)"},Qr={...eo,position:"sticky",right:0,top:0,zIndex:10,bgcolor:W,willChange:"transform",borderLeft:"1px solid",borderLeftColor:"divider",boxShadow:"-2px 0 4px -1px rgba(0,0,0,0.1)"},oo={fontWeight:600,zIndex:8,bgcolor:W},en={...oo,position:"sticky",left:0,zIndex:10,bgcolor:W,willChange:"transform",borderRight:"1px solid",borderRightColor:"divider",boxShadow:"2px 0 4px -1px rgba(0,0,0,0.1)"},on={...oo,position:"sticky",right:0,zIndex:10,bgcolor:W,willChange:"transform",borderLeft:"1px solid",borderLeftColor:"divider",boxShadow:"-2px 0 4px -1px rgba(0,0,0,0.1)"},Yo={position:"absolute",top:0,right:"-3px",bottom:0,width:"8px",cursor:"col-resize",userSelect:"none","&::after":{content:'""',position:"absolute",top:0,right:"3px",bottom:0,width:"2px"},"&:hover::after":{bgcolor:"primary.main"},"&:active::after":{bgcolor:"primary.dark"}},tn={width:"100%",height:"100%",minHeight:"100%",minWidth:40,display:"flex",alignItems:"center",boxSizing:"border-box",overflow:"hidden"},rn={p:1},nn={display:"flex",flexDirection:"column",minHeight:"100%"},an={display:"flex",alignItems:"center",gap:.5},ln={background:"transparent",border:"none",cursor:"pointer",padding:"2px 4px",fontSize:"16px",lineHeight:1,color:"text.secondary",transition:"background-color 0.15s",borderRadius:"3px",display:"flex",alignItems:"center",justifyContent:"center",minWidth:"20px",height:"20px",flexShrink:0,"@media (hover: hover)":{visibility:"hidden"},"&:hover":{bgcolor:"action.hover"},"th:hover &":{visibility:"visible"}},sn={position:"relative",opacity:1},dn={position:"relative",opacity:.6},$o={padding:0,border:"none"};function cn(e){let{item:t,rowIndex:r,rowId:o,isSelected:l,columnLayouts:s,renderCellContent:i,handleSingleRowClick:m,handleRowCheckboxChange:d,lastMouseShiftRef:c,hasCheckboxCol:g,hasRowNumbersCol:f,rowNumberOffset:I,rowHeight:x,leftSpacerWidth:S,rightSpacerWidth:P,globalColIndexMap:M,rowNumWidth:D}=e;return jsxs("tr",{"data-row-id":o,onClick:m,"aria-selected":l||void 0,className:`ogrid-mat-row${l?" ogrid-mat-row--selected":""}`,style:x?{height:x}:void 0,children:[g&&jsx("td",{style:$r,children:jsx("div",{"data-row-index":r,"data-col-index":0,onClick:STOP_PROPAGATION,className:"ogrid-mat-checkbox-wrapper",children:jsx(Checkbox,{checked:l,onChange:(C,O)=>d(o,O,r,c.current),size:"small","aria-label":`Select row ${r+1}`})})}),f&&(()=>{let C=D??ROW_NUMBER_COLUMN_WIDTH;return jsx("td",{className:"ogrid-mat-td ogrid-mat-row-number",style:{width:C,minWidth:C,maxWidth:C,left:g?CHECKBOX_COLUMN_WIDTH:0,borderBottom:"1px solid var(--ogrid-border, rgba(224,224,224,1))"},children:I+r+1})})(),S!=null&&S>0&&jsx("td",{style:{...$o,width:S,minWidth:S},"aria-hidden":true}),s.map((C,O)=>{let k=M?M[O]:O;return jsx("td",{"data-column-id":C.col.columnId,className:C.tdClassName,style:{...C.tdStyle,minWidth:C.minWidth,width:C.width,maxWidth:C.maxWidth},children:i(t,C.col,r,k)},C.col.columnId)}),P!=null&&P>0&&jsx("td",{style:{...$o,width:P,minWidth:P},"aria-hidden":true})]})}var pn=Re.memo(cn,areGridRowPropsEqual);So();function un(e){let{virtualScrollEnabled:t,visibleRange:r,columnRange:o,items:l,getRowId:s,selectedRowIds:i,visibleCols:m,columnLayouts:d,renderCellContent:c,handleSingleRowClick:g,handleRowCheckboxChange:f,lastMouseShiftRef:I,hasCheckboxCol:x,hasRowNumbersCol:S,rowNumberOffset:P,rowHeight:M,selectionRange:D,activeCell:C,cutRange:O,copyRange:k,isDragging:H,editingCell:pe,pinnedColumns:w,rowNumWidth:ae}=e,{rowLayouts:Z,globalColIndexMap:J,leftSpacerWidth:Fe,rightSpacerWidth:_e}=Re.useMemo(()=>{if(!o)return {rowLayouts:d,globalColIndexMap:void 0,leftSpacerWidth:void 0,rightSpacerWidth:void 0};let y=partitionColumnsForVirtualization(m,o,w),U=[...y.pinnedLeft,...y.virtualizedUnpinned,...y.pinnedRight],Q=new Map(d.map($=>[$.col.columnId,$])),ee=[],ue=[];for(let $ of U){let me=Q.get($.columnId);me&&(ee.push(me),ue.push(m.indexOf($)));}return {rowLayouts:ee,globalColIndexMap:ue,leftSpacerWidth:y.leftSpacerWidth,rightSpacerWidth:y.rightSpacerWidth}},[o,m,d,w]),T=(y,U)=>{let Q=s(y);return jsx(pn,{item:y,rowIndex:U,rowId:Q,isSelected:i.has(Q),columnLayouts:Z,renderCellContent:c,handleSingleRowClick:g,handleRowCheckboxChange:f,lastMouseShiftRef:I,hasCheckboxCol:x,hasRowNumbersCol:S,rowNumberOffset:P,selectionRange:D,activeCell:C,cutRange:O,copyRange:k,isDragging:H,rowHeight:M,editingRowId:pe?.rowId??null,leftSpacerWidth:Fe,rightSpacerWidth:_e,globalColIndexMap:J,rowNumWidth:ae},Q)};return jsxs("tbody",{className:"ogrid-mat-tbody",children:[t&&r.offsetTop>0&&jsx("tr",{style:{height:r.offsetTop},"aria-hidden":true}),t?l.slice(r.startIndex,r.endIndex+1).map((y,U)=>T(y,r.startIndex+U)):l.map((y,U)=>T(y,U)),t&&r.offsetBottom>0&&jsx("tr",{style:{height:r.offsetBottom},"aria-hidden":true})]})}function mn(e){let t=useDataGridTableOrchestration({props:e}),{wrapperRef:r,tableContainerRef:o,lastMouseShiftRef:l,interaction:s,pinning:i,handleResizeStart:m,handleResizeDoubleClick:d,getColumnWidth:c,isReorderDragging:g,dropIndicatorX:f,handleHeaderMouseDown:I,virtualScrollEnabled:x,visibleRange:S,columnRange:P,onHorizontalScroll:M,items:D,getRowId:C,emptyState:O,suppressHorizontalScroll:k,isLoading:H,loadingMessage:pe,ariaLabel:w,ariaLabelledBy:ae,columnReorder:Z,density:J,rowHeight:Fe,rowNumberOffset:_e,headerRows:T,allowOverflowX:y,fitToContent:U,showColumnLetters:Q,editCallbacks:ee,interactionHandlers:ue,cellDescriptorInputRef:$,cellDescriptorCacheRef:me,pendingEditorValueRef:io,popoverAnchorElRef:Ae,handleSingleRowClick:Qo,handlePasteVoid:et,visibleCols:ge,hasCheckboxCol:le,hasRowNumbersCol:Ce,colOffset:he,minTableWidth:so,columnSizingOverrides:fe,measuredColumnWidths:ot,selectedRowIds:co,handleRowCheckboxChange:tt,handleSelectAll:rt,allSelected:nt,someSelected:at,editingCell:lt,setPopoverAnchorEl:po,cancelPopoverEdit:uo,setActiveCell:ve,selectionRange:oe,hasCellSelection:it,handleGridKeyDown:st,handleFillHandleMouseDown:mo,handleCopy:dt,handleCut:ct,cutRange:go,copyRange:Co,canUndo:pt,canRedo:ut,onUndo:mt,onRedo:gt,isDragging:ho,menuPosition:ze,closeContextMenu:Ct,headerFilterInput:ht,statusBarConfig:ie,showEmptyInGrid:fo,onCellError:bo,headerMenu:be}=t,We=useMemo(()=>Zr(J),[J]),xo=useMemo(()=>({px:We.px,py:We.py}),[We]),Ie=useColumnMeta({visibleCols:ge,getColumnWidth:c,columnSizingOverrides:fe,measuredColumnWidths:ot,pinnedColumns:i.pinnedColumns,leftOffsets:i.leftOffsets,rightOffsets:i.rightOffsets,pinnedColLeftClass:"",pinnedColRightClass:""}),ft=useMemo(()=>ge.map(p=>{let u=i.pinnedColumns[p.columnId]==="left",h=i.pinnedColumns[p.columnId]==="right",F="ogrid-mat-td",n={};u?(F+=" ogrid-mat-td--pinned-left",i.leftOffsets[p.columnId]!=null&&(n.left=i.leftOffsets[p.columnId])):h&&(F+=" ogrid-mat-td--pinned-right",i.rightOffsets[p.columnId]!=null&&(n.right=i.rightOffsets[p.columnId]));let X=Ie.cellStyles[p.columnId];return {col:p,tdClassName:F,tdStyle:n,minWidth:X?.minWidth??0,width:X?.width??c(p),maxWidth:X?.maxWidth??c(p)}}),[ge,Ie,i.pinnedColumns,i.leftOffsets,i.rightOffsets,c]),bt=useMemo(()=>({position:"relative",flex:1,minHeight:H&&D.length===0?200:0,width:U?"fit-content":"100%",maxWidth:"100%",overflowX:k?"hidden":y?"auto":"hidden",overflowY:"auto",bgcolor:"background.paper",willChange:"scroll-position"}),[U,k,y,H,D.length]),Ue=Xo[J]??Xo.normal,xt=Ko[J]??Ko.normal,yt=useCallback((p,u,h,F)=>{let n=getCellRenderDescriptor(p,u,h,F,$.current,me.current),X=C(p),j;if(n.mode==="editing-inline")j=jsx("div",{className:"ogrid-mat-editing-cell",style:Xr,children:jsx(Mo,{...buildInlineEditorProps(p,u,n,ee)})});else if(n.mode==="editing-popover"&&typeof u.cellEditor=="function"){let K=buildPopoverEditorProps(p,u,n,io.current,ee),N=u.cellEditor,q=resolveCellDisplayContent(u,p,n.displayValue),_=resolveCellStyle(u,p,n.displayValue);j=jsxs(Fragment,{children:[jsx(Box,{ref:R=>{R&&po(R);},sx:tn,style:Ue,children:_?jsx("span",{style:_,children:q}):q}),jsx(Popover,{open:!!Ae.current,anchorEl:Ae.current,onClose:uo,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:jsx(Box,{sx:rn,children:jsx(N,{...K})})})]});}else {let K;if(n.columnType==="boolean"){let _=!!n.displayValue;K=jsx("input",{type:"checkbox",checked:_,disabled:!n.canEditAny,onChange:n.canEditAny?()=>{let R=n.rowIndex,A=n.globalColIndex,yo=n.globalColIndex-he;ee.commitCellEdit(p,u.columnId,_,!_,R,A),setTimeout(()=>{ve({rowIndex:R,columnIndex:A}),s.setSelectionRange({startRow:R,startCol:yo,endRow:R,endCol:yo});},0);}:void 0,onPointerDown:R=>{R.stopPropagation(),ve({rowIndex:n.rowIndex,columnIndex:n.globalColIndex}),s.setSelectionRange({startRow:n.rowIndex,startCol:n.globalColIndex-he,endRow:n.rowIndex,endCol:n.globalColIndex-he});},onClick:R=>R.stopPropagation(),className:"ogrid-mat-boolean-checkbox","aria-label":_?"Checked":"Unchecked"});}else {let _=resolveCellDisplayContent(u,p,n.displayValue),R=resolveCellStyle(u,p,n.displayValue);K=R?jsx("span",{style:R,children:_}):_;}let N="ogrid-mat-cell";u.type==="numeric"?N+=" ogrid-mat-cell--numeric":u.type==="boolean"&&(N+=" ogrid-mat-cell--boolean"),n.canEditAny&&(N+=" ogrid-mat-cell--editable"),n.isActive&&(N+=" ogrid-mat-cell--active"),n.isActive&&n.isInRange&&(N+=" ogrid-mat-cell--active-in-range"),n.isInRange&&!n.isActive&&(N+=" ogrid-mat-cell--range"),n.isInCutRange&&(N+=" ogrid-mat-cell--cut");let q=getCellInteractionProps(n,u.columnId,ue);j=jsxs("div",{className:N,...q,style:Ue,children:[K,n.canEditAny&&n.isSelectionEndCell&&jsx("div",{className:"ogrid-mat-fill-handle",onPointerDown:mo,"aria-label":"Fill handle"})]});}return jsx(CellErrorBoundary,{onError:bo,children:j},`${X}-${u.columnId}`)},[ee,ue,mo,po,uo,C,bo,$,me,Ue,io,Ae]);return jsxs(Box,{sx:Vr,children:[jsxs(Box,{ref:r,tabIndex:0,role:"region","aria-label":w??(ae?void 0:"Data grid"),"aria-labelledby":ae,onMouseDown:p=>{l.current=p.shiftKey;},onScroll:M?p=>M(p.target.scrollLeft):void 0,onKeyDown:st,onContextMenu:PREVENT_DEFAULT,"data-density":J,"data-overflow-x":y?"true":"false",className:"ogrid-mat-wrapper","data-ogrid-scroll-container":"",sx:bt,style:xt,children:[jsx(Box,{sx:nn,children:jsx("div",{style:{minWidth:y?so:void 0,overflowX:"clip"},children:jsxs(Box,{ref:o,sx:H&&D.length>0?dn:sn,children:[jsxs(Table,{size:"small",role:"grid",sx:{minWidth:so,borderCollapse:"separate",borderSpacing:0},"data-virtual-scroll":x?"":void 0,children:[jsxs(TableHead,{sx:jr,children:[Q&&jsxs(TableRow,{sx:Vo,children:[le&&jsx(TableCell,{sx:Qe}),Ce&&jsx(TableCell,{sx:Qe}),ge.map((p,u)=>{let h=Ie.hdrStyles[p.columnId];return jsx(TableCell,{component:"th",sx:{...Qe,minWidth:h?.minWidth,width:h?.width,maxWidth:h?.maxWidth},children:indexToColumnLetter(u)},p.columnId)})]}),T.map((p,u)=>jsxs(TableRow,{sx:Vo,children:[u===T.length-1&&le&&jsx(TableCell,{padding:"checkbox",rowSpan:T.length>1?1:void 0,sx:Kr,children:jsx(Checkbox,{checked:nt,indeterminate:at,onChange:(h,F)=>rt(!!F),size:"small","aria-label":"Select all rows"})}),u===0&&u<T.length-1&&le&&jsx(TableCell,{rowSpan:T.length-1,sx:Yr}),u===T.length-1&&Ce&&(()=>{let h=fe?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return jsxs(TableCell,{component:"th",scope:"col",rowSpan:T.length>1?1:void 0,sx:{width:h,minWidth:h,maxWidth:h,textAlign:"center",fontWeight:600,backgroundColor:W,position:"sticky",left:le?CHECKBOX_COLUMN_WIDTH:0,zIndex:4,...xo},children:["#",jsx(Box,{onPointerDown:F=>{ve(null),s.setSelectionRange(null),r.current?.focus({preventScroll:true}),m(F,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},sx:Yo})]})})(),u===0&&u<T.length-1&&Ce&&(()=>{let h=fe?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return jsx(TableCell,{rowSpan:T.length-1,sx:{width:h,minWidth:h,position:"sticky",left:le?CHECKBOX_COLUMN_WIDTH:0,zIndex:4,backgroundColor:"background.paper"}})})(),p.map((h,F)=>{if(h.isGroup)return jsx(TableCell,{colSpan:h.colSpan,component:"th",scope:"colgroup",sx:qr,children:h.label},F);if(!h.columnDef)return null;let n=h.columnDef,X=i.pinnedColumns[n.columnId]==="left",j=i.pinnedColumns[n.columnId]==="right",K=t.stickyHeader?X?Jr:j?Qr:eo:X?en:j?on:oo,N=X&&i.leftOffsets[n.columnId]!=null?{...K,left:i.leftOffsets[n.columnId]}:j&&i.rightOffsets[n.columnId]!=null?{...K,right:i.rightOffsets[n.columnId]}:K,q=Ie.hdrStyles[n.columnId],R=e.sortBy===n.columnId?e.sortDirection==="asc"?"ascending":"descending":void 0;return jsxs(TableCell,{component:"th",scope:"col","data-column-id":n.columnId,rowSpan:T.length>1?T.length-u:void 0,"aria-sort":R,sx:{...N,...xo,minWidth:q?.minWidth,width:q?.width,maxWidth:q?.maxWidth,...Z?{cursor:g?"grabbing":"grab"}:{},"&:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"-2px",zIndex:11}},onPointerDown:Z?A=>I(n.columnId,A):void 0,children:[jsxs(Box,{sx:an,children:[jsx(ye,{...getHeaderFilterConfig(n,ht)}),jsx(Box,{component:"button",onClick:A=>{A.stopPropagation(),be.isOpen&&be.openForColumn===n.columnId?be.close():be.open(n.columnId,A.currentTarget);},"aria-label":"Column options",title:"Column options",sx:ln,children:"\u22EE"})]}),jsx(Box,{onPointerDown:A=>{ve(null),s.setSelectionRange(null),r.current?.focus({preventScroll:true}),m(A,n);},onDoubleClick:A=>d(A,n),sx:Yo})]},n.columnId)})]},u))]}),!fo&&jsx(un,{virtualScrollEnabled:x,visibleRange:S,columnRange:P,items:D,getRowId:C,selectedRowIds:co,visibleCols:ge,columnLayouts:ft,renderCellContent:yt,handleSingleRowClick:Qo,handleRowCheckboxChange:tt,lastMouseShiftRef:l,hasCheckboxCol:le,hasRowNumbersCol:Ce,rowNumberOffset:_e,rowHeight:Fe,selectionRange:oe,activeCell:s.activeCell,cutRange:go,copyRange:Co,isDragging:ho,editingCell:lt,pinnedColumns:i.pinnedColumns,rowNumWidth:Ce?fe?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH:void 0})]}),g&&f!=null&&jsx(Ao,{dropIndicatorX:f,wrapperLeft:r.current?.getBoundingClientRect().left??0}),jsx(MarchingAntsOverlay,{containerRef:o,selectionRange:oe,copyRange:Co,cutRange:go,colOffset:he,items:D,visibleColumns:e.visibleColumns,columnSizingOverrides:fe,columnOrder:e.columnOrder,isDragging:ho}),e.formulaReferences&&e.formulaReferences.length>0&&jsx(FormulaRefOverlay,{containerRef:o,references:e.formulaReferences,colOffset:he}),fo&&O&&jsx(Ho,{emptyState:O})]})})}),ze&&createPortal(jsx(Oo,{x:ze.x,y:ze.y,hasSelection:it,canUndo:pt,canRedo:ut,onUndo:mt??NOOP,onRedo:gt??NOOP,onCopy:dt,onCut:ct,onPaste:et,onSelectAll:t.interaction.handleSelectAllCells,onClose:Ct}),document.body),jsx(Te,{...getColumnHeaderMenuProps(be)})]}),ie&&jsx(Do,{totalCount:ie.totalCount,filteredCount:ie.filteredCount,selectedCount:ie.selectedCount??co.size,selectedCellCount:oe?(Math.abs(oe.endRow-oe.startRow)+1)*(Math.abs(oe.endCol-oe.startCol)+1):void 0,aggregation:ie.aggregation,suppressRowCount:ie.suppressRowCount}),H&&jsx(_o,{message:pe})]})}var to=Re.memo(mn);var Pn=({columnId:e,columnName:t,checked:r,disabled:o,onChange:l})=>jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:r,onChange:s=>{s.stopPropagation(),l(s.target.checked);},disabled:o}),label:jsx(Typography,{variant:"body2",children:t}),sx:{m:0}}),wn=({visibleCount:e,totalCount:t})=>jsx(Box,{sx:{px:1.5,py:1,borderBottom:1,borderColor:"divider",bgcolor:"action.hover"},children:jsxs(Typography,{variant:"subtitle2",fontWeight:600,children:["Select Columns (",e," of ",t,")"]})}),Tn=({children:e})=>jsx(Box,{sx:{maxHeight:320,overflowY:"auto",py:.5},children:e}),En=({children:e})=>jsx(Box,{sx:{px:1.5,minHeight:32,display:"flex",alignItems:"center"},children:e}),Bn=({onClearAll:e,onSelectAll:t})=>jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"},children:[jsx(Button,{size:"small",onClick:e,sx:{textTransform:"none"},children:"Clear All"}),jsx(Button,{size:"small",variant:"contained",onClick:t,sx:{textTransform:"none"},children:"Select All"})]}),no=e=>{let{columns:t,visibleColumns:r,onVisibilityChange:o,onSetVisibleColumns:l,className:s}=e,[i,m]=useState(null),d=useRef(null),{open:c,setOpen:g,handleClose:f,handleCheckboxChange:I,handleSelectAll:x,handleClearAll:S,visibleCount:P,totalCount:M}=useColumnChooserState({columns:t,visibleColumns:r,onVisibilityChange:o,onSetVisibleColumns:l});return jsxs(Box,{className:s,sx:{display:"inline-flex"},children:[jsxs(Button,{ref:d,variant:"outlined",size:"small",color:"inherit",startIcon:jsx(ViewColumn,{}),endIcon:c?jsx(ExpandLess,{}):jsx(ExpandMore,{}),onClick:k=>{c?(f(),m(null)):(m(k.currentTarget),g(true));},"aria-expanded":c,"aria-haspopup":"listbox",sx:{textTransform:"none",fontWeight:600,borderColor:c?"primary.main":"divider"},children:["Column Visibility (",P," of ",M,")"]}),jsx(Popover,{open:c,anchorEl:i,onClose:()=>{f(),m(null);},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},slotProps:{paper:{sx:{mt:.5,minWidth:220}}},children:jsx(ColumnChooserContent,{columns:t,visibleColumns:r,visibleCount:P,totalCount:M,handleSelectAll:x,handleClearAll:S,handleCheckboxChange:k=>H=>I(k)(H),CheckboxItem:Pn,Header:wn,OptionsListContainer:Tn,OptionItemContainer:En,Actions:Bn})})]})};var An={first:jsx(FirstPage,{fontSize:"small"}),prev:jsx(ChevronLeft,{fontSize:"small"}),next:jsx(ChevronRight,{fontSize:"small"}),last:jsx(LastPage,{fontSize:"small"})},zn=({variant:e,onClick:t,disabled:r,"aria-label":o})=>jsx(IconButton,{size:"small",onClick:t,disabled:r,"aria-label":o,children:An[e]}),Wn=({onClick:e,active:t,"aria-label":r,"aria-current":o,children:l})=>jsx(Button,{variant:t?"contained":"outlined",size:"small",onClick:e,"aria-label":r,"aria-current":o,sx:{minWidth:32,px:.5},children:l}),Un=({value:e,options:t,onChange:r,"aria-label":o})=>jsx(Select,{value:e,onChange:s=>r(Number(s.target.value)),size:"small","aria-label":o,sx:{minWidth:70},children:t.map(s=>jsx(MenuItem,{value:s,children:s},s))}),Gn=({children:e,className:t,role:r,"aria-label":o})=>jsx(Box,{className:t,role:r,"aria-label":o,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:2,px:1.5,width:"100%",minWidth:0,boxSizing:"border-box"},children:e}),Vn=({children:e})=>jsx(Typography,{variant:"body2",color:"text.secondary",children:e}),Xn=({children:e})=>jsx(Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:e}),Kn=({children:e})=>jsx(Box,{sx:{display:"flex",alignItems:"center",gap:1},children:e}),Yn=()=>jsx(Typography,{variant:"body2",color:"text.secondary",children:"Rows"}),$n=()=>jsx(Typography,{variant:"body2",color:"text.secondary",sx:{mx:.5},"aria-hidden":true,children:"\u2026"}),jn={NavButton:zn,PageButton:Wn,PageSizeSelect:Un,OuterContainer:Gn,InfoText:Vn,NavButtonsContainer:Xn,PageSizeContainer:Kn,PageSizeLabel:Yn,Ellipsis:$n},Ne=Re.memo(e=>jsx(PaginationControlsBase,{...e,slots:jn}));Ne.displayName="PaginationControls";var Qn=Re.forwardRef(function(t,r){let o=useTheme(),l=Re.useMemo(()=>({display:"flex",flexDirection:"column",gap:1,"--ogrid-bg":o.palette.background.default,"--ogrid-border":o.palette.divider,"--ogrid-header-bg":o.palette.mode==="dark"?o.palette.grey[800]:o.palette.grey[100],"--ogrid-fg":o.palette.text.primary,"--ogrid-fg-secondary":o.palette.text.secondary,"--ogrid-fg-muted":o.palette.text.disabled,"--ogrid-hover-bg":o.palette.action.hover,"--ogrid-paper-bg":o.palette.background.paper,"--ogrid-primary":o.palette.primary.main,"--ogrid-selection-bg":o.palette.action.selected}),[o]);return jsx(Box,{ref:r,sx:l,...t})}),Jo=createOGrid({DataGridTable:to,ColumnChooser:no,PaginationControls:Ne,containerComponent:Qn});export{no as ColumnChooser,ye as ColumnHeaderFilter,Te as ColumnHeaderMenu,to as DataGridTable,Jo as OGrid,Ne as PaginationControls};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alaarab/ogrid-react-material",
3
- "version": "2.5.5",
3
+ "version": "2.5.7",
4
4
  "description": "OGrid React Material implementation – MUI Table–based data grid with sorting, filtering, pagination, column chooser, spreadsheet selection, and CSV export.",
5
5
  "main": "dist/esm/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -39,7 +39,7 @@
39
39
  "node": ">=18"
40
40
  },
41
41
  "dependencies": {
42
- "@alaarab/ogrid-react": "2.5.5"
42
+ "@alaarab/ogrid-react": "2.5.7"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@emotion/react": "^11.0.0",