@infinite-table/infinite-react 3.1.6 → 3.2.0

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/index.dev.mjs CHANGED
@@ -123,7 +123,7 @@ function debounce(fn, { wait }) {
123
123
  }
124
124
 
125
125
  // src/components/InfiniteTable/index.tsx
126
- import * as React64 from "react";
126
+ import * as React66 from "react";
127
127
 
128
128
  // src/utils/join.ts
129
129
  var join = (...args) => args.filter((x) => !!`${x}`).join(" ");
@@ -136,12 +136,12 @@ import { useRef as useRef2 } from "react";
136
136
  function once(fn) {
137
137
  let called = false;
138
138
  let result = null;
139
- const onceFn = () => {
139
+ const onceFn = (...args) => {
140
140
  if (called) {
141
141
  return result;
142
142
  }
143
143
  called = true;
144
- result = fn();
144
+ result = fn(...args);
145
145
  return result;
146
146
  };
147
147
  return onceFn;
@@ -1089,7 +1089,7 @@ var CSSNumericVariableWatch = (props) => {
1089
1089
  };
1090
1090
 
1091
1091
  // src/components/DataSource/publicHooks/useDataSource.ts
1092
- import * as React4 from "react";
1092
+ import * as React5 from "react";
1093
1093
 
1094
1094
  // src/components/DataSource/DataSourceContext.ts
1095
1095
  import * as React3 from "react";
@@ -1101,25 +1101,41 @@ function getDataSourceContext() {
1101
1101
  return DSContext = React3.createContext({
1102
1102
  api: null,
1103
1103
  getState: () => null,
1104
+ assignState: () => null,
1104
1105
  componentState: null,
1105
1106
  componentActions: null
1106
1107
  });
1107
1108
  }
1108
1109
 
1110
+ // src/components/DataSource/DataSourceMasterDetailContext.ts
1111
+ import * as React4 from "react";
1112
+ var DSMasterDetailContext;
1113
+ function getDataSourceMasterDetailContext() {
1114
+ if (DSMasterDetailContext) {
1115
+ return DSMasterDetailContext;
1116
+ }
1117
+ return DSMasterDetailContext = React4.createContext(void 0);
1118
+ }
1119
+
1109
1120
  // src/components/DataSource/publicHooks/useDataSource.ts
1110
1121
  function useDataSource() {
1111
1122
  const DataSourceContext = getDataSourceContext();
1112
- const contextValue = React4.useContext(DataSourceContext);
1123
+ const contextValue = React5.useContext(DataSourceContext);
1113
1124
  return contextValue.componentState;
1114
1125
  }
1115
1126
  function useDataSourceContextValue() {
1116
1127
  const DataSourceContext = getDataSourceContext();
1117
- const contextValue = React4.useContext(DataSourceContext);
1128
+ const contextValue = React5.useContext(DataSourceContext);
1129
+ return contextValue;
1130
+ }
1131
+ function useMasterDetailContext() {
1132
+ const masterDetailContext = getDataSourceMasterDetailContext();
1133
+ const contextValue = React5.useContext(masterDetailContext);
1118
1134
  return contextValue;
1119
1135
  }
1120
1136
 
1121
1137
  // src/components/HeadlessTable/index.tsx
1122
- import * as React12 from "react";
1138
+ import * as React13 from "react";
1123
1139
  import {
1124
1140
  useCallback as useCallback4,
1125
1141
  useEffect as useEffect7,
@@ -1128,7 +1144,7 @@ import {
1128
1144
  } from "react";
1129
1145
 
1130
1146
  // src/components/VirtualList/SpacePlaceholder.tsx
1131
- import * as React5 from "react";
1147
+ import * as React6 from "react";
1132
1148
  function SpacePlaceholderFn(props) {
1133
1149
  const { height, width, count } = props;
1134
1150
  const style2 = {
@@ -1139,7 +1155,7 @@ function SpacePlaceholderFn(props) {
1139
1155
  pointerEvents: "none",
1140
1156
  contain: "strict"
1141
1157
  };
1142
- return /* @__PURE__ */ React5.createElement(
1158
+ return /* @__PURE__ */ React6.createElement(
1143
1159
  "div",
1144
1160
  {
1145
1161
  "data-count": count,
@@ -1150,13 +1166,13 @@ function SpacePlaceholderFn(props) {
1150
1166
  }
1151
1167
  );
1152
1168
  }
1153
- var SpacePlaceholder = React5.memo(SpacePlaceholderFn);
1169
+ var SpacePlaceholder = React6.memo(SpacePlaceholderFn);
1154
1170
 
1155
1171
  // src/components/VirtualList/VirtualList.css.ts
1156
1172
  var scrollTransformTargetCls = "VirtualList_scrollTransformTarget__mlx2t3";
1157
1173
 
1158
1174
  // src/components/VirtualScrollContainer/index.tsx
1159
- import * as React6 from "react";
1175
+ import * as React7 from "react";
1160
1176
  import { useRef as useRef3 } from "react";
1161
1177
 
1162
1178
  // src/components/hooks/useOnScroll.ts
@@ -1203,7 +1219,7 @@ var getScrollableClassName = (scrollable) => {
1203
1219
 
1204
1220
  // src/components/VirtualScrollContainer/index.tsx
1205
1221
  var rootClassName = "InfiniteVirtualScrollContainer";
1206
- var VirtualScrollContainer = React6.forwardRef(
1222
+ var VirtualScrollContainer = React7.forwardRef(
1207
1223
  function VirtualScrollContainer2(props, ref) {
1208
1224
  const {
1209
1225
  children,
@@ -1215,7 +1231,7 @@ var VirtualScrollContainer = React6.forwardRef(
1215
1231
  } = props;
1216
1232
  const domRef = ref != null ? ref : useRef3(null);
1217
1233
  useOnScroll(domRef, onContainerScroll);
1218
- return /* @__PURE__ */ React6.createElement(
1234
+ return /* @__PURE__ */ React7.createElement(
1219
1235
  "div",
1220
1236
  {
1221
1237
  ref: domRef,
@@ -1234,11 +1250,11 @@ var VirtualScrollContainer = React6.forwardRef(
1234
1250
  );
1235
1251
 
1236
1252
  // src/components/HeadlessTable/RawTable.tsx
1237
- import * as React9 from "react";
1253
+ import * as React10 from "react";
1238
1254
  import { useEffect as useEffect4, useLayoutEffect as useLayoutEffect3, useMemo as useMemo2 } from "react";
1239
1255
 
1240
1256
  // src/components/RawList/AvoidReactDiff.tsx
1241
- import * as React7 from "react";
1257
+ import * as React8 from "react";
1242
1258
  import { useEffect as useEffect3, useRef as useRef4, useState } from "react";
1243
1259
  function AvoidReactDiffFn(props) {
1244
1260
  const [children, setChildren] = useState(props.updater.get);
@@ -1266,7 +1282,7 @@ function AvoidReactDiffFn(props) {
1266
1282
  }, [props.updater, props.useraf]);
1267
1283
  return children != null ? children : null;
1268
1284
  }
1269
- var AvoidReactDiff = React7.memo(AvoidReactDiffFn);
1285
+ var AvoidReactDiff = React8.memo(AvoidReactDiffFn);
1270
1286
 
1271
1287
  // src/components/utils/buildSubscriptionCallback.tsx
1272
1288
  function buildSubscriptionCallback(withRaf = false) {
@@ -1312,7 +1328,7 @@ function buildSubscriptionCallback(withRaf = false) {
1312
1328
  }
1313
1329
 
1314
1330
  // src/components/HeadlessTable/ReactHeadlessTableRenderer.tsx
1315
- import * as React8 from "react";
1331
+ import * as React9 from "react";
1316
1332
 
1317
1333
  // src/utils/mathIntersection.ts
1318
1334
  function arrayIntersection(...arrays) {
@@ -1349,8 +1365,8 @@ function stripVar(cssVariableWithVarString) {
1349
1365
  }
1350
1366
 
1351
1367
  // src/components/InfiniteTable/theme.css.ts
1352
- var InternalVars = { currentColumnTransformX: "var(--currentColumnTransformX__1slvgu90)", currentColumnTransformY: "var(--currentColumnTransformY__1slvgu91)", activeCellRowOffset: "var(--activeCellRowOffset__1slvgu92)", activeCellRowHeight: "var(--activeCellRowHeight__1slvgu93)", activeCellOffsetX: "var(--activeCellOffsetX__1slvgu94)", activeCellOffsetY: "var(--activeCellOffsetY__1slvgu95)", scrollTopForActiveRow: "var(--scrollTopForActiveRow__1slvgu96)", activeCellColWidth: "var(--activeCellColWidth__1slvgu97)", activeCellColOffset: "var(--activeCellColOffset__1slvgu98)", columnReorderEffectDurationAtIndex: "var(--columnReorderEffectDurationAtIndex__1slvgu99)", columnWidthAtIndex: "var(--columnWidthAtIndex__1slvgu9a)", columnOffsetAtIndex: "var(--columnOffsetAtIndex__1slvgu9b)", columnOffsetAtIndexWhileReordering: "var(--columnOffsetAtIndexWhileReordering__1slvgu9c)", columnZIndexAtIndex: "var(--columnZIndexAtIndex__1slvgu9d)", pinnedStartWidth: "var(--pinnedStartWidth__1slvgu9e)", pinnedEndWidth: "var(--pinnedEndWidth__1slvgu9f)", pinnedEndOffset: "var(--pinnedEndOffset__1slvgu9g)", computedVisibleColumnsCount: "var(--computedVisibleColumnsCount__1slvgu9h)", baseZIndexForCells: "var(--baseZIndexForCells__1slvgu9i)", bodyWidth: "var(--bodyWidth__1slvgu9j)", bodyHeight: "var(--bodyHeight__1slvgu9k)", scrollbarWidthHorizontal: "var(--scrollbarWidthHorizontal__1slvgu9l)", scrollbarWidthVertical: "var(--scrollbarWidthVertical__1slvgu9m)", scrollLeft: "var(--scrollLeft__1slvgu9n)", scrollTop: "var(--scrollTop__1slvgu9o)" };
1353
- var ThemeVars = { color: { accent: "var(--infinite-accent-color)", error: "var(--infinite-error-color)", color: "var(--infinite-color)" }, spacing: { "0": "var(--infinite-space-0)", "1": "var(--infinite-space-1)", "2": "var(--infinite-space-2)", "3": "var(--infinite-space-3)", "4": "var(--infinite-space-4)", "5": "var(--infinite-space-5)", "6": "var(--infinite-space-6)", "7": "var(--infinite-space-7)", "8": "var(--infinite-space-8)", "9": "var(--infinite-space-9)", "10": "var(--infinite-space-10)" }, fontSize: { "0": "var(--infinite-font-size-0)", "1": "var(--infinite-font-size-1)", "2": "var(--infinite-font-size-2)", "3": "var(--infinite-font-size-3)", "4": "var(--infinite-font-size-4)", "5": "var(--infinite-font-size-5)", "6": "var(--infinite-font-size-6)", "7": "var(--infinite-font-size-7)" }, fontFamily: "var(--infinite-font-family)", minHeight: "var(--infinite-min-height)", borderRadius: "var(--infinite-border-radius)", background: "var(--infinite-background)", iconSize: "var(--infinite-icon-size)", components: { LoadMask: { padding: "var(--infinite-load-mask-padding)", color: "var(--infinite-load-mask-color)", textBackground: "var(--infinite-load-mask-text-background)", overlayBackground: "var(--infinite-load-mask-overlay-background)", overlayOpacity: "var(--infinite-load-mask-overlay-opacity)", borderRadius: "var(--infinite-load-mask-border-radius)" }, Header: { background: "var(--infinite-header-background)", color: "var(--infinite-header-color)", columnHeaderHeight: "var(--infinite-column-header-height)" }, HeaderCell: { background: "var(--infinite-header-cell-background)", hoverBackground: "var(--infinite-header-cell-hover-background)", padding: "var(--infinite-header-cell-padding)", paddingX: "var(--infinite-header-cell-padding-x)", paddingY: "var(--infinite-header-cell-padding-y)", iconSize: "var(--infinite-header-cell-icon-size)", menuIconLineWidth: "var(--infinite-header-cell-menu-icon-line-width)", sortIconMargin: "var(--infinite-header-cell-sort-icon-margin)", resizeHandleActiveAreaWidth: "var(--infinite-resize-handle-active-area-width)", resizeHandleWidth: "var(--infinite-resize-handle-width)", resizeHandleHoverBackground: "var(--infinite-resize-handle-hover-background)", resizeHandleConstrainedHoverBackground: "var(--infinite-resize-handle-constrained-hover-background)", filterOperatorPaddingX: "var(--infinite-filter-operator-padding-x)", filterEditorPaddingX: "var(--infinite-filter-editor-padding-x)", filterEditorMarginX: "var(--infinite-filter-editor-margin-x)", filterOperatorPaddingY: "var(--infinite-filter-operator-padding-y)", filterEditorPaddingY: "var(--infinite-filter-editor-padding-y)", filterEditorMarginY: "var(--infinite-filter-editor-margin-y)", filterEditorBackground: "var(--infinite-filter-editor-background)", filterEditorBorder: "var(--infinite-filter-editor-border)", filterEditorFocusBorderColor: "var(--infinite-filter-editor-focus-border-color)", filterEditorBorderRadius: "var(--infinite-filter-editor-border-radius)", filterEditorColor: "var(--infinite-filter-editor-color)" }, Cell: { padding: "var(--infinite-cell-padding)", borderWidth: "var(--infinite-cell-border-width)", border: "var(--infinite-cell-border)", borderInvisible: "var(--infinite-cell-border-invisible)", borderRadius: "var(--infinite-cell-border-radius)", reorderEffectDuration: "var(--infinite-column-reorder-effect-duration)", pinnedBorder: "var(--infinite-pinned-cell-border)", color: "var(--infinite-cell-color)", selectedBackground: "var(--infinite-selected-cell-background)", selectedBackgroundDefault: "var(--infinite-selected-cell-background-default)", selectedBackgroundAlpha: "var(--infinite-selected-cell-background-alpha)", selectedBackgroundAlphaWhenTableUnfocused: "var(--infinite-selected-cell-background-alpha--table-unfocused)", selectedBorderColor: "var(--infinite-selected-cell-border-color)", selectedBorderWidth: "var(--infinite-selected-cell-border-width)", selectedBorderStyle: "var(--infinite-selected-cell-border-style)", selectedBorder: "var(--infinite-selected-cell-border)", activeBackgroundAlpha: "var(--infinite-active-cell-background-alpha)", activeBackgroundAlphaWhenTableUnfocused: "var(--infinite-active-cell-background-alpha--table-unfocused)", activeBackground: "var(--infinite-active-cell-background)", activeBackgroundDefault: "var(--infinite-active-cell-background-default)", activeBorderColor: "var(--infinite-active-cell-border-color)", activeBorderWidth: "var(--infinite-active-cell-border-width)", activeBorderStyle: "var(--infinite-active-cell-border-style)", activeBorder: "var(--infinite-active-cell-border)" }, SelectionCheckBox: { marginInline: "var(--infinite-selection-checkbox-margin-inline)" }, Menu: { background: "var(--infinite-menu-background)", color: "var(--infinite-menu-color)", padding: "var(--infinite-menu-padding)", cellPaddingVertical: "var(--infinite-menu-cell-padding-vertical)", cellPaddingHorizontal: "var(--infinite-menu-cell-padding-horizontal)", cellMarginVertical: "var(--infinite-menu-cell-margin-vertical)", itemDisabledBackground: "var(--infinite-menu-item-disabled-background)", itemActiveBackground: "var(--infinite-menu-item-active-background)", itemActiveOpacity: "var(--infinite-menu-item-active-opacity)", itemPressedOpacity: "var(--infinite-menu-item-pressed-opacity)", itemPressedBackground: "var(--infinite-menu-item-pressed-background)", itemDisabledOpacity: "var(--infinite-menu-item-disabled-opacity)", borderRadius: "var(--infinite-menu-border-radius)", shadowColor: "var(--infinite-menu-shadow-color)" }, Row: { background: "var(--infinite-row-background)", oddBackground: "var(--infinite-row-odd-background)", selectedBackground: "var(--infinite-row-selected-background)", activeBackground: "var(--infinite-active-row-background)", activeBorderColor: "var(--infinite-active-row-border-color)", activeBorderWidth: "var(--infinite-active-row-border-width)", activeBorderStyle: "var(--infinite-active-row-border-style)", activeBorder: "var(--infinite-active-row-border)", activeBackgroundAlpha: "var(--infinite-active-row-background-alpha)", activeBackgroundAlphaWhenTableUnfocused: "var(--infinite-active-row-background-alpha--table-unfocused)", hoverBackground: "var(--infinite-row-hover-background)", selectedHoverBackground: "var(--infinite-row-selected-hover-background)", groupRowBackground: "var(--infinite-group-row-background)", groupRowColumnNesting: "var(--infinite-group-row-column-nesting)", groupNesting: "var(--infinite-dont-override-group-row-nesting-length)", pointerEventsWhileScrolling: "var(--infinite-row-pointer-events-while-scrolling)" }, ColumnCell: { background: "var(--infinite-column-cell-bg-dont-override)" } } };
1368
+ var InternalVars = { currentColumnTransformX: "var(--currentColumnTransformX__1slvgu90)", y: "var(--y__1slvgu91)", activeCellRowOffset: "var(--activeCellRowOffset__1slvgu92)", activeCellRowHeight: "var(--activeCellRowHeight__1slvgu93)", activeCellOffsetX: "var(--activeCellOffsetX__1slvgu94)", activeCellOffsetY: "var(--activeCellOffsetY__1slvgu95)", scrollTopForActiveRow: "var(--scrollTopForActiveRow__1slvgu96)", activeCellColWidth: "var(--activeCellColWidth__1slvgu97)", activeCellColOffset: "var(--activeCellColOffset__1slvgu98)", columnReorderEffectDurationAtIndex: "var(--columnReorderEffectDurationAtIndex__1slvgu99)", columnWidthAtIndex: "var(--columnWidthAtIndex__1slvgu9a)", columnOffsetAtIndex: "var(--columnOffsetAtIndex__1slvgu9b)", columnOffsetAtIndexWhileReordering: "var(--columnOffsetAtIndexWhileReordering__1slvgu9c)", columnZIndexAtIndex: "var(--columnZIndexAtIndex__1slvgu9d)", pinnedStartWidth: "var(--pinnedStartWidth__1slvgu9e)", pinnedEndWidth: "var(--pinnedEndWidth__1slvgu9f)", pinnedEndOffset: "var(--pinnedEndOffset__1slvgu9g)", computedVisibleColumnsCount: "var(--computedVisibleColumnsCount__1slvgu9h)", baseZIndexForCells: "var(--baseZIndexForCells__1slvgu9i)", bodyWidth: "var(--bodyWidth__1slvgu9j)", bodyHeight: "var(--bodyHeight__1slvgu9k)", scrollbarWidthHorizontal: "var(--scrollbarWidthHorizontal__1slvgu9l)", scrollbarWidthVertical: "var(--scrollbarWidthVertical__1slvgu9m)", scrollLeft: "var(--scrollLeft__1slvgu9n)", scrollTop: "var(--scrollTop__1slvgu9o)" };
1369
+ var ThemeVars = { color: { accent: "var(--infinite-accent-color)", error: "var(--infinite-error-color)", color: "var(--infinite-color)" }, spacing: { "0": "var(--infinite-space-0)", "1": "var(--infinite-space-1)", "2": "var(--infinite-space-2)", "3": "var(--infinite-space-3)", "4": "var(--infinite-space-4)", "5": "var(--infinite-space-5)", "6": "var(--infinite-space-6)", "7": "var(--infinite-space-7)", "8": "var(--infinite-space-8)", "9": "var(--infinite-space-9)", "10": "var(--infinite-space-10)" }, fontSize: { "0": "var(--infinite-font-size-0)", "1": "var(--infinite-font-size-1)", "2": "var(--infinite-font-size-2)", "3": "var(--infinite-font-size-3)", "4": "var(--infinite-font-size-4)", "5": "var(--infinite-font-size-5)", "6": "var(--infinite-font-size-6)", "7": "var(--infinite-font-size-7)" }, fontFamily: "var(--infinite-font-family)", minHeight: "var(--infinite-min-height)", borderRadius: "var(--infinite-border-radius)", background: "var(--infinite-background)", iconSize: "var(--infinite-icon-size)", components: { LoadMask: { padding: "var(--infinite-load-mask-padding)", color: "var(--infinite-load-mask-color)", textBackground: "var(--infinite-load-mask-text-background)", overlayBackground: "var(--infinite-load-mask-overlay-background)", overlayOpacity: "var(--infinite-load-mask-overlay-opacity)", borderRadius: "var(--infinite-load-mask-border-radius)" }, Header: { background: "var(--infinite-header-background)", color: "var(--infinite-header-color)", columnHeaderHeight: "var(--infinite-column-header-height)" }, HeaderCell: { background: "var(--infinite-header-cell-background)", hoverBackground: "var(--infinite-header-cell-hover-background)", padding: "var(--infinite-header-cell-padding)", paddingX: "var(--infinite-header-cell-padding-x)", paddingY: "var(--infinite-header-cell-padding-y)", iconSize: "var(--infinite-header-cell-icon-size)", menuIconLineWidth: "var(--infinite-header-cell-menu-icon-line-width)", sortIconMargin: "var(--infinite-header-cell-sort-icon-margin)", resizeHandleActiveAreaWidth: "var(--infinite-resize-handle-active-area-width)", resizeHandleWidth: "var(--infinite-resize-handle-width)", resizeHandleHoverBackground: "var(--infinite-resize-handle-hover-background)", resizeHandleConstrainedHoverBackground: "var(--infinite-resize-handle-constrained-hover-background)", filterOperatorPaddingX: "var(--infinite-filter-operator-padding-x)", filterEditorPaddingX: "var(--infinite-filter-editor-padding-x)", filterEditorMarginX: "var(--infinite-filter-editor-margin-x)", filterOperatorPaddingY: "var(--infinite-filter-operator-padding-y)", filterEditorPaddingY: "var(--infinite-filter-editor-padding-y)", filterEditorMarginY: "var(--infinite-filter-editor-margin-y)", filterEditorBackground: "var(--infinite-filter-editor-background)", filterEditorBorder: "var(--infinite-filter-editor-border)", filterEditorFocusBorderColor: "var(--infinite-filter-editor-focus-border-color)", filterEditorBorderRadius: "var(--infinite-filter-editor-border-radius)", filterEditorColor: "var(--infinite-filter-editor-color)" }, Cell: { padding: "var(--infinite-cell-padding)", borderWidth: "var(--infinite-cell-border-width)", border: "var(--infinite-cell-border)", borderInvisible: "var(--infinite-cell-border-invisible)", borderRadius: "var(--infinite-cell-border-radius)", reorderEffectDuration: "var(--infinite-column-reorder-effect-duration)", pinnedBorder: "var(--infinite-pinned-cell-border)", color: "var(--infinite-cell-color)", selectedBackground: "var(--infinite-selected-cell-background)", selectedBackgroundDefault: "var(--infinite-selected-cell-background-default)", selectedBackgroundAlpha: "var(--infinite-selected-cell-background-alpha)", selectedBackgroundAlphaWhenTableUnfocused: "var(--infinite-selected-cell-background-alpha--table-unfocused)", selectedBorderColor: "var(--infinite-selected-cell-border-color)", selectedBorderWidth: "var(--infinite-selected-cell-border-width)", selectedBorderStyle: "var(--infinite-selected-cell-border-style)", selectedBorder: "var(--infinite-selected-cell-border)", activeBackgroundAlpha: "var(--infinite-active-cell-background-alpha)", activeBackgroundAlphaWhenTableUnfocused: "var(--infinite-active-cell-background-alpha--table-unfocused)", activeBackground: "var(--infinite-active-cell-background)", activeBackgroundDefault: "var(--infinite-active-cell-background-default)", activeBorderColor: "var(--infinite-active-cell-border-color)", activeBorderWidth: "var(--infinite-active-cell-border-width)", activeBorderStyle: "var(--infinite-active-cell-border-style)", activeBorder: "var(--infinite-active-cell-border)" }, SelectionCheckBox: { marginInline: "var(--infinite-selection-checkbox-margin-inline)" }, Menu: { background: "var(--infinite-menu-background)", color: "var(--infinite-menu-color)", padding: "var(--infinite-menu-padding)", cellPaddingVertical: "var(--infinite-menu-cell-padding-vertical)", cellPaddingHorizontal: "var(--infinite-menu-cell-padding-horizontal)", cellMarginVertical: "var(--infinite-menu-cell-margin-vertical)", itemDisabledBackground: "var(--infinite-menu-item-disabled-background)", itemActiveBackground: "var(--infinite-menu-item-active-background)", itemActiveOpacity: "var(--infinite-menu-item-active-opacity)", itemPressedOpacity: "var(--infinite-menu-item-pressed-opacity)", itemPressedBackground: "var(--infinite-menu-item-pressed-background)", itemDisabledOpacity: "var(--infinite-menu-item-disabled-opacity)", borderRadius: "var(--infinite-menu-border-radius)", shadowColor: "var(--infinite-menu-shadow-color)" }, RowDetails: { background: "var(--infinite-rowdetails-background)", padding: "var(--infinite-rowdetails-padding)", gridHeight: "var(--infinite-rowdetails-grid-height)" }, Row: { background: "var(--infinite-row-background)", oddBackground: "var(--infinite-row-odd-background)", selectedBackground: "var(--infinite-row-selected-background)", activeBackground: "var(--infinite-active-row-background)", activeBorderColor: "var(--infinite-active-row-border-color)", activeBorderWidth: "var(--infinite-active-row-border-width)", activeBorderStyle: "var(--infinite-active-row-border-style)", activeBorder: "var(--infinite-active-row-border)", activeBackgroundAlpha: "var(--infinite-active-row-background-alpha)", activeBackgroundAlphaWhenTableUnfocused: "var(--infinite-active-row-background-alpha--table-unfocused)", hoverBackground: "var(--infinite-row-hover-background)", selectedHoverBackground: "var(--infinite-row-selected-hover-background)", groupRowBackground: "var(--infinite-group-row-background)", groupRowColumnNesting: "var(--infinite-group-row-column-nesting)", groupNesting: "var(--infinite-dont-override-group-row-nesting-length)", pointerEventsWhileScrolling: "var(--infinite-row-pointer-events-while-scrolling)" }, ColumnCell: { background: "var(--infinite-column-cell-bg-dont-override)" } } };
1354
1370
  var columnHeaderHeightName = "column-header-height";
1355
1371
 
1356
1372
  // src/utils/selectParent.ts
@@ -1506,14 +1522,23 @@ var getRenderRangeCellCount = (range) => {
1506
1522
  const colCount = endCol - startCol;
1507
1523
  return rowCount * colCount;
1508
1524
  };
1525
+ var getRenderRangeRowCount = (range) => {
1526
+ const { start, end } = range;
1527
+ const [startRow] = start;
1528
+ const [endRow] = end;
1529
+ const rowCount = endRow - startRow;
1530
+ return rowCount;
1531
+ };
1509
1532
  var ALL_DIRECTIONS = { horizontal: true, vertical: true };
1510
1533
  var SORT_ASC = (a, b) => a - b;
1511
1534
  var raf2 = typeof window !== "undefined" ? requestAnimationFrame : (fn) => setTimeout(fn, 0);
1512
1535
  var MatrixBrain = class extends Logger {
1513
1536
  constructor(name) {
1514
- super(`MatrixBrain${name ? `:${name}` : ""}`);
1537
+ const logName = `MatrixBrain${name ? `:${name}` : ""}`;
1538
+ super(logName);
1515
1539
  this.scrolling = false;
1516
1540
  this.width = 0;
1541
+ this.name = "";
1517
1542
  this.height = 0;
1518
1543
  this.cols = 0;
1519
1544
  this.rows = 0;
@@ -1790,6 +1815,9 @@ var MatrixBrain = class extends Logger {
1790
1815
  let renderCount = 0;
1791
1816
  let size = direction === "horizontal" ? theSize.width : theSize.height;
1792
1817
  size -= this.getFixedSize(direction);
1818
+ if (size <= 0) {
1819
+ return 0;
1820
+ }
1793
1821
  if (typeof itemSize === "function") {
1794
1822
  const sizes = [];
1795
1823
  for (let i = 0; i < count; i++) {
@@ -2471,6 +2499,7 @@ var MatrixBrain = class extends Logger {
2471
2499
  this.onVerticalRenderRangeChangeFns = /* @__PURE__ */ new Set();
2472
2500
  this.onHorizontalRenderRangeChangeFns = /* @__PURE__ */ new Set();
2473
2501
  };
2502
+ this.name = logName;
2474
2503
  this.reset();
2475
2504
  }
2476
2505
  reset(which = ALL_DIRECTIONS) {
@@ -2742,9 +2771,131 @@ var MappedCells = class extends Logger {
2742
2771
  }
2743
2772
  };
2744
2773
 
2774
+ // src/components/HeadlessTable/MappedVirtualRows.ts
2775
+ var MappedVirtualRows = class extends Logger {
2776
+ constructor() {
2777
+ super(`MappedVirtualRows`);
2778
+ /**
2779
+ * Retrieves the elements that contain rendered rows that are outside
2780
+ * of the specified range
2781
+ *
2782
+ * @param start in [rowIndex, colIndex] format - represents the topmost-leftmost cell visible of the render range
2783
+ * @param end in [rowIndex, colIndex] format - represents the bottom-right corner of the visible range. The end is not inclusive,
2784
+ * so the last visible cell will be [rowIndex-1, colIndex-1]
2785
+ *
2786
+ * @returns an array of element indexes that are outside the specified range
2787
+ */
2788
+ this.getElementsOutsideRenderRange = (range) => {
2789
+ const { start, end } = range;
2790
+ const [startRow] = start;
2791
+ const [endRow] = end;
2792
+ const result = [];
2793
+ for (let elementIndex = 0, len = this.elementIndexToRowIndex.length; elementIndex < len; elementIndex++) {
2794
+ const currentRowIndex = this.elementIndexToRowIndex[elementIndex];
2795
+ if (currentRowIndex == null) {
2796
+ continue;
2797
+ }
2798
+ const rowBefore = currentRowIndex < startRow;
2799
+ const rowAfter = currentRowIndex >= endRow;
2800
+ const outsideRenderRange = rowBefore || rowAfter;
2801
+ if (outsideRenderRange) {
2802
+ result.push(elementIndex);
2803
+ }
2804
+ }
2805
+ return result;
2806
+ };
2807
+ this.isRowRendered = (rowIndex) => {
2808
+ return this.rowToElementIndex[rowIndex] != null;
2809
+ };
2810
+ this.isElementRendered = (elementIndex) => {
2811
+ return this.elementIndexToRowIndex[elementIndex] != null;
2812
+ };
2813
+ this.getRenderedNodeAtElement = (elementIndex) => {
2814
+ return this.renderedElements[elementIndex] || null;
2815
+ };
2816
+ this.getRenderedRowAtElement = (elementIndex) => {
2817
+ const row = this.elementIndexToRowIndex[elementIndex];
2818
+ return row != null ? row : null;
2819
+ };
2820
+ this.getRenderedNodeForRow = (rowIndex) => {
2821
+ var _a;
2822
+ const elementIndex = this.rowToElementIndex[rowIndex];
2823
+ return elementIndex != null ? (_a = this.renderedElements[elementIndex]) != null ? _a : null : null;
2824
+ };
2825
+ this.getElementIndexForRow = (rowIndex) => {
2826
+ const elementIndex = this.rowToElementIndex[rowIndex];
2827
+ return elementIndex != null ? elementIndex : null;
2828
+ };
2829
+ this.renderRowAtElement = (rowIndex, elementIndex, renderNode) => {
2830
+ if (false) {
2831
+ this.debug(`Render row ${rowIndex} at element ${elementIndex}`);
2832
+ }
2833
+ const currentRow = this.elementIndexToRowIndex[elementIndex];
2834
+ if (currentRow != null) {
2835
+ this.rowToElementIndex[currentRow] = null;
2836
+ }
2837
+ if (renderNode !== void 0) {
2838
+ this.renderedElements[elementIndex] = renderNode;
2839
+ }
2840
+ this.elementIndexToRowIndex[elementIndex] = rowIndex;
2841
+ this.rowToElementIndex[rowIndex] = elementIndex;
2842
+ };
2843
+ this.discardRow = (rowIndex) => {
2844
+ const elementIndex = this.rowToElementIndex[rowIndex];
2845
+ if (elementIndex != null) {
2846
+ this.renderedElements[elementIndex] = null;
2847
+ this.elementIndexToRowIndex[elementIndex] = null;
2848
+ this.rowToElementIndex[rowIndex] = null;
2849
+ }
2850
+ };
2851
+ this.discardElement = (elementIndex) => {
2852
+ const rowIndex = this.elementIndexToRowIndex[elementIndex];
2853
+ if (rowIndex != null) {
2854
+ this.renderedElements[elementIndex] = null;
2855
+ this.elementIndexToRowIndex[elementIndex] = null;
2856
+ this.rowToElementIndex[rowIndex] = null;
2857
+ return rowIndex;
2858
+ }
2859
+ return null;
2860
+ };
2861
+ this.discardElementsStartingWith = (elIndex, callback) => {
2862
+ let discardedRow = null;
2863
+ let oneDiscarded = false;
2864
+ if (elIndex < this.elementIndexToRowIndex.length) {
2865
+ for (let elementIndex = elIndex, len = this.elementIndexToRowIndex.length; elementIndex < len; elementIndex++) {
2866
+ discardedRow = this.discardElement(elementIndex);
2867
+ if (discardedRow) {
2868
+ oneDiscarded = true;
2869
+ }
2870
+ if (callback) {
2871
+ callback(elementIndex, discardedRow);
2872
+ }
2873
+ }
2874
+ this.elementIndexToRowIndex.length = elIndex;
2875
+ this.renderedElements.length = elIndex;
2876
+ }
2877
+ return oneDiscarded;
2878
+ };
2879
+ this.init();
2880
+ }
2881
+ init() {
2882
+ this.elementIndexToRowIndex = [];
2883
+ this.rowToElementIndex = [];
2884
+ this.renderedElements = [];
2885
+ }
2886
+ reset() {
2887
+ this.init();
2888
+ }
2889
+ destroy() {
2890
+ this.elementIndexToRowIndex = [];
2891
+ this.rowToElementIndex = [];
2892
+ this.renderedElements = [];
2893
+ }
2894
+ };
2895
+
2745
2896
  // src/components/HeadlessTable/ReactHeadlessTableRenderer.tsx
2746
2897
  var ITEM_POSITION_WITH_TRANSFORM = true;
2747
- var currentColumnTransformY = stripVar(InternalVars.currentColumnTransformY);
2898
+ var currentTransformY = stripVar(InternalVars.y);
2748
2899
  var scrollTopCSSVar = stripVar(InternalVars.scrollTop);
2749
2900
  var columnOffsetAtIndex2 = stripVar(InternalVars.columnOffsetAtIndex);
2750
2901
  var columnOffsetAtIndexWhileReordering2 = stripVar(
@@ -2753,17 +2904,32 @@ var columnOffsetAtIndexWhileReordering2 = stripVar(
2753
2904
  var ReactHeadlessTableRenderer = class extends Logger {
2754
2905
  constructor(brain) {
2755
2906
  super("ReactHeadlessTableRenderer");
2907
+ this.debugId = "";
2756
2908
  this.destroyed = false;
2757
2909
  this.scrolling = false;
2758
2910
  this.cellHoverClassNames = [];
2759
- this.name = "";
2760
2911
  this.itemDOMElements = [];
2761
2912
  this.itemDOMRefs = [];
2762
2913
  this.updaters = [];
2914
+ this.detailRowDOMElements = [];
2915
+ this.detailRowDOMRefs = [];
2916
+ this.detailRowUpdaters = [];
2763
2917
  this.items = [];
2918
+ this.detailItems = [];
2764
2919
  this.currentHoveredRow = -1;
2765
2920
  this.hoverRowUpdatesInProgress = /* @__PURE__ */ new Map();
2766
2921
  this.infiniteNode = null;
2922
+ this.setDetailTransform = (element, _rowIndex, {
2923
+ y,
2924
+ scrollTop: scrollTop2,
2925
+ scrollLeft: scrollLeft2
2926
+ }) => {
2927
+ element.style.setProperty(
2928
+ currentTransformY,
2929
+ scrollTop2 ? `calc( ${y}px + var(${scrollTopCSSVar}) )` : `${y}px`
2930
+ );
2931
+ element.style.transform = `translate3d(${scrollLeft2 || 0}px, var(${currentTransformY}), 0)`;
2932
+ };
2767
2933
  this.setTransform = (element, _rowIndex, colIndex, {
2768
2934
  //@ts-ignore
2769
2935
  x,
@@ -2775,10 +2941,10 @@ var ReactHeadlessTableRenderer = class extends Logger {
2775
2941
  const columnOffsetX = `${columnOffsetAtIndex2}-${colIndex}`;
2776
2942
  const columnOffsetXWhileReordering = `${columnOffsetAtIndexWhileReordering2}-${colIndex}`;
2777
2943
  element.style.setProperty(
2778
- currentColumnTransformY,
2944
+ currentTransformY,
2779
2945
  scrollTop2 ? `calc( ${y}px + var(${scrollTopCSSVar}) )` : `${y}px`
2780
2946
  );
2781
- element.style.transform = `translate3d(var(${columnOffsetXWhileReordering}, var(${columnOffsetX})), ${InternalVars.currentColumnTransformY}, 0)`;
2947
+ element.style.transform = `translate3d(var(${columnOffsetXWhileReordering}, var(${columnOffsetX})), var(${currentTransformY}), 0)`;
2782
2948
  if (zIndex2 != null) {
2783
2949
  }
2784
2950
  };
@@ -3016,6 +3182,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
3016
3182
  };
3017
3183
  this.renderRange = (range, {
3018
3184
  renderCell,
3185
+ renderDetailRow,
3019
3186
  force,
3020
3187
  onRender
3021
3188
  }) => {
@@ -3026,7 +3193,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
3026
3193
  if (false) {
3027
3194
  this.debug(`Render range ${start}-${end}. Force ${force}`);
3028
3195
  }
3029
- const { mappedCells } = this;
3196
+ const { mappedCells, mappedDetailRows } = this;
3030
3197
  const fixedRanges = this.getFixedRanges(range);
3031
3198
  const ranges = [range, ...fixedRanges];
3032
3199
  const extraCellsMap = /* @__PURE__ */ new Map();
@@ -3040,6 +3207,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
3040
3207
  (sum2, range2) => sum2 + getRenderRangeCellCount(range2),
3041
3208
  0
3042
3209
  );
3210
+ const renderRowCount = renderDetailRow ? ranges.reduce((sum2, range2) => sum2 + getRenderRangeRowCount(range2), 0) : 0;
3043
3211
  if (this.itemDOMElements.length >= renderCount) {
3044
3212
  mappedCells.discardElementsStartingWith(renderCount, (elementIndex) => {
3045
3213
  if (this.updaters[elementIndex]) {
@@ -3057,9 +3225,41 @@ var ReactHeadlessTableRenderer = class extends Logger {
3057
3225
  this.updaters.length = Math.min(this.updaters.length, renderCount);
3058
3226
  this.items.length = Math.min(this.items.length, renderCount);
3059
3227
  }
3228
+ if (renderDetailRow && this.detailRowDOMElements.length && this.detailRowDOMElements.length >= renderRowCount) {
3229
+ mappedDetailRows.discardElementsStartingWith(
3230
+ renderRowCount,
3231
+ (elementIndex) => {
3232
+ if (this.detailRowUpdaters[elementIndex]) {
3233
+ this.detailRowUpdaters[elementIndex].destroy();
3234
+ }
3235
+ if (false) {
3236
+ this.debug(`Discard detail row element ${elementIndex}`);
3237
+ }
3238
+ }
3239
+ );
3240
+ this.detailRowDOMElements.length = Math.min(
3241
+ this.detailRowDOMElements.length,
3242
+ renderRowCount
3243
+ );
3244
+ this.detailRowDOMRefs.length = Math.min(
3245
+ this.detailRowDOMRefs.length,
3246
+ renderRowCount
3247
+ );
3248
+ this.detailRowUpdaters.length = Math.min(
3249
+ this.detailRowUpdaters.length,
3250
+ renderRowCount
3251
+ );
3252
+ this.detailItems.length = Math.min(
3253
+ this.detailItems.length,
3254
+ renderRowCount
3255
+ );
3256
+ }
3060
3257
  const elementsOutsideRanges = arrayIntersection(
3061
3258
  ...ranges.map(mappedCells.getElementsOutsideRenderRange)
3062
3259
  );
3260
+ const detailElementsOutsideRanges = renderDetailRow ? arrayIntersection(
3261
+ ...ranges.map(mappedDetailRows.getElementsOutsideRenderRange)
3262
+ ) : [];
3063
3263
  const elementsOutsideItemRange = elementsOutsideRanges.filter(
3064
3264
  (elementIndex) => {
3065
3265
  const cell = this.mappedCells.getRenderedCellAtElement(elementIndex);
@@ -3072,11 +3272,21 @@ var ReactHeadlessTableRenderer = class extends Logger {
3072
3272
  if (this.items.length > renderCount) {
3073
3273
  this.items.length = renderCount;
3074
3274
  }
3275
+ if (renderDetailRow && this.detailItems.length > renderRowCount) {
3276
+ this.detailItems.length = renderRowCount;
3277
+ }
3075
3278
  for (let i = this.items.length; i < renderCount; i++) {
3076
3279
  this.renderElement(i);
3077
3280
  elementsOutsideItemRange.splice(0, 0, i);
3078
3281
  }
3282
+ if (renderDetailRow) {
3283
+ for (let i = this.detailItems.length; i < renderRowCount; i++) {
3284
+ this.renderDetailElement(i);
3285
+ detailElementsOutsideRanges.splice(0, 0, i);
3286
+ }
3287
+ }
3079
3288
  const visitedCells = /* @__PURE__ */ new Map();
3289
+ const visitedRows = /* @__PURE__ */ new Map();
3080
3290
  ranges.forEach((range2) => {
3081
3291
  const { start: start2, end: end2 } = range2;
3082
3292
  const [startRow, startCol] = start2;
@@ -3117,6 +3327,27 @@ var ReactHeadlessTableRenderer = class extends Logger {
3117
3327
  }
3118
3328
  this.renderCellAtElement(row, col, elementIndex, renderCell);
3119
3329
  }
3330
+ if (!renderDetailRow) {
3331
+ continue;
3332
+ }
3333
+ if (visitedRows.has(row)) {
3334
+ continue;
3335
+ }
3336
+ visitedRows.set(row, true);
3337
+ const rowRendered = mappedDetailRows.isRowRendered(row);
3338
+ if (rowRendered && !force) {
3339
+ continue;
3340
+ }
3341
+ const detailElementIndex = rowRendered ? mappedDetailRows.getElementIndexForRow(row) : detailElementsOutsideRanges.pop();
3342
+ if (detailElementIndex == null) {
3343
+ if (false) {
3344
+ this.error(
3345
+ `Cannot find detail element to render detail row ${row}`
3346
+ );
3347
+ }
3348
+ continue;
3349
+ }
3350
+ this.renderDetailRowAtElement(row, detailElementIndex, renderDetailRow);
3120
3351
  }
3121
3352
  });
3122
3353
  extraCells.forEach(([rowIndex, colIndex]) => {
@@ -3147,7 +3378,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
3147
3378
  this.renderCellAtElement(rowIndex, colIndex, elementIndex, renderCell);
3148
3379
  });
3149
3380
  let result = this.items;
3150
- result = [...this.items];
3381
+ result = [...this.items, ...this.detailItems];
3151
3382
  this.adjustFixedElementsOnScroll();
3152
3383
  if (onRender) {
3153
3384
  onRender(result);
@@ -3379,6 +3610,38 @@ var ReactHeadlessTableRenderer = class extends Logger {
3379
3610
  }
3380
3611
  }
3381
3612
  };
3613
+ this.updateDetailElementPosition = (elementIndex) => {
3614
+ if (this.destroyed) {
3615
+ return;
3616
+ }
3617
+ const itemElement = this.detailRowDOMElements[elementIndex];
3618
+ const rowIndex = this.mappedDetailRows.getRenderedRowAtElement(elementIndex);
3619
+ if (rowIndex == null) {
3620
+ if (false) {
3621
+ this.error(`Cannot find row for detail element ${elementIndex}`);
3622
+ }
3623
+ return;
3624
+ }
3625
+ const itemPosition = this.brain.getItemOffsetFor(rowIndex, "vertical");
3626
+ if (itemPosition == null) {
3627
+ return;
3628
+ }
3629
+ const y = itemPosition;
3630
+ if (itemElement) {
3631
+ itemElement.dataset.detailRowIndex = rowIndex;
3632
+ if (ITEM_POSITION_WITH_TRANSFORM) {
3633
+ this.setDetailTransform(itemElement, rowIndex, {
3634
+ y,
3635
+ scrollLeft: this.brain.getScrollPosition().scrollLeft
3636
+ });
3637
+ itemElement.style.willChange = "transform";
3638
+ itemElement.style.backfaceVisibility = "hidden";
3639
+ itemElement.style.zIndex = // #updatezindex - we need to allow elements use their own zIndex, so we
3640
+ // resort to allowing them to have it as a data-z-index attribute
3641
+ itemElement.dataset.zIndex || "auto";
3642
+ }
3643
+ }
3644
+ };
3382
3645
  this.onScrollStart = () => {
3383
3646
  this.scrolling = true;
3384
3647
  };
@@ -3389,10 +3652,28 @@ var ReactHeadlessTableRenderer = class extends Logger {
3389
3652
  }
3390
3653
  };
3391
3654
  this.adjustFixedElementsOnScroll = (scrollPosition = this.brain.getScrollPosition()) => {
3392
- const { mappedCells, brain, itemDOMElements } = this;
3655
+ const { mappedCells, brain, itemDOMElements, detailRowDOMElements } = this;
3393
3656
  const cols = this.brain.getColCount();
3394
3657
  const rows = this.brain.getRowCount();
3395
3658
  const { fixedColsStart, fixedColsEnd, fixedRowsStart, fixedRowsEnd } = this.brain.getFixedCellInfo();
3659
+ if (detailRowDOMElements.length) {
3660
+ this.detailRowDOMElements.forEach((node, index) => {
3661
+ if (!node) {
3662
+ return;
3663
+ }
3664
+ const rowIndex = this.mappedDetailRows.getRenderedRowAtElement(index);
3665
+ if (rowIndex != null) {
3666
+ const y = this.brain.getItemOffsetFor(rowIndex, "vertical");
3667
+ if (y == null) {
3668
+ return;
3669
+ }
3670
+ this.setDetailTransform(node, rowIndex, {
3671
+ y,
3672
+ scrollLeft: scrollPosition.scrollLeft
3673
+ });
3674
+ }
3675
+ });
3676
+ }
3396
3677
  if (!fixedColsStart && !fixedColsEnd && !fixedRowsStart && !fixedRowsEnd) {
3397
3678
  return;
3398
3679
  }
@@ -3583,9 +3864,12 @@ var ReactHeadlessTableRenderer = class extends Logger {
3583
3864
  this.hoverRowUpdatesInProgress = null;
3584
3865
  this.brain = null;
3585
3866
  this.mappedCells = null;
3867
+ this.mappedDetailRows = null;
3586
3868
  };
3587
3869
  this.brain = brain;
3870
+ this.debugId = brain.name;
3588
3871
  this.mappedCells = new MappedCells();
3872
+ this.mappedDetailRows = new MappedVirtualRows();
3589
3873
  const removeOnScroll = brain.onScroll(this.adjustFixedElementsOnScroll);
3590
3874
  const removeOnSizeChange = brain.onAvailableSizeChange(() => {
3591
3875
  this.adjustFixedElementsOnScroll();
@@ -3623,7 +3907,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
3623
3907
  };
3624
3908
  this.itemDOMRefs[elementIndex] = domRef;
3625
3909
  this.updaters[elementIndex] = buildSubscriptionCallback();
3626
- const item = /* @__PURE__ */ React8.createElement(
3910
+ const item = /* @__PURE__ */ React9.createElement(
3627
3911
  AvoidReactDiff,
3628
3912
  {
3629
3913
  key: elementIndex,
@@ -3634,6 +3918,68 @@ var ReactHeadlessTableRenderer = class extends Logger {
3634
3918
  this.items[elementIndex] = item;
3635
3919
  return item;
3636
3920
  }
3921
+ renderDetailElement(elementIndex) {
3922
+ const domRef = (node) => {
3923
+ if (node) {
3924
+ this.detailRowDOMElements[elementIndex] = node;
3925
+ node.style.position = "absolute";
3926
+ node.style.left = "0px";
3927
+ this.updateDetailElementPosition(elementIndex);
3928
+ }
3929
+ };
3930
+ this.detailRowDOMRefs[elementIndex] = domRef;
3931
+ this.detailRowUpdaters[elementIndex] = buildSubscriptionCallback();
3932
+ const detailItem = /* @__PURE__ */ React9.createElement(
3933
+ AvoidReactDiff,
3934
+ {
3935
+ key: `detail-${elementIndex}`,
3936
+ name: `detail-${elementIndex}`,
3937
+ updater: this.detailRowUpdaters[elementIndex]
3938
+ }
3939
+ );
3940
+ this.detailItems[elementIndex] = detailItem;
3941
+ return detailItem;
3942
+ }
3943
+ renderDetailRowAtElement(rowIndex, detailElementIndex, renderDetailRow) {
3944
+ if (this.destroyed) {
3945
+ return;
3946
+ }
3947
+ const covered = false;
3948
+ const height = this.brain.getRowHeight(rowIndex);
3949
+ const rowFixed = this.brain.isRowFixedStart(rowIndex) ? "start" : this.brain.isRowFixedEnd(rowIndex) ? "end" : false;
3950
+ const hidden = !!covered;
3951
+ const renderedDetailNode = renderDetailRow({
3952
+ rowIndex,
3953
+ height,
3954
+ rowFixed,
3955
+ hidden,
3956
+ onMouseEnter: () => {
3957
+ },
3958
+ onMouseLeave: () => {
3959
+ },
3960
+ domRef: this.detailRowDOMRefs[detailElementIndex]
3961
+ });
3962
+ const itemUpdater = this.detailRowUpdaters[detailElementIndex];
3963
+ if (!itemUpdater) {
3964
+ this.error(
3965
+ `Cannot find detail item updater for item ${rowIndex} at this time... sorry.`
3966
+ );
3967
+ return;
3968
+ }
3969
+ this.mappedDetailRows.renderRowAtElement(
3970
+ rowIndex,
3971
+ detailElementIndex,
3972
+ renderedDetailNode
3973
+ );
3974
+ if (false) {
3975
+ this.debug(
3976
+ `Render detail row ${rowIndex} at element ${detailElementIndex}`
3977
+ );
3978
+ }
3979
+ itemUpdater(renderedDetailNode);
3980
+ this.updateDetailElementPosition(detailElementIndex);
3981
+ return;
3982
+ }
3637
3983
  renderCellAtElement(rowIndex, colIndex, elementIndex, renderCell) {
3638
3984
  if (this.destroyed) {
3639
3985
  return;
@@ -3694,6 +4040,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
3694
4040
  this.updaters = [];
3695
4041
  this.items = [];
3696
4042
  this.mappedCells.reset();
4043
+ this.mappedDetailRows.reset();
3697
4044
  }
3698
4045
  };
3699
4046
 
@@ -3711,7 +4058,7 @@ function createRenderer(brain) {
3711
4058
  };
3712
4059
  }
3713
4060
  function RawTableFn(props) {
3714
- const { brain, renderCell } = props;
4061
+ const { brain, renderCell, renderDetailRow } = props;
3715
4062
  const { renderer, onRenderUpdater } = useMemo2(() => {
3716
4063
  return props.onRenderUpdater && props.renderer ? {
3717
4064
  renderer: props.renderer,
@@ -3726,9 +4073,10 @@ function RawTableFn(props) {
3726
4073
  renderer.renderRange(renderRange, {
3727
4074
  onRender: onRenderUpdater,
3728
4075
  force: true,
3729
- renderCell
4076
+ renderCell,
4077
+ renderDetailRow
3730
4078
  });
3731
- }, [renderer, brain, renderCell, onRenderUpdater]);
4079
+ }, [renderer, brain, renderCell, renderDetailRow, onRenderUpdater]);
3732
4080
  useEffect4(() => {
3733
4081
  const remove = brain.onRenderRangeChange((renderRange) => {
3734
4082
  renderer.renderRange(renderRange, {
@@ -3741,17 +4089,18 @@ function RawTableFn(props) {
3741
4089
  }
3742
4090
  onRenderUpdater(items);
3743
4091
  },
3744
- renderCell
4092
+ renderCell,
4093
+ renderDetailRow
3745
4094
  });
3746
4095
  });
3747
4096
  return remove;
3748
- }, [renderCell]);
3749
- return /* @__PURE__ */ React9.createElement(AvoidReactDiff, { updater: onRenderUpdater });
4097
+ }, [renderCell, renderDetailRow]);
4098
+ return /* @__PURE__ */ React10.createElement(AvoidReactDiff, { updater: onRenderUpdater });
3750
4099
  }
3751
- var RawTable = React9.memo(RawTableFn);
4100
+ var RawTable = React10.memo(RawTableFn);
3752
4101
 
3753
4102
  // src/components/InfiniteTable/components/ActiveRowIndicator.tsx
3754
- import * as React10 from "react";
4103
+ import * as React11 from "react";
3755
4104
  import { useEffect as useEffect5, useLayoutEffect as useLayoutEffect4, useRef as useRef5 } from "react";
3756
4105
 
3757
4106
  // src/components/hooks/useRerender.ts
@@ -3767,11 +4116,11 @@ var useRerender = () => {
3767
4116
  };
3768
4117
 
3769
4118
  // src/components/InfiniteTable/components/ActiveCellIndicator.css.ts
3770
- var ActiveCellIndicatorCls = { visible: "ActiveCellIndicator_ActiveCellIndicatorCls_visible__nxbq1c2 ActiveCellIndicator_ActiveCellIndicator__nxbq1c1 utilities_pointerEvents_none__16lm1iwk utilities_position_sticky__16lm1iw4 utilities_left_0__16lm1iw1d utilities_top_0__16lm1iw1b", hidden: "ActiveCellIndicator_ActiveCellIndicatorCls_hidden__nxbq1c3 ActiveCellIndicator_ActiveCellIndicator__nxbq1c1 utilities_pointerEvents_none__16lm1iwk utilities_position_sticky__16lm1iw4 utilities_left_0__16lm1iw1d utilities_top_0__16lm1iw1b" };
3771
- var ActiveIndicatorWrapperCls = "utilities_pointerEvents_none__16lm1iwk utilities_position_sticky__16lm1iw4 utilities_left_0__16lm1iw1d utilities_top_0__16lm1iw1b utilities_height_0__16lm1iw17 utilities_zIndex_1000000__16lm1iwt";
4119
+ var ActiveCellIndicatorCls = { visible: "ActiveCellIndicator_ActiveCellIndicatorCls_visible__nxbq1c2 ActiveCellIndicator_ActiveCellIndicator__nxbq1c1 utilities_pointerEvents_none__16lm1iwl utilities_position_sticky__16lm1iw4 utilities_left_0__16lm1iw1e utilities_top_0__16lm1iw1c", hidden: "ActiveCellIndicator_ActiveCellIndicatorCls_hidden__nxbq1c3 ActiveCellIndicator_ActiveCellIndicator__nxbq1c1 utilities_pointerEvents_none__16lm1iwl utilities_position_sticky__16lm1iw4 utilities_left_0__16lm1iw1e utilities_top_0__16lm1iw1c" };
4120
+ var ActiveIndicatorWrapperCls = "utilities_pointerEvents_none__16lm1iwl utilities_position_sticky__16lm1iw4 utilities_left_0__16lm1iw1e utilities_top_0__16lm1iw1c utilities_height_0__16lm1iw18 utilities_zIndex_1000000__16lm1iwu";
3772
4121
 
3773
4122
  // src/components/InfiniteTable/components/ActiveRowIndicator.css.ts
3774
- var ActiveRowIndicatorCls = { visible: "ActiveRowIndicator_ActiveRowIndicatorCls_visible__j26lrx1 ActiveRowIndicator_ActiveRowIndicator__j26lrx0 utilities_pointerEvents_none__16lm1iwk utilities_position_sticky__16lm1iw4 utilities_width_100%__16lm1iw1a utilities_top_0__16lm1iw1b utilities_left_0__16lm1iw1d", hidden: "ActiveRowIndicator_ActiveRowIndicatorCls_hidden__j26lrx2 ActiveRowIndicator_ActiveRowIndicator__j26lrx0 utilities_pointerEvents_none__16lm1iwk utilities_position_sticky__16lm1iw4 utilities_width_100%__16lm1iw1a utilities_top_0__16lm1iw1b utilities_left_0__16lm1iw1d" };
4123
+ var ActiveRowIndicatorCls = { visible: "ActiveRowIndicator_ActiveRowIndicatorCls_visible__j26lrx1 ActiveRowIndicator_ActiveRowIndicator__j26lrx0 utilities_pointerEvents_none__16lm1iwl utilities_position_sticky__16lm1iw4 utilities_width_100%__16lm1iw1b utilities_top_0__16lm1iw1c utilities_left_0__16lm1iw1e", hidden: "ActiveRowIndicator_ActiveRowIndicatorCls_hidden__j26lrx2 ActiveRowIndicator_ActiveRowIndicator__j26lrx0 utilities_pointerEvents_none__16lm1iwl utilities_position_sticky__16lm1iw4 utilities_width_100%__16lm1iw1b utilities_top_0__16lm1iw1c utilities_left_0__16lm1iw1e" };
3775
4124
 
3776
4125
  // src/components/InfiniteTable/components/ActiveRowIndicator.tsx
3777
4126
  var { rootClassName: rootClassName3 } = internalProps;
@@ -3817,7 +4166,7 @@ var ActiveRowIndicatorFn = (props) => {
3817
4166
  }, [brain]);
3818
4167
  return (
3819
4168
  // #correct-scroll-size this wrapper is here in order to make the indicator not take up space in the scroll container - to reproduce: remove this and click on a row, you will see that if you scroll at the bottom, there is extra space
3820
- /* @__PURE__ */ React10.createElement("div", { className: ActiveIndicatorWrapperCls, "data-name": "active-row" }, /* @__PURE__ */ React10.createElement(
4169
+ /* @__PURE__ */ React11.createElement("div", { className: ActiveIndicatorWrapperCls, "data-name": "active-row" }, /* @__PURE__ */ React11.createElement(
3821
4170
  "div",
3822
4171
  {
3823
4172
  ref: domRef,
@@ -3828,12 +4177,12 @@ var ActiveRowIndicatorFn = (props) => {
3828
4177
  ))
3829
4178
  );
3830
4179
  };
3831
- var ActiveRowIndicator = React10.memo(
4180
+ var ActiveRowIndicator = React11.memo(
3832
4181
  ActiveRowIndicatorFn
3833
4182
  );
3834
4183
 
3835
4184
  // src/components/InfiniteTable/components/ActiveCellIndicator.tsx
3836
- import * as React11 from "react";
4185
+ import * as React12 from "react";
3837
4186
  import { useEffect as useEffect6, useLayoutEffect as useLayoutEffect5, useRef as useRef6 } from "react";
3838
4187
  var { rootClassName: rootClassName4 } = internalProps;
3839
4188
  var baseCls2 = `${rootClassName4}-ActiveCellIndicator`;
@@ -3845,27 +4194,30 @@ var ActiveStyle2 = {
3845
4194
  width: InternalVars.activeCellColWidth,
3846
4195
  height: InternalVars.activeCellRowHeight
3847
4196
  };
4197
+ var reposition = (brain, activeCellIndex, rowHeight, domRef) => {
4198
+ if (activeCellIndex == null) {
4199
+ return;
4200
+ }
4201
+ const rowIndex = activeCellIndex[0];
4202
+ const activeCellRowHeight = typeof rowHeight === "function" ? rowHeight(rowIndex) : rowHeight != null ? rowHeight : brain.getRowHeight(rowIndex);
4203
+ const activeCellRowOffset = brain.getItemOffsetFor(rowIndex, "vertical");
4204
+ const node = domRef.current;
4205
+ setInfiniteVarsOnNode(
4206
+ {
4207
+ activeCellRowHeight: `${activeCellRowHeight}px`,
4208
+ activeCellRowOffset: `${activeCellRowOffset}px`
4209
+ },
4210
+ node
4211
+ );
4212
+ };
3848
4213
  var ActiveCellIndicatorFn = (props) => {
3849
4214
  const { brain } = props;
3850
4215
  const [_rerenderId, rerender] = useRerender();
3851
4216
  const domRef = useRef6(null);
3852
4217
  const active = props.activeCellIndex != null && brain.getRowCount() > props.activeCellIndex[0];
3853
4218
  useLayoutEffect5(() => {
3854
- if (props.activeCellIndex == null) {
3855
- return;
3856
- }
3857
- const rowIndex = props.activeCellIndex[0];
3858
- const activeCellRowHeight = brain.getRowHeight(rowIndex);
3859
- const activeCellRowOffset = brain.getItemOffsetFor(rowIndex, "vertical");
3860
- const node = domRef.current;
3861
- setInfiniteVarsOnNode(
3862
- {
3863
- activeCellRowHeight: `${activeCellRowHeight}px`,
3864
- activeCellRowOffset: `${activeCellRowOffset}px`
3865
- },
3866
- node
3867
- );
3868
- }, [props.activeCellIndex]);
4219
+ reposition(brain, props.activeCellIndex, props.rowHeight, domRef);
4220
+ }, [props.activeCellIndex, props.rowHeight]);
3869
4221
  useEffect6(() => {
3870
4222
  const removeOnRenderCountChange = brain.onRenderCountChange(() => {
3871
4223
  rerender();
@@ -3876,7 +4228,7 @@ var ActiveCellIndicatorFn = (props) => {
3876
4228
  }, [brain]);
3877
4229
  return (
3878
4230
  // #correct-scroll-size this wrapper is here in order to make the indicator not take up space in the scroll container - to reproduce: remove this and click on a row, you will see that if you scroll at the bottom, there is extra space
3879
- /* @__PURE__ */ React11.createElement(
4231
+ /* @__PURE__ */ React12.createElement(
3880
4232
  "div",
3881
4233
  {
3882
4234
  className: ActiveIndicatorWrapperCls,
@@ -3885,7 +4237,7 @@ var ActiveCellIndicatorFn = (props) => {
3885
4237
  zIndex: `var(${columnZIndexAtIndex2}-${props.activeCellIndex[1]})`
3886
4238
  } : void 0
3887
4239
  },
3888
- /* @__PURE__ */ React11.createElement(
4240
+ /* @__PURE__ */ React12.createElement(
3889
4241
  "div",
3890
4242
  {
3891
4243
  ref: domRef,
@@ -3897,7 +4249,7 @@ var ActiveCellIndicatorFn = (props) => {
3897
4249
  )
3898
4250
  );
3899
4251
  };
3900
- var ActiveCellIndicator = React11.memo(
4252
+ var ActiveCellIndicator = React12.memo(
3901
4253
  ActiveCellIndicatorFn
3902
4254
  );
3903
4255
 
@@ -3928,6 +4280,8 @@ function HeadlessTable(props) {
3928
4280
  scrollerDOMRef,
3929
4281
  scrollStopDelay,
3930
4282
  renderCell,
4283
+ renderDetailRow,
4284
+ activeCellRowHeight,
3931
4285
  cellHoverClassNames,
3932
4286
  renderer,
3933
4287
  activeRowIndex,
@@ -3938,6 +4292,8 @@ function HeadlessTable(props) {
3938
4292
  "scrollerDOMRef",
3939
4293
  "scrollStopDelay",
3940
4294
  "renderCell",
4295
+ "renderDetailRow",
4296
+ "activeCellRowHeight",
3941
4297
  "cellHoverClassNames",
3942
4298
  "renderer",
3943
4299
  "activeRowIndex",
@@ -3985,34 +4341,42 @@ function HeadlessTable(props) {
3985
4341
  setTotalScrollSize(brain.getTotalSize());
3986
4342
  return removeOnRenderCount;
3987
4343
  }, [brain]);
3988
- return /* @__PURE__ */ React12.createElement(
4344
+ return /* @__PURE__ */ React13.createElement(
3989
4345
  VirtualScrollContainer,
3990
4346
  __spreadProps(__spreadValues({
3991
4347
  onContainerScroll
3992
4348
  }, domProps), {
3993
4349
  ref: scrollerDOMRef
3994
4350
  }),
3995
- /* @__PURE__ */ React12.createElement(
4351
+ /* @__PURE__ */ React13.createElement(
3996
4352
  "div",
3997
4353
  {
3998
4354
  ref: domRef,
3999
4355
  className: scrollTransformTargetCls,
4000
4356
  "data-name": "scroll-transform-target"
4001
4357
  },
4002
- /* @__PURE__ */ React12.createElement(
4358
+ /* @__PURE__ */ React13.createElement(
4003
4359
  RawTable,
4004
4360
  {
4005
4361
  renderer,
4006
4362
  onRenderUpdater,
4007
4363
  renderCell,
4364
+ renderDetailRow,
4008
4365
  brain,
4009
4366
  cellHoverClassNames
4010
4367
  }
4011
4368
  ),
4012
- /* @__PURE__ */ React12.createElement(ActiveCellIndicator, { brain, activeCellIndex })
4369
+ /* @__PURE__ */ React13.createElement(
4370
+ ActiveCellIndicator,
4371
+ {
4372
+ brain,
4373
+ rowHeight: activeCellRowHeight,
4374
+ activeCellIndex
4375
+ }
4376
+ )
4013
4377
  ),
4014
- /* @__PURE__ */ React12.createElement(ActiveRowIndicator, { brain, activeRowIndex }),
4015
- /* @__PURE__ */ React12.createElement(
4378
+ /* @__PURE__ */ React13.createElement(ActiveRowIndicator, { brain, activeRowIndex }),
4379
+ /* @__PURE__ */ React13.createElement(
4016
4380
  SpacePlaceholder,
4017
4381
  {
4018
4382
  width: scrollSize.width,
@@ -4023,10 +4387,10 @@ function HeadlessTable(props) {
4023
4387
  }
4024
4388
 
4025
4389
  // src/components/hooks/useComponentState/index.tsx
4026
- import * as React13 from "react";
4390
+ import * as React14 from "react";
4027
4391
  import {
4028
4392
  useReducer,
4029
- createContext as createContext2,
4393
+ createContext as createContext3,
4030
4394
  useMemo as useMemo3,
4031
4395
  useEffect as useEffect9,
4032
4396
  useState as useState4,
@@ -4136,7 +4500,7 @@ function getComponentStateContext() {
4136
4500
  if (ComponentContext) {
4137
4501
  return ComponentContext;
4138
4502
  }
4139
- return ComponentContext = createContext2(null);
4503
+ return ComponentContext = createContext3(null);
4140
4504
  }
4141
4505
  function getReducerGeneratedActions(dispatch, getState, getProps, propsToForward, allowedControlledPropOverrides, interceptedActions, mappedCallbacks) {
4142
4506
  const state = getState();
@@ -4201,10 +4565,10 @@ function forwardProps(propsToForward, props, setupState) {
4201
4565
  return mappedState;
4202
4566
  }
4203
4567
  function getComponentStateRoot(config) {
4204
- return React13.memo(function ComponentStateRoot(props) {
4568
+ return React14.memo(function ComponentStateRoot(props) {
4205
4569
  var _a, _b;
4206
4570
  const [initialSetupState] = useState4(() => {
4207
- return config.initSetupState ? config.initSetupState() : {};
4571
+ return config.initSetupState ? config.initSetupState(props) : {};
4208
4572
  });
4209
4573
  const propsToStateSetRef = useRef11(/* @__PURE__ */ new Set());
4210
4574
  const propsToForward = useMemo3(
@@ -4281,6 +4645,9 @@ function getComponentStateRoot(config) {
4281
4645
  ]);
4282
4646
  Object.assign(newState, stateFromProps);
4283
4647
  }
4648
+ if (action.type === "ASSIGN_STATE") {
4649
+ Object.assign(newState, action.payload);
4650
+ }
4284
4651
  const result = config.concludeReducer ? config.concludeReducer({
4285
4652
  previousState,
4286
4653
  state: newState,
@@ -4316,7 +4683,19 @@ function getComponentStateRoot(config) {
4316
4683
  () => ({
4317
4684
  componentState: state,
4318
4685
  componentActions: actions,
4319
- getComponentState
4686
+ getComponentState,
4687
+ replaceState: (newState) => {
4688
+ dispatch({
4689
+ type: "REPLACE_STATE",
4690
+ payload: newState
4691
+ });
4692
+ },
4693
+ assignState: (newState) => {
4694
+ dispatch({
4695
+ type: "ASSIGN_STATE",
4696
+ payload: newState
4697
+ });
4698
+ }
4320
4699
  }),
4321
4700
  [state, actions, getComponentState]
4322
4701
  );
@@ -4401,16 +4780,16 @@ function getComponentStateRoot(config) {
4401
4780
  (_a2 = config.cleanup) == null ? void 0 : _a2.call(config, getComponentState());
4402
4781
  };
4403
4782
  });
4404
- return /* @__PURE__ */ React13.createElement(Context.Provider, { value: contextValue }, props.children);
4783
+ return /* @__PURE__ */ React14.createElement(Context.Provider, { value: contextValue }, props.children);
4405
4784
  });
4406
4785
  }
4407
4786
  function useComponentState() {
4408
4787
  const Context = getComponentStateContext();
4409
- return React13.useContext(Context);
4788
+ return React14.useContext(Context);
4410
4789
  }
4411
4790
 
4412
4791
  // src/components/InfiniteTable/components/InfiniteTableBody/InfiniteTableBody.tsx
4413
- import * as React14 from "react";
4792
+ import * as React15 from "react";
4414
4793
 
4415
4794
  // src/components/InfiniteTable/hooks/useInternalProps.ts
4416
4795
  var useInternalProps = () => {
@@ -4418,33 +4797,33 @@ var useInternalProps = () => {
4418
4797
  };
4419
4798
 
4420
4799
  // src/components/InfiniteTable/utilities.css.ts
4421
- var absoluteCover = "utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1b utilities_left_0__16lm1iw1d utilities_right_0__16lm1iw1i utilities_bottom_0__16lm1iw1g";
4422
- var alignItems = { center: "utilities_alignItems_center__16lm1iw1p", stretch: "utilities_alignItems_stretch__16lm1iw1q" };
4423
- var cssEllipsisClassName = "utilities_whiteSpace_nowrap__16lm1iw22 utilities_textOverflow_ellipsis__16lm1iw23 utilities_overflow_hidden__16lm1iw1w";
4424
- var cursor = { pointer: "utilities_cursor_pointer__16lm1iwh", "default": "utilities_cursor_default__16lm1iwi", colResize: "utilities_cursor_colResize__16lm1iwj" };
4425
- var display = { flex: "utilities_display_flex__16lm1iwy", contents: "utilities_display_contents__16lm1iwz", none: "utilities_display_none__16lm1iw10", block: "utilities_display_block__16lm1iw11", grid: "utilities_display_grid__16lm1iw12", inlineBlock: "utilities_display_inlineBlock__16lm1iw13", inlineFlex: "utilities_display_inlineFlex__16lm1iw14", inlineGrid: "utilities_display_inlineGrid__16lm1iw15" };
4426
- var flex = { "1": "utilities_flex_1__16lm1iwl", none: "utilities_flex_none__16lm1iwm" };
4427
- var flexFlow = { column: "utilities_flexFlow_column__16lm1iw1l", columnReverse: "utilities_flexFlow_columnReverse__16lm1iw1m", row: "utilities_flexFlow_row__16lm1iw1n", rowReverse: "utilities_flexFlow_rowReverse__16lm1iw1o" };
4428
- var justifyContent = { center: "utilities_justifyContent_center__16lm1iw1r", spaceBetween: "utilities_justifyContent_spaceBetween__16lm1iw1s", spaceAround: "utilities_justifyContent_spaceAround__16lm1iw1t", start: "utilities_justifyContent_start__16lm1iw1u", end: "utilities_justifyContent_end__16lm1iw1v" };
4429
- var left = { "0": "utilities_left_0__16lm1iw1d", "100%": "utilities_left_100%__16lm1iw1e", auto: "utilities_left_auto__16lm1iw1f" };
4430
- var outline = { none: "utilities_outline_none__16lm1iwc" };
4431
- var overflow = { hidden: "utilities_overflow_hidden__16lm1iw1w", auto: "utilities_overflow_auto__16lm1iw1x", visible: "utilities_overflow_visible__16lm1iw1y" };
4800
+ var absoluteCover = "utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1c utilities_left_0__16lm1iw1e utilities_right_0__16lm1iw1j utilities_bottom_0__16lm1iw1h";
4801
+ var alignItems = { center: "utilities_alignItems_center__16lm1iw1q", stretch: "utilities_alignItems_stretch__16lm1iw1r" };
4802
+ var cssEllipsisClassName = "utilities_whiteSpace_nowrap__16lm1iw23 utilities_textOverflow_ellipsis__16lm1iw24 utilities_overflow_hidden__16lm1iw1x";
4803
+ var cursor = { pointer: "utilities_cursor_pointer__16lm1iwi", "default": "utilities_cursor_default__16lm1iwj", colResize: "utilities_cursor_colResize__16lm1iwk" };
4804
+ var display = { flex: "utilities_display_flex__16lm1iwz", contents: "utilities_display_contents__16lm1iw10", none: "utilities_display_none__16lm1iw11", block: "utilities_display_block__16lm1iw12", grid: "utilities_display_grid__16lm1iw13", inlineBlock: "utilities_display_inlineBlock__16lm1iw14", inlineFlex: "utilities_display_inlineFlex__16lm1iw15", inlineGrid: "utilities_display_inlineGrid__16lm1iw16" };
4805
+ var flex = { "1": "utilities_flex_1__16lm1iwm", none: "utilities_flex_none__16lm1iwn" };
4806
+ var flexFlow = { column: "utilities_flexFlow_column__16lm1iw1m", columnReverse: "utilities_flexFlow_columnReverse__16lm1iw1n", row: "utilities_flexFlow_row__16lm1iw1o", rowReverse: "utilities_flexFlow_rowReverse__16lm1iw1p" };
4807
+ var justifyContent = { center: "utilities_justifyContent_center__16lm1iw1s", spaceBetween: "utilities_justifyContent_spaceBetween__16lm1iw1t", spaceAround: "utilities_justifyContent_spaceAround__16lm1iw1u", start: "utilities_justifyContent_start__16lm1iw1v", end: "utilities_justifyContent_end__16lm1iw1w" };
4808
+ var left = { "0": "utilities_left_0__16lm1iw1e", "100%": "utilities_left_100%__16lm1iw1f", auto: "utilities_left_auto__16lm1iw1g" };
4809
+ var outline = { none: "utilities_outline_none__16lm1iwd" };
4810
+ var overflow = { hidden: "utilities_overflow_hidden__16lm1iw1x", auto: "utilities_overflow_auto__16lm1iw1y", visible: "utilities_overflow_visible__16lm1iw1z" };
4432
4811
  var position = { relative: "utilities_position_relative__16lm1iw1", absolute: "utilities_position_absolute__16lm1iw2", "static": "utilities_position_static__16lm1iw3", sticky: "utilities_position_sticky__16lm1iw4", fixed: "utilities_position_fixed__16lm1iw5" };
4433
- var top = { "0": "utilities_top_0__16lm1iw1b", "100%": "utilities_top_100%__16lm1iw1c" };
4434
- var transformTranslateZero = "utilities_transformTranslateZero__16lm1iwd";
4435
- var userSelect = { none: "utilities_userSelect_none__16lm1iw16" };
4436
- var zIndex = { "1": "utilities_zIndex_1__16lm1iwn", "10": "utilities_zIndex_10__16lm1iwo", "100": "utilities_zIndex_100__16lm1iwp", "1000": "utilities_zIndex_1000__16lm1iwq", "10000": "utilities_zIndex_10000__16lm1iwr", "100000": "utilities_zIndex_100000__16lm1iws", "1000000": "utilities_zIndex_1000000__16lm1iwt", "10000000": "utilities_zIndex_10000000__16lm1iwu", "1k": "utilities_zIndex_1k__16lm1iwv", "10k": "utilities_zIndex_10k__16lm1iww", "100k": "utilities_zIndex_100k__16lm1iwx" };
4812
+ var top = { "0": "utilities_top_0__16lm1iw1c", "100%": "utilities_top_100%__16lm1iw1d" };
4813
+ var transformTranslateZero = "utilities_transformTranslateZero__16lm1iwe";
4814
+ var userSelect = { none: "utilities_userSelect_none__16lm1iw17" };
4815
+ var zIndex = { "1": "utilities_zIndex_1__16lm1iwo", "10": "utilities_zIndex_10__16lm1iwp", "100": "utilities_zIndex_100__16lm1iwq", "1000": "utilities_zIndex_1000__16lm1iwr", "10000": "utilities_zIndex_10000__16lm1iws", "100000": "utilities_zIndex_100000__16lm1iwt", "1000000": "utilities_zIndex_1000000__16lm1iwu", "10000000": "utilities_zIndex_10000000__16lm1iwv", "1k": "utilities_zIndex_1k__16lm1iww", "10k": "utilities_zIndex_10k__16lm1iwx", "100k": "utilities_zIndex_100k__16lm1iwy" };
4437
4816
 
4438
4817
  // src/components/InfiniteTable/components/InfiniteTableBody/InfiniteTableBody.tsx
4439
- var InfiniteTableBody = React14.forwardRef(function InfiniteTableBody2(props, ref) {
4440
- const { rootClassName: rootClassName12 } = useInternalProps();
4441
- return /* @__PURE__ */ React14.createElement(
4818
+ var InfiniteTableBody = React15.forwardRef(function InfiniteTableBody2(props, ref) {
4819
+ const { rootClassName: rootClassName13 } = useInternalProps();
4820
+ return /* @__PURE__ */ React15.createElement(
4442
4821
  "div",
4443
4822
  __spreadProps(__spreadValues({
4444
4823
  ref
4445
4824
  }, props), {
4446
4825
  className: join(
4447
- `${rootClassName12}Body`,
4826
+ `${rootClassName13}Body`,
4448
4827
  position.relative,
4449
4828
  flex["1"],
4450
4829
  transformTranslateZero,
@@ -4455,17 +4834,17 @@ var InfiniteTableBody = React14.forwardRef(function InfiniteTableBody2(props, re
4455
4834
  });
4456
4835
 
4457
4836
  // src/components/InfiniteTable/components/InfiniteTableFooter/InfiniteTableFooter.tsx
4458
- import * as React15 from "react";
4459
- var InfiniteTableFooter = React15.forwardRef(
4837
+ import * as React16 from "react";
4838
+ var InfiniteTableFooter = React16.forwardRef(
4460
4839
  function InfiniteTableFooter2(props, ref) {
4461
- const { rootClassName: rootClassName12 } = useInternalProps();
4462
- return /* @__PURE__ */ React15.createElement(
4840
+ const { rootClassName: rootClassName13 } = useInternalProps();
4841
+ return /* @__PURE__ */ React16.createElement(
4463
4842
  "div",
4464
4843
  __spreadProps(__spreadValues({
4465
4844
  ref
4466
4845
  }, props), {
4467
4846
  className: join(
4468
- `${rootClassName12}Footer`,
4847
+ `${rootClassName13}Footer`,
4469
4848
  position.relative,
4470
4849
  display.flex,
4471
4850
  flexFlow.row,
@@ -4477,7 +4856,7 @@ var InfiniteTableFooter = React15.forwardRef(
4477
4856
  );
4478
4857
 
4479
4858
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderCell.tsx
4480
- import * as React42 from "react";
4859
+ import * as React43 from "react";
4481
4860
  import { useCallback as useCallback14, useContext as useContext7, useEffect as useEffect15, useRef as useRef16 } from "react";
4482
4861
  import { createPortal } from "react-dom";
4483
4862
 
@@ -4491,7 +4870,7 @@ function keyMirror(obj) {
4491
4870
  }
4492
4871
 
4493
4872
  // src/components/InfiniteTable/components/icons/Icon.tsx
4494
- import * as React16 from "react";
4873
+ import * as React17 from "react";
4495
4874
  var Icon = (props) => {
4496
4875
  var _a;
4497
4876
  const size = (_a = props.size) != null ? _a : `var(--infinite-icon-size)`;
@@ -4503,82 +4882,82 @@ var Icon = (props) => {
4503
4882
  }, props.style);
4504
4883
  return (
4505
4884
  //@ts-ignore
4506
- /* @__PURE__ */ React16.createElement("svg", __spreadProps(__spreadValues({ viewBox: "0 0 24 24" }, props), { style: style2 }), props.children)
4885
+ /* @__PURE__ */ React17.createElement("svg", __spreadProps(__spreadValues({ viewBox: "0 0 24 24" }, props), { style: style2 }), props.children)
4507
4886
  );
4508
4887
  };
4509
4888
 
4510
4889
  // src/components/InfiniteTable/components/icons/IncludesOperatorIcon.tsx
4511
- import * as React17 from "react";
4890
+ import * as React18 from "react";
4512
4891
  var IncludesOperatorIcon = (props) => {
4513
- return /* @__PURE__ */ React17.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React17.createElement("path", { d: "M5,4V7H10.5V19H13.5V7H19V4H5Z" }));
4892
+ return /* @__PURE__ */ React18.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React18.createElement("path", { d: "M5,4V7H10.5V19H13.5V7H19V4H5Z" }));
4514
4893
  };
4515
4894
 
4516
4895
  // src/components/InfiniteTable/components/icons/EndsWithOperatorIcon.tsx
4517
- import * as React18 from "react";
4896
+ import * as React19 from "react";
4518
4897
  var EndsWithOperatorIcon = (props) => {
4519
- return /* @__PURE__ */ React18.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React18.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M20 14V18H2V20H22V14Z" }));
4898
+ return /* @__PURE__ */ React19.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React19.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M20 14V18H2V20H22V14Z" }));
4520
4899
  };
4521
4900
 
4522
4901
  // src/components/InfiniteTable/components/icons/EqualOperatorIcon.tsx
4523
- import * as React19 from "react";
4902
+ import * as React20 from "react";
4524
4903
  var EqualOperatorIcon = (props) => {
4525
- return /* @__PURE__ */ React19.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React19.createElement("path", { d: "M19,10H5V8H19V10M19,16H5V14H19V16Z" }));
4904
+ return /* @__PURE__ */ React20.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React20.createElement("path", { d: "M19,10H5V8H19V10M19,16H5V14H19V16Z" }));
4526
4905
  };
4527
4906
 
4528
4907
  // src/components/InfiniteTable/components/icons/GTEOperatorIcon.tsx
4529
- import * as React20 from "react";
4908
+ import * as React21 from "react";
4530
4909
  var GTEOperatorIcon = (props) => {
4531
- return /* @__PURE__ */ React20.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React20.createElement("path", { d: "M6.5,2.27L20,10.14L6.5,18L5.5,16.27L16.03,10.14L5.5,4L6.5,2.27M20,20V22H5V20H20Z" }));
4910
+ return /* @__PURE__ */ React21.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React21.createElement("path", { d: "M6.5,2.27L20,10.14L6.5,18L5.5,16.27L16.03,10.14L5.5,4L6.5,2.27M20,20V22H5V20H20Z" }));
4532
4911
  };
4533
4912
 
4534
4913
  // src/components/InfiniteTable/components/icons/GTOperatorIcon.tsx
4535
- import * as React21 from "react";
4914
+ import * as React22 from "react";
4536
4915
  var GTOperatorIcon = (props) => {
4537
- return /* @__PURE__ */ React21.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React21.createElement("path", { d: "M5.5,4.14L4.5,5.86L15,12L4.5,18.14L5.5,19.86L19,12L5.5,4.14Z" }));
4916
+ return /* @__PURE__ */ React22.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React22.createElement("path", { d: "M5.5,4.14L4.5,5.86L15,12L4.5,18.14L5.5,19.86L19,12L5.5,4.14Z" }));
4538
4917
  };
4539
4918
 
4540
4919
  // src/components/InfiniteTable/components/icons/LTEOperatorIcon.tsx
4541
- import * as React22 from "react";
4920
+ import * as React23 from "react";
4542
4921
  var LTEOperatorIcon = (props) => {
4543
- return /* @__PURE__ */ React22.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React22.createElement("path", { d: "M18.5,2.27L5,10.14L18.5,18L19.5,16.27L8.97,10.14L19.5,4L18.5,2.27M5,20V22H20V20H5Z" }));
4922
+ return /* @__PURE__ */ React23.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React23.createElement("path", { d: "M18.5,2.27L5,10.14L18.5,18L19.5,16.27L8.97,10.14L19.5,4L18.5,2.27M5,20V22H20V20H5Z" }));
4544
4923
  };
4545
4924
 
4546
4925
  // src/components/InfiniteTable/components/icons/LTOperatorIcon.tsx
4547
- import * as React23 from "react";
4926
+ import * as React24 from "react";
4548
4927
  var LTOperatorIcon = (props) => {
4549
- return /* @__PURE__ */ React23.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React23.createElement("path", { d: "M18.5,4.14L19.5,5.86L8.97,12L19.5,18.14L18.5,19.86L5,12L18.5,4.14Z" }));
4928
+ return /* @__PURE__ */ React24.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React24.createElement("path", { d: "M18.5,4.14L19.5,5.86L8.97,12L19.5,18.14L18.5,19.86L5,12L18.5,4.14Z" }));
4550
4929
  };
4551
4930
 
4552
4931
  // src/components/InfiniteTable/components/icons/NotEqualOperatorIcon.tsx
4553
- import * as React24 from "react";
4932
+ import * as React25 from "react";
4554
4933
  var NotEqualOperatorIcon = (props) => {
4555
- return /* @__PURE__ */ React24.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React24.createElement("path", { d: "M21,10H9V8H21V10M21,16H9V14H21V16M4,5H6V16H4V5M6,18V20H4V18H6Z" }));
4934
+ return /* @__PURE__ */ React25.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React25.createElement("path", { d: "M21,10H9V8H21V10M21,16H9V14H21V16M4,5H6V16H4V5M6,18V20H4V18H6Z" }));
4556
4935
  };
4557
4936
 
4558
4937
  // src/components/InfiniteTable/components/icons/StartsWithOperatorIcon.tsx
4559
- import * as React25 from "react";
4938
+ import * as React26 from "react";
4560
4939
  var StartsWithOperatorIcon = (props) => {
4561
- return /* @__PURE__ */ React25.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React25.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M4 18V15H2V20H22V18Z" }));
4940
+ return /* @__PURE__ */ React26.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React26.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M4 18V15H2V20H22V18Z" }));
4562
4941
  };
4563
4942
 
4564
4943
  // src/components/InfiniteTable/components/FilterEditors.tsx
4565
- import * as React29 from "react";
4944
+ import * as React30 from "react";
4566
4945
 
4567
4946
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableColumnHeaderFilter.tsx
4568
- import * as React28 from "react";
4947
+ import * as React29 from "react";
4569
4948
  import { useEffect as useEffect11, useState as useState6 } from "react";
4570
4949
 
4571
4950
  // src/components/InfiniteTable/hooks/useInfiniteTable.ts
4572
4951
  import { useContext as useContext3 } from "react";
4573
4952
 
4574
4953
  // src/components/InfiniteTable/InfiniteTableContext.ts
4575
- import { createContext as createContext3 } from "react";
4954
+ import { createContext as createContext4 } from "react";
4576
4955
  var TableContext;
4577
4956
  function getInfiniteTableContext() {
4578
4957
  if (TableContext) {
4579
4958
  return TableContext;
4580
4959
  }
4581
- return TableContext = createContext3(
4960
+ return TableContext = createContext4(
4582
4961
  null
4583
4962
  );
4584
4963
  }
@@ -4598,7 +4977,7 @@ var useInfiniteTableState = () => {
4598
4977
  };
4599
4978
 
4600
4979
  // src/components/InfiniteTable/components/icons/FilterIcon.tsx
4601
- import * as React26 from "react";
4980
+ import * as React27 from "react";
4602
4981
  import { useEffect as useEffect10, useLayoutEffect as useLayoutEffect8, useState as useState5 } from "react";
4603
4982
 
4604
4983
  // ../node_modules/@vanilla-extract/recipes/dist/createRuntimeFn-f8e161c6.esm.js
@@ -4710,29 +5089,29 @@ var createRuntimeFn = (config) => {
4710
5089
  };
4711
5090
 
4712
5091
  // src/components/InfiniteTable/components/InfiniteTableHeader/header.css.ts
4713
- var CellCls = "cell_CellCls__1eexc2a5 utilities_display_flex__16lm1iwy utilities_flexFlow_row__16lm1iw1n utilities_alignItems_center__16lm1iw1p utilities_position_absolute__16lm1iw2 utilities_willChange_transform__16lm1iw21 utilities_whiteSpace_nowrap__16lm1iw22 utilities_userSelect_none__16lm1iw16";
4714
- var HeaderCellContentRecipe = createRuntimeFn({ defaultClassName: "header_HeaderCellContentRecipe__12zfob11y utilities_height_100%__16lm1iw18 utilities_width_100%__16lm1iw1a utilities_display_flex__16lm1iwy utilities_flexFlow_row__16lm1iw1n utilities_alignItems_center__16lm1iw1p utilities_justifyContent_start__16lm1iw1u", variantClassNames: { filtered: { false: "header_HeaderCellContentRecipe_filtered_false__12zfob11z", true: "header_HeaderCellContentRecipe_filtered_true__12zfob120" }, verticalAlign: { start: "header_HeaderCellContentRecipe_verticalAlign_start__12zfob121", end: "header_HeaderCellContentRecipe_verticalAlign_end__12zfob122", center: "header_HeaderCellContentRecipe_verticalAlign_center__12zfob123" }, align: { start: "header_HeaderCellContentRecipe_align_start__12zfob124", end: "header_HeaderCellContentRecipe_align_end__12zfob125", center: "header_HeaderCellContentRecipe_align_center__12zfob126" } }, defaultVariants: {}, compoundVariants: [] });
4715
- var HeaderCellProxy = "header_HeaderCellProxy__12zfob1n utilities_whiteSpace_nowrap__16lm1iw22 utilities_textOverflow_ellipsis__16lm1iw23 utilities_overflow_hidden__16lm1iw1w";
4716
- var HeaderCellRecipe = createRuntimeFn({ defaultClassName: "header_HeaderCellRecipe__12zfob1o utilities_display_block__16lm1iw11", variantClassNames: { rowActive: { false: "header_HeaderCellRecipe_rowActive_false__12zfob1p", true: "header_HeaderCellRecipe_rowActive_true__12zfob1q" }, cellSelected: { false: "header_HeaderCellRecipe_cellSelected_false__12zfob1r", true: "header_HeaderCellRecipe_cellSelected_true__12zfob1s" }, rowSelected: { false: "header_HeaderCellRecipe_rowSelected_false__12zfob1t", true: "header_HeaderCellRecipe_rowSelected_true__12zfob1u", null: "header_HeaderCellRecipe_rowSelected_null__12zfob1v" }, groupRow: { false: "header_HeaderCellRecipe_groupRow_false__12zfob1w", true: "header_HeaderCellRecipe_groupRow_true__12zfob1x" }, groupCell: { false: "header_HeaderCellRecipe_groupCell_false__12zfob1y", true: "header_HeaderCellRecipe_groupCell_true__12zfob1z" }, align: { start: "header_HeaderCellRecipe_align_start__12zfob110", end: "header_HeaderCellRecipe_align_end__12zfob111", center: "header_HeaderCellRecipe_align_center__12zfob112" }, verticalAlign: { start: "header_HeaderCellRecipe_verticalAlign_start__12zfob113", end: "header_HeaderCellRecipe_verticalAlign_end__12zfob114", center: "header_HeaderCellRecipe_verticalAlign_center__12zfob115" }, zebra: { false: "header_HeaderCellRecipe_zebra_false__12zfob116", even: "header_HeaderCellRecipe_zebra_even__12zfob117", odd: "header_HeaderCellRecipe_zebra_odd__12zfob118" }, dragging: { true: "header_HeaderCellRecipe_dragging_true__12zfob119", false: "header_HeaderCellRecipe_dragging_false__12zfob11a" }, first: { true: "header_HeaderCellRecipe_first_true__12zfob11b", false: "header_HeaderCellRecipe_first_false__12zfob11c" }, last: { true: "header_HeaderCellRecipe_last_true__12zfob11d", false: "header_HeaderCellRecipe_last_false__12zfob11e" }, groupByField: { true: "header_HeaderCellRecipe_groupByField_true__12zfob11f", false: "header_HeaderCellRecipe_groupByField_false__12zfob11g" }, firstInCategory: { true: "header_HeaderCellRecipe_firstInCategory_true__12zfob11h", false: "header_HeaderCellRecipe_firstInCategory_false__12zfob11i" }, lastInCategory: { true: "header_HeaderCellRecipe_lastInCategory_true__12zfob11j", false: "header_HeaderCellRecipe_lastInCategory_false__12zfob11k" }, pinned: { start: "header_HeaderCellRecipe_pinned_start__12zfob11l", end: "header_HeaderCellRecipe_pinned_end__12zfob11m", false: "header_HeaderCellRecipe_pinned_false__12zfob11n" }, filtered: { true: "header_HeaderCellRecipe_filtered_true__12zfob11o", false: "header_HeaderCellRecipe_filtered_false__12zfob11p" } }, defaultVariants: {}, compoundVariants: [[{ pinned: "start", lastInCategory: true }, "header_HeaderCellRecipe_compound_0__12zfob11q"], [{ pinned: "end", firstInCategory: true }, "header_HeaderCellRecipe_compound_1__12zfob11r"], [{ pinned: false, lastInCategory: true }, "header_HeaderCellRecipe_compound_2__12zfob11s"]] });
4717
- var HeaderClsRecipe = createRuntimeFn({ defaultClassName: "header_HeaderClsRecipe__12zfob19 utilities_display_block__16lm1iw11 utilities_position_absolute__16lm1iw2", variantClassNames: { pinned: { start: "header_HeaderClsRecipe_pinned_start__12zfob1a", end: "header_HeaderClsRecipe_pinned_end__12zfob1b", false: "header_HeaderClsRecipe_pinned_false__12zfob1c" }, firstInCategory: { true: "header_HeaderClsRecipe_firstInCategory_true__12zfob1d", false: "header_HeaderClsRecipe_firstInCategory_false__12zfob1e" }, lastInCategory: { true: "header_HeaderClsRecipe_lastInCategory_true__12zfob1f", false: "header_HeaderClsRecipe_lastInCategory_false__12zfob1g" }, overflow: { true: "header_HeaderClsRecipe_overflow_true__12zfob1h", false: "header_HeaderClsRecipe_overflow_false__12zfob1i" } }, defaultVariants: {}, compoundVariants: [[{ overflow: true, pinned: "start" }, "header_HeaderClsRecipe_compound_0__12zfob1j"], [{ pinned: "start", firstInCategory: true }, "header_HeaderClsRecipe_compound_1__12zfob1k"], [{ overflow: true, pinned: "end" }, "header_HeaderClsRecipe_compound_2__12zfob1l"], [{ pinned: "end", lastInCategory: true }, "header_HeaderClsRecipe_compound_3__12zfob1m"]] });
4718
- var HeaderFilterEditorCls = "header_HeaderFilterEditorCls__12zfob12g utilities_width_100%__16lm1iw1a utilities_height_100%__16lm1iw18";
5092
+ var CellCls = "cell_CellCls__1eexc2a5 utilities_display_flex__16lm1iwz utilities_flexFlow_row__16lm1iw1o utilities_alignItems_center__16lm1iw1q utilities_position_absolute__16lm1iw2 utilities_willChange_transform__16lm1iw22 utilities_whiteSpace_nowrap__16lm1iw23 utilities_userSelect_none__16lm1iw17";
5093
+ var HeaderCellContentRecipe = createRuntimeFn({ defaultClassName: "header_HeaderCellContentRecipe__12zfob11y utilities_height_100%__16lm1iw19 utilities_width_100%__16lm1iw1b utilities_display_flex__16lm1iwz utilities_flexFlow_row__16lm1iw1o utilities_alignItems_center__16lm1iw1q utilities_justifyContent_start__16lm1iw1v", variantClassNames: { filtered: { false: "header_HeaderCellContentRecipe_filtered_false__12zfob11z", true: "header_HeaderCellContentRecipe_filtered_true__12zfob120" }, verticalAlign: { start: "header_HeaderCellContentRecipe_verticalAlign_start__12zfob121", end: "header_HeaderCellContentRecipe_verticalAlign_end__12zfob122", center: "header_HeaderCellContentRecipe_verticalAlign_center__12zfob123" }, align: { start: "header_HeaderCellContentRecipe_align_start__12zfob124", end: "header_HeaderCellContentRecipe_align_end__12zfob125", center: "header_HeaderCellContentRecipe_align_center__12zfob126" } }, defaultVariants: {}, compoundVariants: [] });
5094
+ var HeaderCellProxy = "header_HeaderCellProxy__12zfob1n utilities_whiteSpace_nowrap__16lm1iw23 utilities_textOverflow_ellipsis__16lm1iw24 utilities_overflow_hidden__16lm1iw1x";
5095
+ var HeaderCellRecipe = createRuntimeFn({ defaultClassName: "header_HeaderCellRecipe__12zfob1o utilities_display_block__16lm1iw12", variantClassNames: { rowActive: { false: "header_HeaderCellRecipe_rowActive_false__12zfob1p", true: "header_HeaderCellRecipe_rowActive_true__12zfob1q" }, cellSelected: { false: "header_HeaderCellRecipe_cellSelected_false__12zfob1r", true: "header_HeaderCellRecipe_cellSelected_true__12zfob1s" }, rowSelected: { false: "header_HeaderCellRecipe_rowSelected_false__12zfob1t", true: "header_HeaderCellRecipe_rowSelected_true__12zfob1u", null: "header_HeaderCellRecipe_rowSelected_null__12zfob1v" }, groupRow: { false: "header_HeaderCellRecipe_groupRow_false__12zfob1w", true: "header_HeaderCellRecipe_groupRow_true__12zfob1x" }, groupCell: { false: "header_HeaderCellRecipe_groupCell_false__12zfob1y", true: "header_HeaderCellRecipe_groupCell_true__12zfob1z" }, align: { start: "header_HeaderCellRecipe_align_start__12zfob110", end: "header_HeaderCellRecipe_align_end__12zfob111", center: "header_HeaderCellRecipe_align_center__12zfob112" }, verticalAlign: { start: "header_HeaderCellRecipe_verticalAlign_start__12zfob113", end: "header_HeaderCellRecipe_verticalAlign_end__12zfob114", center: "header_HeaderCellRecipe_verticalAlign_center__12zfob115" }, zebra: { false: "header_HeaderCellRecipe_zebra_false__12zfob116", even: "header_HeaderCellRecipe_zebra_even__12zfob117", odd: "header_HeaderCellRecipe_zebra_odd__12zfob118" }, dragging: { true: "header_HeaderCellRecipe_dragging_true__12zfob119", false: "header_HeaderCellRecipe_dragging_false__12zfob11a" }, first: { true: "header_HeaderCellRecipe_first_true__12zfob11b", false: "header_HeaderCellRecipe_first_false__12zfob11c" }, last: { true: "header_HeaderCellRecipe_last_true__12zfob11d", false: "header_HeaderCellRecipe_last_false__12zfob11e" }, groupByField: { true: "header_HeaderCellRecipe_groupByField_true__12zfob11f", false: "header_HeaderCellRecipe_groupByField_false__12zfob11g" }, firstInCategory: { true: "header_HeaderCellRecipe_firstInCategory_true__12zfob11h", false: "header_HeaderCellRecipe_firstInCategory_false__12zfob11i" }, lastInCategory: { true: "header_HeaderCellRecipe_lastInCategory_true__12zfob11j", false: "header_HeaderCellRecipe_lastInCategory_false__12zfob11k" }, pinned: { start: "header_HeaderCellRecipe_pinned_start__12zfob11l", end: "header_HeaderCellRecipe_pinned_end__12zfob11m", false: "header_HeaderCellRecipe_pinned_false__12zfob11n" }, filtered: { true: "header_HeaderCellRecipe_filtered_true__12zfob11o", false: "header_HeaderCellRecipe_filtered_false__12zfob11p" } }, defaultVariants: {}, compoundVariants: [[{ pinned: "start", lastInCategory: true }, "header_HeaderCellRecipe_compound_0__12zfob11q"], [{ pinned: "end", firstInCategory: true }, "header_HeaderCellRecipe_compound_1__12zfob11r"], [{ pinned: false, lastInCategory: true }, "header_HeaderCellRecipe_compound_2__12zfob11s"]] });
5096
+ var HeaderClsRecipe = createRuntimeFn({ defaultClassName: "header_HeaderClsRecipe__12zfob19 utilities_display_block__16lm1iw12 utilities_position_absolute__16lm1iw2", variantClassNames: { pinned: { start: "header_HeaderClsRecipe_pinned_start__12zfob1a", end: "header_HeaderClsRecipe_pinned_end__12zfob1b", false: "header_HeaderClsRecipe_pinned_false__12zfob1c" }, firstInCategory: { true: "header_HeaderClsRecipe_firstInCategory_true__12zfob1d", false: "header_HeaderClsRecipe_firstInCategory_false__12zfob1e" }, lastInCategory: { true: "header_HeaderClsRecipe_lastInCategory_true__12zfob1f", false: "header_HeaderClsRecipe_lastInCategory_false__12zfob1g" }, overflow: { true: "header_HeaderClsRecipe_overflow_true__12zfob1h", false: "header_HeaderClsRecipe_overflow_false__12zfob1i" } }, defaultVariants: {}, compoundVariants: [[{ overflow: true, pinned: "start" }, "header_HeaderClsRecipe_compound_0__12zfob1j"], [{ pinned: "start", firstInCategory: true }, "header_HeaderClsRecipe_compound_1__12zfob1k"], [{ overflow: true, pinned: "end" }, "header_HeaderClsRecipe_compound_2__12zfob1l"], [{ pinned: "end", lastInCategory: true }, "header_HeaderClsRecipe_compound_3__12zfob1m"]] });
5097
+ var HeaderFilterEditorCls = "header_HeaderFilterEditorCls__12zfob12g utilities_width_100%__16lm1iw1b utilities_height_100%__16lm1iw19";
4719
5098
  var HeaderFilterIconIndexCls = "header_HeaderFilterIconIndexCls__12zfob17";
4720
- var HeaderFilterOperatorCls = "header_HeaderFilterOperatorCls__12zfob12c utilities_display_flex__16lm1iwy utilities_flexFlow_row__16lm1iw1n utilities_alignItems_center__16lm1iw1p utilities_position_relative__16lm1iw1";
4721
- var HeaderFilterOperatorIconRecipe = createRuntimeFn({ defaultClassName: "header_HeaderFilterOperatorIconRecipe__12zfob12d utilities_position_relative__16lm1iw1 utilities_top_0__16lm1iw1b", variantClassNames: { disabled: { true: "header_HeaderFilterOperatorIconRecipe_disabled_true__12zfob12e", false: "header_HeaderFilterOperatorIconRecipe_disabled_false__12zfob12f" } }, defaultVariants: {}, compoundVariants: [] });
4722
- var HeaderFilterRecipe = createRuntimeFn({ defaultClassName: "header_HeaderFilterRecipe__12zfob129 utilities_display_flex__16lm1iwy utilities_flexFlow_row__16lm1iw1n utilities_alignItems_stretch__16lm1iw1q utilities_position_relative__16lm1iw1", variantClassNames: { active: { true: "header_HeaderFilterRecipe_active_true__12zfob12a", false: "header_HeaderFilterRecipe_active_false__12zfob12b" } }, defaultVariants: {}, compoundVariants: [] });
4723
- var HeaderGroupCls = "header_HeaderGroupCls__12zfob128 utilities_display_flex__16lm1iwy utilities_flexFlow_row__16lm1iw1n utilities_alignItems_center__16lm1iw1p";
4724
- var HeaderMenuIconCls = createRuntimeFn({ defaultClassName: "header_HeaderMenuIconCls__12zfob11t utilities_position_relative__16lm1iw1 utilities_display_flex__16lm1iwy utilities_flexFlow_column__16lm1iw1l utilities_justifyContent_spaceAround__16lm1iw1t utilities_visibility_hidden__16lm1iw20", variantClassNames: { menuVisible: { true: "header_HeaderMenuIconCls_menuVisible_true__12zfob11u" }, reserveSpaceWhenHidden: { true: "header_HeaderMenuIconCls_reserveSpaceWhenHidden_true__12zfob11v", false: "header_HeaderMenuIconCls_reserveSpaceWhenHidden_false__12zfob11w" } }, defaultVariants: {}, compoundVariants: [[{ menuVisible: true, reserveSpaceWhenHidden: false }, "header_HeaderMenuIconCls_compound_0__12zfob11x"]] });
5099
+ var HeaderFilterOperatorCls = "header_HeaderFilterOperatorCls__12zfob12c utilities_display_flex__16lm1iwz utilities_flexFlow_row__16lm1iw1o utilities_alignItems_center__16lm1iw1q utilities_position_relative__16lm1iw1";
5100
+ var HeaderFilterOperatorIconRecipe = createRuntimeFn({ defaultClassName: "header_HeaderFilterOperatorIconRecipe__12zfob12d utilities_position_relative__16lm1iw1 utilities_top_0__16lm1iw1c", variantClassNames: { disabled: { true: "header_HeaderFilterOperatorIconRecipe_disabled_true__12zfob12e", false: "header_HeaderFilterOperatorIconRecipe_disabled_false__12zfob12f" } }, defaultVariants: {}, compoundVariants: [] });
5101
+ var HeaderFilterRecipe = createRuntimeFn({ defaultClassName: "header_HeaderFilterRecipe__12zfob129 utilities_display_flex__16lm1iwz utilities_flexFlow_row__16lm1iw1o utilities_alignItems_stretch__16lm1iw1r utilities_position_relative__16lm1iw1", variantClassNames: { active: { true: "header_HeaderFilterRecipe_active_true__12zfob12a", false: "header_HeaderFilterRecipe_active_false__12zfob12b" } }, defaultVariants: {}, compoundVariants: [] });
5102
+ var HeaderGroupCls = "header_HeaderGroupCls__12zfob128 utilities_display_flex__16lm1iwz utilities_flexFlow_row__16lm1iw1o utilities_alignItems_center__16lm1iw1q";
5103
+ var HeaderMenuIconCls = createRuntimeFn({ defaultClassName: "header_HeaderMenuIconCls__12zfob11t utilities_position_relative__16lm1iw1 utilities_display_flex__16lm1iwz utilities_flexFlow_column__16lm1iw1m utilities_justifyContent_spaceAround__16lm1iw1u utilities_visibility_hidden__16lm1iw21", variantClassNames: { menuVisible: { true: "header_HeaderMenuIconCls_menuVisible_true__12zfob11u" }, reserveSpaceWhenHidden: { true: "header_HeaderMenuIconCls_reserveSpaceWhenHidden_true__12zfob11v", false: "header_HeaderMenuIconCls_reserveSpaceWhenHidden_false__12zfob11w" } }, defaultVariants: {}, compoundVariants: [[{ menuVisible: true, reserveSpaceWhenHidden: false }, "header_HeaderMenuIconCls_compound_0__12zfob11x"]] });
4725
5104
  var HeaderScrollbarPlaceholderCls = "header_HeaderScrollbarPlaceholderCls__12zfob18 utilities_position_absolute__16lm1iw2";
4726
5105
  var HeaderSortIconCls = "utilities_position_relative__16lm1iw1";
4727
5106
  var HeaderSortIconIndexCls = "header_HeaderSortIconIndexCls__12zfob16";
4728
5107
  var HeaderSortIconRecipe = createRuntimeFn({ defaultClassName: "header__12zfob12", variantClassNames: { align: { start: "header_HeaderSortIconRecipe_align_start__12zfob13", center: "header_HeaderSortIconRecipe_align_center__12zfob14", end: "header_HeaderSortIconRecipe_align_end__12zfob15" } }, defaultVariants: {}, compoundVariants: [] });
4729
- var HeaderWrapperCls = "header_HeaderWrapperCls__12zfob127 utilities_overflow_hidden__16lm1iw1w utilities_position_relative__16lm1iw1 utilities_display_flex__16lm1iwy utilities_flexFlow_row__16lm1iw1n";
5108
+ var HeaderWrapperCls = "header_HeaderWrapperCls__12zfob127 utilities_overflow_hidden__16lm1iw1x utilities_position_relative__16lm1iw1 utilities_display_flex__16lm1iwz utilities_flexFlow_row__16lm1iw1o";
4730
5109
 
4731
5110
  // src/components/InfiniteTable/components/icons/InfiniteTableIconClassName.ts
4732
5111
  var InfiniteTableIconClassName = "InfiniteTableIcon";
4733
5112
 
4734
5113
  // src/components/InfiniteTable/components/icons/FilterIcon.css.ts
4735
- var FilterIconCls = "FilterIcon_FilterIconCls__6aunoi0 utilities_display_flex__16lm1iwy utilities_flexFlow_column__16lm1iw1l utilities_position_relative__16lm1iw1 utilities_justifyContent_spaceAround__16lm1iw1t utilities_alignItems_center__16lm1iw1p";
5114
+ var FilterIconCls = "FilterIcon_FilterIconCls__6aunoi0 utilities_display_flex__16lm1iwz utilities_flexFlow_column__16lm1iw1m utilities_position_relative__16lm1iw1 utilities_justifyContent_spaceAround__16lm1iw1u utilities_alignItems_center__16lm1iw1q";
4736
5115
 
4737
5116
  // src/components/InfiniteTable/components/icons/FilterIcon.tsx
4738
5117
  var defaultLineStyle = {
@@ -4772,7 +5151,7 @@ function FilterIcon(props) {
4772
5151
  return null;
4773
5152
  }
4774
5153
  const indexStyle = {};
4775
- return /* @__PURE__ */ React26.createElement(
5154
+ return /* @__PURE__ */ React27.createElement(
4776
5155
  "div",
4777
5156
  {
4778
5157
  "data-name": "filter-icon",
@@ -4784,7 +5163,7 @@ function FilterIcon(props) {
4784
5163
  `${InfiniteTableIconClassName}-sort`
4785
5164
  )
4786
5165
  },
4787
- showIndex ? /* @__PURE__ */ React26.createElement(
5166
+ showIndex ? /* @__PURE__ */ React27.createElement(
4788
5167
  "div",
4789
5168
  {
4790
5169
  "data-name": "index",
@@ -4793,9 +5172,9 @@ function FilterIcon(props) {
4793
5172
  },
4794
5173
  index
4795
5174
  ) : null,
4796
- /* @__PURE__ */ React26.createElement("div", { style: __spreadValues({ width: sizes[0] }, lineStyle) }),
4797
- /* @__PURE__ */ React26.createElement("div", { style: __spreadValues({ width: sizes[1] }, lineStyle) }),
4798
- /* @__PURE__ */ React26.createElement("div", { style: __spreadValues({ width: sizes[2] }, lineStyle) })
5175
+ /* @__PURE__ */ React27.createElement("div", { style: __spreadValues({ width: sizes[0] }, lineStyle) }),
5176
+ /* @__PURE__ */ React27.createElement("div", { style: __spreadValues({ width: sizes[1] }, lineStyle) }),
5177
+ /* @__PURE__ */ React27.createElement("div", { style: __spreadValues({ width: sizes[2] }, lineStyle) })
4799
5178
  );
4800
5179
  }
4801
5180
 
@@ -5537,6 +5916,7 @@ var getComputedColumns = ({
5537
5916
  contentFocusable: colType.contentFocusable,
5538
5917
  renderMenuIcon: colType.renderMenuIcon,
5539
5918
  renderSortIcon: colType.renderSortIcon,
5919
+ renderRowDetailsIcon: colType.renderRowDetailsIcon,
5540
5920
  renderSelectionCheckBox: colType.renderSelectionCheckBox,
5541
5921
  renderHeaderSelectionCheckBox: colType.renderHeaderSelectionCheckBox,
5542
5922
  headerStyle: colType.headerStyle,
@@ -5838,10 +6218,10 @@ function getColumnLabel(colIdOrCol, context) {
5838
6218
  }
5839
6219
 
5840
6220
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableColumnHeaderFilterContext.ts
5841
- import React27 from "react";
6221
+ import React28 from "react";
5842
6222
  var InfiniteTableColumnHeaderFilterClassName = `${rootClassName2}HeaderCell__filter`;
5843
6223
  var InfiniteTableColumnHeaderFilterOperatorClassName = `${rootClassName2}HeaderCell__filterOperator`;
5844
- var InfiniteTableColumnHeaderFilterContext = React27.createContext(null);
6224
+ var InfiniteTableColumnHeaderFilterContext = React28.createContext(null);
5845
6225
 
5846
6226
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableColumnHeaderFilter.tsx
5847
6227
  var InfiniteTableColumnHeaderFilterInputClassName = `${InfiniteTableColumnHeaderFilterClassName}__input`;
@@ -5852,14 +6232,14 @@ function InfiniteTableColumnHeaderFilter(props) {
5852
6232
  const FilterEditor = props.filterEditor;
5853
6233
  const FilterOperatorSwitch = props.filterOperatorSwitch;
5854
6234
  const [focused, setFocused] = useState6(false);
5855
- const onFocus = React28.useCallback(() => {
6235
+ const onFocus = React29.useCallback(() => {
5856
6236
  setFocused(true);
5857
6237
  }, []);
5858
- const onBlur = React28.useCallback(() => {
6238
+ const onBlur = React29.useCallback(() => {
5859
6239
  setFocused(false);
5860
6240
  }, []);
5861
6241
  const active = filterOperatorMenuVisibleForColumnId === column.id || focused;
5862
- return /* @__PURE__ */ React28.createElement(
6242
+ return /* @__PURE__ */ React29.createElement(
5863
6243
  "div",
5864
6244
  {
5865
6245
  onPointerUp: stopPropagation,
@@ -5873,14 +6253,14 @@ function InfiniteTableColumnHeaderFilter(props) {
5873
6253
  )}`,
5874
6254
  style: { height: props.columnHeaderHeight }
5875
6255
  },
5876
- /* @__PURE__ */ React28.createElement(InfiniteTableColumnHeaderFilterContext.Provider, { value: props }, /* @__PURE__ */ React28.createElement(FilterOperatorSwitch, null), /* @__PURE__ */ React28.createElement(FilterEditor, null))
6256
+ /* @__PURE__ */ React29.createElement(InfiniteTableColumnHeaderFilterContext.Provider, { value: props }, /* @__PURE__ */ React29.createElement(FilterOperatorSwitch, null), /* @__PURE__ */ React29.createElement(FilterEditor, null))
5877
6257
  );
5878
6258
  }
5879
6259
  function InfiniteTableFilterOperatorSwitch() {
5880
6260
  var _a, _b;
5881
6261
  const { columnApi, disabled, operator } = useInfiniteColumnFilterEditor();
5882
6262
  const Icon2 = (_b = (_a = operator == null ? void 0 : operator.components) == null ? void 0 : _a.Icon) != null ? _b : FilterIcon;
5883
- return /* @__PURE__ */ React28.createElement(
6263
+ return /* @__PURE__ */ React29.createElement(
5884
6264
  "div",
5885
6265
  {
5886
6266
  "data-name": "filter-operator",
@@ -5898,7 +6278,7 @@ function InfiniteTableFilterOperatorSwitch() {
5898
6278
  disabled ? `${InfiniteTableColumnHeaderFilterOperatorClassName}--disabled` : ""
5899
6279
  )
5900
6280
  },
5901
- /* @__PURE__ */ React28.createElement(
6281
+ /* @__PURE__ */ React29.createElement(
5902
6282
  Icon2,
5903
6283
  {
5904
6284
  size: 20,
@@ -5910,7 +6290,7 @@ function InfiniteTableFilterOperatorSwitch() {
5910
6290
  );
5911
6291
  }
5912
6292
  function InfiniteTableColumnHeaderFilterEmpty() {
5913
- return /* @__PURE__ */ React28.createElement(
6293
+ return /* @__PURE__ */ React29.createElement(
5914
6294
  "div",
5915
6295
  {
5916
6296
  onPointerUp: stopPropagation,
@@ -5927,7 +6307,7 @@ function useInfiniteColumnFilterEditor() {
5927
6307
  const context = useInfiniteTable();
5928
6308
  const { column, columnApi } = useInfiniteHeaderCell();
5929
6309
  const columnLabel = getColumnLabel(column, context);
5930
- const filterContextValue = React28.useContext(
6310
+ const filterContextValue = React29.useContext(
5931
6311
  InfiniteTableColumnHeaderFilterContext
5932
6312
  );
5933
6313
  const { columnFilterType, filterTypes, columnFilterValue } = filterContextValue;
@@ -5935,17 +6315,17 @@ function useInfiniteColumnFilterEditor() {
5935
6315
  const [theValue, setTheValue] = useState6(
5936
6316
  (_a = columnFilterValue == null ? void 0 : columnFilterValue.filter.value) != null ? _a : ""
5937
6317
  );
5938
- const onInputChange = React28.useCallback(
6318
+ const onInputChange = React29.useCallback(
5939
6319
  (filterValue) => {
5940
6320
  setTheValue(filterValue);
5941
6321
  filterContextValue.onChange(filterValue);
5942
6322
  },
5943
6323
  [filterContextValue.onChange]
5944
6324
  );
5945
- const clearValue = React28.useCallback(() => {
6325
+ const clearValue = React29.useCallback(() => {
5946
6326
  context.api.clearColumnFilter(column.id);
5947
6327
  }, [column.id]);
5948
- const removeColumnFilter = React28.useCallback(() => {
6328
+ const removeColumnFilter = React29.useCallback(() => {
5949
6329
  context.api.removeColumnFilter(column.id);
5950
6330
  }, [column.id]);
5951
6331
  useEffect11(() => {
@@ -5988,7 +6368,7 @@ function useInfiniteColumnFilterEditor() {
5988
6368
  // src/components/InfiniteTable/components/FilterEditors.tsx
5989
6369
  function StringFilterEditor() {
5990
6370
  const { ariaLabel, value, setValue, className, disabled } = useInfiniteColumnFilterEditor();
5991
- return /* @__PURE__ */ React29.createElement(
6371
+ return /* @__PURE__ */ React30.createElement(
5992
6372
  "input",
5993
6373
  {
5994
6374
  "data-xxx": true,
@@ -6005,7 +6385,7 @@ function StringFilterEditor() {
6005
6385
  }
6006
6386
  function NumberFilterEditor() {
6007
6387
  const { ariaLabel, value, setValue, className, disabled } = useInfiniteColumnFilterEditor();
6008
- return /* @__PURE__ */ React29.createElement(
6388
+ return /* @__PURE__ */ React30.createElement(
6009
6389
  "input",
6010
6390
  {
6011
6391
  "aria-label": ariaLabel,
@@ -6220,7 +6600,7 @@ import { useCallback as useCallback8, useState as useState7 } from "react";
6220
6600
 
6221
6601
  // src/components/InfiniteTable/InfiniteCls.css.ts
6222
6602
  var FooterCls = "utilities_position_relative__16lm1iw1";
6223
- var InfiniteCls = "InfiniteCls_InfiniteCls__1yeub2v0 utilities_position_relative__16lm1iw1 utilities_display_flex__16lm1iwy utilities_flexFlow_column__16lm1iw1l utilities_boxSizingBorderBox__16lm1iw0";
6603
+ var InfiniteCls = "InfiniteCls_InfiniteCls__1yeub2v0 utilities_position_relative__16lm1iw1 utilities_display_flex__16lm1iwz utilities_flexFlow_column__16lm1iw1m utilities_boxSizingBorderBox__16lm1iw0";
6224
6604
  var InfiniteClsHasPinnedEnd = "InfiniteCls_InfiniteClsHasPinnedEnd__1yeub2vq";
6225
6605
  var InfiniteClsHasPinnedStart = "InfiniteCls_InfiniteClsHasPinnedStart__1yeub2vp";
6226
6606
  var InfiniteClsRecipe = createRuntimeFn({ defaultClassName: "InfiniteCls__1yeub2v2", variantClassNames: { focused: { true: "InfiniteCls_InfiniteClsRecipe_focused_true__1yeub2v3", false: "InfiniteCls_InfiniteClsRecipe_focused_false__1yeub2v4" }, focusedWithin: { true: "InfiniteCls_InfiniteClsRecipe_focusedWithin_true__1yeub2v5", false: "InfiniteCls_InfiniteClsRecipe_focusedWithin_false__1yeub2v6" }, hasPinnedStart: { true: "InfiniteCls_InfiniteClsRecipe_hasPinnedStart_true__1yeub2v7", false: "InfiniteCls_InfiniteClsRecipe_hasPinnedStart_false__1yeub2v8" }, hasPinnedEnd: { true: "InfiniteCls_InfiniteClsRecipe_hasPinnedEnd_true__1yeub2v9", false: "InfiniteCls_InfiniteClsRecipe_hasPinnedEnd_false__1yeub2va" }, hasPinnedStartOverflow: { true: "InfiniteCls_InfiniteClsRecipe_hasPinnedStartOverflow_true__1yeub2vb", false: "InfiniteCls_InfiniteClsRecipe_hasPinnedStartOverflow_false__1yeub2vc" }, hasPinnedEndOverflow: { true: "InfiniteCls_InfiniteClsRecipe_hasPinnedEndOverflow_true__1yeub2vd", false: "InfiniteCls_InfiniteClsRecipe_hasPinnedEndOverflow_false__1yeub2ve" } }, defaultVariants: {}, compoundVariants: [[{ focused: false, focusedWithin: false }, "InfiniteCls_InfiniteClsRecipe_compound_0__1yeub2vf"]] });
@@ -7057,14 +7437,14 @@ var useColumnPointerEvents = ({
7057
7437
  };
7058
7438
 
7059
7439
  // src/components/InfiniteTable/utils/RenderHookComponentForInfinite.tsx
7060
- import * as React37 from "react";
7440
+ import * as React38 from "react";
7061
7441
 
7062
7442
  // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableColumnCell.tsx
7063
- import * as React36 from "react";
7443
+ import * as React37 from "react";
7064
7444
  import { useCallback as useCallback12, useContext as useContext6, useMemo as useMemo4 } from "react";
7065
7445
 
7066
7446
  // src/components/InfiniteTable/utils/getColumnForGroupBy.tsx
7067
- import * as React32 from "react";
7447
+ import * as React33 from "react";
7068
7448
 
7069
7449
  // src/components/DataSource/state/rowInfoStatus.ts
7070
7450
  var showLoadingIcon = (rowInfo) => {
@@ -7075,12 +7455,12 @@ var showLoadingIcon = (rowInfo) => {
7075
7455
  };
7076
7456
 
7077
7457
  // src/components/InfiniteTable/components/icons/ExpanderIcon.tsx
7078
- import * as React30 from "react";
7458
+ import * as React31 from "react";
7079
7459
  import { useState as useState8 } from "react";
7080
7460
 
7081
7461
  // src/components/InfiniteTable/components/icons/ExpanderIcon.css.ts
7082
- var ExpanderIconCls = "utilities_fill_accentColor__16lm1iw7 utilities_flex_none__16lm1iwm utilities_cursor_pointer__16lm1iwh";
7083
- var ExpanderIconClsVariants = createRuntimeFn({ defaultClassName: "ExpanderIcon__198z9781", variantClassNames: { expanded: { true: "utilities_transform_rotate90__16lm1iwf", false: "ExpanderIcon_ExpanderIconClsVariants_expanded_false__198z9783" }, direction: { end: "ExpanderIcon_ExpanderIconClsVariants_direction_end__198z9784", start: "ExpanderIcon_ExpanderIconClsVariants_direction_start__198z9785" } }, defaultVariants: {}, compoundVariants: [[{ expanded: false, direction: "end" }, "utilities_transform_rotate180__16lm1iwg"]] });
7462
+ var ExpanderIconCls = "utilities_fill_accentColor__16lm1iw7 utilities_flex_none__16lm1iwn utilities_cursor_pointer__16lm1iwi utilities_verticalAlign_middle__16lm1iw9";
7463
+ var ExpanderIconClsVariants = createRuntimeFn({ defaultClassName: "ExpanderIcon__198z9781", variantClassNames: { expanded: { true: "utilities_transform_rotate90__16lm1iwg", false: "ExpanderIcon_ExpanderIconClsVariants_expanded_false__198z9783" }, direction: { end: "ExpanderIcon_ExpanderIconClsVariants_direction_end__198z9784", start: "ExpanderIcon_ExpanderIconClsVariants_direction_start__198z9785" } }, defaultVariants: {}, compoundVariants: [[{ expanded: false, direction: "end" }, "utilities_transform_rotate180__16lm1iwh"]] });
7084
7464
 
7085
7465
  // src/components/InfiniteTable/components/icons/ExpanderIcon.tsx
7086
7466
  function ExpanderIcon(props) {
@@ -7096,12 +7476,12 @@ function ExpanderIcon(props) {
7096
7476
  setExpanded(!expanded);
7097
7477
  }
7098
7478
  };
7099
- React30.useEffect(() => {
7479
+ React31.useEffect(() => {
7100
7480
  if (isControlled("expanded", props)) {
7101
7481
  setExpanded(props.expanded);
7102
7482
  }
7103
7483
  }, [props.expanded]);
7104
- return /* @__PURE__ */ React30.createElement(
7484
+ return /* @__PURE__ */ React31.createElement(
7105
7485
  "svg",
7106
7486
  {
7107
7487
  "data-name": "expander-icon",
@@ -7124,19 +7504,19 @@ function ExpanderIcon(props) {
7124
7504
  `InfiniteIcon-expander--${direction === "end" ? "end" : "start"}`
7125
7505
  )
7126
7506
  },
7127
- /* @__PURE__ */ React30.createElement("path", { d: "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z" })
7507
+ /* @__PURE__ */ React31.createElement("path", { d: "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z" })
7128
7508
  );
7129
7509
  }
7130
7510
 
7131
7511
  // src/components/InfiniteTable/components/icons/LoadingIcon.tsx
7132
- import * as React31 from "react";
7512
+ import * as React32 from "react";
7133
7513
 
7134
7514
  // src/components/InfiniteTable/components/icons/LoadingIcon.css.ts
7135
- var LoadingIconCls = "utilities_stroke_accentColor__16lm1iwa utilities_flex_none__16lm1iwm utilities_cursor_pointer__16lm1iwh";
7515
+ var LoadingIconCls = "utilities_stroke_accentColor__16lm1iwb utilities_flex_none__16lm1iwn utilities_cursor_pointer__16lm1iwi";
7136
7516
 
7137
7517
  // src/components/InfiniteTable/components/icons/LoadingIcon.tsx
7138
7518
  var LoadingIcon = (props) => {
7139
- return /* @__PURE__ */ React31.createElement(
7519
+ return /* @__PURE__ */ React32.createElement(
7140
7520
  "svg",
7141
7521
  {
7142
7522
  xmlns: "http://www.w3.org/2000/svg",
@@ -7156,7 +7536,7 @@ var LoadingIcon = (props) => {
7156
7536
  "InfiniteIcon-loading"
7157
7537
  )
7158
7538
  },
7159
- /* @__PURE__ */ React31.createElement(
7539
+ /* @__PURE__ */ React32.createElement(
7160
7540
  "circle",
7161
7541
  {
7162
7542
  cx: "50",
@@ -7166,7 +7546,7 @@ var LoadingIcon = (props) => {
7166
7546
  r: "35",
7167
7547
  strokeDasharray: "164.93361431346415 56.97787143782138"
7168
7548
  },
7169
- /* @__PURE__ */ React31.createElement(
7549
+ /* @__PURE__ */ React32.createElement(
7170
7550
  "animateTransform",
7171
7551
  {
7172
7552
  attributeName: "transform",
@@ -7211,11 +7591,11 @@ function getGroupColumnRender({
7211
7591
  );
7212
7592
  if (groupRenderStrategy === "multi-column") {
7213
7593
  if (groupIndexForColumn + 1 !== groupRowInfo.groupNesting && groupRowInfo.isGroupRow) {
7214
- return selectionCheckBox ? /* @__PURE__ */ React32.createElement("div", { className }, selectionCheckBox) : null;
7594
+ return selectionCheckBox ? /* @__PURE__ */ React33.createElement("div", { className }, selectionCheckBox) : null;
7215
7595
  }
7216
7596
  } else if (groupRenderStrategy === "single-column" && !groupRowInfo.isGroupRow) {
7217
7597
  }
7218
- return /* @__PURE__ */ React32.createElement("div", { className }, groupIcon, selectionCheckBox, /* @__PURE__ */ React32.createElement("div", { className: cssEllipsisClassName }, valueToRender != null ? valueToRender : null));
7598
+ return /* @__PURE__ */ React33.createElement("div", { className }, groupIcon, selectionCheckBox, /* @__PURE__ */ React33.createElement("div", { className: cssEllipsisClassName }, valueToRender != null ? valueToRender : null));
7219
7599
  };
7220
7600
  }
7221
7601
  function getGroupColumnRenderGroupIcon({
@@ -7264,9 +7644,9 @@ function getGroupColumnRenderGroupIcon({
7264
7644
  const showExpanderIcon = pivotBy ? (((_b = groupRowInfo.groupKeys) == null ? void 0 : _b.length) || 0) < (groupBy == null ? void 0 : groupBy.length) : (((_c = groupRowInfo.groupKeys) == null ? void 0 : _c.length) || 0) <= (groupBy == null ? void 0 : groupBy.length);
7265
7645
  const isLoading = showLoadingIcon(groupRowInfo);
7266
7646
  if (isLoading) {
7267
- icon = /* @__PURE__ */ React32.createElement(LoadingIcon, null);
7647
+ icon = /* @__PURE__ */ React33.createElement(LoadingIcon, null);
7268
7648
  } else if (showExpanderIcon) {
7269
- const defaultIcon = /* @__PURE__ */ React32.createElement(
7649
+ const defaultIcon = /* @__PURE__ */ React33.createElement(
7270
7650
  ExpanderIcon,
7271
7651
  {
7272
7652
  expanded: !collapsed,
@@ -7280,7 +7660,7 @@ function getGroupColumnRenderGroupIcon({
7280
7660
  }
7281
7661
  if (initialRenderGroupIcon) {
7282
7662
  renderOptions.renderBag.groupIcon = icon;
7283
- icon = /* @__PURE__ */ React32.createElement(
7663
+ icon = /* @__PURE__ */ React33.createElement(
7284
7664
  RenderCellHookComponent,
7285
7665
  {
7286
7666
  render: initialRenderGroupIcon,
@@ -7354,17 +7734,17 @@ function objectValuesExcept(obj, exceptList) {
7354
7734
  }
7355
7735
 
7356
7736
  // src/components/InfiniteTable/components/cell.css.ts
7357
- var ColumnCellCls = "cell_ColumnCellCls__1eexc2a6 cell_CellCls__1eexc2a5 utilities_display_flex__16lm1iwy utilities_flexFlow_row__16lm1iw1n utilities_alignItems_center__16lm1iw1p utilities_position_absolute__16lm1iw2 utilities_willChange_transform__16lm1iw21 utilities_whiteSpace_nowrap__16lm1iw22 utilities_userSelect_none__16lm1iw16";
7737
+ var ColumnCellCls = "cell_ColumnCellCls__1eexc2a6 cell_CellCls__1eexc2a5 utilities_display_flex__16lm1iwz utilities_flexFlow_row__16lm1iw1o utilities_alignItems_center__16lm1iw1q utilities_position_absolute__16lm1iw2 utilities_willChange_transform__16lm1iw22 utilities_whiteSpace_nowrap__16lm1iw23 utilities_userSelect_none__16lm1iw17";
7358
7738
  var ColumnCellRecipe = createRuntimeFn({ defaultClassName: "cell_ColumnCellRecipe__1eexc2ah", variantClassNames: { dragging: { false: "cell_ColumnCellRecipe_dragging_false__1eexc2ai", true: "cell_ColumnCellRecipe_dragging_true__1eexc2aj" }, cellSelected: { false: "cell_ColumnCellRecipe_cellSelected_false__1eexc2ak", true: "cell_ColumnCellRecipe_cellSelected_true__1eexc2al" }, align: { start: "cell_ColumnCellRecipe_align_start__1eexc2am", end: "cell_ColumnCellRecipe_align_end__1eexc2an", center: "cell_ColumnCellRecipe_align_center__1eexc2ao" }, verticalAlign: { start: "cell_ColumnCellRecipe_verticalAlign_start__1eexc2ap", end: "cell_ColumnCellRecipe_verticalAlign_end__1eexc2aq", center: "cell_ColumnCellRecipe_verticalAlign_center__1eexc2ar" }, rowActive: { false: "cell_ColumnCellRecipe_rowActive_false__1eexc2as", true: "cell_ColumnCellRecipe_rowActive_true__1eexc2at" }, groupRow: { false: "cell_ColumnCellRecipe_groupRow_false__1eexc2au", true: "cell_ColumnCellRecipe_groupRow_true__1eexc2av" }, groupCell: { false: "cell_ColumnCellRecipe_groupCell_false__1eexc2aw", true: "cell_ColumnCellRecipe_groupCell_true__1eexc2ax" }, zebra: { false: "cell_ColumnCellRecipe_zebra_false__1eexc2ay", even: "cell_ColumnCellRecipe_zebra_even__1eexc2az", odd: "cell_ColumnCellRecipe_zebra_odd__1eexc2a10" }, rowSelected: { true: "cell_ColumnCellRecipe_rowSelected_true__1eexc2a11", false: "cell_ColumnCellRecipe_rowSelected_false__1eexc2a12", null: "cell_ColumnCellRecipe_rowSelected_null__1eexc2a13" }, first: { true: "cell_ColumnCellRecipe_first_true__1eexc2a14", false: "cell_ColumnCellRecipe_first_false__1eexc2a15" }, last: { true: "cell_ColumnCellRecipe_last_true__1eexc2a16", false: "cell_ColumnCellRecipe_last_false__1eexc2a17" }, groupByField: { true: "cell_ColumnCellRecipe_groupByField_true__1eexc2a18", false: "cell_ColumnCellRecipe_groupByField_false__1eexc2a19" }, firstInCategory: { true: "cell_ColumnCellRecipe_firstInCategory_true__1eexc2a1a", false: "cell_ColumnCellRecipe_firstInCategory_false__1eexc2a1b" }, lastInCategory: { true: "cell_ColumnCellRecipe_lastInCategory_true__1eexc2a1c", false: "cell_ColumnCellRecipe_lastInCategory_false__1eexc2a1d" }, pinned: { start: "cell_ColumnCellRecipe_pinned_start__1eexc2a1e", end: "cell_ColumnCellRecipe_pinned_end__1eexc2a1f", false: "cell_ColumnCellRecipe_pinned_false__1eexc2a1g" }, filtered: { true: "cell_ColumnCellRecipe_filtered_true__1eexc2a1h", false: "cell_ColumnCellRecipe_filtered_false__1eexc2a1i" } }, defaultVariants: {}, compoundVariants: [[{ pinned: "start", lastInCategory: true }, "cell_ColumnCellRecipe_compound_0__1eexc2a1j"], [{ pinned: "start", firstInCategory: true }, "cell_ColumnCellRecipe_compound_1__1eexc2a1k"], [{ pinned: "end", firstInCategory: true }, "cell_ColumnCellRecipe_compound_2__1eexc2a1l"], [{ pinned: "end", lastInCategory: true }, "cell_ColumnCellRecipe_compound_3__1eexc2a1m"], [{ align: "center", groupCell: false }, "cell_ColumnCellRecipe_compound_4__1eexc2a1n"]] });
7359
7739
  var ColumnCellSelectionIndicatorRecipe = createRuntimeFn({ defaultClassName: "cell_ColumnCellSelectionIndicatorRecipe__1eexc2a8", variantClassNames: { right: { true: "cell_ColumnCellSelectionIndicatorRecipe_right_true__1eexc2a9", false: "cell_ColumnCellSelectionIndicatorRecipe_right_false__1eexc2aa" }, left: { true: "cell_ColumnCellSelectionIndicatorRecipe_left_true__1eexc2ab", false: "cell_ColumnCellSelectionIndicatorRecipe_left_false__1eexc2ac" }, top: { true: "cell_ColumnCellSelectionIndicatorRecipe_top_true__1eexc2ad", false: "cell_ColumnCellSelectionIndicatorRecipe_top_false__1eexc2ae" }, bottom: { true: "cell_ColumnCellSelectionIndicatorRecipe_bottom_true__1eexc2af", false: "cell_ColumnCellSelectionIndicatorRecipe_bottom_false__1eexc2ag" } }, defaultVariants: {}, compoundVariants: [] });
7360
7740
  var SelectionCheckboxCls = "cell_SelectionCheckboxCls__1eexc2a7";
7361
7741
 
7362
7742
  // src/components/InfiniteTable/components/CheckBox.tsx
7363
- import * as React33 from "react";
7743
+ import * as React34 from "react";
7364
7744
  import { useEffect as useEffect13, useRef as useRef12 } from "react";
7365
7745
 
7366
7746
  // src/components/InfiniteTable/components/CheckBox.css.ts
7367
- var CheckBoxCls = "CheckBox_CheckBoxCls__qz8ht90 utilities_cursor_pointer__16lm1iwh";
7747
+ var CheckBoxCls = "CheckBox_CheckBoxCls__qz8ht90 utilities_cursor_pointer__16lm1iwi";
7368
7748
 
7369
7749
  // src/components/InfiniteTable/components/CheckBox.tsx
7370
7750
  function forwardProps2() {
@@ -7399,7 +7779,7 @@ function InfiniteCheckBoxComponent() {
7399
7779
  useEffect13(() => {
7400
7780
  inputRef.current.indeterminate = checked == null;
7401
7781
  }, [checked]);
7402
- return /* @__PURE__ */ React33.createElement(
7782
+ return /* @__PURE__ */ React34.createElement(
7403
7783
  "input",
7404
7784
  __spreadProps(__spreadValues({}, domProps), {
7405
7785
  className: join("InfiniteCheckBox", CheckBoxCls, domProps == null ? void 0 : domProps.className),
@@ -7417,7 +7797,7 @@ function InfiniteCheckBoxComponent() {
7417
7797
  );
7418
7798
  }
7419
7799
  function InfiniteCheckBox(props) {
7420
- return /* @__PURE__ */ React33.createElement(InfiniteCheckBoxRoot, __spreadValues({}, props), /* @__PURE__ */ React33.createElement(InfiniteCheckBoxComponent, null));
7800
+ return /* @__PURE__ */ React34.createElement(InfiniteCheckBoxRoot, __spreadValues({}, props), /* @__PURE__ */ React34.createElement(InfiniteCheckBoxComponent, null));
7421
7801
  }
7422
7802
 
7423
7803
  // src/components/InfiniteTable/components/InfiniteTableRow/columnRendering.tsx
@@ -7454,14 +7834,20 @@ function getCellContext(context) {
7454
7834
  const rowInfo = dataArray[rowIndex];
7455
7835
  const { isGroupRow } = rowInfo;
7456
7836
  const column = getComputed().computedColumnsMap.get(columnId);
7457
- const { activeRowIndex, keyboardNavigation } = getState();
7837
+ const {
7838
+ activeRowIndex,
7839
+ keyboardNavigation,
7840
+ isRowDetailsEnabled
7841
+ } = getState();
7458
7842
  const rowActive = rowIndex === activeRowIndex && keyboardNavigation === "row";
7843
+ const rowDetailState = !isRowDetailsEnabled || typeof isRowDetailsEnabled === "function" && !isRowDetailsEnabled(rowInfo) ? false : api.rowDetailsApi.isRowDetailsExpanded(rowInfo.id) ? "expanded" : "collapsed";
7459
7844
  const {
7460
7845
  formattedValue: value,
7461
7846
  formattedValueContext: { rawValue }
7462
7847
  } = getFormattedValueContextForCell({
7463
7848
  column,
7464
7849
  rowInfo,
7850
+ rowDetailState,
7465
7851
  columnsMap: getComputed().computedColumnsMap,
7466
7852
  context
7467
7853
  });
@@ -7472,6 +7858,7 @@ function getCellContext(context) {
7472
7858
  column,
7473
7859
  columnApi,
7474
7860
  isGroupRow: true,
7861
+ rowDetailState: false,
7475
7862
  data: rowInfo.data,
7476
7863
  rowActive,
7477
7864
  rowInfo,
@@ -7484,6 +7871,7 @@ function getCellContext(context) {
7484
7871
  columnApi,
7485
7872
  column,
7486
7873
  isGroupRow: false,
7874
+ rowDetailState,
7487
7875
  data: rowInfo.data,
7488
7876
  rowActive,
7489
7877
  rowInfo,
@@ -7536,6 +7924,7 @@ function getColumnRenderingParams(options) {
7536
7924
  renderFunctions: {
7537
7925
  renderGroupIcon: column.renderGroupIcon || (groupByColumnReference == null ? void 0 : groupByColumnReference.renderGroupIcon),
7538
7926
  renderSelectionCheckBox: column.renderSelectionCheckBox,
7927
+ renderRowDetailsIcon: column.renderRowDetailsIcon,
7539
7928
  renderValue: column.renderValue || (groupByColumnReference == null ? void 0 : groupByColumnReference.renderValue),
7540
7929
  renderGroupValue: column.renderGroupValue || (groupByColumnReference == null ? void 0 : groupByColumnReference.renderGroupValue),
7541
7930
  renderLeafValue: column.renderLeafValue || (groupByColumnReference == null ? void 0 : groupByColumnReference.renderLeafValue)
@@ -7588,6 +7977,10 @@ function getColumnRenderParam(options) {
7588
7977
  groupByColumn,
7589
7978
  selectionMode,
7590
7979
  api: imperativeApi,
7980
+ toggleCurrentRowDetails: () => imperativeApi.rowDetailsApi.toggleRowDetails(rowInfo.id),
7981
+ toggleRowDetails: imperativeApi.rowDetailsApi.toggleRowDetails,
7982
+ expandRowDetails: imperativeApi.rowDetailsApi.expandRowDetails,
7983
+ collapseRowDetails: imperativeApi.rowDetailsApi.collapseRowDetails,
7591
7984
  selectRow: imperativeApi.rowSelectionApi.selectRow,
7592
7985
  deselectRow: imperativeApi.rowSelectionApi.deselectRow,
7593
7986
  toggleRowSelection: imperativeApi.rowSelectionApi.toggleRowSelection,
@@ -7670,7 +8063,7 @@ function getRawValueForCell(column, rowInfo) {
7670
8063
  }
7671
8064
  return value;
7672
8065
  }
7673
- function getFormattedValueParamForCell(value, column, rowInfo, context) {
8066
+ function getFormattedValueParamForCell(value, column, rowInfo, context, rowDetailState) {
7674
8067
  const { rowSelected, indexInAll: rowIndex } = rowInfo;
7675
8068
  const { activeRowIndex, keyboardNavigation } = context.getState();
7676
8069
  const rowActive = rowIndex === activeRowIndex && keyboardNavigation === "row";
@@ -7678,6 +8071,7 @@ function getFormattedValueParamForCell(value, column, rowInfo, context) {
7678
8071
  rowInfo,
7679
8072
  isGroupRow: rowInfo.isGroupRow,
7680
8073
  data: rowInfo.data,
8074
+ rowDetailState: false,
7681
8075
  rowSelected,
7682
8076
  rowActive,
7683
8077
  value,
@@ -7687,6 +8081,7 @@ function getFormattedValueParamForCell(value, column, rowInfo, context) {
7687
8081
  rowInfo,
7688
8082
  isGroupRow: rowInfo.isGroupRow,
7689
8083
  data: rowInfo.data,
8084
+ rowDetailState,
7690
8085
  rowSelected,
7691
8086
  rowActive,
7692
8087
  value,
@@ -7695,13 +8090,14 @@ function getFormattedValueParamForCell(value, column, rowInfo, context) {
7695
8090
  };
7696
8091
  }
7697
8092
  function getFormattedValueContextForCell(options) {
7698
- const { column, rowInfo, context } = options;
8093
+ const { column, rowInfo, context, rowDetailState } = options;
7699
8094
  const rawValue = getRawValueForCell(column, rowInfo);
7700
8095
  const formattedValueContext = getFormattedValueParamForCell(
7701
8096
  rawValue,
7702
8097
  column,
7703
8098
  rowInfo,
7704
- context
8099
+ context,
8100
+ rowDetailState
7705
8101
  );
7706
8102
  const formattedValue = column.valueFormatter ? column.valueFormatter(formattedValueContext) : rawValue;
7707
8103
  formattedValueContext.value = formattedValue;
@@ -7712,7 +8108,7 @@ function getFormattedValueContextForCell(options) {
7712
8108
  }
7713
8109
 
7714
8110
  // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableCell.tsx
7715
- import * as React34 from "react";
8111
+ import * as React35 from "react";
7716
8112
  var { rootClassName: rootClassName5 } = internalProps;
7717
8113
  var InfiniteTableCellClassName = `${rootClassName5}Cell`;
7718
8114
  var InfiniteTableCellContentClassName = `${rootClassName5}Cell_content`;
@@ -7771,7 +8167,7 @@ function InfiniteTableCellFn(props) {
7771
8167
  // ? `${InfiniteTableCellClassName}--shifting ${CellClsVariants.shifting}`
7772
8168
  // : '',
7773
8169
  ),
7774
- children: /* @__PURE__ */ React34.createElement(React34.Fragment, null, beforeChildren, /* @__PURE__ */ React34.createElement(
8170
+ children: /* @__PURE__ */ React35.createElement(React35.Fragment, null, beforeChildren, /* @__PURE__ */ React35.createElement(
7775
8171
  "div",
7776
8172
  {
7777
8173
  className: join(
@@ -7789,21 +8185,21 @@ function InfiniteTableCellFn(props) {
7789
8185
  }
7790
8186
  const RenderComponent = cellType === "body" ? (_b = column.components) == null ? void 0 : _b.ColumnCell : (_c = column.components) == null ? void 0 : _c.HeaderCell;
7791
8187
  if (RenderComponent) {
7792
- return /* @__PURE__ */ React34.createElement(RenderComponent, __spreadValues({}, finalDOMProps));
8188
+ return /* @__PURE__ */ React35.createElement(RenderComponent, __spreadValues({}, finalDOMProps));
7793
8189
  }
7794
- return /* @__PURE__ */ React34.createElement("div", __spreadProps(__spreadValues({}, finalDOMProps), { ref: domRef }));
8190
+ return /* @__PURE__ */ React35.createElement("div", __spreadProps(__spreadValues({}, finalDOMProps), { ref: domRef }));
7795
8191
  }
7796
- var InfiniteTableCell = React34.memo(
8192
+ var InfiniteTableCell = React35.memo(
7797
8193
  InfiniteTableCellFn
7798
8194
  );
7799
8195
 
7800
8196
  // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableColumnEditor.tsx
7801
- import * as React35 from "react";
8197
+ import * as React36 from "react";
7802
8198
  import { useCallback as useCallback10, useRef as useRef13 } from "react";
7803
8199
  function InfiniteTableColumnEditor() {
7804
8200
  const { initialValue, setValue, confirmEdit, cancelEdit, readOnly } = useInfiniteColumnEditor();
7805
8201
  const domRef = useRef13();
7806
- const refCallback = React35.useCallback((node) => {
8202
+ const refCallback = React36.useCallback((node) => {
7807
8203
  domRef.current = node;
7808
8204
  if (node) {
7809
8205
  node.focus();
@@ -7819,7 +8215,7 @@ function InfiniteTableColumnEditor() {
7819
8215
  event.stopPropagation();
7820
8216
  }
7821
8217
  }, []);
7822
- return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(
8218
+ return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(
7823
8219
  "input",
7824
8220
  {
7825
8221
  readOnly,
@@ -7839,8 +8235,21 @@ function InfiniteTableColumnEditor() {
7839
8235
  // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableColumnCell.tsx
7840
8236
  var { rootClassName: rootClassName6 } = internalProps;
7841
8237
  var columnZIndexAtIndex4 = stripVar(InternalVars.columnZIndexAtIndex);
7842
- var InfiniteTableColumnCellContext = React36.createContext(null);
8238
+ var InfiniteTableColumnCellContext = React37.createContext(null);
7843
8239
  var InfiniteTableColumnCellClassName = `${rootClassName6}ColumnCell`;
8240
+ var defaultRenderRowDetailsIcon = (params) => {
8241
+ const { toggleCurrentRowDetails, rowDetailState } = params;
8242
+ return /* @__PURE__ */ React37.createElement(
8243
+ ExpanderIcon,
8244
+ {
8245
+ style: {
8246
+ visibility: rowDetailState === false ? "hidden" : "visible"
8247
+ },
8248
+ expanded: rowDetailState === "expanded",
8249
+ onChange: toggleCurrentRowDetails
8250
+ }
8251
+ );
8252
+ };
7844
8253
  var defaultRenderSelectionCheckBox = (params) => {
7845
8254
  const {
7846
8255
  rowInfo,
@@ -7851,7 +8260,7 @@ var defaultRenderSelectionCheckBox = (params) => {
7851
8260
  } = params;
7852
8261
  if (rowInfo.isGroupRow && !column.groupByForColumn) {
7853
8262
  }
7854
- return /* @__PURE__ */ React36.createElement(
8263
+ return /* @__PURE__ */ React37.createElement(
7855
8264
  InfiniteCheckBox,
7856
8265
  {
7857
8266
  domProps: {
@@ -7888,6 +8297,7 @@ function InfiniteTableColumnCellFn(props) {
7888
8297
  getData,
7889
8298
  cellStyle,
7890
8299
  cellClassName,
8300
+ rowDetailState: rowDetailsState,
7891
8301
  width,
7892
8302
  column,
7893
8303
  onMouseLeave,
@@ -7902,7 +8312,7 @@ function InfiniteTableColumnCellFn(props) {
7902
8312
  showZebraRows
7903
8313
  } = props;
7904
8314
  if (!column) {
7905
- return /* @__PURE__ */ React36.createElement("div", { ref: domRef }, "no column");
8315
+ return /* @__PURE__ */ React37.createElement("div", { ref: domRef }, "no column");
7906
8316
  }
7907
8317
  const { rowSelected } = rowInfo;
7908
8318
  const {
@@ -7931,6 +8341,7 @@ function InfiniteTableColumnCellFn(props) {
7931
8341
  const colRenderingParams = getColumnRenderingParams({
7932
8342
  column,
7933
8343
  rowInfo,
8344
+ rowDetailState: rowDetailsState,
7934
8345
  columnsMap,
7935
8346
  visibleColumnsIds,
7936
8347
  fieldsToColumn,
@@ -7946,7 +8357,7 @@ function InfiniteTableColumnCellFn(props) {
7946
8357
  } = colRenderingParams;
7947
8358
  const { align: align2, verticalAlign } = renderParams;
7948
8359
  const renderParam = renderParams;
7949
- const renderParamRef = React36.useRef(renderParam);
8360
+ const renderParamRef = React37.useRef(renderParam);
7950
8361
  const onClick = useCallback12(
7951
8362
  (event) => {
7952
8363
  const colIndex = column.computedVisibleIndex;
@@ -8000,7 +8411,7 @@ function InfiniteTableColumnCellFn(props) {
8000
8411
  [rowInfo]
8001
8412
  );
8002
8413
  const EditorComponent = (_b = (_a = column.components) == null ? void 0 : _a.Editor) != null ? _b : InfiniteTableColumnEditor;
8003
- const editor = inEdit ? /* @__PURE__ */ React36.createElement(CellEditorContextComponent, { contextValue: renderParam }, /* @__PURE__ */ React36.createElement(EditorComponent, null)) : null;
8414
+ const editor = inEdit ? /* @__PURE__ */ React37.createElement(CellEditorContextComponent, { contextValue: renderParam }, /* @__PURE__ */ React37.createElement(EditorComponent, null)) : null;
8004
8415
  const renderChildren = useCallback12(
8005
8416
  once(() => {
8006
8417
  if (hidden) {
@@ -8010,7 +8421,7 @@ function InfiniteTableColumnCellFn(props) {
8010
8421
  return null;
8011
8422
  }
8012
8423
  if (renderFunctions.renderGroupIcon) {
8013
- renderParam.renderBag.groupIcon = /* @__PURE__ */ React36.createElement(
8424
+ renderParam.renderBag.groupIcon = /* @__PURE__ */ React37.createElement(
8014
8425
  RenderCellHookComponent,
8015
8426
  {
8016
8427
  render: renderFunctions.renderGroupIcon,
@@ -8021,7 +8432,7 @@ function InfiniteTableColumnCellFn(props) {
8021
8432
  );
8022
8433
  }
8023
8434
  if (renderFunctions.renderSelectionCheckBox && selectionMode == "multi-row") {
8024
- renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React36.createElement(
8435
+ renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React37.createElement(
8025
8436
  RenderCellHookComponent,
8026
8437
  {
8027
8438
  render: defaultRenderSelectionCheckBox,
@@ -8029,7 +8440,7 @@ function InfiniteTableColumnCellFn(props) {
8029
8440
  }
8030
8441
  );
8031
8442
  if (renderFunctions.renderSelectionCheckBox !== true) {
8032
- renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React36.createElement(
8443
+ renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React37.createElement(
8033
8444
  RenderCellHookComponent,
8034
8445
  {
8035
8446
  render: renderFunctions.renderSelectionCheckBox,
@@ -8040,8 +8451,30 @@ function InfiniteTableColumnCellFn(props) {
8040
8451
  );
8041
8452
  }
8042
8453
  }
8454
+ if (renderFunctions.renderRowDetailsIcon) {
8455
+ renderParam.renderBag.rowDetailsIcon = /* @__PURE__ */ React37.createElement(
8456
+ RenderCellHookComponent,
8457
+ {
8458
+ render: defaultRenderRowDetailsIcon,
8459
+ renderParam: __spreadProps(__spreadValues({}, renderParam), {
8460
+ renderBag: __spreadValues({}, renderParam.renderBag)
8461
+ })
8462
+ }
8463
+ );
8464
+ if (typeof renderFunctions.renderRowDetailsIcon === "function") {
8465
+ renderParam.renderBag.rowDetailsIcon = /* @__PURE__ */ React37.createElement(
8466
+ RenderCellHookComponent,
8467
+ {
8468
+ render: renderFunctions.renderRowDetailsIcon,
8469
+ renderParam: __spreadProps(__spreadValues({}, renderParam), {
8470
+ renderBag: __spreadValues({}, renderParam.renderBag)
8471
+ })
8472
+ }
8473
+ );
8474
+ }
8475
+ }
8043
8476
  if (renderFunctions.renderValue) {
8044
- renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
8477
+ renderParam.renderBag.value = /* @__PURE__ */ React37.createElement(
8045
8478
  RenderCellHookComponent,
8046
8479
  {
8047
8480
  render: renderFunctions.renderValue,
@@ -8052,7 +8485,7 @@ function InfiniteTableColumnCellFn(props) {
8052
8485
  );
8053
8486
  }
8054
8487
  if (rowInfo.isGroupRow && renderFunctions.renderGroupValue) {
8055
- renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
8488
+ renderParam.renderBag.value = /* @__PURE__ */ React37.createElement(
8056
8489
  RenderCellHookComponent,
8057
8490
  {
8058
8491
  render: renderFunctions.renderGroupValue,
@@ -8063,7 +8496,7 @@ function InfiniteTableColumnCellFn(props) {
8063
8496
  );
8064
8497
  }
8065
8498
  if (!rowInfo.isGroupRow && renderFunctions.renderLeafValue) {
8066
- renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
8499
+ renderParam.renderBag.value = /* @__PURE__ */ React37.createElement(
8067
8500
  RenderCellHookComponent,
8068
8501
  {
8069
8502
  render: renderFunctions.renderLeafValue,
@@ -8078,9 +8511,9 @@ function InfiniteTableColumnCellFn(props) {
8078
8511
  if (valueToRender instanceof Date) {
8079
8512
  valueToRender = valueToRender.toLocaleDateString();
8080
8513
  }
8081
- const all = /* @__PURE__ */ React36.createElement(React36.Fragment, null, align2 !== "end" ? renderParam.renderBag.groupIcon : null, align2 !== "end" ? renderParam.renderBag.selectionCheckBox : null, valueToRender, align2 === "end" ? renderParam.renderBag.selectionCheckBox : null, align2 === "end" ? renderParam.renderBag.groupIcon : null);
8514
+ const all = /* @__PURE__ */ React37.createElement(React37.Fragment, null, align2 !== "end" ? renderParam.renderBag.groupIcon : null, align2 !== "end" ? renderParam.renderBag.rowDetailsIcon : null, align2 !== "end" ? renderParam.renderBag.selectionCheckBox : null, valueToRender, align2 === "end" ? renderParam.renderBag.selectionCheckBox : null, align2 === "end" ? renderParam.renderBag.rowDetailsIcon : null, align2 === "end" ? renderParam.renderBag.groupIcon : null);
8082
8515
  if (column.render) {
8083
- return /* @__PURE__ */ React36.createElement(
8516
+ return /* @__PURE__ */ React37.createElement(
8084
8517
  RenderCellHookComponent,
8085
8518
  {
8086
8519
  render: column.render,
@@ -8096,6 +8529,7 @@ function InfiniteTableColumnCellFn(props) {
8096
8529
  column,
8097
8530
  hidden,
8098
8531
  inEdit,
8532
+ rowDetailsState,
8099
8533
  ...objectValuesExcept(renderParam, {
8100
8534
  renderBag: true,
8101
8535
  selectCell: true,
@@ -8103,6 +8537,7 @@ function InfiniteTableColumnCellFn(props) {
8103
8537
  selectCurrentRow: true,
8104
8538
  deselectCurrentRow: true,
8105
8539
  toggleCurrentGroupRow: true,
8540
+ toggleCurrentRowDetails: true,
8106
8541
  toggleCurrentRowSelection: true,
8107
8542
  toggleCurrentGroupRowSelection: true,
8108
8543
  rowHasSelectedCells: true
@@ -8239,16 +8674,16 @@ function InfiniteTableColumnCellFn(props) {
8239
8674
  return (
8240
8675
  // this context is here for supporting useInfiniteColumnCell to be used
8241
8676
  // with a custom column component, specified via column.components.ColumnCell
8242
- /* @__PURE__ */ React36.createElement(
8677
+ /* @__PURE__ */ React37.createElement(
8243
8678
  ContextProvider,
8244
8679
  {
8245
8680
  value: renderParamRef.current
8246
8681
  },
8247
- /* @__PURE__ */ React36.createElement(InfiniteTableCell, __spreadValues({}, cellProps))
8682
+ /* @__PURE__ */ React37.createElement(InfiniteTableCell, __spreadValues({}, cellProps))
8248
8683
  )
8249
8684
  );
8250
8685
  }
8251
- var InfiniteTableColumnCell = React36.memo(
8686
+ var InfiniteTableColumnCell = React37.memo(
8252
8687
  InfiniteTableColumnCellFn
8253
8688
  );
8254
8689
  function useInfiniteColumnCell() {
@@ -8263,14 +8698,14 @@ function useInfiniteColumnEditor() {
8263
8698
  state: { editingValueRef, editingCell }
8264
8699
  } = useInfiniteTable();
8265
8700
  const { column, rowInfo } = useInfiniteColumnCell();
8266
- const [initialValue] = React36.useState(() => editingCell == null ? void 0 : editingCell.value);
8267
- const [currentValue, setCurrentValue] = React36.useState(initialValue);
8701
+ const [initialValue] = React37.useState(() => editingCell == null ? void 0 : editingCell.value);
8702
+ const [currentValue, setCurrentValue] = React37.useState(initialValue);
8268
8703
  const readOnly = editingCell ? !editingCell.active && !!editingCell.waiting : false;
8269
- const setValue = React36.useCallback((value) => {
8704
+ const setValue = React37.useCallback((value) => {
8270
8705
  editingValueRef.current = value;
8271
8706
  setCurrentValue(value);
8272
8707
  }, []);
8273
- React36.useLayoutEffect(() => {
8708
+ React37.useLayoutEffect(() => {
8274
8709
  editingValueRef.current = initialValue;
8275
8710
  }, []);
8276
8711
  const confirmEdit = api.confirmEdit;
@@ -8299,7 +8734,7 @@ function RenderHookComponent(props) {
8299
8734
  // src/components/InfiniteTable/utils/RenderHookComponentForInfinite.tsx
8300
8735
  function RenderCellHookComponent(props) {
8301
8736
  const ContextProvider = InfiniteTableColumnCellContext.Provider;
8302
- return /* @__PURE__ */ React37.createElement(ContextProvider, { value: props.renderParam }, /* @__PURE__ */ React37.createElement(
8737
+ return /* @__PURE__ */ React38.createElement(ContextProvider, { value: props.renderParam }, /* @__PURE__ */ React38.createElement(
8303
8738
  RenderHookComponent,
8304
8739
  {
8305
8740
  render: props.render,
@@ -8309,11 +8744,11 @@ function RenderCellHookComponent(props) {
8309
8744
  }
8310
8745
  function CellEditorContextComponent(props) {
8311
8746
  const ContextProvider = InfiniteTableColumnCellContext.Provider;
8312
- return /* @__PURE__ */ React37.createElement(ContextProvider, { value: props.contextValue }, props.children);
8747
+ return /* @__PURE__ */ React38.createElement(ContextProvider, { value: props.contextValue }, props.children);
8313
8748
  }
8314
8749
  function RenderHeaderCellHookComponent(props) {
8315
8750
  const ContextProvider = InfiniteTableHeaderCellContext.Provider;
8316
- return /* @__PURE__ */ React37.createElement(ContextProvider, { value: props.renderParam }, /* @__PURE__ */ React37.createElement(
8751
+ return /* @__PURE__ */ React38.createElement(ContextProvider, { value: props.renderParam }, /* @__PURE__ */ React38.createElement(
8317
8752
  RenderHookComponent,
8318
8753
  {
8319
8754
  render: props.render,
@@ -8323,7 +8758,7 @@ function RenderHeaderCellHookComponent(props) {
8323
8758
  }
8324
8759
 
8325
8760
  // src/components/InfiniteTable/components/icons/MenuIcon.tsx
8326
- import * as React38 from "react";
8761
+ import * as React39 from "react";
8327
8762
  var defaultLineStyle2 = {
8328
8763
  width: "100%",
8329
8764
  pointerEvents: "none"
@@ -8347,7 +8782,7 @@ function MenuIcon(props) {
8347
8782
  const lineStyle = __spreadValues(__spreadProps(__spreadValues({}, defaultLineStyle2), {
8348
8783
  borderTop: `${ThemeVars.components.HeaderCell.menuIconLineWidth} solid currentColor`
8349
8784
  }), props.lineStyle);
8350
- return /* @__PURE__ */ React38.createElement(
8785
+ return /* @__PURE__ */ React39.createElement(
8351
8786
  "div",
8352
8787
  __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, domProps), {
8353
8788
  style: style2
@@ -8363,16 +8798,16 @@ function MenuIcon(props) {
8363
8798
  `${InfiniteTableIconClassName}-menu`
8364
8799
  )
8365
8800
  }),
8366
- children != null ? children : /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement("div", { className: lineClassName, style: lineStyle }), /* @__PURE__ */ React38.createElement("div", { className: lineClassName, style: lineStyle }), /* @__PURE__ */ React38.createElement("div", { className: lineClassName, style: lineStyle }))
8801
+ children != null ? children : /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement("div", { className: lineClassName, style: lineStyle }), /* @__PURE__ */ React39.createElement("div", { className: lineClassName, style: lineStyle }), /* @__PURE__ */ React39.createElement("div", { className: lineClassName, style: lineStyle }))
8367
8802
  );
8368
8803
  }
8369
8804
 
8370
8805
  // src/components/InfiniteTable/components/icons/SortIcon.tsx
8371
- import * as React39 from "react";
8806
+ import * as React40 from "react";
8372
8807
  import { useEffect as useEffect14, useState as useState10 } from "react";
8373
8808
 
8374
8809
  // src/components/InfiniteTable/components/icons/SortIcon.css.ts
8375
- var SortIconCls = "SortIcon_SortIconCls__1ek6mqy0 utilities_display_flex__16lm1iwy utilities_flexFlow_column__16lm1iw1l utilities_position_relative__16lm1iw1 utilities_justifyContent_spaceAround__16lm1iw1t";
8810
+ var SortIconCls = "SortIcon_SortIconCls__1ek6mqy0 utilities_display_flex__16lm1iwz utilities_flexFlow_column__16lm1iw1m utilities_position_relative__16lm1iw1 utilities_justifyContent_spaceAround__16lm1iw1u";
8376
8811
 
8377
8812
  // src/components/InfiniteTable/components/icons/SortIcon.tsx
8378
8813
  var defaultLineStyle3 = {
@@ -8427,7 +8862,7 @@ function SortIcon(props) {
8427
8862
  if (direction === -1) {
8428
8863
  indexStyle.top = "100%";
8429
8864
  }
8430
- return /* @__PURE__ */ React39.createElement(
8865
+ return /* @__PURE__ */ React40.createElement(
8431
8866
  "div",
8432
8867
  {
8433
8868
  "data-name": "sort-icon",
@@ -8439,7 +8874,7 @@ function SortIcon(props) {
8439
8874
  `${InfiniteTableIconClassName}-sort`
8440
8875
  )
8441
8876
  },
8442
- showIndex ? /* @__PURE__ */ React39.createElement(
8877
+ showIndex ? /* @__PURE__ */ React40.createElement(
8443
8878
  "div",
8444
8879
  {
8445
8880
  "data-name": "index",
@@ -8448,25 +8883,25 @@ function SortIcon(props) {
8448
8883
  },
8449
8884
  index
8450
8885
  ) : null,
8451
- /* @__PURE__ */ React39.createElement(
8886
+ /* @__PURE__ */ React40.createElement(
8452
8887
  "div",
8453
8888
  {
8454
8889
  style: __spreadValues({ width: sizes[0] }, lineStyle),
8455
8890
  onTransitionEnd
8456
8891
  }
8457
8892
  ),
8458
- /* @__PURE__ */ React39.createElement("div", { style: __spreadValues({ width: sizes[1] }, lineStyle) }),
8459
- /* @__PURE__ */ React39.createElement("div", { style: __spreadValues({ width: sizes[2] }, lineStyle) })
8893
+ /* @__PURE__ */ React40.createElement("div", { style: __spreadValues({ width: sizes[1] }, lineStyle) }),
8894
+ /* @__PURE__ */ React40.createElement("div", { style: __spreadValues({ width: sizes[2] }, lineStyle) })
8460
8895
  );
8461
8896
  }
8462
8897
 
8463
8898
  // src/components/InfiniteTable/components/InfiniteTableHeader/useColumnResizeHandle.tsx
8464
- import * as React41 from "react";
8899
+ import * as React42 from "react";
8465
8900
  import { useCallback as useCallback13 } from "react";
8466
8901
 
8467
8902
  // src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/index.tsx
8468
8903
  import { useRef as useRef15, useState as useState11 } from "react";
8469
- import * as React40 from "react";
8904
+ import * as React41 from "react";
8470
8905
 
8471
8906
  // src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/columnResizer.ts
8472
8907
  function getColumnResizer(colIndex, {
@@ -8578,9 +9013,9 @@ function getColumnGroupResizer(colIndexes, config) {
8578
9013
  }
8579
9014
 
8580
9015
  // src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/ResizeHandle.css.ts
8581
- var ResizeHandleCls = "ResizeHandle_ResizeHandleCls__zneyzh0 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1b utilities_right_0__16lm1iw1i utilities_bottom_0__16lm1iw1g utilities_cursor_colResize__16lm1iwj utilities_overflow_hidden__16lm1iw1w";
8582
- var ResizeHandleDraggerClsRecipe = createRuntimeFn({ defaultClassName: "ResizeHandle_ResizeHandleDraggerClsRecipe__zneyzhc utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1b utilities_bottom_0__16lm1iw1g", variantClassNames: { constrained: { false: "ResizeHandle_ResizeHandleDraggerClsRecipe_constrained_false__zneyzhd", true: "ResizeHandle_ResizeHandleDraggerClsRecipe_constrained_true__zneyzhe" }, computedPinned: { start: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedPinned_start__zneyzhf", end: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedPinned_end__zneyzhg", false: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedPinned_false__zneyzhh" }, computedFirstInCategory: { true: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedFirstInCategory_true__zneyzhi", false: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedFirstInCategory_false__zneyzhj" }, computedLastInCategory: { true: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedLastInCategory_true__zneyzhk", false: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedLastInCategory_false__zneyzhl" } }, defaultVariants: {}, compoundVariants: [[{ computedPinned: "start", computedLastInCategory: true }, "ResizeHandle_ResizeHandleDraggerClsRecipe_compound_0__zneyzhm"], [{ computedPinned: "end", computedFirstInCategory: true }, "ResizeHandle_ResizeHandleDraggerClsRecipe_compound_1__zneyzhn"]] });
8583
- var ResizeHandleRecipeCls = createRuntimeFn({ defaultClassName: "ResizeHandle__zneyzh1", variantClassNames: { computedPinned: { start: "ResizeHandle_ResizeHandleRecipeCls_computedPinned_start__zneyzh2", end: "ResizeHandle_ResizeHandleRecipeCls_computedPinned_end__zneyzh3 utilities_left_0__16lm1iw1d utilities_right_auto__16lm1iw1k", false: "ResizeHandle_ResizeHandleRecipeCls_computedPinned_false__zneyzh4" }, computedFirstInCategory: { true: "ResizeHandle_ResizeHandleRecipeCls_computedFirstInCategory_true__zneyzh5", false: "ResizeHandle_ResizeHandleRecipeCls_computedFirstInCategory_false__zneyzh6" }, computedLastInCategory: { true: "ResizeHandle_ResizeHandleRecipeCls_computedLastInCategory_true__zneyzh7", false: "ResizeHandle_ResizeHandleRecipeCls_computedLastInCategory_false__zneyzh8" } }, defaultVariants: {}, compoundVariants: [[{ computedPinned: "end", computedLastInCategory: false, computedFirstInCategory: true }, "ResizeHandle_ResizeHandleRecipeCls_compound_0__zneyzh9"], [{ computedPinned: false, computedFirstInCategory: false, computedLastInCategory: true }, "ResizeHandle_ResizeHandleRecipeCls_compound_1__zneyzha"], [{ computedPinned: "start", computedFirstInCategory: false, computedLastInCategory: true }, "ResizeHandle_ResizeHandleRecipeCls_compound_2__zneyzhb"]] });
9016
+ var ResizeHandleCls = "ResizeHandle_ResizeHandleCls__zneyzh0 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1c utilities_right_0__16lm1iw1j utilities_bottom_0__16lm1iw1h utilities_cursor_colResize__16lm1iwk utilities_overflow_hidden__16lm1iw1x";
9017
+ var ResizeHandleDraggerClsRecipe = createRuntimeFn({ defaultClassName: "ResizeHandle_ResizeHandleDraggerClsRecipe__zneyzhc utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1c utilities_bottom_0__16lm1iw1h", variantClassNames: { constrained: { false: "ResizeHandle_ResizeHandleDraggerClsRecipe_constrained_false__zneyzhd", true: "ResizeHandle_ResizeHandleDraggerClsRecipe_constrained_true__zneyzhe" }, computedPinned: { start: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedPinned_start__zneyzhf", end: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedPinned_end__zneyzhg", false: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedPinned_false__zneyzhh" }, computedFirstInCategory: { true: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedFirstInCategory_true__zneyzhi", false: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedFirstInCategory_false__zneyzhj" }, computedLastInCategory: { true: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedLastInCategory_true__zneyzhk", false: "ResizeHandle_ResizeHandleDraggerClsRecipe_computedLastInCategory_false__zneyzhl" } }, defaultVariants: {}, compoundVariants: [[{ computedPinned: "start", computedLastInCategory: true }, "ResizeHandle_ResizeHandleDraggerClsRecipe_compound_0__zneyzhm"], [{ computedPinned: "end", computedFirstInCategory: true }, "ResizeHandle_ResizeHandleDraggerClsRecipe_compound_1__zneyzhn"]] });
9018
+ var ResizeHandleRecipeCls = createRuntimeFn({ defaultClassName: "ResizeHandle__zneyzh1", variantClassNames: { computedPinned: { start: "ResizeHandle_ResizeHandleRecipeCls_computedPinned_start__zneyzh2", end: "ResizeHandle_ResizeHandleRecipeCls_computedPinned_end__zneyzh3 utilities_left_0__16lm1iw1e utilities_right_auto__16lm1iw1l", false: "ResizeHandle_ResizeHandleRecipeCls_computedPinned_false__zneyzh4" }, computedFirstInCategory: { true: "ResizeHandle_ResizeHandleRecipeCls_computedFirstInCategory_true__zneyzh5", false: "ResizeHandle_ResizeHandleRecipeCls_computedFirstInCategory_false__zneyzh6" }, computedLastInCategory: { true: "ResizeHandle_ResizeHandleRecipeCls_computedLastInCategory_true__zneyzh7", false: "ResizeHandle_ResizeHandleRecipeCls_computedLastInCategory_false__zneyzh8" } }, defaultVariants: {}, compoundVariants: [[{ computedPinned: "end", computedLastInCategory: false, computedFirstInCategory: true }, "ResizeHandle_ResizeHandleRecipeCls_compound_0__zneyzh9"], [{ computedPinned: false, computedFirstInCategory: false, computedLastInCategory: true }, "ResizeHandle_ResizeHandleRecipeCls_compound_1__zneyzha"], [{ computedPinned: "start", computedFirstInCategory: false, computedLastInCategory: true }, "ResizeHandle_ResizeHandleRecipeCls_compound_2__zneyzhb"]] });
8584
9019
 
8585
9020
  // src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/index.tsx
8586
9021
  var { rootClassName: rootClassName7 } = internalProps;
@@ -8641,7 +9076,7 @@ function ResizeHandleFn(props) {
8641
9076
  right: computedPinned === "start" ? void 0 : 0
8642
9077
  //ThemeVars.components.HeaderCell.resizeHandleWidth,
8643
9078
  } : computedPinned === "end" && computedFirstInCategory ? { right: void 0 } : void 0;
8644
- return /* @__PURE__ */ React40.createElement(
9079
+ return /* @__PURE__ */ React41.createElement(
8645
9080
  "div",
8646
9081
  {
8647
9082
  ref: domRef,
@@ -8654,7 +9089,7 @@ function ResizeHandleFn(props) {
8654
9089
  )}`,
8655
9090
  onPointerDown
8656
9091
  },
8657
- /* @__PURE__ */ React40.createElement(
9092
+ /* @__PURE__ */ React41.createElement(
8658
9093
  "div",
8659
9094
  {
8660
9095
  style: style2,
@@ -8668,7 +9103,7 @@ function ResizeHandleFn(props) {
8668
9103
  )
8669
9104
  );
8670
9105
  }
8671
- var ResizeHandle = React40.memo(ResizeHandleFn);
9106
+ var ResizeHandle = React41.memo(ResizeHandleFn);
8672
9107
 
8673
9108
  // src/components/InfiniteTable/components/InfiniteTableHeader/useColumnResizeHandle.tsx
8674
9109
  function useColumnResizeHandle(column) {
@@ -8732,7 +9167,7 @@ function useColumnResizeHandle(column) {
8732
9167
  },
8733
9168
  [computeResizeForDiff]
8734
9169
  );
8735
- const resizeHandle = column.computedResizable ? /* @__PURE__ */ React41.createElement(
9170
+ const resizeHandle = column.computedResizable ? /* @__PURE__ */ React42.createElement(
8736
9171
  ResizeHandle,
8737
9172
  {
8738
9173
  columns: computedVisibleColumns,
@@ -8748,7 +9183,7 @@ function useColumnResizeHandle(column) {
8748
9183
  var defaultRenderSelectionCheckBox2 = (params) => {
8749
9184
  const { allRowsSelected, someRowsSelected, api } = params;
8750
9185
  const selected = allRowsSelected ? true : someRowsSelected ? null : false;
8751
- return /* @__PURE__ */ React42.createElement(
9186
+ return /* @__PURE__ */ React43.createElement(
8752
9187
  InfiniteCheckBox,
8753
9188
  {
8754
9189
  domProps: {
@@ -8765,11 +9200,11 @@ var defaultRenderSelectionCheckBox2 = (params) => {
8765
9200
  }
8766
9201
  );
8767
9202
  };
8768
- var InfiniteTableHeaderCellContext = React42.createContext(null);
9203
+ var InfiniteTableHeaderCellContext = React43.createContext(null);
8769
9204
  var { rootClassName: rootClassName8 } = internalProps;
8770
9205
  var InfiniteTableHeaderCellClassName = `${rootClassName8}HeaderCell`;
8771
9206
  var columnZIndexAtIndex5 = stripVar(InternalVars.columnZIndexAtIndex);
8772
- var spacer = /* @__PURE__ */ React42.createElement("div", { className: flex["1"] });
9207
+ var spacer = /* @__PURE__ */ React43.createElement("div", { className: flex["1"] });
8773
9208
  var InfiniteHeaderCellDataAttributes = keyMirror({
8774
9209
  "data-name": ``,
8775
9210
  "data-field": ``,
@@ -8828,7 +9263,7 @@ function InfiniteTableHeaderCell(props) {
8828
9263
  getState
8829
9264
  });
8830
9265
  const computedSortable = columnApi.isSortable();
8831
- const sortIcon = computedSortable && (column.computedSorted || alwaysShow) ? /* @__PURE__ */ React42.createElement(
9266
+ const sortIcon = computedSortable && (column.computedSorted || alwaysShow) ? /* @__PURE__ */ React43.createElement(
8832
9267
  SortIcon,
8833
9268
  {
8834
9269
  index: column.computedMultiSort ? column.computedSortIndex + 1 : void 0,
@@ -8845,7 +9280,7 @@ function InfiniteTableHeaderCell(props) {
8845
9280
  }
8846
9281
  ) : null;
8847
9282
  const filtered = column.computedFilterable && column.computedFiltered;
8848
- const filterIcon = filtered ? /* @__PURE__ */ React42.createElement(FilterIcon, null) : null;
9283
+ const filterIcon = filtered ? /* @__PURE__ */ React43.createElement(FilterIcon, null) : null;
8849
9284
  const headerCSSEllipsis = (_e = (_d = column.headerCssEllipsis) != null ? _d : column.cssEllipsis) != null ? _e : true;
8850
9285
  const menuIconProps = {
8851
9286
  reserveSpaceWhenHidden: align2 === "center",
@@ -8865,7 +9300,7 @@ function InfiniteTableHeaderCell(props) {
8865
9300
  }
8866
9301
  };
8867
9302
  const MenuIconCmp = ((_f = column.components) == null ? void 0 : _f.MenuIcon) || (components2 == null ? void 0 : components2.MenuIcon) || MenuIcon;
8868
- const menuIcon = /* @__PURE__ */ React42.createElement(MenuIconCmp, __spreadValues({}, menuIconProps));
9303
+ const menuIcon = /* @__PURE__ */ React43.createElement(MenuIconCmp, __spreadValues({}, menuIconProps));
8869
9304
  const initialRenderParam = {
8870
9305
  dragging,
8871
9306
  domRef: ref,
@@ -8896,7 +9331,7 @@ function InfiniteTableHeaderCell(props) {
8896
9331
  renderBag: __spreadValues({}, initialRenderParam.renderBag)
8897
9332
  });
8898
9333
  if (column.renderSortIcon) {
8899
- renderParam2.renderBag.sortIcon = /* @__PURE__ */ React42.createElement(
9334
+ renderParam2.renderBag.sortIcon = /* @__PURE__ */ React43.createElement(
8900
9335
  RenderHeaderCellHookComponent,
8901
9336
  {
8902
9337
  render: column.renderSortIcon,
@@ -8907,7 +9342,7 @@ function InfiniteTableHeaderCell(props) {
8907
9342
  );
8908
9343
  }
8909
9344
  if (column.renderFilterIcon) {
8910
- renderParam2.renderBag.filterIcon = /* @__PURE__ */ React42.createElement(
9345
+ renderParam2.renderBag.filterIcon = /* @__PURE__ */ React43.createElement(
8911
9346
  RenderHeaderCellHookComponent,
8912
9347
  {
8913
9348
  render: column.renderFilterIcon,
@@ -8918,7 +9353,7 @@ function InfiniteTableHeaderCell(props) {
8918
9353
  );
8919
9354
  }
8920
9355
  if (typeof column.renderMenuIcon === "function") {
8921
- renderParam2.renderBag.menuIcon = /* @__PURE__ */ React42.createElement(
9356
+ renderParam2.renderBag.menuIcon = /* @__PURE__ */ React43.createElement(
8922
9357
  RenderHeaderCellHookComponent,
8923
9358
  {
8924
9359
  render: (param) => {
@@ -8930,7 +9365,7 @@ function InfiniteTableHeaderCell(props) {
8930
9365
  if (result.type === MenuIconCmp || result.type === MenuIcon) {
8931
9366
  return result;
8932
9367
  }
8933
- return /* @__PURE__ */ React42.createElement(MenuIconCmp, __spreadValues({}, menuIconProps), result);
9368
+ return /* @__PURE__ */ React43.createElement(MenuIconCmp, __spreadValues({}, menuIconProps), result);
8934
9369
  }
8935
9370
  return null;
8936
9371
  },
@@ -8941,7 +9376,7 @@ function InfiniteTableHeaderCell(props) {
8941
9376
  );
8942
9377
  }
8943
9378
  if (column.renderSelectionCheckBox && selectionMode === "multi-row") {
8944
- renderParam2.renderBag.selectionCheckBox = /* @__PURE__ */ React42.createElement(
9379
+ renderParam2.renderBag.selectionCheckBox = /* @__PURE__ */ React43.createElement(
8945
9380
  RenderHeaderCellHookComponent,
8946
9381
  {
8947
9382
  render: defaultRenderSelectionCheckBox2,
@@ -8952,7 +9387,7 @@ function InfiniteTableHeaderCell(props) {
8952
9387
  );
8953
9388
  const renderHeaderSelectionCheckBox = (_a2 = column.renderHeaderSelectionCheckBox) != null ? _a2 : column.renderSelectionCheckBox;
8954
9389
  if (renderHeaderSelectionCheckBox && renderHeaderSelectionCheckBox !== true) {
8955
- renderParam2.renderBag.selectionCheckBox = /* @__PURE__ */ React42.createElement(
9390
+ renderParam2.renderBag.selectionCheckBox = /* @__PURE__ */ React43.createElement(
8956
9391
  RenderHeaderCellHookComponent,
8957
9392
  {
8958
9393
  render: renderHeaderSelectionCheckBox,
@@ -8964,7 +9399,7 @@ function InfiniteTableHeaderCell(props) {
8964
9399
  }
8965
9400
  }
8966
9401
  if (header instanceof Function) {
8967
- renderParam2.renderBag.header = /* @__PURE__ */ React42.createElement(
9402
+ renderParam2.renderBag.header = /* @__PURE__ */ React43.createElement(
8968
9403
  RenderHeaderCellHookComponent,
8969
9404
  {
8970
9405
  render: header,
@@ -8975,10 +9410,10 @@ function InfiniteTableHeaderCell(props) {
8975
9410
  );
8976
9411
  }
8977
9412
  const theMenuIcon = column.renderMenuIcon === false ? null : renderParam2.renderBag.menuIcon;
8978
- const headerContent = headerCSSEllipsis ? /* @__PURE__ */ React42.createElement("div", { className: cssEllipsisClassName }, renderParam2.renderBag.header) : renderParam2.renderBag.header;
8979
- const all = /* @__PURE__ */ React42.createElement(React42.Fragment, null, align2 === "center" ? spacer : null, renderParam2.renderBag.selectionCheckBox, headerContent, renderParam2.renderBag.sortIcon, renderParam2.renderBag.filterIcon, align2 === "center" ? spacer : null, align2 !== "center" ? spacer : null, theMenuIcon);
9413
+ const headerContent = headerCSSEllipsis ? /* @__PURE__ */ React43.createElement("div", { className: cssEllipsisClassName }, renderParam2.renderBag.header) : renderParam2.renderBag.header;
9414
+ const all = /* @__PURE__ */ React43.createElement(React43.Fragment, null, align2 === "center" ? spacer : null, renderParam2.renderBag.selectionCheckBox, headerContent, renderParam2.renderBag.sortIcon, renderParam2.renderBag.filterIcon, align2 === "center" ? spacer : null, align2 !== "center" ? spacer : null, theMenuIcon);
8980
9415
  if (column.renderHeader) {
8981
- return /* @__PURE__ */ React42.createElement(
9416
+ return /* @__PURE__ */ React43.createElement(
8982
9417
  RenderHeaderCellHookComponent,
8983
9418
  {
8984
9419
  render: column.renderHeader,
@@ -9015,7 +9450,7 @@ function InfiniteTableHeaderCell(props) {
9015
9450
  });
9016
9451
  let draggingProxy = null;
9017
9452
  if (dragging && proxyPosition) {
9018
- draggingProxy = /* @__PURE__ */ React42.createElement(
9453
+ draggingProxy = /* @__PURE__ */ React43.createElement(
9019
9454
  "div",
9020
9455
  {
9021
9456
  key: column.id,
@@ -9039,7 +9474,7 @@ function InfiniteTableHeaderCell(props) {
9039
9474
  verticalAlign,
9040
9475
  align: align2
9041
9476
  };
9042
- const debouncedOnFilterValueChange = React42.useMemo(() => {
9477
+ const debouncedOnFilterValueChange = React43.useMemo(() => {
9043
9478
  const fn = (filterValue) => {
9044
9479
  api.setColumnFilter(column.id, filterValue);
9045
9480
  };
@@ -9065,7 +9500,7 @@ function InfiniteTableHeaderCell(props) {
9065
9500
  "data-sort": column.computedSortedAsc ? "asc" : column.computedSortedDesc ? "desc" : "none",
9066
9501
  "data-sort-index": `${(_p = column.computedSortIndex) != null ? _p : -1}`
9067
9502
  };
9068
- return /* @__PURE__ */ React42.createElement(ContextProvider, { value: renderParam }, /* @__PURE__ */ React42.createElement(
9503
+ return /* @__PURE__ */ React43.createElement(ContextProvider, { value: renderParam }, /* @__PURE__ */ React43.createElement(
9069
9504
  InfiniteTableCell,
9070
9505
  __spreadProps(__spreadValues({
9071
9506
  domRef: ref,
@@ -9106,7 +9541,7 @@ function InfiniteTableHeaderCell(props) {
9106
9541
  CellCls
9107
9542
  ),
9108
9543
  cssEllipsis: headerCSSEllipsis,
9109
- afterChildren: /* @__PURE__ */ React42.createElement(React42.Fragment, null, showColumnFilters ? column.computedFilterable ? /* @__PURE__ */ React42.createElement(
9544
+ afterChildren: /* @__PURE__ */ React43.createElement(React43.Fragment, null, showColumnFilters ? column.computedFilterable ? /* @__PURE__ */ React43.createElement(
9110
9545
  InfiniteTableColumnHeaderFilter,
9111
9546
  {
9112
9547
  filterEditor: FilterEditor,
@@ -9119,7 +9554,7 @@ function InfiniteTableHeaderCell(props) {
9119
9554
  columnFilterValue: column.computedFilterValue,
9120
9555
  columnHeaderHeight
9121
9556
  }
9122
- ) : /* @__PURE__ */ React42.createElement(InfiniteTableColumnHeaderFilterEmpty, null) : null, resizeHandle),
9557
+ ) : /* @__PURE__ */ React43.createElement(InfiniteTableColumnHeaderFilterEmpty, null) : null, resizeHandle),
9123
9558
  renderChildren
9124
9559
  })
9125
9560
  ), draggingProxy);
@@ -9132,7 +9567,7 @@ function useInfiniteHeaderCell() {
9132
9567
  }
9133
9568
 
9134
9569
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderWrapper.tsx
9135
- import * as React47 from "react";
9570
+ import * as React48 from "react";
9136
9571
 
9137
9572
  // src/components/InfiniteTable/components/InfiniteTableHeader/buildColumnAndGroupTree.ts
9138
9573
  function buildColumnAndGroupTree(columns, columnGroups, columnGroupsDepthsMap, columnGroupsMaxDepth) {
@@ -9238,19 +9673,19 @@ function assignGroupOffsetsAndComputedWidths(items, groupOffset = 0) {
9238
9673
  }
9239
9674
 
9240
9675
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeader.tsx
9241
- import * as React46 from "react";
9676
+ import * as React47 from "react";
9242
9677
  import { useCallback as useCallback16, useEffect as useEffect16, useRef as useRef18 } from "react";
9243
9678
 
9244
9679
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderGroup.tsx
9245
- import * as React45 from "react";
9680
+ import * as React46 from "react";
9246
9681
 
9247
9682
  // src/components/InfiniteTable/components/InfiniteTableHeader/useColumnGroupResizeHandle.tsx
9248
- import * as React44 from "react";
9683
+ import * as React45 from "react";
9249
9684
  import { useCallback as useCallback15 } from "react";
9250
9685
 
9251
9686
  // src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/GroupResizeHandle.tsx
9252
9687
  import { useRef as useRef17, useState as useState12 } from "react";
9253
- import * as React43 from "react";
9688
+ import * as React44 from "react";
9254
9689
  var { rootClassName: rootClassName9 } = internalProps;
9255
9690
  var InfiniteTableHeaderCellResizeHandleCls2 = `${rootClassName9}HeaderCell_ResizeHandle`;
9256
9691
  function GroupResizeHandleFn(props) {
@@ -9319,7 +9754,7 @@ function GroupResizeHandleFn(props) {
9319
9754
  const style2 = (computedPinned === false || computedPinned === "start") && computedLastInCategory ? {
9320
9755
  right: computedPinned === "start" ? void 0 : ThemeVars.components.HeaderCell.resizeHandleWidth
9321
9756
  } : computedPinned === "end" && computedFirstInCategory ? { right: void 0 } : void 0;
9322
- return /* @__PURE__ */ React43.createElement(
9757
+ return /* @__PURE__ */ React44.createElement(
9323
9758
  "div",
9324
9759
  {
9325
9760
  ref: domRef,
@@ -9332,7 +9767,7 @@ function GroupResizeHandleFn(props) {
9332
9767
  )}`,
9333
9768
  onPointerDown
9334
9769
  },
9335
- /* @__PURE__ */ React43.createElement(
9770
+ /* @__PURE__ */ React44.createElement(
9336
9771
  "div",
9337
9772
  {
9338
9773
  style: __spreadValues(__spreadValues({}, style2), props.style),
@@ -9343,7 +9778,7 @@ function GroupResizeHandleFn(props) {
9343
9778
  )
9344
9779
  );
9345
9780
  }
9346
- var GroupResizeHandle = React43.memo(
9781
+ var GroupResizeHandle = React44.memo(
9347
9782
  GroupResizeHandleFn
9348
9783
  );
9349
9784
 
@@ -9402,7 +9837,7 @@ function useColumnGroupResizeHandle(groupColumns, config) {
9402
9837
  [computeResizeForDiff]
9403
9838
  );
9404
9839
  const groupResizable = groupColumns.some((c) => c.computedResizable);
9405
- const resizeHandle = groupResizable ? /* @__PURE__ */ React44.createElement(
9840
+ const resizeHandle = groupResizable ? /* @__PURE__ */ React45.createElement(
9406
9841
  GroupResizeHandle,
9407
9842
  {
9408
9843
  brain: bodyBrain,
@@ -9442,7 +9877,7 @@ function InfiniteTableHeaderGroup(props) {
9442
9877
  (col) => `var(${columnWidthAtIndex5}-${col.computedVisibleIndex})`
9443
9878
  ).join(" + ") + " )" : `var(${columnWidthAtIndex5}-${firstColumn.computedVisibleIndex})`;
9444
9879
  const zIndex2 = `calc(var(${columnZIndexAtIndex6}-${firstColumn.computedVisibleIndex}) + ${columnGroupsMaxDepth - columnGroup.depth})`;
9445
- return /* @__PURE__ */ React45.createElement(
9880
+ return /* @__PURE__ */ React46.createElement(
9446
9881
  "div",
9447
9882
  {
9448
9883
  ref: props.domRef,
@@ -9451,7 +9886,7 @@ function InfiniteTableHeaderGroup(props) {
9451
9886
  style: { width, height },
9452
9887
  "data-z-index": zIndex2
9453
9888
  },
9454
- /* @__PURE__ */ React45.createElement(
9889
+ /* @__PURE__ */ React46.createElement(
9455
9890
  "div",
9456
9891
  {
9457
9892
  className: join(
@@ -9533,7 +9968,7 @@ function InfiniteTableHeaderFn(props) {
9533
9968
  computedWidth: colGroupItem.computedWidth,
9534
9969
  groupOffset: colGroupItem.groupOffset
9535
9970
  });
9536
- return /* @__PURE__ */ React46.createElement(
9971
+ return /* @__PURE__ */ React47.createElement(
9537
9972
  InfiniteTableHeaderGroup,
9538
9973
  {
9539
9974
  bodyBrain,
@@ -9546,7 +9981,7 @@ function InfiniteTableHeaderFn(props) {
9546
9981
  }
9547
9982
  );
9548
9983
  }
9549
- return /* @__PURE__ */ React46.createElement(
9984
+ return /* @__PURE__ */ React47.createElement(
9550
9985
  InfiniteTableHeaderCell,
9551
9986
  {
9552
9987
  domRef: domRef2,
@@ -9570,7 +10005,7 @@ function InfiniteTableHeaderFn(props) {
9570
10005
  showColumnFilters
9571
10006
  ]
9572
10007
  );
9573
- return /* @__PURE__ */ React46.createElement("div", __spreadValues({}, domProps), /* @__PURE__ */ React46.createElement(
10008
+ return /* @__PURE__ */ React47.createElement("div", __spreadValues({}, domProps), /* @__PURE__ */ React47.createElement(
9574
10009
  RawTable,
9575
10010
  {
9576
10011
  name: "header",
@@ -9580,7 +10015,7 @@ function InfiniteTableHeaderFn(props) {
9580
10015
  }
9581
10016
  ));
9582
10017
  }
9583
- var InfiniteTableHeader = React46.memo(
10018
+ var InfiniteTableHeader = React47.memo(
9584
10019
  InfiniteTableHeaderFn
9585
10020
  );
9586
10021
 
@@ -9605,7 +10040,7 @@ function TableHeaderWrapper(props) {
9605
10040
  } = tableContextValue;
9606
10041
  const rows = !computedColumnGroups || !computedColumnGroups.size ? 1 : columnGroupsMaxDepth + 2;
9607
10042
  const height = rows * columnHeaderHeight + (showColumnFilters ? columnHeaderHeight : 0);
9608
- const columnAndGroupTreeInfo = React47.useMemo(() => {
10043
+ const columnAndGroupTreeInfo = React48.useMemo(() => {
9609
10044
  if (!computedColumnGroups || !computedColumnGroups.size) {
9610
10045
  return void 0;
9611
10046
  }
@@ -9616,7 +10051,7 @@ function TableHeaderWrapper(props) {
9616
10051
  columnGroupsMaxDepth
9617
10052
  );
9618
10053
  }, [computedVisibleColumns, computedColumnGroups, columnGroupsDepthsMap]);
9619
- const cellspan = React47.useCallback(
10054
+ const cellspan = React48.useCallback(
9620
10055
  ({ rowIndex, colIndex }) => {
9621
10056
  const column = computedVisibleColumns[colIndex];
9622
10057
  const rowspan2 = 1;
@@ -9654,15 +10089,15 @@ function TableHeaderWrapper(props) {
9654
10089
  columnGroupsDepthsMap
9655
10090
  ]
9656
10091
  );
9657
- const rowspan = React47.useCallback(
10092
+ const rowspan = React48.useCallback(
9658
10093
  ({ rowIndex, colIndex }) => cellspan({ rowIndex, colIndex }).rowspan,
9659
10094
  [cellspan]
9660
10095
  );
9661
- const colspan = React47.useCallback(
10096
+ const colspan = React48.useCallback(
9662
10097
  ({ rowIndex, colIndex }) => cellspan({ rowIndex, colIndex }).colspan,
9663
10098
  [cellspan]
9664
10099
  );
9665
- const rowHeight = React47.useCallback(
10100
+ const rowHeight = React48.useCallback(
9666
10101
  (index) => {
9667
10102
  return showColumnFilters ? index < rows - 1 ? columnHeaderHeight : 2 * columnHeaderHeight : columnHeaderHeight;
9668
10103
  },
@@ -9684,7 +10119,7 @@ function TableHeaderWrapper(props) {
9684
10119
  fixedColsStart: computedPinnedStartColumns.length
9685
10120
  }
9686
10121
  );
9687
- const header = /* @__PURE__ */ React47.createElement(
10122
+ const header = /* @__PURE__ */ React48.createElement(
9688
10123
  InfiniteTableHeader,
9689
10124
  {
9690
10125
  columns: computedVisibleColumns,
@@ -9695,7 +10130,7 @@ function TableHeaderWrapper(props) {
9695
10130
  columnAndGroupTreeInfo
9696
10131
  }
9697
10132
  );
9698
- const verticalScrollbarPlaceholder = scrollbars.vertical && getScrollbarWidth() ? /* @__PURE__ */ React47.createElement(
10133
+ const verticalScrollbarPlaceholder = scrollbars.vertical && getScrollbarWidth() ? /* @__PURE__ */ React48.createElement(
9699
10134
  "div",
9700
10135
  {
9701
10136
  className: HeaderScrollbarPlaceholderCls,
@@ -9705,7 +10140,7 @@ function TableHeaderWrapper(props) {
9705
10140
  }
9706
10141
  }
9707
10142
  ) : null;
9708
- return /* @__PURE__ */ React47.createElement(
10143
+ return /* @__PURE__ */ React48.createElement(
9709
10144
  "div",
9710
10145
  {
9711
10146
  className: HeaderWrapperCls,
@@ -9719,7 +10154,7 @@ function TableHeaderWrapper(props) {
9719
10154
  }
9720
10155
 
9721
10156
  // src/components/InfiniteTable/components/InfiniteTableLicenseFooter/index.tsx
9722
- import * as React48 from "react";
10157
+ import * as React49 from "react";
9723
10158
  import { useEffect as useEffect17 } from "react";
9724
10159
 
9725
10160
  // src/components/utils/decamelize.ts
@@ -9762,11 +10197,11 @@ var enforceStyle = (node, style2) => {
9762
10197
  );
9763
10198
  }
9764
10199
  };
9765
- var InfiniteTableLicenseFooter = React48.forwardRef(
10200
+ var InfiniteTableLicenseFooter = React49.forwardRef(
9766
10201
  function InfiniteTableLicenseFooter2(props, ref) {
9767
- const { rootClassName: rootClassName12 } = useInternalProps();
9768
- const domRef = React48.useRef(null);
9769
- const domCallback = React48.useCallback((node) => {
10202
+ const { rootClassName: rootClassName13 } = useInternalProps();
10203
+ const domRef = React49.useRef(null);
10204
+ const domCallback = React49.useCallback((node) => {
9770
10205
  domRef.current = node;
9771
10206
  if (!ref) {
9772
10207
  return;
@@ -9794,13 +10229,13 @@ var InfiniteTableLicenseFooter = React48.forwardRef(
9794
10229
  clearInterval(intervalId);
9795
10230
  };
9796
10231
  }, []);
9797
- return /* @__PURE__ */ React48.createElement(
10232
+ return /* @__PURE__ */ React49.createElement(
9798
10233
  "div",
9799
10234
  __spreadProps(__spreadValues({
9800
10235
  ref: domCallback
9801
10236
  }, props), {
9802
10237
  className: join(
9803
- `${rootClassName12}-Footer`,
10238
+ `${rootClassName13}-Footer`,
9804
10239
  FooterCls,
9805
10240
  props.className
9806
10241
  ),
@@ -9808,7 +10243,7 @@ var InfiniteTableLicenseFooter = React48.forwardRef(
9808
10243
  }),
9809
10244
  "Powered by",
9810
10245
  " ",
9811
- /* @__PURE__ */ React48.createElement(
10246
+ /* @__PURE__ */ React49.createElement(
9812
10247
  "a",
9813
10248
  {
9814
10249
  href: "https://infinite-table.com",
@@ -9823,11 +10258,11 @@ var InfiniteTableLicenseFooter = React48.forwardRef(
9823
10258
  );
9824
10259
 
9825
10260
  // src/components/InfiniteTable/components/LoadMask.tsx
9826
- import * as React49 from "react";
10261
+ import * as React50 from "react";
9827
10262
 
9828
10263
  // src/components/InfiniteTable/components/LoadMask.css.ts
9829
- var LoadMaskCls = { visible: "LoadMask_LoadMaskCls_visible__qy58ya1 LoadMask_LoadMaskBaseCls__qy58ya0 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1b utilities_left_0__16lm1iw1d utilities_right_0__16lm1iw1i utilities_bottom_0__16lm1iw1g", hidden: "LoadMask_LoadMaskCls_hidden__qy58ya2 LoadMask_LoadMaskBaseCls__qy58ya0 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1b utilities_left_0__16lm1iw1d utilities_right_0__16lm1iw1i utilities_bottom_0__16lm1iw1g" };
9830
- var LoadMaskOverlayCls = "LoadMask_LoadMaskOverlayCls__qy58ya3 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1b utilities_left_0__16lm1iw1d utilities_right_0__16lm1iw1i utilities_bottom_0__16lm1iw1g";
10264
+ var LoadMaskCls = { visible: "LoadMask_LoadMaskCls_visible__qy58ya1 LoadMask_LoadMaskBaseCls__qy58ya0 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1c utilities_left_0__16lm1iw1e utilities_right_0__16lm1iw1j utilities_bottom_0__16lm1iw1h", hidden: "LoadMask_LoadMaskCls_hidden__qy58ya2 LoadMask_LoadMaskBaseCls__qy58ya0 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1c utilities_left_0__16lm1iw1e utilities_right_0__16lm1iw1j utilities_bottom_0__16lm1iw1h" };
10265
+ var LoadMaskOverlayCls = "LoadMask_LoadMaskOverlayCls__qy58ya3 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1c utilities_left_0__16lm1iw1e utilities_right_0__16lm1iw1j utilities_bottom_0__16lm1iw1h";
9831
10266
  var LoadMaskTextCls = "LoadMask_LoadMaskTextCls__qy58ya4";
9832
10267
 
9833
10268
  // src/components/InfiniteTable/components/LoadMask.tsx
@@ -9835,16 +10270,16 @@ var { rootClassName: rootClassName11 } = internalProps;
9835
10270
  var baseCls3 = `${rootClassName11}-LoadMask`;
9836
10271
  function LoadMaskFn(props) {
9837
10272
  const { visible, children = "Loading" } = props;
9838
- return /* @__PURE__ */ React49.createElement(
10273
+ return /* @__PURE__ */ React50.createElement(
9839
10274
  "div",
9840
10275
  {
9841
10276
  className: `${LoadMaskCls[visible ? "visible" : "hidden"]} ${baseCls3}`
9842
10277
  },
9843
- /* @__PURE__ */ React49.createElement("div", { className: `${LoadMaskOverlayCls} ${baseCls3}-Overlay` }),
9844
- /* @__PURE__ */ React49.createElement("div", { className: `${LoadMaskTextCls} ${baseCls3}-Text` }, children)
10278
+ /* @__PURE__ */ React50.createElement("div", { className: `${LoadMaskOverlayCls} ${baseCls3}-Overlay` }),
10279
+ /* @__PURE__ */ React50.createElement("div", { className: `${LoadMaskTextCls} ${baseCls3}-Text` }, children)
9845
10280
  );
9846
10281
  }
9847
- var LoadMask = React49.memo(LoadMaskFn);
10282
+ var LoadMask = React50.memo(LoadMaskFn);
9848
10283
 
9849
10284
  // src/utils/deepClone.ts
9850
10285
  function cloneArray(arr) {
@@ -10516,8 +10951,8 @@ function enhancedFlatten(param) {
10516
10951
  }
10517
10952
 
10518
10953
  // src/components/DataSource/index.tsx
10519
- import * as React50 from "react";
10520
- import { useEffect as useEffect20 } from "react";
10954
+ import * as React51 from "react";
10955
+ import { useEffect as useEffect20, useLayoutEffect as useLayoutEffect10 } from "react";
10521
10956
 
10522
10957
  // src/utils/multisort/sortTypes.ts
10523
10958
  var numberComparator = function(first, second) {
@@ -11259,6 +11694,15 @@ function useEffectWithChanges(fn, deps) {
11259
11694
  return result;
11260
11695
  }, useEffectDeps);
11261
11696
  }
11697
+ function useEffectWithObject(fn, deps) {
11698
+ const useEffectDeps = [];
11699
+ for (const k in deps) {
11700
+ if (deps.hasOwnProperty(k)) {
11701
+ useEffectDeps.push(deps[k]);
11702
+ }
11703
+ }
11704
+ useEffect18(fn, useEffectDeps);
11705
+ }
11262
11706
 
11263
11707
  // src/utils/composeFunctions.ts
11264
11708
  function composeFunctions(...fns) {
@@ -13342,7 +13786,8 @@ function useLoadData() {
13342
13786
  livePagination,
13343
13787
  livePaginationCursor,
13344
13788
  filterTypes,
13345
- cursorId: stateCursorId
13789
+ cursorId: stateCursorId,
13790
+ stateReadyAsDetails
13346
13791
  } = componentState;
13347
13792
  const [scrollbars, setScrollbars] = useState13({
13348
13793
  vertical: false,
@@ -13414,9 +13859,19 @@ function useLoadData() {
13414
13859
  };
13415
13860
  const initialRef = useRef21(true);
13416
13861
  useLazyLoadRange();
13862
+ const masterContext = useMasterDetailContext();
13863
+ const isDetail = !!masterContext;
13864
+ const isDetailRef = useRef21(!!masterContext);
13865
+ isDetailRef.current = isDetail;
13866
+ const isDetailReady = isDetail ? masterContext.shouldRestoreState ? stateReadyAsDetails : true : true;
13867
+ const isDetailReadyRef = useRef21(isDetailReady);
13868
+ isDetailReadyRef.current = isDetailReady;
13417
13869
  useEffectWithChanges(
13418
13870
  () => {
13419
13871
  const componentState2 = getComponentState();
13872
+ if (isDetailRef.current && !isDetailReadyRef.current) {
13873
+ return;
13874
+ }
13420
13875
  if (typeof componentState2.data !== "function") {
13421
13876
  loadData(componentState2.data, componentState2, actions);
13422
13877
  }
@@ -13433,6 +13888,9 @@ function useLoadData() {
13433
13888
  return;
13434
13889
  }
13435
13890
  }
13891
+ if (isDetailRef.current && !isDetailReadyRef.current) {
13892
+ return;
13893
+ }
13436
13894
  const componentState2 = getComponentState();
13437
13895
  if (typeof componentState2.data === "function") {
13438
13896
  loadData(componentState2.data, componentState2, actions, {
@@ -13710,17 +14168,17 @@ var Indexer = class {
13710
14168
  var EMPTY_ARRAY = Object.freeze(
13711
14169
  []
13712
14170
  );
13713
- var normalizeSortInfo = (initialSortInfo, weakMap) => {
14171
+ var normalizeSortInfo = (initialSortInfo, weakMap2) => {
13714
14172
  const sortInfo = initialSortInfo != null ? initialSortInfo : EMPTY_ARRAY;
13715
14173
  const result = Array.isArray(sortInfo) ? sortInfo : [sortInfo];
13716
- if (weakMap && weakMap.has(sortInfo)) {
13717
- const prevResult = weakMap.get(sortInfo);
14174
+ if (weakMap2 && weakMap2.has(sortInfo)) {
14175
+ const prevResult = weakMap2.get(sortInfo);
13718
14176
  if (prevResult && prevResult.length === result.length) {
13719
14177
  return prevResult;
13720
14178
  }
13721
14179
  }
13722
- if (weakMap && sortInfo) {
13723
- weakMap.set(sortInfo, result);
14180
+ if (weakMap2 && sortInfo) {
14181
+ weakMap2.set(sortInfo, result);
13724
14182
  }
13725
14183
  return result;
13726
14184
  };
@@ -13735,9 +14193,14 @@ function initSetupState() {
13735
14193
  return {
13736
14194
  // TODO cleanup indexer on unmount
13737
14195
  indexer: new Indexer(),
14196
+ destroyedRef: {
14197
+ current: false
14198
+ },
13738
14199
  idToIndexMap: /* @__PURE__ */ new Map(),
13739
14200
  // TODO: cleanup cache on unmount
13740
14201
  cache: void 0,
14202
+ detailDataSourcesStateToRestore: /* @__PURE__ */ new Map(),
14203
+ stateReadyAsDetails: false,
13741
14204
  originalDataArrayChanged: false,
13742
14205
  originalDataArrayChangedInfo: {
13743
14206
  timestamp: 0,
@@ -13745,6 +14208,7 @@ function initSetupState() {
13745
14208
  },
13746
14209
  lazyLoadCacheOfLoadedBatches: new DeepMap(),
13747
14210
  dataParams: void 0,
14211
+ onCleanup: buildSubscriptionCallback(),
13748
14212
  notifyScrollbarsChange: buildSubscriptionCallback(),
13749
14213
  notifyScrollStop: buildSubscriptionCallback(),
13750
14214
  notifyRenderRangeChange: buildSubscriptionCallback(),
@@ -13788,11 +14252,16 @@ function getCompareObjectForDataParams(dataParams) {
13788
14252
  delete obj.originalDataArray;
13789
14253
  return obj;
13790
14254
  }
14255
+ var EMPTY_ARRAY2 = [];
14256
+ var cleanupDataSource = (state) => {
14257
+ state.destroyedRef.current = true;
14258
+ };
13791
14259
  var forwardProps3 = (setupState) => {
13792
14260
  return {
13793
14261
  onDataParamsChange: (fn) => fn ? discardCallsWithEqualArg(fn, 100, getCompareObjectForDataParams) : void 0,
13794
14262
  lazyLoad: (lazyLoad) => !!lazyLoad,
13795
14263
  data: 1,
14264
+ debugId: 1,
13796
14265
  pivotBy: 1,
13797
14266
  primaryKey: 1,
13798
14267
  livePagination: 1,
@@ -13831,7 +14300,7 @@ var forwardProps3 = (setupState) => {
13831
14300
  collapseGroupRowsOnDataFunctionChange: (collapseGroupRowsOnDataFunctionChange) => collapseGroupRowsOnDataFunctionChange != null ? collapseGroupRowsOnDataFunctionChange : true,
13832
14301
  loading: (loading) => loading != null ? loading : false,
13833
14302
  sortInfo: (sortInfo) => normalizeSortInfo(sortInfo, setupState.propsCache.get("sortInfo")),
13834
- groupBy: (groupBy) => groupBy != null ? groupBy : []
14303
+ groupBy: (groupBy) => groupBy != null ? groupBy : EMPTY_ARRAY2
13835
14304
  };
13836
14305
  };
13837
14306
  function getLivePaginationCursorValue(livePaginationCursorProp, state) {
@@ -14073,6 +14542,147 @@ function getInterceptActions() {
14073
14542
  }
14074
14543
  };
14075
14544
  }
14545
+ function getDataSourceStateRestoreForDetails(state) {
14546
+ return {
14547
+ originalDataArray: state.originalDataArray,
14548
+ groupRowsState: state.groupRowsState,
14549
+ groupBy: state.groupBy,
14550
+ pivotBy: state.pivotBy,
14551
+ sortInfo: state.sortInfo,
14552
+ filterValue: state.filterValue,
14553
+ livePaginationCursor: state.livePaginationCursor
14554
+ };
14555
+ }
14556
+
14557
+ // src/utils/FixedSizeMap.ts
14558
+ var _FixedSizeMap = class {
14559
+ constructor(clone, size) {
14560
+ this.keysInOrder = [];
14561
+ if (typeof clone === "number") {
14562
+ this.maxSize = clone;
14563
+ this.currentMap = /* @__PURE__ */ new Map();
14564
+ } else {
14565
+ this.maxSize = size != null ? size : _FixedSizeMap.DEFAULT_SIZE;
14566
+ if (clone) {
14567
+ const arr = Array.from(clone);
14568
+ if (this.maxSize < arr.length) {
14569
+ arr.slice(arr.length - this.maxSize);
14570
+ }
14571
+ this.currentMap = /* @__PURE__ */ new Map();
14572
+ arr.forEach(([k, v]) => {
14573
+ this.set(k, v);
14574
+ });
14575
+ } else {
14576
+ this.currentMap = /* @__PURE__ */ new Map();
14577
+ }
14578
+ }
14579
+ }
14580
+ values() {
14581
+ return this.currentMap.values();
14582
+ }
14583
+ get size() {
14584
+ return this.currentMap.size;
14585
+ }
14586
+ delete(key) {
14587
+ if (this.currentMap.has(key)) {
14588
+ this.currentMap.delete(key);
14589
+ this.keysInOrder = this.keysInOrder.filter((k) => k !== key);
14590
+ return true;
14591
+ }
14592
+ return false;
14593
+ }
14594
+ has(key) {
14595
+ return this.currentMap.has(key);
14596
+ }
14597
+ get(key) {
14598
+ return this.currentMap.get(key);
14599
+ }
14600
+ set(key, el) {
14601
+ if (this.has(key)) {
14602
+ this.delete(key);
14603
+ }
14604
+ const canAddCount = this.maxSize - this.currentMap.size;
14605
+ if (canAddCount <= 0) {
14606
+ const [removedKey] = this.keysInOrder.splice(0, 1);
14607
+ if (removedKey != void 0) {
14608
+ this.currentMap.delete(removedKey);
14609
+ }
14610
+ }
14611
+ this.keysInOrder.push(key);
14612
+ this.currentMap.set(key, el);
14613
+ return this;
14614
+ }
14615
+ };
14616
+ var FixedSizeMap = _FixedSizeMap;
14617
+ FixedSizeMap.DEFAULT_SIZE = 10;
14618
+
14619
+ // src/components/DataSource/RowDetailsCache.ts
14620
+ var RowDetailsNoCacheStorage = class {
14621
+ add(_key, _value) {
14622
+ return;
14623
+ }
14624
+ get(_key) {
14625
+ return void 0;
14626
+ }
14627
+ delete(_key) {
14628
+ return;
14629
+ }
14630
+ has(_key) {
14631
+ return false;
14632
+ }
14633
+ };
14634
+ var RowDetailsFixedSizeCacheStorage = class {
14635
+ constructor(maxSize) {
14636
+ this.storage = new FixedSizeMap(maxSize);
14637
+ }
14638
+ add(key, value) {
14639
+ this.storage.set(key, value);
14640
+ }
14641
+ get(key) {
14642
+ return this.storage.get(key);
14643
+ }
14644
+ delete(key) {
14645
+ this.storage.delete(key);
14646
+ }
14647
+ has(key) {
14648
+ return this.storage.has(key);
14649
+ }
14650
+ };
14651
+ var RowDetailsFullCacheStorage = class {
14652
+ constructor() {
14653
+ this.storage = /* @__PURE__ */ new Map();
14654
+ }
14655
+ add(key, value) {
14656
+ this.storage.set(key, value);
14657
+ }
14658
+ get(key) {
14659
+ return this.storage.get(key);
14660
+ }
14661
+ delete(key) {
14662
+ this.storage.delete(key);
14663
+ }
14664
+ has(key) {
14665
+ return this.storage.has(key);
14666
+ }
14667
+ };
14668
+ var RowDetailsCache = class {
14669
+ // public instanceIndex: number = 0;
14670
+ constructor(cache) {
14671
+ this.cacheStorage = cache === false ? new RowDetailsNoCacheStorage() : cache === true ? new RowDetailsFullCacheStorage() : typeof cache === "number" ? new RowDetailsFixedSizeCacheStorage(cache) : new RowDetailsFixedSizeCacheStorage(5);
14672
+ }
14673
+ add(key, value) {
14674
+ this.cacheStorage.add(key, value);
14675
+ }
14676
+ get(key) {
14677
+ return this.cacheStorage.get(key);
14678
+ }
14679
+ delete(key) {
14680
+ this.cacheStorage.delete(key);
14681
+ }
14682
+ has(key) {
14683
+ return this.cacheStorage.has(key);
14684
+ }
14685
+ };
14076
14686
 
14077
14687
  // src/components/DataSource/types.ts
14078
14688
  var DataSourceActionType = /* @__PURE__ */ ((DataSourceActionType2) => {
@@ -14091,7 +14701,7 @@ function DataSourceWithContext(props) {
14091
14701
  var _a;
14092
14702
  (_a = componentState.onReady) == null ? void 0 : _a.call(componentState, api);
14093
14703
  }, []);
14094
- return /* @__PURE__ */ React50.createElement(React50.Fragment, null, children);
14704
+ return /* @__PURE__ */ React51.createElement(React51.Fragment, null, children);
14095
14705
  }
14096
14706
  var DataSourceRoot = getComponentStateRoot({
14097
14707
  //@ts-ignore
@@ -14105,28 +14715,54 @@ var DataSourceRoot = getComponentStateRoot({
14105
14715
  //@ts-ignore
14106
14716
  onPropChange,
14107
14717
  //@ts-ignore
14718
+ cleanup: cleanupDataSource,
14719
+ //@ts-ignore
14108
14720
  interceptActions: getInterceptActions(),
14109
14721
  //@ts-ignore
14110
14722
  mappedCallbacks: getMappedCallbacks()
14111
14723
  });
14112
- function DataSourceCmp({ children }) {
14724
+ function DataSourceCmp({
14725
+ children,
14726
+ isDetail
14727
+ }) {
14113
14728
  const DataSourceContext = getDataSourceContext();
14114
- const { componentState, componentActions } = useComponentState();
14729
+ const masterContext = useMasterDetailContext();
14730
+ const { componentState, componentActions, assignState } = useComponentState();
14115
14731
  const getState = useLatest(componentState);
14116
- const [api] = React50.useState(() => {
14732
+ const [api] = React51.useState(() => {
14117
14733
  return getDataSourceApi({ getState, actions: componentActions });
14118
14734
  });
14119
14735
  const contextValue = {
14120
14736
  componentState,
14121
14737
  componentActions,
14122
14738
  getState,
14739
+ assignState,
14123
14740
  api
14124
14741
  };
14742
+ useLayoutEffect10(() => {
14743
+ if (masterContext) {
14744
+ masterContext.registerDetail(contextValue);
14745
+ }
14746
+ }, []);
14747
+ useLayoutEffect10(() => {
14748
+ return () => {
14749
+ const state = getState();
14750
+ state.onCleanup(state);
14751
+ };
14752
+ }, []);
14125
14753
  if (false) {
14126
14754
  globalThis.getDataSourceState = getState;
14127
14755
  globalThis.dataSourceActions = componentActions;
14128
14756
  globalThis.dataSourceApi = api;
14129
14757
  }
14758
+ if (false) {
14759
+ globalThis.dataSources = globalThis.dataSources || {};
14760
+ globalThis["dataSources"][componentState.debugId] = {
14761
+ getState,
14762
+ actions: componentActions,
14763
+ api
14764
+ };
14765
+ }
14130
14766
  useLoadData();
14131
14767
  useEffect20(() => {
14132
14768
  var _a;
@@ -14144,10 +14780,11 @@ function DataSourceCmp({ children }) {
14144
14780
  });
14145
14781
  }
14146
14782
  }, [componentState.originalDataArrayChangedInfo]);
14147
- return /* @__PURE__ */ React50.createElement(DataSourceContext.Provider, { value: contextValue }, /* @__PURE__ */ React50.createElement(DataSourceWithContext, { children }));
14783
+ return /* @__PURE__ */ React51.createElement(DataSourceContext.Provider, { value: contextValue }, /* @__PURE__ */ React51.createElement(DataSourceWithContext, { children }));
14148
14784
  }
14149
14785
  function DataSource(props) {
14150
- return /* @__PURE__ */ React50.createElement(DataSourceRoot, __spreadValues({}, props), /* @__PURE__ */ React50.createElement(DataSourceCmp, { children: props.children }));
14786
+ const masterContext = useMasterDetailContext();
14787
+ return /* @__PURE__ */ React51.createElement(DataSourceRoot, __spreadValues({}, props), /* @__PURE__ */ React51.createElement(DataSourceCmp, { children: props.children, isDetail: !!masterContext }));
14151
14788
  }
14152
14789
  function useRowInfoReducers() {
14153
14790
  const { rowInfoReducerResults } = useDataSource();
@@ -14382,34 +15019,301 @@ var InfiniteTableCellSelectionApiImpl = class {
14382
15019
  if (options == null ? void 0 : options.clear) {
14383
15020
  this.deselectAll();
14384
15021
  }
14385
- const cellSelection = this.getDataSourceState().cellSelection;
14386
- if (!cellSelection) {
15022
+ const cellSelection = this.getDataSourceState().cellSelection;
15023
+ if (!cellSelection) {
15024
+ return;
15025
+ }
15026
+ const newCellSelection = new CellSelectionState(cellSelection);
15027
+ newCellSelection.selectColumn(colId);
15028
+ this.dataSourceActions.cellSelection = newCellSelection;
15029
+ };
15030
+ this.deselectColumn = (colId) => {
15031
+ const cellSelection = this.getDataSourceState().cellSelection;
15032
+ if (!cellSelection) {
15033
+ return;
15034
+ }
15035
+ const newCellSelection = new CellSelectionState(cellSelection);
15036
+ newCellSelection.deselectColumn(colId);
15037
+ this.dataSourceActions.cellSelection = newCellSelection;
15038
+ };
15039
+ this.getComputed = param.getComputed;
15040
+ this.getDataSourceState = param.getDataSourceState;
15041
+ this.dataSourceActions = param.dataSourceActions;
15042
+ }
15043
+ };
15044
+ function getCellSelectionApi(param) {
15045
+ const cellSelectionApi = new InfiniteTableCellSelectionApiImpl(param);
15046
+ if (false) {
15047
+ globalThis.cellSelectionApi = cellSelectionApi;
15048
+ }
15049
+ return cellSelectionApi;
15050
+ }
15051
+
15052
+ // src/components/DataSource/BooleanCollectionState.ts
15053
+ var BooleanCollectionState = class {
15054
+ constructor(state) {
15055
+ const stateObject = state instanceof Object.getPrototypeOf(this).constructor ? (
15056
+ //@ts-ignore
15057
+ state.getState()
15058
+ ) : state;
15059
+ const positiveItems = this.getPositiveFromState(stateObject);
15060
+ const negativeItems = this.getNegativeFromState(stateObject);
15061
+ this.update({
15062
+ negativeItems,
15063
+ positiveItems
15064
+ });
15065
+ }
15066
+ getInitialState() {
15067
+ return this.initialState;
15068
+ }
15069
+ // protected getState(): BooleanCollectionStateObject<KeyType> {
15070
+ // return {
15071
+ // positiveItems: this.allPositive
15072
+ // ? true
15073
+ // : this.positiveMap?.topDownKeys() ?? [],
15074
+ // negativeItems: this.allNegative
15075
+ // ? true
15076
+ // : this.negativeMap?.topDownKeys() ?? [],
15077
+ // };
15078
+ // }
15079
+ destroy() {
15080
+ var _a, _b;
15081
+ (_a = this.positiveMap) == null ? void 0 : _a.clear();
15082
+ (_b = this.negativeMap) == null ? void 0 : _b.clear();
15083
+ delete this.positiveMap;
15084
+ delete this.negativeMap;
15085
+ }
15086
+ update(state) {
15087
+ const { positiveItems, negativeItems } = state;
15088
+ this.allNegative = negativeItems === true;
15089
+ this.allPositive = positiveItems === true;
15090
+ if (this.allNegative && this.allPositive) {
15091
+ throw `Cannot have both negativeItems and positiveItems be true!`;
15092
+ }
15093
+ if (negativeItems && negativeItems !== true) {
15094
+ if (!this.negativeMap) {
15095
+ this.negativeMap = /* @__PURE__ */ new Map();
15096
+ }
15097
+ this.negativeMap.clear();
15098
+ for (let k of negativeItems) {
15099
+ this.negativeMap.set(k, true);
15100
+ }
15101
+ if (this.positiveMap) {
15102
+ this.positiveMap.clear();
15103
+ }
15104
+ }
15105
+ if (positiveItems && positiveItems !== true) {
15106
+ if (!this.positiveMap) {
15107
+ this.positiveMap = /* @__PURE__ */ new Map();
15108
+ }
15109
+ this.positiveMap.clear();
15110
+ for (let k of positiveItems) {
15111
+ this.positiveMap.set(k, true);
15112
+ }
15113
+ if (this.negativeMap) {
15114
+ this.negativeMap.clear();
15115
+ }
15116
+ }
15117
+ }
15118
+ isDefaultNegativeSelection() {
15119
+ return this.allNegative;
15120
+ }
15121
+ isDefaultPositiveSelection() {
15122
+ return this.allPositive;
15123
+ }
15124
+ areAllNegative() {
15125
+ return this.allNegative && (this.positiveMap ? this.positiveMap.size === 0 : true);
15126
+ }
15127
+ areAllPositive() {
15128
+ return this.allPositive && (this.negativeMap ? this.negativeMap.size === 0 : true);
15129
+ }
15130
+ makeAllNegative() {
15131
+ this.update({
15132
+ negativeItems: true,
15133
+ positiveItems: []
15134
+ });
15135
+ }
15136
+ makeAllPositive() {
15137
+ this.update({
15138
+ positiveItems: true,
15139
+ negativeItems: []
15140
+ });
15141
+ }
15142
+ isItemPositive(key) {
15143
+ var _a, _b;
15144
+ if (this.allPositive === true) {
15145
+ if (this.allNegative === true) {
15146
+ throw 'Cannot have both positiveItems and negativeItems be "true"';
15147
+ }
15148
+ return !((_a = this.negativeMap) == null ? void 0 : _a.has(key));
15149
+ }
15150
+ return !!((_b = this.positiveMap) == null ? void 0 : _b.has(key));
15151
+ }
15152
+ isItemNegative(key) {
15153
+ return !this.isItemPositive(key);
15154
+ }
15155
+ setItemValue(key, shouldMakePositive) {
15156
+ var _a;
15157
+ if (shouldMakePositive === this.isItemPositive(key)) {
15158
+ return;
15159
+ }
15160
+ if (shouldMakePositive) {
15161
+ if (this.allNegative === true) {
15162
+ if (!this.positiveMap) {
15163
+ throw `No positiveMap found when trying to set item ${key} be positive`;
15164
+ }
15165
+ this.positiveMap.set(key, true);
15166
+ } else if (this.allPositive === true) {
15167
+ if (!this.negativeMap) {
15168
+ throw `No negativeMap found when trying to set item ${key} be positive`;
15169
+ }
15170
+ this.negativeMap.delete(key);
15171
+ }
15172
+ } else {
15173
+ if (this.allPositive === true) {
15174
+ if (!this.negativeMap) {
15175
+ throw `No negativeMap found when trying to set item ${key} be negative`;
15176
+ }
15177
+ this.negativeMap.set(key, true);
15178
+ } else if (this.allNegative === true) {
15179
+ if (!this.positiveMap) {
15180
+ throw `No positiveMap found when trying to set item ${key} be negative`;
15181
+ }
15182
+ (_a = this.positiveMap) == null ? void 0 : _a.delete(key);
15183
+ }
15184
+ }
15185
+ }
15186
+ makeItemNegative(key) {
15187
+ this.setItemValue(key, false);
15188
+ }
15189
+ makeItemPositive(key) {
15190
+ this.setItemValue(key, true);
15191
+ }
15192
+ toggleItem(key) {
15193
+ this.setItemValue(key, !this.isItemPositive(key));
15194
+ }
15195
+ };
15196
+
15197
+ // src/components/DataSource/RowDetailsState.ts
15198
+ var RowDetailsState = class extends BooleanCollectionState {
15199
+ constructor(state) {
15200
+ super(state);
15201
+ this.isRowDetailsExpanded = (key) => {
15202
+ return !!this.isItemPositive(key);
15203
+ };
15204
+ }
15205
+ getState() {
15206
+ var _a, _b, _c, _d;
15207
+ const expandedRows = this.allPositive ? true : [...(_b = (_a = this.positiveMap) == null ? void 0 : _a.keys()) != null ? _b : []];
15208
+ const collapsedRows = this.allNegative ? true : [...(_d = (_c = this.negativeMap) == null ? void 0 : _c.keys()) != null ? _d : []];
15209
+ return {
15210
+ expandedRows,
15211
+ collapsedRows
15212
+ };
15213
+ }
15214
+ getPositiveFromState(state) {
15215
+ return state.expandedRows;
15216
+ }
15217
+ getNegativeFromState(state) {
15218
+ return state.collapsedRows;
15219
+ }
15220
+ areAllCollapsed() {
15221
+ return this.areAllNegative();
15222
+ }
15223
+ areAllExpanded() {
15224
+ return this.areAllPositive();
15225
+ }
15226
+ collapseAll() {
15227
+ this.makeAllNegative();
15228
+ }
15229
+ expandAll() {
15230
+ this.makeAllPositive();
15231
+ }
15232
+ isRowDetailsCollapsed(key) {
15233
+ return !this.isRowDetailsExpanded(key);
15234
+ }
15235
+ setRowDetailsExpanded(key, shouldExpand) {
15236
+ return this.setItemValue(key, shouldExpand);
15237
+ }
15238
+ collapseRowDetails(key) {
15239
+ this.setRowDetailsExpanded(key, false);
15240
+ }
15241
+ expandRowDetails(key) {
15242
+ this.setRowDetailsExpanded(key, true);
15243
+ }
15244
+ toggleRowDetails(key) {
15245
+ this.toggleItem(key);
15246
+ }
15247
+ };
15248
+
15249
+ // src/components/InfiniteTable/api/getRowDetailsApi.ts
15250
+ function getRowDetailsApi(param) {
15251
+ const {
15252
+ dataSourceApi,
15253
+ getState,
15254
+ actions
15255
+ } = param;
15256
+ const rowDetailsApi = {
15257
+ collapseAllDetails() {
15258
+ actions.rowDetailsState = new RowDetailsState({
15259
+ collapsedRows: true,
15260
+ expandedRows: []
15261
+ });
15262
+ },
15263
+ expandAllDetails() {
15264
+ actions.rowDetailsState = new RowDetailsState({
15265
+ expandedRows: true,
15266
+ collapsedRows: []
15267
+ });
15268
+ },
15269
+ isRowDetailsCollapsed(pk) {
15270
+ const isRowDetailsExpanded = getState().isRowDetailsExpanded;
15271
+ if (!isRowDetailsExpanded) {
15272
+ return true;
15273
+ }
15274
+ const rowInfo = dataSourceApi.getRowInfoByPrimaryKey(pk);
15275
+ if (!rowInfo) {
15276
+ return true;
15277
+ }
15278
+ const expanded = isRowDetailsExpanded(rowInfo);
15279
+ return !expanded;
15280
+ },
15281
+ isRowDetailsExpanded(pk) {
15282
+ return !rowDetailsApi.isRowDetailsCollapsed(pk);
15283
+ },
15284
+ collapseRowDetails(pk) {
15285
+ const currentState = getState().rowDetailsState;
15286
+ if (!currentState) {
15287
+ console.error(
15288
+ `Cannot collapse row details via rowDetailsState, as no props.rowDetailsState is provided.`
15289
+ );
14387
15290
  return;
14388
15291
  }
14389
- const newCellSelection = new CellSelectionState(cellSelection);
14390
- newCellSelection.selectColumn(colId);
14391
- this.dataSourceActions.cellSelection = newCellSelection;
14392
- };
14393
- this.deselectColumn = (colId) => {
14394
- const cellSelection = this.getDataSourceState().cellSelection;
14395
- if (!cellSelection) {
15292
+ const state = new RowDetailsState(currentState);
15293
+ state.collapseRowDetails(pk);
15294
+ actions.rowDetailsState = state;
15295
+ },
15296
+ expandRowDetails(pk) {
15297
+ const currentState = getState().rowDetailsState;
15298
+ if (!currentState) {
15299
+ console.error(
15300
+ `Cannot expand row details via rowDetailsState, as no props.rowDetailsState is provided.`
15301
+ );
14396
15302
  return;
14397
15303
  }
14398
- const newCellSelection = new CellSelectionState(cellSelection);
14399
- newCellSelection.deselectColumn(colId);
14400
- this.dataSourceActions.cellSelection = newCellSelection;
14401
- };
14402
- this.getComputed = param.getComputed;
14403
- this.getDataSourceState = param.getDataSourceState;
14404
- this.dataSourceActions = param.dataSourceActions;
14405
- }
14406
- };
14407
- function getCellSelectionApi(param) {
14408
- const cellSelectionApi = new InfiniteTableCellSelectionApiImpl(param);
14409
- if (false) {
14410
- globalThis.cellSelectionApi = cellSelectionApi;
14411
- }
14412
- return cellSelectionApi;
15304
+ const state = new RowDetailsState(currentState);
15305
+ state.expandRowDetails(pk);
15306
+ actions.rowDetailsState = state;
15307
+ },
15308
+ toggleRowDetails(pk) {
15309
+ if (rowDetailsApi.isRowDetailsExpanded(pk)) {
15310
+ rowDetailsApi.collapseRowDetails(pk);
15311
+ } else {
15312
+ rowDetailsApi.expandRowDetails(pk);
15313
+ }
15314
+ }
15315
+ };
15316
+ return rowDetailsApi;
14413
15317
  }
14414
15318
 
14415
15319
  // src/components/InfiniteTable/api/getImperativeApi.ts
@@ -14651,7 +15555,7 @@ var InfiniteTableApiImpl = class {
14651
15555
  };
14652
15556
  this.getCellValues = (cellLocator) => {
14653
15557
  const { rowIndex: index, primaryKey, columnId } = cellLocator;
14654
- const { dataSourceApi } = this.context;
15558
+ const { dataSourceApi, getState } = this.context;
14655
15559
  const { computedColumnsMap } = this.getComputed();
14656
15560
  const rowIndex = index != null ? index : dataSourceApi.getIndexByPrimaryKey(primaryKey);
14657
15561
  const column = computedColumnsMap.get(columnId);
@@ -14669,11 +15573,14 @@ var InfiniteTableApiImpl = class {
14669
15573
  return null;
14670
15574
  }
14671
15575
  const self = this;
15576
+ const { isRowDetailsEnabled } = getState();
15577
+ const rowDetailsState = !isRowDetailsEnabled || typeof isRowDetailsEnabled === "function" && !isRowDetailsEnabled(rowInfo) ? false : this.rowDetailsApi.isRowDetailsExpanded(rowInfo.id) ? "expanded" : "collapsed";
14672
15578
  const valueContext = getFormattedValueContextForCell({
14673
15579
  column,
14674
15580
  rowInfo,
14675
15581
  columnsMap: computedColumnsMap,
14676
- context: __spreadProps(__spreadValues({}, this.context), { api: self })
15582
+ context: __spreadProps(__spreadValues({}, this.context), { api: self }),
15583
+ rowDetailState: rowDetailsState
14677
15584
  });
14678
15585
  return {
14679
15586
  value: valueContext.formattedValueContext.value,
@@ -14806,6 +15713,11 @@ var InfiniteTableApiImpl = class {
14806
15713
  dataSourceActions: context.dataSourceActions,
14807
15714
  getDataSourceState: context.getDataSourceState
14808
15715
  });
15716
+ this.rowDetailsApi = getRowDetailsApi({
15717
+ getState: context.getState,
15718
+ actions: context.actions,
15719
+ dataSourceApi: context.dataSourceApi
15720
+ });
14809
15721
  this.cellSelectionApi = getCellSelectionApi({
14810
15722
  dataSourceActions: context.dataSourceActions,
14811
15723
  getDataSourceState: context.getDataSourceState,
@@ -15406,8 +16318,9 @@ function useAutoSizeColumns() {
15406
16318
  }
15407
16319
 
15408
16320
  // src/components/InfiniteTable/hooks/useCellRendering.tsx
15409
- import { useCallback as useCallback19, useEffect as useEffect22, useRef as useRef23 } from "react";
15410
- import * as React51 from "react";
16321
+ import { useMemo as useMemo9 } from "react";
16322
+ import { useCallback as useCallback19, useEffect as useEffect22, useRef as useRef24 } from "react";
16323
+ import * as React53 from "react";
15411
16324
 
15412
16325
  // src/components/InfiniteTable/hooks/useYourBrain.ts
15413
16326
  function useYourBrain(param) {
@@ -15417,10 +16330,11 @@ function useYourBrain(param) {
15417
16330
  computedPinnedEndColumns,
15418
16331
  computedPinnedStartColumns,
15419
16332
  computedVisibleColumns,
16333
+ computedRowHeight,
15420
16334
  columnSize,
15421
- rowHeight,
15422
16335
  rowspan
15423
16336
  } = param;
16337
+ const rowHeight = computedRowHeight;
15424
16338
  useMatrixBrain(
15425
16339
  brain,
15426
16340
  {
@@ -15442,6 +16356,160 @@ function useYourBrain(param) {
15442
16356
  return brain;
15443
16357
  }
15444
16358
 
16359
+ // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableDetailRow.tsx
16360
+ import * as React52 from "react";
16361
+
16362
+ // src/components/InfiniteTable/components/rowDetails.css.ts
16363
+ var RowDetailsRecipe = createRuntimeFn({ defaultClassName: "rowDetails_RowDetailsRecipe__1qedcqn0", variantClassNames: {}, defaultVariants: {}, compoundVariants: [] });
16364
+
16365
+ // src/components/InfiniteTable/components/InfiniteTableRow/useRegisterDetail.ts
16366
+ import { useMemo as useMemo8, useRef as useRef23 } from "react";
16367
+ function restoreDetailStateForRowId(rowId, options) {
16368
+ const { masterState, detailContext } = options;
16369
+ const detailDataSourcesMap = masterState.detailDataSourcesStateToRestore;
16370
+ if (detailDataSourcesMap.has(rowId)) {
16371
+ const currentCachedState = detailDataSourcesMap.get(
16372
+ rowId
16373
+ );
16374
+ detailContext.assignState(currentCachedState);
16375
+ return true;
16376
+ }
16377
+ return false;
16378
+ }
16379
+ function updateDetailStateToRestoreForRowId(rowId, options) {
16380
+ const { detailState, masterState, masterActions, cacheEntryForRow } = options;
16381
+ const cacheMap = new Map(masterState.detailDataSourcesStateToRestore);
16382
+ const cacheValue = getDataSourceStateRestoreForDetails(detailState);
16383
+ if (!cacheEntryForRow.all) {
16384
+ if (!cacheEntryForRow.groupBy) {
16385
+ delete cacheValue.groupBy;
16386
+ }
16387
+ if (!cacheEntryForRow.sortInfo) {
16388
+ delete cacheValue.sortInfo;
16389
+ }
16390
+ if (!cacheEntryForRow.filterValue) {
16391
+ delete cacheValue.filterValue;
16392
+ }
16393
+ if (!cacheEntryForRow.data) {
16394
+ delete cacheValue.originalDataArray;
16395
+ }
16396
+ }
16397
+ cacheMap.set(rowId, cacheValue);
16398
+ masterActions.detailDataSourcesStateToRestore = cacheMap;
16399
+ }
16400
+ function useCurrentRowCache(rowId, rowDetailsCache) {
16401
+ const cacheCalledByRowDetailRenderer = useRef23(false);
16402
+ const currentRowCache = useMemo8(() => {
16403
+ return {
16404
+ getRowId: () => rowId,
16405
+ add: (value) => {
16406
+ cacheCalledByRowDetailRenderer.current = true;
16407
+ rowDetailsCache.add(rowId, value);
16408
+ },
16409
+ get: () => rowDetailsCache.get(rowId),
16410
+ delete: () => {
16411
+ cacheCalledByRowDetailRenderer.current = true;
16412
+ return rowDetailsCache.delete(rowId);
16413
+ },
16414
+ has: () => rowDetailsCache.has(rowId)
16415
+ };
16416
+ }, [rowDetailsCache, rowId]);
16417
+ return { currentRowCache, cacheCalledByRowDetailRenderer };
16418
+ }
16419
+ function useRegisterDetail(props) {
16420
+ const { rowDetailsCache, rowInfo } = props;
16421
+ const {
16422
+ getState: getMasterDataSourceState,
16423
+ componentActions: masterActions
16424
+ } = useDataSourceContextValue();
16425
+ const { currentRowCache, cacheCalledByRowDetailRenderer } = useCurrentRowCache(rowInfo.id, rowDetailsCache);
16426
+ const masterDetailContextValue = useMemo8(() => {
16427
+ const shouldRestoreState = getMasterDataSourceState().detailDataSourcesStateToRestore.has(
16428
+ rowInfo.id
16429
+ ) && currentRowCache.has();
16430
+ const registerDetail = once(
16431
+ (detailContext) => {
16432
+ if (!cacheCalledByRowDetailRenderer.current) {
16433
+ currentRowCache.add({ all: true });
16434
+ }
16435
+ if (!currentRowCache.has()) {
16436
+ requestAnimationFrame(() => {
16437
+ if (detailContext.componentState.destroyedRef.current) {
16438
+ return;
16439
+ }
16440
+ detailContext.componentActions.stateReadyAsDetails = true;
16441
+ });
16442
+ return;
16443
+ }
16444
+ restoreDetailStateForRowId(rowInfo.id, {
16445
+ masterState: getMasterDataSourceState(),
16446
+ detailContext
16447
+ });
16448
+ requestAnimationFrame(() => {
16449
+ if (detailContext.componentState.destroyedRef.current) {
16450
+ return;
16451
+ }
16452
+ detailContext.componentActions.stateReadyAsDetails = true;
16453
+ });
16454
+ detailContext.componentState.onCleanup.onChange(() => {
16455
+ const cacheEntryForRow = currentRowCache.get();
16456
+ if (!cacheEntryForRow) {
16457
+ return;
16458
+ }
16459
+ updateDetailStateToRestoreForRowId(rowInfo.id, {
16460
+ detailState: detailContext.getState(),
16461
+ masterActions,
16462
+ masterState: getMasterDataSourceState(),
16463
+ cacheEntryForRow
16464
+ });
16465
+ });
16466
+ }
16467
+ );
16468
+ return {
16469
+ registerDetail,
16470
+ shouldRestoreState
16471
+ };
16472
+ }, [rowInfo.id, currentRowCache]);
16473
+ return { masterDetailContextValue, currentRowCache };
16474
+ }
16475
+
16476
+ // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableDetailRow.tsx
16477
+ var { rootClassName: rootClassName12 } = internalProps;
16478
+ var InfiniteTableRowDetailsClassName = `${rootClassName12}ColumnCell`;
16479
+ function InfiniteTableDetailRowFn(props) {
16480
+ const DataSourceMasterDetailContext = getDataSourceMasterDetailContext();
16481
+ const {
16482
+ domRef,
16483
+ rowDetailRenderer,
16484
+ rowDetailHeight,
16485
+ rowInfo,
16486
+ detailOffset,
16487
+ rowDetailsCache
16488
+ } = props;
16489
+ const { masterDetailContextValue, currentRowCache } = useRegisterDetail({
16490
+ rowDetailsCache,
16491
+ rowInfo
16492
+ });
16493
+ return /* @__PURE__ */ React52.createElement(DataSourceMasterDetailContext.Provider, { value: masterDetailContextValue }, /* @__PURE__ */ React52.createElement(
16494
+ "div",
16495
+ {
16496
+ ref: domRef,
16497
+ className: join(InfiniteTableRowDetailsClassName, RowDetailsRecipe({})),
16498
+ style: {
16499
+ position: "absolute",
16500
+ top: `${detailOffset}px`,
16501
+ left: 0,
16502
+ width: `calc(${InternalVars.bodyWidth} - ${InternalVars.scrollbarWidthVertical})`,
16503
+ height: rowDetailHeight
16504
+ }
16505
+ },
16506
+ rowDetailRenderer(rowInfo, currentRowCache)
16507
+ ));
16508
+ }
16509
+ var InfiniteTableDetailRow = React52.memo(
16510
+ InfiniteTableDetailRowFn
16511
+ );
16512
+
15445
16513
  // src/components/InfiniteTable/hooks/useCellRendering.tsx
15446
16514
  var SCROLL_BOTTOM_OFFSET = 1;
15447
16515
  function useCellRendering(param) {
@@ -15452,6 +16520,8 @@ function useCellRendering(param) {
15452
16520
  computedPinnedEndColumns,
15453
16521
  computedVisibleColumns,
15454
16522
  computedColumnsMap,
16523
+ computedRowHeight,
16524
+ computedRowSizeCacheForDetails,
15455
16525
  fieldsToColumn,
15456
16526
  rowspan,
15457
16527
  toggleGroupRow,
@@ -15467,12 +16537,17 @@ function useCellRendering(param) {
15467
16537
  const getData = useLatest(dataArray);
15468
16538
  const {
15469
16539
  rowHeight,
16540
+ rowDetailHeight,
15470
16541
  groupRenderStrategy,
15471
16542
  brain,
15472
16543
  showZebraRows,
16544
+ rowDetailRenderer,
16545
+ isRowDetailsExpanded,
16546
+ isRowDetailsEnabled,
15473
16547
  cellClassName,
15474
16548
  cellStyle,
15475
16549
  rowStyle,
16550
+ rowDetailsCache,
15476
16551
  rowClassName,
15477
16552
  onScrollToTop,
15478
16553
  onScrollToBottom,
@@ -15486,12 +16561,12 @@ function useCellRendering(param) {
15486
16561
  computedPinnedStartColumns,
15487
16562
  computedPinnedEndColumns,
15488
16563
  computedVisibleColumns,
15489
- rowHeight,
16564
+ computedRowHeight,
15490
16565
  dataArray,
15491
16566
  bodySize,
15492
16567
  rowspan
15493
16568
  });
15494
- const scrollTopMaxRef = useRef23(0);
16569
+ const scrollTopMaxRef = useRef24(0);
15495
16570
  useEffect22(() => {
15496
16571
  return brain.onRenderCountChange(() => {
15497
16572
  scrollTopMaxRef.current = brain.scrollTopMax;
@@ -15560,6 +16635,13 @@ function useCellRendering(param) {
15560
16635
  if (!rowInfo) {
15561
16636
  return null;
15562
16637
  }
16638
+ const rowHeight2 = computedRowSizeCacheForDetails ? computedRowSizeCacheForDetails.getRowHeight(rowIndex) : heightWithRowspan;
16639
+ let rowDetailState = false;
16640
+ if (!isRowDetailsEnabled || typeof isRowDetailsEnabled === "function" && !isRowDetailsEnabled(rowInfo)) {
16641
+ rowDetailState = false;
16642
+ } else if (isRowDetailsExpanded) {
16643
+ rowDetailState = isRowDetailsExpanded(rowInfo) ? "expanded" : "collapsed";
16644
+ }
15563
16645
  const cellProps = {
15564
16646
  getData,
15565
16647
  virtualized: true,
@@ -15569,7 +16651,8 @@ function useCellRendering(param) {
15569
16651
  rowInfo,
15570
16652
  hidden,
15571
16653
  toggleGroupRow,
15572
- rowHeight: heightWithRowspan,
16654
+ rowHeight: rowHeight2,
16655
+ rowDetailState,
15573
16656
  onMouseEnter,
15574
16657
  onMouseLeave,
15575
16658
  domRef,
@@ -15582,10 +16665,14 @@ function useCellRendering(param) {
15582
16665
  cellStyle,
15583
16666
  cellClassName
15584
16667
  };
15585
- return /* @__PURE__ */ React51.createElement(InfiniteTableColumnCell, __spreadValues({}, cellProps));
16668
+ return /* @__PURE__ */ React53.createElement(InfiniteTableColumnCell, __spreadValues({}, cellProps));
15586
16669
  },
15587
16670
  [
15588
16671
  rowHeight,
16672
+ rowDetailHeight,
16673
+ computedRowSizeCacheForDetails,
16674
+ computedRowHeight,
16675
+ isRowDetailsExpanded,
15589
16676
  getData,
15590
16677
  computedVisibleColumns,
15591
16678
  computedColumnsMap,
@@ -15600,8 +16687,42 @@ function useCellRendering(param) {
15600
16687
  cellStyle
15601
16688
  ]
15602
16689
  );
16690
+ const renderDetailRow = useMemo9(() => {
16691
+ if (!isRowDetailsExpanded) {
16692
+ return void 0;
16693
+ }
16694
+ return (params) => {
16695
+ const { rowIndex, domRef } = params;
16696
+ const dataArray2 = getData();
16697
+ const rowInfo = dataArray2[rowIndex];
16698
+ if (!rowInfo || !isRowDetailsExpanded(rowInfo) || !computedRowSizeCacheForDetails) {
16699
+ return null;
16700
+ }
16701
+ const { rowDetailHeight: rowDetailHeight2, rowHeight: rowHeight2 } = computedRowSizeCacheForDetails.getSize(rowIndex);
16702
+ return /* @__PURE__ */ React53.createElement(
16703
+ InfiniteTableDetailRow,
16704
+ {
16705
+ rowInfo,
16706
+ rowDetailsCache,
16707
+ rowIndex,
16708
+ domRef,
16709
+ detailOffset: rowHeight2,
16710
+ rowDetailHeight: rowDetailHeight2,
16711
+ rowDetailRenderer
16712
+ }
16713
+ );
16714
+ };
16715
+ }, [
16716
+ ready,
16717
+ renderCell,
16718
+ rowDetailRenderer,
16719
+ rowDetailHeight,
16720
+ isRowDetailsExpanded,
16721
+ rowDetailsCache
16722
+ ]);
15603
16723
  return {
15604
- renderCell
16724
+ renderCell,
16725
+ renderDetailRow
15605
16726
  // repaintId,
15606
16727
  };
15607
16728
  }
@@ -15922,10 +17043,10 @@ function useColumnGroups() {
15922
17043
  }
15923
17044
 
15924
17045
  // src/components/InfiniteTable/hooks/useColumnRowspan.ts
15925
- import { useMemo as useMemo8 } from "react";
17046
+ import { useMemo as useMemo10 } from "react";
15926
17047
  function useColumnRowspan(computedVisibleColumns) {
15927
17048
  const { getState: getDataSourceState } = useDataSourceContextValue();
15928
- const rowspan = useMemo8(() => {
17049
+ const rowspan = useMemo10(() => {
15929
17050
  const colsWithRowspan = computedVisibleColumns.filter(
15930
17051
  (col) => typeof col.rowspan === "function"
15931
17052
  );
@@ -15970,7 +17091,7 @@ function useColumnSizeFn(columns) {
15970
17091
  }
15971
17092
 
15972
17093
  // src/components/InfiniteTable/hooks/useColumnsWhen.ts
15973
- import { useEffect as useEffect25, useLayoutEffect as useLayoutEffect10, useMemo as useMemo9 } from "react";
17094
+ import { useEffect as useEffect25, useLayoutEffect as useLayoutEffect11, useMemo as useMemo11 } from "react";
15974
17095
 
15975
17096
  // src/components/InfiniteTable/state/getInitialState.ts
15976
17097
  import { createRef } from "react";
@@ -16045,9 +17166,11 @@ function getCellSelector(cellPosition) {
16045
17166
  const selector2 = `.${InfiniteTableColumnCellClassName}[data-row-index${cellPosition ? `="${cellPosition.rowIndex}"` : ""}][data-col-index${cellPosition ? `="${cellPosition.colIndex}"` : ""}]`;
16046
17167
  return selector2;
16047
17168
  }
16048
- function initSetupState2() {
17169
+ function initSetupState2({
17170
+ debugId
17171
+ }) {
16049
17172
  const columnsGeneratedForGrouping = /* @__PURE__ */ new Map();
16050
- const brain = new MatrixBrain();
17173
+ const brain = new MatrixBrain(debugId);
16051
17174
  const headerBrain = new MatrixBrain("header");
16052
17175
  brain.onScroll((scrollPosition) => {
16053
17176
  headerBrain.setScrollPosition({
@@ -16097,6 +17220,7 @@ function initSetupState2() {
16097
17220
  contextMenu: buildSubscriptionCallback(),
16098
17221
  onFilterOperatorMenuClick: buildSubscriptionCallback(),
16099
17222
  onRowHeightCSSVarChange: buildSubscriptionCallback(),
17223
+ onRowDetailHeightCSSVarChange: buildSubscriptionCallback(),
16100
17224
  onColumnHeaderHeightCSSVarChange: buildSubscriptionCallback(),
16101
17225
  cellClick: buildSubscriptionCallback(),
16102
17226
  cellMouseDown: buildSubscriptionCallback(),
@@ -16123,6 +17247,7 @@ function initSetupState2() {
16123
17247
  }
16124
17248
  var forwardProps4 = (setupState) => {
16125
17249
  return {
17250
+ debugId: 1,
16126
17251
  scrollTopKey: 1,
16127
17252
  components: 1,
16128
17253
  id: 1,
@@ -16155,6 +17280,7 @@ var forwardProps4 = (setupState) => {
16155
17280
  columnDefaultEditable: 1,
16156
17281
  columnDefaultFilterable: 1,
16157
17282
  columnDefaultSortable: 1,
17283
+ rowDetailRenderer: 1,
16158
17284
  rowStyle: 1,
16159
17285
  cellStyle: 1,
16160
17286
  rowProps: 1,
@@ -16172,6 +17298,11 @@ var forwardProps4 = (setupState) => {
16172
17298
  scrollStopDelay: (scrollStopDelay) => scrollStopDelay != null ? scrollStopDelay : 250,
16173
17299
  viewportReservedWidth: (viewportReservedWidth) => viewportReservedWidth != null ? viewportReservedWidth : 0,
16174
17300
  resizableColumns: (resizableColumns) => resizableColumns != null ? resizableColumns : true,
17301
+ rowDetailsCache: (rowDetailsCache) => {
17302
+ return new RowDetailsCache(
17303
+ rowDetailsCache
17304
+ );
17305
+ },
16175
17306
  hideColumnWhenGrouped: (hideColumnWhenGrouped) => hideColumnWhenGrouped != null ? hideColumnWhenGrouped : false,
16176
17307
  columnMinWidth: (columnMinWidth) => columnMinWidth != null ? columnMinWidth : 30,
16177
17308
  columnMaxWidth: (columnMaxWidth) => columnMaxWidth != null ? columnMaxWidth : 5e3,
@@ -16197,7 +17328,8 @@ var forwardProps4 = (setupState) => {
16197
17328
  showZebraRows: (showZebraRows) => showZebraRows != null ? showZebraRows : true,
16198
17329
  showHoverRows: (showHoverRows) => showHoverRows != null ? showHoverRows : true,
16199
17330
  virtualizeColumns: (virtualizeColumns) => virtualizeColumns != null ? virtualizeColumns : true,
16200
- rowHeight: (rowHeight) => typeof rowHeight === "number" ? rowHeight : 0,
17331
+ rowHeight: (rowHeight) => typeof rowHeight === "number" || typeof rowHeight === "function" ? rowHeight : 0,
17332
+ rowDetailHeight: (rowHeight) => typeof rowHeight === "number" || typeof rowHeight === "function" ? rowHeight : 0,
16201
17333
  columnHeaderHeight: (columnHeaderHeight) => typeof columnHeaderHeight === "number" ? columnHeaderHeight : 30,
16202
17334
  columns: (columns) => toMap(columns, setupState.propsCache.get("columns")),
16203
17335
  columnVisibility: (columnVisibility) => columnVisibility != null ? columnVisibility : {},
@@ -16243,8 +17375,7 @@ var cleanupState = (state) => {
16243
17375
  state.columnMenuTargetRef.current = null;
16244
17376
  state.scrollerDOMRef.current = null;
16245
17377
  state.portalDOMRef.current = null;
16246
- state.onRowHeightCSSVarChange.destroy();
16247
- state.onColumnHeaderHeightCSSVarChange.destroy();
17378
+ state.onRowDetailHeightCSSVarChange.destroy();
16248
17379
  state.pinnedEndScrollListener.destroy();
16249
17380
  state.pinnedStartScrollListener.destroy();
16250
17381
  };
@@ -16262,6 +17393,7 @@ function getGroupByMap(groupBy) {
16262
17393
  return acc;
16263
17394
  }, /* @__PURE__ */ new Map());
16264
17395
  }
17396
+ var weakMap = /* @__PURE__ */ new WeakMap();
16265
17397
  var mapPropsToState = (params) => {
16266
17398
  var _a, _b, _c, _d;
16267
17399
  const { props, state, oldState, parentState } = params;
@@ -16273,8 +17405,34 @@ var mapPropsToState = (params) => {
16273
17405
  groupBy,
16274
17406
  groupColumn: props.groupColumn
16275
17407
  });
17408
+ let rowDetailsState = void 0;
17409
+ if (props.rowDetailRenderer) {
17410
+ rowDetailsState = props.rowDetailsState || state.rowDetailsState || props.defaultRowDetailsState;
17411
+ if (rowDetailsState && !(rowDetailsState instanceof RowDetailsState)) {
17412
+ rowDetailsState = new RowDetailsState(rowDetailsState);
17413
+ }
17414
+ rowDetailsState = rowDetailsState || new RowDetailsState({ expandedRows: [], collapsedRows: true });
17415
+ }
16276
17416
  const computedColumns = state.columnsWhenGrouping || state.columnsWhenInlineGroupRenderStrategy || state.columns;
17417
+ let isRowDetailsExpanded = rowDetailsState ? props.isRowDetailsExpanded : void 0;
17418
+ if (!isRowDetailsExpanded && rowDetailsState) {
17419
+ isRowDetailsExpanded = weakMap.get(rowDetailsState);
17420
+ if (!isRowDetailsExpanded) {
17421
+ isRowDetailsExpanded = (rowInfo) => {
17422
+ return rowDetailsState.isRowDetailsExpanded(
17423
+ rowInfo.id
17424
+ );
17425
+ };
17426
+ if (typeof rowDetailsState === "object") {
17427
+ weakMap.set(rowDetailsState, isRowDetailsExpanded);
17428
+ }
17429
+ }
17430
+ }
17431
+ const isRowDetailsEnabled = !props.rowDetailRenderer ? false : props.isRowDetailsEnabled || true;
16277
17432
  return {
17433
+ rowDetailsState,
17434
+ isRowDetailsExpanded,
17435
+ isRowDetailsEnabled,
16278
17436
  showColumnFilters: (_a = props.showColumnFilters) != null ? _a : !!parentState.filterValue,
16279
17437
  controlledColumnVisibility: !!props.columnVisibility,
16280
17438
  groupRenderStrategy,
@@ -16287,6 +17445,7 @@ var mapPropsToState = (params) => {
16287
17445
  columnGroupsMaxDepth: columnGroupsDepthsMap != state.columnGroupsDepthsMap ? Math.max(...columnGroupsDepthsMap.values(), 0) : state.columnGroupsMaxDepth,
16288
17446
  computedColumnGroups,
16289
17447
  rowHeightCSSVar: typeof props.rowHeight === "string" ? props.rowHeight : "",
17448
+ rowDetailHeightCSSVar: typeof props.rowDetailHeight === "string" ? props.rowDetailHeight : "",
16290
17449
  columnHeaderHeightCSSVar: typeof props.columnHeaderHeight === "string" ? props.columnHeaderHeight || ThemeVars.components.Header.columnHeaderHeight : ""
16291
17450
  };
16292
17451
  };
@@ -16419,7 +17578,7 @@ function useToggleGroupRow() {
16419
17578
 
16420
17579
  // src/components/InfiniteTable/hooks/useColumnsWhen.ts
16421
17580
  function useGroupByMap(groupBy) {
16422
- return useMemo9(() => getGroupByMap(groupBy), [groupBy]);
17581
+ return useMemo11(() => getGroupByMap(groupBy), [groupBy]);
16423
17582
  }
16424
17583
  function useColumnsWhen() {
16425
17584
  const {
@@ -16632,7 +17791,7 @@ function useHideColumns(groupByMap) {
16632
17791
  groupRenderStrategy
16633
17792
  }
16634
17793
  } = useComponentState();
16635
- useLayoutEffect10(() => {
17794
+ useLayoutEffect11(() => {
16636
17795
  if (groupRenderStrategy !== "multi-column") {
16637
17796
  return;
16638
17797
  }
@@ -16826,7 +17985,7 @@ function getColumnsWhenGrouping(params) {
16826
17985
  }
16827
17986
 
16828
17987
  // src/components/InfiniteTable/hooks/useComputedColumns.ts
16829
- import { useMemo as useMemo10 } from "react";
17988
+ import { useMemo as useMemo12 } from "react";
16830
17989
 
16831
17990
  // src/components/InfiniteTable/hooks/useRerenderOnKeyChange.ts
16832
17991
  import { useEffect as useEffect26 } from "react";
@@ -16895,7 +18054,7 @@ var useComputedColumns = ({
16895
18054
  computedColumnsMap,
16896
18055
  computedColumnsMapInInitialOrder,
16897
18056
  fieldsToColumn
16898
- } = useMemo10(() => {
18057
+ } = useMemo12(() => {
16899
18058
  return getComputedColumns({
16900
18059
  columns,
16901
18060
  scrollbarWidth: scrollbarWidth2,
@@ -16978,8 +18137,111 @@ var useComputedColumns = ({
16978
18137
  return result;
16979
18138
  };
16980
18139
 
18140
+ // src/components/InfiniteTable/hooks/useComputedRowHeight.ts
18141
+ import { useMemo as useMemo13 } from "react";
18142
+ var RowSizeCache = class {
18143
+ constructor() {
18144
+ this.rowHeight = /* @__PURE__ */ new Map();
18145
+ this.rowDetailHeight = /* @__PURE__ */ new Map();
18146
+ this.getRowHeight = (index) => {
18147
+ var _a;
18148
+ return (_a = this.rowHeight.get(index)) != null ? _a : 0;
18149
+ };
18150
+ this.getRowDetailHeight = (index) => {
18151
+ var _a;
18152
+ return (_a = this.rowDetailHeight.get(index)) != null ? _a : 0;
18153
+ };
18154
+ }
18155
+ getTotalRowHeight(index) {
18156
+ return this.getRowHeight(index) + this.getRowDetailHeight(index);
18157
+ }
18158
+ getSize(index) {
18159
+ const rowHeight = this.getRowHeight(index);
18160
+ const rowDetailHeight = this.getRowDetailHeight(index);
18161
+ return {
18162
+ rowHeight,
18163
+ rowDetailHeight,
18164
+ totalRowHeight: rowHeight + rowDetailHeight
18165
+ };
18166
+ }
18167
+ };
18168
+ function getComputedRowHeight(param, cache) {
18169
+ const initialRowDetailHeight = param.rowDetailHeight;
18170
+ const initialRowHeight = param.rowHeight;
18171
+ const { isRowDetailsExpanded, isRowDetailsEnabled, getDataSourceState } = param;
18172
+ if (!isRowDetailsExpanded) {
18173
+ if (typeof initialRowHeight === "function") {
18174
+ return (index) => {
18175
+ if (cache && cache.rowHeight.has(index)) {
18176
+ return cache.rowHeight.get(index);
18177
+ }
18178
+ const item = getDataSourceState().dataArray[index];
18179
+ const result2 = !item ? 0 : initialRowHeight(item);
18180
+ if (cache) {
18181
+ cache.rowHeight.set(index, result2);
18182
+ }
18183
+ return result2;
18184
+ };
18185
+ }
18186
+ return initialRowHeight;
18187
+ }
18188
+ const rowHeightAsFn = typeof initialRowHeight === "function";
18189
+ const rowDetailHeightAsFn = typeof initialRowDetailHeight === "function";
18190
+ const result = (index) => {
18191
+ if (cache && cache.rowHeight.has(index) && cache.rowDetailHeight.has(index)) {
18192
+ const result2 = cache.rowHeight.get(index) + cache.rowDetailHeight.get(index);
18193
+ return result2;
18194
+ }
18195
+ const item = getDataSourceState().dataArray[index];
18196
+ if (!item) {
18197
+ if (cache) {
18198
+ cache.rowHeight.set(index, 0);
18199
+ cache.rowDetailHeight.set(index, 0);
18200
+ }
18201
+ return 0;
18202
+ }
18203
+ const rowHeight = rowHeightAsFn ? initialRowHeight(item) : initialRowHeight;
18204
+ const expandable = !isRowDetailsEnabled || typeof isRowDetailsEnabled === "function" && isRowDetailsEnabled(item) === false ? false : true;
18205
+ if (!expandable || !isRowDetailsExpanded(item)) {
18206
+ if (cache) {
18207
+ cache.rowHeight.set(index, rowHeight);
18208
+ cache.rowDetailHeight.set(index, 0);
18209
+ }
18210
+ return rowHeight;
18211
+ }
18212
+ let rowDetailHeight = 0;
18213
+ if (rowDetailHeightAsFn) {
18214
+ rowDetailHeight = initialRowDetailHeight(item);
18215
+ } else {
18216
+ rowDetailHeight = initialRowDetailHeight;
18217
+ }
18218
+ if (cache) {
18219
+ cache.rowHeight.set(index, rowHeight);
18220
+ cache.rowDetailHeight.set(index, rowDetailHeight);
18221
+ }
18222
+ return rowHeight + rowDetailHeight;
18223
+ };
18224
+ return result;
18225
+ }
18226
+ function useComputedRowHeight(param) {
18227
+ return useMemo13(() => {
18228
+ const computedRowSizeCache = new RowSizeCache();
18229
+ const computedRowHeight = getComputedRowHeight(param, computedRowSizeCache);
18230
+ return {
18231
+ computedRowHeight,
18232
+ computedRowSizeCacheForDetails: param.isRowDetailsExpanded ? computedRowSizeCache : void 0
18233
+ };
18234
+ }, [
18235
+ param.rowHeight,
18236
+ param.rowDetailHeight,
18237
+ param.isRowDetailsExpanded,
18238
+ param.isRowDetailsEnabled,
18239
+ param.getDataSourceState
18240
+ ]);
18241
+ }
18242
+
16981
18243
  // src/components/InfiniteTable/hooks/useScrollbars.ts
16982
- import { useState as useState16, useEffect as useEffect27, useLayoutEffect as useLayoutEffect11 } from "react";
18244
+ import { useState as useState16, useEffect as useEffect27, useLayoutEffect as useLayoutEffect12 } from "react";
16983
18245
  var INITIAL_SCROLLBARS = {
16984
18246
  vertical: false,
16985
18247
  horizontal: false
@@ -16997,7 +18259,7 @@ function useScrollbars(brain) {
16997
18259
  });
16998
18260
  });
16999
18261
  }, [brain]);
17000
- useLayoutEffect11(() => {
18262
+ useLayoutEffect12(() => {
17001
18263
  const dataSourceState = getDataSourceState();
17002
18264
  const { onScrollbarsChange } = getInfiniteTableState();
17003
18265
  const { notifyScrollbarsChange } = dataSourceState;
@@ -17029,14 +18291,23 @@ function useComputed() {
17029
18291
  columnDefaultEditable,
17030
18292
  columnDefaultFilterable,
17031
18293
  columnTypes,
18294
+ rowHeight,
18295
+ rowDetailHeight,
18296
+ isRowDetailsExpanded,
18297
+ isRowDetailsEnabled,
17032
18298
  brain,
17033
18299
  bodySize,
17034
18300
  showSeparatePivotColumnForSingleAggregation
17035
18301
  } = componentState;
17036
18302
  useState17(() => {
17037
- componentState.onRowHeightCSSVarChange.onChange((rowHeight) => {
17038
- if (rowHeight) {
17039
- componentActions.rowHeight = rowHeight;
18303
+ componentState.onRowHeightCSSVarChange.onChange((rowHeight2) => {
18304
+ if (rowHeight2) {
18305
+ componentActions.rowHeight = rowHeight2;
18306
+ }
18307
+ });
18308
+ componentState.onRowDetailHeightCSSVarChange.onChange((rowDetailHeight2) => {
18309
+ if (rowDetailHeight2) {
18310
+ componentActions.rowDetailHeight = rowDetailHeight2;
17040
18311
  }
17041
18312
  });
17042
18313
  componentState.onColumnHeaderHeightCSSVarChange.onChange(
@@ -17131,9 +18402,18 @@ function useComputed() {
17131
18402
  }
17132
18403
  });
17133
18404
  });
18405
+ const { computedRowHeight, computedRowSizeCacheForDetails } = useComputedRowHeight({
18406
+ rowDetailHeight,
18407
+ rowHeight,
18408
+ isRowDetailsExpanded,
18409
+ isRowDetailsEnabled,
18410
+ getDataSourceState
18411
+ });
17134
18412
  return {
17135
18413
  multiRowSelector,
17136
18414
  multiCellSelector,
18415
+ computedRowSizeCacheForDetails,
18416
+ computedRowHeight,
17137
18417
  scrollbars,
17138
18418
  columnSize,
17139
18419
  rowspan,
@@ -17163,7 +18443,7 @@ function useComputed() {
17163
18443
  }
17164
18444
 
17165
18445
  // src/components/InfiniteTable/hooks/useLicense/useLicense.ts
17166
- import { useMemo as useMemo11 } from "react";
18446
+ import { useMemo as useMemo14 } from "react";
17167
18447
 
17168
18448
  // src/components/InfiniteTable/hooks/useLicense/crc32.ts
17169
18449
  var DEFAULT_ReversedPolynomial = 3988292384;
@@ -17332,10 +18612,10 @@ var isInsideSandbox = () => {
17332
18612
  };
17333
18613
  var isInsidePlayground = isInsideSandbox() || isInsideSandpack();
17334
18614
  var useLicense = (licenseKey = "") => {
17335
- const valid = useMemo11(() => {
18615
+ const valid = useMemo14(() => {
17336
18616
  let valid2 = isValidLicense(licenseKey, {
17337
18617
  publishedAt: 1624970570587,
17338
- version: "3.1.6"
18618
+ version: "3.2.0"
17339
18619
  });
17340
18620
  if (!licenseKey && !valid2 && isInsidePlayground) {
17341
18621
  return true;
@@ -17346,11 +18626,11 @@ var useLicense = (licenseKey = "") => {
17346
18626
  };
17347
18627
 
17348
18628
  // src/components/InfiniteTable/hooks/useScrollToActiveCell.ts
17349
- import { useRef as useRef24, useEffect as useEffect29 } from "react";
18629
+ import { useRef as useRef25, useEffect as useEffect29 } from "react";
17350
18630
  var RETRIES = 10;
17351
18631
  function useScrollToActiveCell(activeCellIndex, dataCount, imperativeApi) {
17352
- const didScrollRef = useRef24(false);
17353
- const rafId = useRef24(null);
18632
+ const didScrollRef = useRef25(false);
18633
+ const rafId = useRef25(null);
17354
18634
  useEffect29(() => {
17355
18635
  if (activeCellIndex != null) {
17356
18636
  didScrollRef.current = false;
@@ -17385,11 +18665,11 @@ function useScrollToActiveCell(activeCellIndex, dataCount, imperativeApi) {
17385
18665
  }
17386
18666
 
17387
18667
  // src/components/InfiniteTable/hooks/useScrollToActiveRow.ts
17388
- import { useRef as useRef25, useEffect as useEffect30 } from "react";
18668
+ import { useRef as useRef26, useEffect as useEffect30 } from "react";
17389
18669
  var RETRIES2 = 10;
17390
18670
  function useScrollToActiveRow(activeRowIndex, dataCount, imperativeApi) {
17391
- const didScrollRef = useRef25(false);
17392
- const rafId = useRef25(null);
18671
+ const didScrollRef = useRef26(false);
18672
+ const rafId = useRef26(null);
17393
18673
  useEffect30(() => {
17394
18674
  if (activeRowIndex != null) {
17395
18675
  didScrollRef.current = false;
@@ -17425,7 +18705,7 @@ function useScrollToActiveRow(activeRowIndex, dataCount, imperativeApi) {
17425
18705
  var toCSSVarName = (value) => `--infinite-${value}`;
17426
18706
 
17427
18707
  // src/components/InfiniteTable/eventHandlers/index.ts
17428
- import { useCallback as useCallback22, useMemo as useMemo12, useEffect as useEffect31 } from "react";
18708
+ import { useCallback as useCallback22, useMemo as useMemo15, useEffect as useEffect31 } from "react";
17429
18709
 
17430
18710
  // src/components/InfiniteTable/eventHandlers/onCellClick.ts
17431
18711
  function onCellClick(context, event) {
@@ -17873,7 +19153,7 @@ var RETRIES3 = 10;
17873
19153
  var SORT_ASC2 = (a, b) => a - b;
17874
19154
  function isCellFocusable(cellPos, context) {
17875
19155
  const { getComputed, getDataSourceState, getState, api, dataSourceApi } = context;
17876
- const { editingCell } = getState();
19156
+ const { editingCell, isRowDetailsEnabled } = getState();
17877
19157
  const { dataArray } = getDataSourceState();
17878
19158
  const { computedVisibleColumns, computedColumnsMap } = getComputed();
17879
19159
  const column = computedVisibleColumns[cellPos.colIndex];
@@ -17889,14 +19169,17 @@ function isCellFocusable(cellPos, context) {
17889
19169
  if (column.contentFocusable === true) {
17890
19170
  return true;
17891
19171
  }
19172
+ const rowInfo = dataArray[cellPos.rowIndex];
19173
+ const rowDetailState = !isRowDetailsEnabled || typeof isRowDetailsEnabled === "function" && !isRowDetailsEnabled(rowInfo) ? false : api.rowDetailsApi.isRowDetailsExpanded(rowInfo.id) ? "expanded" : "collapsed";
17892
19174
  const columnApi = getColumnApiForColumn(column.id, context);
17893
19175
  return column.contentFocusable(__spreadProps(__spreadValues({
17894
19176
  column
17895
19177
  }, getFormattedValueContextForCell({
17896
19178
  column,
17897
- rowInfo: dataArray[cellPos.rowIndex],
19179
+ rowInfo,
17898
19180
  columnsMap: computedColumnsMap,
17899
- context
19181
+ context,
19182
+ rowDetailState
17900
19183
  }).formattedValueContext), {
17901
19184
  columnApi,
17902
19185
  api,
@@ -18144,7 +19427,7 @@ function useEventHandlersContext() {
18144
19427
  componentActions: dataSourceActions,
18145
19428
  api: dataSourceApi
18146
19429
  } = useDataSourceContextValue();
18147
- const context = useMemo12(() => {
19430
+ const context = useMemo15(() => {
18148
19431
  const context2 = {
18149
19432
  getComputed,
18150
19433
  dataSourceApi,
@@ -18229,11 +19512,11 @@ function useDOMEventHandlers() {
18229
19512
  import { useEffect as useEffect35 } from "react";
18230
19513
 
18231
19514
  // src/components/hooks/useOverlay/index.tsx
18232
- import * as React52 from "react";
19515
+ import * as React54 from "react";
18233
19516
  import {
18234
19517
  useCallback as useCallback23,
18235
19518
  useEffect as useEffect33,
18236
- useLayoutEffect as useLayoutEffect12,
19519
+ useLayoutEffect as useLayoutEffect13,
18237
19520
  useState as useState18
18238
19521
  } from "react";
18239
19522
  import { createPortal as createPortal2 } from "react-dom";
@@ -18620,10 +19903,10 @@ function retrieveElement(elementGetter) {
18620
19903
  });
18621
19904
  }
18622
19905
  function DefaultOverlayPortal(props) {
18623
- return /* @__PURE__ */ React52.createElement("div", { style: { position: "fixed", top: 0, left: 0 } }, props.children);
19906
+ return /* @__PURE__ */ React54.createElement("div", { style: { position: "fixed", top: 0, left: 0 } }, props.children);
18624
19907
  }
18625
19908
  function OverlayContent(props) {
18626
- const nodeRef = React52.useRef(null);
19909
+ const nodeRef = React54.useRef(null);
18627
19910
  useEffect33(() => {
18628
19911
  return props.realign.onChange((handle) => {
18629
19912
  if (nodeRef.current && handle) {
@@ -18631,7 +19914,7 @@ function OverlayContent(props) {
18631
19914
  }
18632
19915
  });
18633
19916
  }, [props.realign]);
18634
- return /* @__PURE__ */ React52.createElement(
19917
+ return /* @__PURE__ */ React54.createElement(
18635
19918
  "div",
18636
19919
  {
18637
19920
  style: { position: "absolute", top: 0, left: 0 },
@@ -18686,7 +19969,7 @@ function alignOverlayNode(node, params) {
18686
19969
  }
18687
19970
  function useOverlayPortal(content, portalContainer) {
18688
19971
  const [container, setContainer] = useState18(null);
18689
- useLayoutEffect12(() => {
19972
+ useLayoutEffect13(() => {
18690
19973
  function getContainer() {
18691
19974
  return __async(this, null, function* () {
18692
19975
  const container2 = portalContainer ? yield retrieveElement(portalContainer) : null;
@@ -18702,22 +19985,22 @@ function useOverlayPortal(content, portalContainer) {
18702
19985
  }, [portalContainer]);
18703
19986
  return portalContainer ? container ? createPortal2(content, container) : (
18704
19987
  // we're probably still fetching the container
18705
- /* @__PURE__ */ React52.createElement(React52.Fragment, null)
18706
- ) : portalContainer === null || portalContainer === false ? content : /* @__PURE__ */ React52.createElement(DefaultOverlayPortal, null, content);
19988
+ /* @__PURE__ */ React54.createElement(React54.Fragment, null)
19989
+ ) : portalContainer === null || portalContainer === false ? content : /* @__PURE__ */ React54.createElement(DefaultOverlayPortal, null, content);
18707
19990
  }
18708
19991
  function getIdForReactOnlyChild(children) {
18709
- if (React52.Children.count(children) === 1) {
18710
- const child = React52.Children.only(children);
18711
- if (React52.isValidElement(child)) {
19992
+ if (React54.Children.count(children) === 1) {
19993
+ const child = React54.Children.only(children);
19994
+ if (React54.isValidElement(child)) {
18712
19995
  return child.props.id || child.key;
18713
19996
  }
18714
19997
  }
18715
19998
  return null;
18716
19999
  }
18717
20000
  function injectPortalContainerAndConstrainInMenuChild(children, portalContainer, constrainTo) {
18718
- if (React52.Children.count(children) === 1) {
18719
- const child = React52.Children.only(children);
18720
- if (React52.isValidElement(child) && child.props[propToIdentifyMenu]) {
20001
+ if (React54.Children.count(children) === 1) {
20002
+ const child = React54.Children.only(children);
20003
+ if (React54.isValidElement(child) && child.props[propToIdentifyMenu]) {
18721
20004
  const newProps = {};
18722
20005
  if (child.props.portalContainer === void 0) {
18723
20006
  newProps.portalContainer = portalContainer;
@@ -18725,7 +20008,7 @@ function injectPortalContainerAndConstrainInMenuChild(children, portalContainer,
18725
20008
  if (child.props.constrainTo === void 0) {
18726
20009
  newProps.constrainTo = constrainTo;
18727
20010
  }
18728
- return React52.cloneElement(child, newProps);
20011
+ return React54.cloneElement(child, newProps);
18729
20012
  }
18730
20013
  }
18731
20014
  return children;
@@ -18741,7 +20024,7 @@ function useOverlay(params) {
18741
20024
  const contentForPortal = [];
18742
20025
  for (const [_2, handle] of handles) {
18743
20026
  contentForPortal.push(
18744
- /* @__PURE__ */ React52.createElement(OverlayContent, __spreadProps(__spreadValues({}, handle), { key: handle.key }))
20027
+ /* @__PURE__ */ React54.createElement(OverlayContent, __spreadProps(__spreadValues({}, handle), { key: handle.key }))
18745
20028
  );
18746
20029
  }
18747
20030
  return contentForPortal;
@@ -18786,7 +20069,7 @@ function useOverlay(params) {
18786
20069
  },
18787
20070
  [handles, rootParams.portalContainer, updateContent]
18788
20071
  );
18789
- React52.useEffect(() => {
20072
+ React54.useEffect(() => {
18790
20073
  if (handleToRealign) {
18791
20074
  const handle = handles.get(handleToRealign);
18792
20075
  if (handle) {
@@ -18805,7 +20088,7 @@ function useOverlay(params) {
18805
20088
  handles.clear();
18806
20089
  updateContent();
18807
20090
  };
18808
- React52.useEffect(() => {
20091
+ React54.useEffect(() => {
18809
20092
  }, []);
18810
20093
  return {
18811
20094
  portal,
@@ -18817,27 +20100,27 @@ function useOverlay(params) {
18817
20100
  }
18818
20101
 
18819
20102
  // src/components/InfiniteTable/utils/getMenuForColumn.tsx
18820
- import * as React58 from "react";
20103
+ import * as React60 from "react";
18821
20104
 
18822
20105
  // src/components/Menu/index.tsx
18823
- import * as React56 from "react";
20106
+ import * as React58 from "react";
18824
20107
 
18825
20108
  // src/components/Menu/getMenuState.tsx
18826
- import * as React54 from "react";
20109
+ import * as React56 from "react";
18827
20110
 
18828
20111
  // src/components/Menu/childrenToRuntimeItems.tsx
18829
- import * as React53 from "react";
20112
+ import * as React55 from "react";
18830
20113
 
18831
20114
  // src/components/Menu/MenuCls.css.ts
18832
- var MenuCls = "MenuCls_MenuCls__db3arf0 utilities_boxSizingBorderBox__16lm1iw0 utilities_position_relative__16lm1iw1 utilities_display_inlineGrid__16lm1iw15 utilities_flexFlow_column__16lm1iw1l utilities_margin_none__16lm1iw8";
18833
- var MenuItemCls = createRuntimeFn({ defaultClassName: "MenuCls_MenuItemCls__db3arf2 utilities_display_flex__16lm1iwy utilities_alignItems_center__16lm1iw1p utilities_userSelect_none__16lm1iw16", variantClassNames: { disabled: { true: "MenuCls_MenuItemCls_disabled_true__db3arf3 utilities_cursor_default__16lm1iwi utilities_userSelect_none__16lm1iw16", false: "utilities_cursor_pointer__16lm1iwh" }, active: { true: "MenuCls_MenuItemCls_active_true__db3arf5", false: "MenuCls_MenuItemCls_active_false__db3arf6" }, pressed: { false: "MenuCls_MenuItemCls_pressed_false__db3arf7", true: "MenuCls_MenuItemCls_pressed_true__db3arf8" }, keyboardActive: { true: "MenuCls_MenuItemCls_keyboardActive_true__db3arf9", false: "MenuCls_MenuItemCls_keyboardActive_false__db3arfa" } }, defaultVariants: {}, compoundVariants: [[{ active: true, disabled: false }, "MenuCls_MenuItemCls_compound_0__db3arfb"], [{ pressed: true, active: true, disabled: false }, "MenuCls_MenuItemCls_compound_1__db3arfc"]] });
20115
+ var MenuCls = "MenuCls_MenuCls__db3arf0 utilities_boxSizingBorderBox__16lm1iw0 utilities_position_relative__16lm1iw1 utilities_display_inlineGrid__16lm1iw16 utilities_flexFlow_column__16lm1iw1m utilities_margin_none__16lm1iw8";
20116
+ var MenuItemCls = createRuntimeFn({ defaultClassName: "MenuCls_MenuItemCls__db3arf2 utilities_display_flex__16lm1iwz utilities_alignItems_center__16lm1iw1q utilities_userSelect_none__16lm1iw17", variantClassNames: { disabled: { true: "MenuCls_MenuItemCls_disabled_true__db3arf3 utilities_cursor_default__16lm1iwj utilities_userSelect_none__16lm1iw17", false: "utilities_cursor_pointer__16lm1iwi" }, active: { true: "MenuCls_MenuItemCls_active_true__db3arf5", false: "MenuCls_MenuItemCls_active_false__db3arf6" }, pressed: { false: "MenuCls_MenuItemCls_pressed_false__db3arf7", true: "MenuCls_MenuItemCls_pressed_true__db3arf8" }, keyboardActive: { true: "MenuCls_MenuItemCls_keyboardActive_true__db3arf9", false: "MenuCls_MenuItemCls_keyboardActive_false__db3arfa" } }, defaultVariants: {}, compoundVariants: [[{ active: true, disabled: false }, "MenuCls_MenuItemCls_compound_0__db3arfb"], [{ pressed: true, active: true, disabled: false }, "MenuCls_MenuItemCls_compound_1__db3arfc"]] });
18834
20117
  var MenuRowCls = "MenuCls_MenuRowCls__db3arf1";
18835
20118
  var MenuSeparatorCls = "MenuCls_MenuSeparatorCls__db3arfd";
18836
20119
 
18837
20120
  // src/components/Menu/childrenToRuntimeItems.tsx
18838
20121
  var SEPARATOR = "-";
18839
20122
  function MenuSeparator() {
18840
- return /* @__PURE__ */ React53.createElement("hr", { className: MenuSeparatorCls });
20123
+ return /* @__PURE__ */ React55.createElement("hr", { className: MenuSeparatorCls });
18841
20124
  }
18842
20125
  var toRuntimeItem = ({
18843
20126
  columns,
@@ -18846,7 +20129,7 @@ var toRuntimeItem = ({
18846
20129
  menuId
18847
20130
  }, item) => {
18848
20131
  const menuItem = item && (item.key != null || item.label != null) ? item : null;
18849
- const menuDecoration = menuItem === null ? item === SEPARATOR ? /* @__PURE__ */ React53.createElement(MenuSeparator, null) : item : null;
20132
+ const menuDecoration = menuItem === null ? item === SEPARATOR ? /* @__PURE__ */ React55.createElement(MenuSeparator, null) : item : null;
18850
20133
  const runtimeItem = menuItem != null ? {
18851
20134
  type: "item",
18852
20135
  parentMenuId: menuId,
@@ -18874,7 +20157,7 @@ var toRuntimeItem = ({
18874
20157
  return runtimeItem;
18875
20158
  };
18876
20159
  function childrenToRuntimeItems(context, children) {
18877
- return React53.Children.map(children, (child) => {
20160
+ return React55.Children.map(children, (child) => {
18878
20161
  if (child == null ? void 0 : child.props.__is_menu_item) {
18879
20162
  const itemProps = __spreadValues({}, child.props);
18880
20163
  if (!itemProps.key) {
@@ -18895,7 +20178,7 @@ function childrenToRuntimeItems(context, children) {
18895
20178
  // src/components/Menu/getMenuState.tsx
18896
20179
  var SUBMENU_COL_NAME = "submenu";
18897
20180
  function getInitialMenuState() {
18898
- const domRef = React54.createRef();
20181
+ const domRef = React56.createRef();
18899
20182
  return {
18900
20183
  keyboardActiveItemKey: null,
18901
20184
  activeItemKey: null,
@@ -18950,7 +20233,7 @@ var deriveStateFromProps2 = (params) => {
18950
20233
  columns.push({
18951
20234
  name: SUBMENU_COL_NAME,
18952
20235
  render: ({ domProps, item }) => {
18953
- return item.menu ? /* @__PURE__ */ React54.createElement("div", __spreadValues({}, domProps), /* @__PURE__ */ React54.createElement(ExpanderIcon, { expanded: false })) : /* @__PURE__ */ React54.createElement("div", __spreadValues({}, domProps));
20236
+ return item.menu ? /* @__PURE__ */ React56.createElement("div", __spreadValues({}, domProps), /* @__PURE__ */ React56.createElement(ExpanderIcon, { expanded: false })) : /* @__PURE__ */ React56.createElement("div", __spreadValues({}, domProps));
18954
20237
  }
18955
20238
  });
18956
20239
  }
@@ -18967,11 +20250,11 @@ var deriveStateFromProps2 = (params) => {
18967
20250
  };
18968
20251
 
18969
20252
  // src/components/Menu/Menu.tsx
18970
- import * as React55 from "react";
20253
+ import * as React57 from "react";
18971
20254
  import {
18972
20255
  useCallback as useCallback25,
18973
- useLayoutEffect as useLayoutEffect13,
18974
- useRef as useRef28,
20256
+ useLayoutEffect as useLayoutEffect14,
20257
+ useRef as useRef29,
18975
20258
  useState as useState20
18976
20259
  } from "react";
18977
20260
 
@@ -19192,17 +20475,17 @@ var MenuTriangleContext = class {
19192
20475
  };
19193
20476
 
19194
20477
  // src/components/Menu/MenuContext.ts
19195
- import { createContext as createContext6, useContext as useContext8 } from "react";
19196
- var MenuContext = createContext6(null);
20478
+ import { createContext as createContext7, useContext as useContext8 } from "react";
20479
+ var MenuContext = createContext7(null);
19197
20480
  function useMenuContext() {
19198
20481
  const contextValue = useContext8(MenuContext);
19199
20482
  return contextValue;
19200
20483
  }
19201
20484
 
19202
20485
  // src/components/hooks/useMounted.ts
19203
- import { useCallback as useCallback24, useEffect as useEffect34, useRef as useRef27 } from "react";
20486
+ import { useCallback as useCallback24, useEffect as useEffect34, useRef as useRef28 } from "react";
19204
20487
  function useMounted() {
19205
- let mountedRef = useRef27(true);
20488
+ let mountedRef = useRef28(true);
19206
20489
  useEffect34(() => {
19207
20490
  mountedRef.current = true;
19208
20491
  return () => {
@@ -19232,7 +20515,7 @@ function renderSubmenuForItem(item, config) {
19232
20515
  if (typeof itemMenu === "function") {
19233
20516
  itemMenu = itemMenu();
19234
20517
  }
19235
- return /* @__PURE__ */ React55.createElement(
20518
+ return /* @__PURE__ */ React57.createElement(
19236
20519
  Menu,
19237
20520
  __spreadProps(__spreadValues({
19238
20521
  key: overlayId,
@@ -19371,7 +20654,7 @@ function MenuComponent(props) {
19371
20654
  const isMounted = useMounted();
19372
20655
  const [submenuApi, setSubmenuApi] = useState20(null);
19373
20656
  let renderedChildren = null;
19374
- useLayoutEffect13(() => {
20657
+ useLayoutEffect14(() => {
19375
20658
  const { runtimeItems: runtimeItems2 } = getState();
19376
20659
  const activeItem = runtimeItems2.filter(
19377
20660
  (item) => item.type === "item" && activeItemKey === item.key
@@ -19445,7 +20728,7 @@ function MenuComponent(props) {
19445
20728
  setActiveItemKey(key);
19446
20729
  }
19447
20730
  });
19448
- renderedChildren = runtimeItems.map((runtimeItem, index) => /* @__PURE__ */ React55.createElement(
20731
+ renderedChildren = runtimeItems.map((runtimeItem, index) => /* @__PURE__ */ React57.createElement(
19449
20732
  RuntimeItemRenderer,
19450
20733
  {
19451
20734
  key: runtimeItem.type === "item" ? runtimeItem.key : index,
@@ -19593,7 +20876,7 @@ function MenuComponent(props) {
19593
20876
  }
19594
20877
  });
19595
20878
  }, []);
19596
- const shouldSelectFirstItemOnFocus = useRef28(true);
20879
+ const shouldSelectFirstItemOnFocus = useRef29(true);
19597
20880
  const hideAll = useCallback25(() => {
19598
20881
  var _a;
19599
20882
  const state = getState();
@@ -19630,7 +20913,7 @@ function MenuComponent(props) {
19630
20913
  domRef.current = node;
19631
20914
  }
19632
20915
  }, []);
19633
- const result = /* @__PURE__ */ React55.createElement("div", { className: display.contents }, /* @__PURE__ */ React55.createElement(
20916
+ const result = /* @__PURE__ */ React57.createElement("div", { className: display.contents }, /* @__PURE__ */ React57.createElement(
19634
20917
  "div",
19635
20918
  __spreadProps(__spreadValues({}, domProps), {
19636
20919
  "data-menu-id": menuId,
@@ -19662,12 +20945,12 @@ function MenuComponent(props) {
19662
20945
  return destroyed ? null : result;
19663
20946
  }
19664
20947
  function RuntimeItemRenderer(props) {
19665
- const [pressed, setPressed] = React55.useState(false);
20948
+ const [pressed, setPressed] = React57.useState(false);
19666
20949
  const { columns, item, index, active, keyboardActive } = props;
19667
20950
  const key = item.type === "item" ? item.value.key : index;
19668
20951
  let content = null;
19669
20952
  if (item.type === "decoration") {
19670
- content = /* @__PURE__ */ React55.createElement("div", { style: item.style }, item.value);
20953
+ content = /* @__PURE__ */ React57.createElement("div", { style: item.style }, item.value);
19671
20954
  } else {
19672
20955
  let spanIndex = 0;
19673
20956
  content = columns.map((col, i) => {
@@ -19728,7 +21011,7 @@ function RuntimeItemRenderer(props) {
19728
21011
  }
19729
21012
  }
19730
21013
  };
19731
- return col.render ? /* @__PURE__ */ React55.createElement(
21014
+ return col.render ? /* @__PURE__ */ React57.createElement(
19732
21015
  RenderHookComponent,
19733
21016
  {
19734
21017
  key: `${key}-${field}`,
@@ -19740,10 +21023,10 @@ function RuntimeItemRenderer(props) {
19740
21023
  domProps
19741
21024
  }
19742
21025
  }
19743
- ) : /* @__PURE__ */ React55.createElement("div", __spreadValues({ key: `${key}-${field}` }, domProps), target[field]);
21026
+ ) : /* @__PURE__ */ React57.createElement("div", __spreadValues({ key: `${key}-${field}` }, domProps), target[field]);
19744
21027
  }).filter(Boolean);
19745
21028
  }
19746
- return /* @__PURE__ */ React55.createElement("div", { className: MenuRowCls }, content);
21029
+ return /* @__PURE__ */ React57.createElement("div", { className: MenuRowCls }, content);
19747
21030
  }
19748
21031
  function MenuItem(_props) {
19749
21032
  return null;
@@ -19763,12 +21046,12 @@ var MenuRoot = getComponentStateRoot({
19763
21046
  function MenuContextProvider(props) {
19764
21047
  const { componentActions, componentState } = useComponentState();
19765
21048
  const getState = useLatest(componentState);
19766
- return /* @__PURE__ */ React56.createElement(
21049
+ return /* @__PURE__ */ React58.createElement(
19767
21050
  MenuContext.Provider,
19768
21051
  {
19769
21052
  value: { componentActions, componentState, getState }
19770
21053
  },
19771
- /* @__PURE__ */ React56.createElement(MenuComponent, { domProps: props.domProps })
21054
+ /* @__PURE__ */ React58.createElement(MenuComponent, { domProps: props.domProps })
19772
21055
  );
19773
21056
  }
19774
21057
  function Menu(props) {
@@ -19810,9 +21093,9 @@ function Menu(props) {
19810
21093
  //@ts-ignore
19811
21094
  "__is_infinite_menu_component"
19812
21095
  ]);
19813
- const menu = /* @__PURE__ */ React56.createElement(MenuRoot, __spreadValues({}, props), /* @__PURE__ */ React56.createElement(MenuContextProvider, { domProps }));
21096
+ const menu = /* @__PURE__ */ React58.createElement(MenuRoot, __spreadValues({}, props), /* @__PURE__ */ React58.createElement(MenuContextProvider, { domProps }));
19814
21097
  if (false) {
19815
- return /* @__PURE__ */ React56.createElement(React56.StrictMode, null, menu);
21098
+ return /* @__PURE__ */ React58.createElement(React58.StrictMode, null, menu);
19816
21099
  }
19817
21100
  return menu;
19818
21101
  }
@@ -19829,7 +21112,7 @@ var menuDefaultProps = {
19829
21112
  Menu.defaultProps = menuDefaultProps;
19830
21113
 
19831
21114
  // src/components/InfiniteTable/utils/defaultGetColumnMenuItems.tsx
19832
- import * as React57 from "react";
21115
+ import * as React59 from "react";
19833
21116
  function defaultGetColumnMenuItems(_items, params) {
19834
21117
  const { columnApi, column, getComputed, api } = params;
19835
21118
  const sortable = columnApi.isSortable();
@@ -19916,7 +21199,7 @@ function defaultGetColumnMenuItems(_items, params) {
19916
21199
  colItems.push({
19917
21200
  key: id,
19918
21201
  label,
19919
- check: /* @__PURE__ */ React57.createElement(
21202
+ check: /* @__PURE__ */ React59.createElement(
19920
21203
  InfiniteCheckBox,
19921
21204
  {
19922
21205
  key: col.id,
@@ -19979,7 +21262,7 @@ function getMenuForColumn(columnId, context, onHideIntent) {
19979
21262
  if (!items || !items.length) {
19980
21263
  return null;
19981
21264
  }
19982
- return /* @__PURE__ */ React58.createElement(
21265
+ return /* @__PURE__ */ React60.createElement(
19983
21266
  MenuCmp,
19984
21267
  {
19985
21268
  autoFocus: true,
@@ -20098,7 +21381,7 @@ function useColumnMenu() {
20098
21381
  }
20099
21382
 
20100
21383
  // src/components/InfiniteTable/components/FocusDetect.tsx
20101
- import * as React59 from "react";
21384
+ import * as React61 from "react";
20102
21385
  import { useCallback as useCallback26 } from "react";
20103
21386
  var style = {
20104
21387
  width: 0,
@@ -20131,7 +21414,7 @@ function FocusDetect() {
20131
21414
  };
20132
21415
  focusLastFocusableCell(context);
20133
21416
  }), []);
20134
- return /* @__PURE__ */ React59.createElement(
21417
+ return /* @__PURE__ */ React61.createElement(
20135
21418
  "div",
20136
21419
  {
20137
21420
  onFocus,
@@ -20262,18 +21545,18 @@ function useEditingCallbackProps() {
20262
21545
  import { useEffect as useEffect37 } from "react";
20263
21546
 
20264
21547
  // src/components/InfiniteTable/utils/getFilterOperatorMenuForColumn.tsx
20265
- import * as React62 from "react";
21548
+ import * as React64 from "react";
20266
21549
 
20267
21550
  // src/components/InfiniteTable/components/icons/ClearIcon.tsx
20268
- import * as React60 from "react";
21551
+ import * as React62 from "react";
20269
21552
  var ClearIcon = (props) => {
20270
- return /* @__PURE__ */ React60.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React60.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }));
21553
+ return /* @__PURE__ */ React62.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React62.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }));
20271
21554
  };
20272
21555
 
20273
21556
  // src/components/InfiniteTable/components/icons/DoneIcon.tsx
20274
- import * as React61 from "react";
21557
+ import * as React63 from "react";
20275
21558
  var DoneIcon = (props) => {
20276
- return /* @__PURE__ */ React61.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React61.createElement("path", { d: "m9.55 19-6.725-6.725L5.25 9.85l4.3 4.325 9.225-9.225 2.425 2.4Z" }));
21559
+ return /* @__PURE__ */ React63.createElement(Icon, __spreadValues({}, props), /* @__PURE__ */ React63.createElement("path", { d: "m9.55 19-6.725-6.725L5.25 9.85l4.3 4.325 9.225-9.225 2.425 2.4Z" }));
20277
21560
  };
20278
21561
 
20279
21562
  // src/components/InfiniteTable/utils/getFilterOperatorMenuForColumn.tsx
@@ -20319,12 +21602,12 @@ function getFilterOperatorMenuForColumn(columnId, context, onHideIntent) {
20319
21602
  const IconCmp = (_b = (_a2 = operator.components) == null ? void 0 : _a2.Icon) != null ? _b : FilterIcon;
20320
21603
  return {
20321
21604
  key,
20322
- icon: /* @__PURE__ */ React62.createElement(IconCmp, null),
20323
- label: /* @__PURE__ */ React62.createElement(React62.Fragment, null, (_c = operator.label) != null ? _c : operator.name),
21605
+ icon: /* @__PURE__ */ React64.createElement(IconCmp, null),
21606
+ label: /* @__PURE__ */ React64.createElement(React64.Fragment, null, (_c = operator.label) != null ? _c : operator.name),
20324
21607
  onAction: () => {
20325
21608
  api.setColumnFilterOperator(columnId, key);
20326
21609
  },
20327
- checked: checked ? /* @__PURE__ */ React62.createElement(DoneIcon, { size: 16 }) : null
21610
+ checked: checked ? /* @__PURE__ */ React64.createElement(DoneIcon, { size: 16 }) : null
20328
21611
  };
20329
21612
  });
20330
21613
  const firstItems = [
@@ -20339,7 +21622,7 @@ function getFilterOperatorMenuForColumn(columnId, context, onHideIntent) {
20339
21622
  {
20340
21623
  key: "reset",
20341
21624
  label: "Reset",
20342
- icon: /* @__PURE__ */ React62.createElement(ClearIcon, null),
21625
+ icon: /* @__PURE__ */ React64.createElement(ClearIcon, null),
20343
21626
  disabled: !column.computedFiltered,
20344
21627
  onAction: () => {
20345
21628
  api.clearColumnFilter(columnId);
@@ -20361,7 +21644,7 @@ function getFilterOperatorMenuForColumn(columnId, context, onHideIntent) {
20361
21644
  filterTypes
20362
21645
  };
20363
21646
  const items = getFilterOperatorMenuItems ? getFilterOperatorMenuItems(defaultItems, param) : defaultItems;
20364
- return /* @__PURE__ */ React62.createElement(
21647
+ return /* @__PURE__ */ React64.createElement(
20365
21648
  MenuCmp,
20366
21649
  {
20367
21650
  autoFocus: true,
@@ -20467,7 +21750,7 @@ function useColumnFilterOperatorMenu() {
20467
21750
  import { useEffect as useEffect38 } from "react";
20468
21751
 
20469
21752
  // src/components/InfiniteTable/utils/getCellContextMenu.tsx
20470
- import * as React63 from "react";
21753
+ import * as React65 from "react";
20471
21754
  function getCellContextMenu(cellLocation, context, onHideIntent) {
20472
21755
  var _a;
20473
21756
  const { columnId, rowIndex, event } = cellLocation;
@@ -20507,7 +21790,7 @@ function getCellContextMenu(cellLocation, context, onHideIntent) {
20507
21790
  }
20508
21791
  return {
20509
21792
  preventDefault: true,
20510
- menu: /* @__PURE__ */ React63.createElement(
21793
+ menu: /* @__PURE__ */ React65.createElement(
20511
21794
  MenuCmp,
20512
21795
  {
20513
21796
  columns: menuColumns,
@@ -20562,7 +21845,7 @@ function getTableContextMenu(menuLocation, context, onHideIntent) {
20562
21845
  }
20563
21846
  return {
20564
21847
  preventDefault: true,
20565
- menu: /* @__PURE__ */ React63.createElement(
21848
+ menu: /* @__PURE__ */ React65.createElement(
20566
21849
  MenuCmp,
20567
21850
  {
20568
21851
  columns: menuColumns,
@@ -20785,7 +22068,7 @@ var InfiniteTableRoot = getComponentStateRoot({
20785
22068
  getParentState: () => useDataSource(),
20786
22069
  debugName: "InfiniteTable"
20787
22070
  });
20788
- var InfiniteTableComponent = React64.memo(
22071
+ var InfiniteTableComponent = React66.memo(
20789
22072
  function InfiniteTableComponent2() {
20790
22073
  var _a;
20791
22074
  const context = useInfiniteTable();
@@ -20801,10 +22084,13 @@ var InfiniteTableComponent = React64.memo(
20801
22084
  portalDOMRef,
20802
22085
  licenseKey,
20803
22086
  loadingText,
22087
+ rowDetailRenderer,
20804
22088
  header,
20805
22089
  onRowHeightCSSVarChange,
22090
+ onRowDetailHeightCSSVarChange,
20806
22091
  onColumnHeaderHeightCSSVarChange,
20807
22092
  rowHeightCSSVar,
22093
+ rowDetailHeightCSSVar,
20808
22094
  columnHeaderHeightCSSVar,
20809
22095
  components: components2,
20810
22096
  scrollStopDelay,
@@ -20814,21 +22100,23 @@ var InfiniteTableComponent = React64.memo(
20814
22100
  keyboardNavigation,
20815
22101
  activeRowIndex,
20816
22102
  activeCellIndex,
20817
- onRenderUpdater
22103
+ onRenderUpdater,
22104
+ debugId
20818
22105
  } = componentState;
20819
22106
  useScrollToActiveRow(activeRowIndex, dataArray.length, api);
20820
22107
  useScrollToActiveCell(activeCellIndex, dataArray.length, api);
20821
22108
  const { onKeyDown: onKeyDown2 } = useDOMEventHandlers();
20822
22109
  const { bodySize } = componentState;
20823
- const { scrollbars } = computed;
20824
- const { renderCell } = useCellRendering({
22110
+ const { scrollbars, computedRowHeight, computedRowSizeCacheForDetails } = computed;
22111
+ const activeCellRowHeight = (computedRowSizeCacheForDetails == null ? void 0 : computedRowSizeCacheForDetails.getRowHeight) || computedRowHeight;
22112
+ const { renderCell, renderDetailRow } = useCellRendering({
20825
22113
  imperativeApi: api,
20826
22114
  getComputed,
20827
22115
  domRef: componentState.domRef,
20828
22116
  bodySize,
20829
22117
  computed
20830
22118
  });
20831
- React64.useEffect(() => {
22119
+ React66.useEffect(() => {
20832
22120
  const dataSourceState = getDataSourceState();
20833
22121
  const onChange = debounce(
20834
22122
  (renderRange) => {
@@ -20844,7 +22132,7 @@ var InfiniteTableComponent = React64.memo(
20844
22132
  const licenseValid = useLicense(licenseKey);
20845
22133
  const domProps = useDOMProps(componentState.domProps);
20846
22134
  const LoadMaskCmp = (_a = components2 == null ? void 0 : components2.LoadMask) != null ? _a : LoadMask;
20847
- React64.useEffect(() => {
22135
+ React66.useEffect(() => {
20848
22136
  brain.setScrollStopDelay(scrollStopDelay);
20849
22137
  dataSourceActions.scrollStopDelayUpdatedByTable = scrollStopDelay;
20850
22138
  }, [scrollStopDelay]);
@@ -20854,7 +22142,7 @@ var InfiniteTableComponent = React64.memo(
20854
22142
  const { menuPortal: cellContextMenuPortal } = useCellContextMenu();
20855
22143
  const { menuPortal: tableContextMenuPortal } = useTableContextMenu();
20856
22144
  const { menuPortal: filterOperatorMenuPortal } = useColumnFilterOperatorMenu();
20857
- React64.useEffect(() => {
22145
+ React66.useEffect(() => {
20858
22146
  if (typeof globalThis.__DO_NOT_USE_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_IS_READY === "function") {
20859
22147
  globalThis.__DO_NOT_USE_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_IS_READY(
20860
22148
  componentState.id,
@@ -20867,7 +22155,7 @@ var InfiniteTableComponent = React64.memo(
20867
22155
  globalThis.infiniteApi = context.api;
20868
22156
  }
20869
22157
  }, [componentState.ready]);
20870
- const onContextMenu = React64.useCallback((event) => {
22158
+ const onContextMenu = React66.useCallback((event) => {
20871
22159
  const state = context.getState();
20872
22160
  const target = event.target;
20873
22161
  const cell = selectParentUntil(
@@ -20898,16 +22186,17 @@ var InfiniteTableComponent = React64.memo(
20898
22186
  }
20899
22187
  state.contextMenu(param);
20900
22188
  }, []);
20901
- return /* @__PURE__ */ React64.createElement("div", __spreadValues({ onKeyDown: onKeyDown2, ref: domRef }, domProps), header ? /* @__PURE__ */ React64.createElement(
22189
+ return /* @__PURE__ */ React66.createElement("div", __spreadValues({ onKeyDown: onKeyDown2, ref: domRef }, domProps), header ? /* @__PURE__ */ React66.createElement(
20902
22190
  TableHeaderWrapper,
20903
22191
  {
20904
22192
  bodyBrain: brain,
20905
22193
  headerBrain,
20906
22194
  scrollbars
20907
22195
  }
20908
- ) : null, /* @__PURE__ */ React64.createElement(InfiniteTableBody, { onContextMenu }, /* @__PURE__ */ React64.createElement(
22196
+ ) : null, /* @__PURE__ */ React66.createElement(InfiniteTableBody, { onContextMenu }, /* @__PURE__ */ React66.createElement(
20909
22197
  HeadlessTable,
20910
22198
  {
22199
+ debugId,
20911
22200
  tabIndex: 0,
20912
22201
  activeRowIndex: componentState.ready && keyboardNavigation === "row" ? activeRowIndex : null,
20913
22202
  activeCellIndex: componentState.ready && keyboardNavigation === "cell" && // we want to hide the active cell indicator while column reodering is happening
@@ -20916,11 +22205,13 @@ var InfiniteTableComponent = React64.memo(
20916
22205
  renderer,
20917
22206
  onRenderUpdater,
20918
22207
  brain,
22208
+ activeCellRowHeight,
20919
22209
  renderCell,
22210
+ renderDetailRow: rowDetailRenderer ? renderDetailRow : void 0,
20920
22211
  cellHoverClassNames: HOVERED_CLASS_NAMES,
20921
22212
  scrollerDOMRef
20922
22213
  }
20923
- ), /* @__PURE__ */ React64.createElement(LoadMaskCmp, { visible: loading }, loadingText)), /* @__PURE__ */ React64.createElement(
22214
+ ), /* @__PURE__ */ React66.createElement(LoadMaskCmp, { visible: loading }, loadingText)), /* @__PURE__ */ React66.createElement(
20924
22215
  "div",
20925
22216
  {
20926
22217
  ref: portalDOMRef,
@@ -20936,19 +22227,25 @@ var InfiniteTableComponent = React64.memo(
20936
22227
  cellContextMenuPortal,
20937
22228
  tableContextMenuPortal,
20938
22229
  filterOperatorMenuPortal
20939
- ), rowHeightCSSVar ? /* @__PURE__ */ React64.createElement(
22230
+ ), rowHeightCSSVar ? /* @__PURE__ */ React66.createElement(
20940
22231
  CSSNumericVariableWatch,
20941
22232
  {
20942
22233
  varName: rowHeightCSSVar,
20943
22234
  onChange: onRowHeightCSSVarChange
20944
22235
  }
20945
- ) : null, columnHeaderHeightCSSVar ? /* @__PURE__ */ React64.createElement(
22236
+ ) : null, rowDetailHeightCSSVar ? /* @__PURE__ */ React66.createElement(
22237
+ CSSNumericVariableWatch,
22238
+ {
22239
+ varName: rowDetailHeightCSSVar,
22240
+ onChange: onRowDetailHeightCSSVarChange
22241
+ }
22242
+ ) : null, columnHeaderHeightCSSVar ? /* @__PURE__ */ React66.createElement(
20946
22243
  CSSNumericVariableWatch,
20947
22244
  {
20948
22245
  varName: columnHeaderHeightCSSVar,
20949
22246
  onChange: onColumnHeaderHeightCSSVarChange
20950
22247
  }
20951
- ) : null, /* @__PURE__ */ React64.createElement(InfiniteTableFooter, null), licenseValid ? null : /* @__PURE__ */ React64.createElement(InfiniteTableLicenseFooter, null), /* @__PURE__ */ React64.createElement(FocusDetect, null));
22248
+ ) : null, /* @__PURE__ */ React66.createElement(InfiniteTableFooter, null), licenseValid ? null : /* @__PURE__ */ React66.createElement(InfiniteTableLicenseFooter, null), /* @__PURE__ */ React66.createElement(FocusDetect, null));
20952
22249
  }
20953
22250
  );
20954
22251
  function InfiniteTableContextProvider() {
@@ -20957,6 +22254,7 @@ function InfiniteTableContextProvider() {
20957
22254
  const computed = useComputed();
20958
22255
  const getComputed = useLatest(computed);
20959
22256
  const getState = useLatest(componentState);
22257
+ const masterContext = useMasterDetailContext();
20960
22258
  if (false) {
20961
22259
  globalThis.getState = getState;
20962
22260
  globalThis.getComputed = getComputed;
@@ -20967,7 +22265,7 @@ function InfiniteTableContextProvider() {
20967
22265
  componentActions: dataSourceActions,
20968
22266
  api: dataSourceApi
20969
22267
  } = useDataSourceContextValue();
20970
- const [imperativeApi] = React64.useState(() => {
22268
+ const [imperativeApi] = React66.useState(() => {
20971
22269
  return getImperativeApi({
20972
22270
  getComputed,
20973
22271
  getState,
@@ -21000,21 +22298,21 @@ function InfiniteTableContextProvider() {
21000
22298
  },
21001
22299
  { earlyAttach: true, debounce: 50 }
21002
22300
  );
21003
- React64.useEffect(() => {
22301
+ React66.useEffect(() => {
21004
22302
  if (scrollerDOMRef.current) {
21005
22303
  scrollerDOMRef.current.scrollTop = 0;
21006
22304
  }
21007
22305
  }, [scrollTopKey, scrollerDOMRef]);
21008
22306
  const TableContext2 = getInfiniteTableContext();
21009
- return /* @__PURE__ */ React64.createElement(TableContext2.Provider, { value: contextValue }, /* @__PURE__ */ React64.createElement(InfiniteTableComponent, null));
22307
+ return /* @__PURE__ */ React66.createElement(TableContext2.Provider, { value: contextValue }, /* @__PURE__ */ React66.createElement(InfiniteTableComponent, null));
21010
22308
  }
21011
22309
  function InfiniteTable(props) {
21012
22310
  const table = (
21013
22311
  //@ts-ignore
21014
- /* @__PURE__ */ React64.createElement(InfiniteTableRoot, __spreadValues({}, props), /* @__PURE__ */ React64.createElement(InfiniteTableContextProvider, null))
22312
+ /* @__PURE__ */ React66.createElement(InfiniteTableRoot, __spreadValues({}, props), /* @__PURE__ */ React66.createElement(InfiniteTableContextProvider, null))
21015
22313
  );
21016
22314
  if (false) {
21017
- return /* @__PURE__ */ React64.createElement(React64.StrictMode, null, table);
22315
+ return /* @__PURE__ */ React66.createElement(React66.StrictMode, null, table);
21018
22316
  }
21019
22317
  return table;
21020
22318
  }
@@ -21023,6 +22321,125 @@ InfiniteTable.defaultProps = {
21023
22321
  columnHeaderHeight: toCSSVarName(columnHeaderHeightName)
21024
22322
  };
21025
22323
 
22324
+ // src/utils/FixedSizeSet.ts
22325
+ var _FixedSizeSet = class {
22326
+ constructor(clone, size) {
22327
+ this.orderRefs = [];
22328
+ if (typeof clone === "number") {
22329
+ this.maxSize = clone;
22330
+ this.currentSet = /* @__PURE__ */ new Set();
22331
+ } else {
22332
+ this.maxSize = size != null ? size : _FixedSizeSet.DEFAULT_SIZE;
22333
+ if (clone) {
22334
+ const arr = Array.from(clone);
22335
+ if (this.maxSize < arr.length) {
22336
+ arr.slice(arr.length - this.maxSize);
22337
+ }
22338
+ this.currentSet = /* @__PURE__ */ new Set();
22339
+ arr.forEach((el) => {
22340
+ this.add(el);
22341
+ });
22342
+ } else {
22343
+ this.currentSet = /* @__PURE__ */ new Set();
22344
+ }
22345
+ }
22346
+ }
22347
+ values() {
22348
+ return this.currentSet.values();
22349
+ }
22350
+ get size() {
22351
+ return this.currentSet.size;
22352
+ }
22353
+ delete(el) {
22354
+ if (this.currentSet.has(el)) {
22355
+ this.currentSet.delete(el);
22356
+ this.orderRefs = this.orderRefs.filter((ref) => ref !== el);
22357
+ return true;
22358
+ }
22359
+ return false;
22360
+ }
22361
+ has(el) {
22362
+ return this.currentSet.has(el);
22363
+ }
22364
+ add(el) {
22365
+ if (this.currentSet.has(el)) {
22366
+ return this;
22367
+ }
22368
+ const canAddCount = this.maxSize - this.currentSet.size;
22369
+ if (canAddCount <= 0) {
22370
+ const [removedRef] = this.orderRefs.splice(0, 1);
22371
+ if (removedRef) {
22372
+ this.currentSet.delete(removedRef);
22373
+ }
22374
+ }
22375
+ this.orderRefs.push(el);
22376
+ this.currentSet.add(el);
22377
+ return this;
22378
+ }
22379
+ };
22380
+ var FixedSizeSet = _FixedSizeSet;
22381
+ FixedSizeSet.DEFAULT_SIZE = 10;
22382
+
22383
+ // src/utils/WeakFixedSizeSet.ts
22384
+ var _WeakFixedSizeSet = class {
22385
+ constructor(clone, size) {
22386
+ this.orderRefs = [];
22387
+ if (typeof clone === "number") {
22388
+ this.maxSize = clone;
22389
+ this.currentSet = /* @__PURE__ */ new Set();
22390
+ } else {
22391
+ this.maxSize = size != null ? size : _WeakFixedSizeSet.DEFAULT_SIZE;
22392
+ if (clone) {
22393
+ const arr = Array.from(clone);
22394
+ if (this.maxSize < arr.length) {
22395
+ arr.slice(arr.length - this.maxSize);
22396
+ }
22397
+ this.currentSet = /* @__PURE__ */ new Set();
22398
+ arr.forEach((el) => {
22399
+ this.add(el);
22400
+ });
22401
+ } else {
22402
+ this.currentSet = /* @__PURE__ */ new Set();
22403
+ }
22404
+ }
22405
+ }
22406
+ values() {
22407
+ return this.currentSet.values();
22408
+ }
22409
+ get size() {
22410
+ return this.currentSet.size;
22411
+ }
22412
+ delete(el) {
22413
+ if (this.currentSet.has(el)) {
22414
+ this.currentSet.delete(el);
22415
+ this.orderRefs = this.orderRefs.filter((ref) => ref.deref() !== el);
22416
+ return true;
22417
+ }
22418
+ return false;
22419
+ }
22420
+ has(el) {
22421
+ return this.currentSet.has(el);
22422
+ }
22423
+ add(el) {
22424
+ if (this.currentSet.has(el)) {
22425
+ return this;
22426
+ }
22427
+ const canAddCount = this.maxSize - this.currentSet.size;
22428
+ if (canAddCount <= 0) {
22429
+ const [removedRef] = this.orderRefs.splice(0, 1);
22430
+ const removed = removedRef.deref();
22431
+ if (removed) {
22432
+ this.currentSet.delete(removed);
22433
+ }
22434
+ }
22435
+ this.orderRefs.push(new WeakRef(el));
22436
+ this.currentSet.add(el);
22437
+ return this;
22438
+ }
22439
+ };
22440
+ var WeakFixedSizeSet = _WeakFixedSizeSet;
22441
+ WeakFixedSizeSet.DEFAULT_SIZE = 10;
22442
+
21026
22443
  // src/index.tsx
21027
22444
  var components = {
21028
22445
  CheckBox: InfiniteCheckBox,
@@ -21036,12 +22453,15 @@ export {
21036
22453
  DataSource,
21037
22454
  DataSourceActionType,
21038
22455
  DeepMap,
22456
+ FixedSizeSet,
21039
22457
  GroupRowsState,
21040
22458
  InfiniteTable,
21041
22459
  InfiniteTableClassName,
21042
22460
  InfiniteTableComponent,
21043
22461
  Menu,
22462
+ RowDetailsCache,
21044
22463
  RowSelectionState,
22464
+ WeakFixedSizeSet,
21045
22465
  components,
21046
22466
  debounce,
21047
22467
  debug,
@@ -21055,6 +22475,7 @@ export {
21055
22475
  useComponentState,
21056
22476
  useDataSource,
21057
22477
  useEffectWithChanges,
22478
+ useEffectWithObject,
21058
22479
  useInfiniteColumnCell,
21059
22480
  useInfiniteColumnEditor,
21060
22481
  useInfiniteColumnFilterEditor,