@osdk/react-components 0.2.0-beta.3 → 0.2.0-beta.4

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.
Files changed (86) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +39 -22
  3. package/build/browser/object-table/DefaultCellRenderer.js +43 -0
  4. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -0
  5. package/build/browser/object-table/EditableCell.js +91 -0
  6. package/build/browser/object-table/EditableCell.js.map +1 -0
  7. package/build/browser/object-table/EditableCell.module.css +3 -0
  8. package/build/browser/object-table/EditableCell.module.css.js +6 -0
  9. package/build/browser/object-table/ObjectTable.js +29 -2
  10. package/build/browser/object-table/ObjectTable.js.map +1 -1
  11. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  12. package/build/browser/object-table/Table.js +18 -3
  13. package/build/browser/object-table/Table.js.map +1 -1
  14. package/build/browser/object-table/Table.module.css +17 -1
  15. package/build/browser/object-table/Table.module.css.js +3 -1
  16. package/build/browser/object-table/TableBody.module.css +2 -0
  17. package/build/browser/object-table/TableCell.module.css +11 -1
  18. package/build/browser/object-table/TableHeader.module.css +4 -2
  19. package/build/browser/object-table/TableRow.module.css +2 -0
  20. package/build/browser/object-table/__tests__/useEditableTable.test.js +197 -0
  21. package/build/browser/object-table/__tests__/useEditableTable.test.js.map +1 -0
  22. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js +13 -1
  23. package/build/browser/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
  24. package/build/browser/object-table/hooks/useColumnDefs.js +10 -2
  25. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  26. package/build/browser/object-table/hooks/useEditableTable.js +57 -0
  27. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -0
  28. package/build/browser/object-table/utils/getCellId.js +27 -0
  29. package/build/browser/object-table/utils/getCellId.js.map +1 -0
  30. package/build/browser/object-table/utils/types.js.map +1 -1
  31. package/build/browser/public/experimental.js.map +1 -1
  32. package/build/browser/styles.css +42 -4
  33. package/build/cjs/public/experimental.cjs +485 -289
  34. package/build/cjs/public/experimental.cjs.map +1 -1
  35. package/build/cjs/public/experimental.css +78 -48
  36. package/build/cjs/public/experimental.css.map +1 -1
  37. package/build/cjs/public/experimental.d.cts +44 -10
  38. package/build/esm/object-table/DefaultCellRenderer.js +43 -0
  39. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -0
  40. package/build/esm/object-table/EditableCell.js +91 -0
  41. package/build/esm/object-table/EditableCell.js.map +1 -0
  42. package/build/esm/object-table/EditableCell.module.css +3 -0
  43. package/build/esm/object-table/ObjectTable.js +29 -2
  44. package/build/esm/object-table/ObjectTable.js.map +1 -1
  45. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  46. package/build/esm/object-table/Table.js +18 -3
  47. package/build/esm/object-table/Table.js.map +1 -1
  48. package/build/esm/object-table/Table.module.css +17 -1
  49. package/build/esm/object-table/TableBody.module.css +2 -0
  50. package/build/esm/object-table/TableCell.module.css +11 -1
  51. package/build/esm/object-table/TableHeader.module.css +4 -2
  52. package/build/esm/object-table/TableRow.module.css +2 -0
  53. package/build/esm/object-table/__tests__/useEditableTable.test.js +197 -0
  54. package/build/esm/object-table/__tests__/useEditableTable.test.js.map +1 -0
  55. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js +13 -1
  56. package/build/esm/object-table/hooks/__tests__/useColumnDefs.test.js.map +1 -1
  57. package/build/esm/object-table/hooks/useColumnDefs.js +10 -2
  58. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  59. package/build/esm/object-table/hooks/useEditableTable.js +57 -0
  60. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -0
  61. package/build/esm/object-table/utils/getCellId.js +27 -0
  62. package/build/esm/object-table/utils/getCellId.js.map +1 -0
  63. package/build/esm/object-table/utils/types.js.map +1 -1
  64. package/build/esm/public/experimental.js.map +1 -1
  65. package/build/types/object-table/DefaultCellRenderer.d.ts +3 -0
  66. package/build/types/object-table/DefaultCellRenderer.d.ts.map +1 -0
  67. package/build/types/object-table/EditableCell.d.ts +10 -0
  68. package/build/types/object-table/EditableCell.d.ts.map +1 -0
  69. package/build/types/object-table/ObjectTable.d.ts +1 -1
  70. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  71. package/build/types/object-table/ObjectTableApi.d.ts +15 -0
  72. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  73. package/build/types/object-table/Table.d.ts +17 -3
  74. package/build/types/object-table/Table.d.ts.map +1 -1
  75. package/build/types/object-table/__tests__/useEditableTable.test.d.ts +1 -0
  76. package/build/types/object-table/__tests__/useEditableTable.test.d.ts.map +1 -0
  77. package/build/types/object-table/hooks/useColumnDefs.d.ts.map +1 -1
  78. package/build/types/object-table/hooks/useEditableTable.d.ts +22 -0
  79. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -0
  80. package/build/types/object-table/utils/getCellId.d.ts +3 -0
  81. package/build/types/object-table/utils/getCellId.d.ts.map +1 -0
  82. package/build/types/object-table/utils/types.d.ts +9 -0
  83. package/build/types/object-table/utils/types.d.ts.map +1 -1
  84. package/build/types/public/experimental.d.ts +1 -0
  85. package/build/types/public/experimental.d.ts.map +1 -1
  86. package/package.json +5 -5
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var reactTable = require('@tanstack/react-table');
4
- var React10 = require('react');
4
+ var React12 = require('react');
5
5
  var react = require('@osdk/react');
6
+ var input = require('@base-ui/react/input');
6
7
  var experimental = require('@osdk/react/experimental');
7
8
  var checkbox = require('@base-ui/react/checkbox');
8
9
  var icons = require('@blueprintjs/icons');
@@ -13,24 +14,136 @@ var sortable = require('@dnd-kit/sortable');
13
14
  var dialog = require('@base-ui/react/dialog');
14
15
  var core = require('@dnd-kit/core');
15
16
  var utilities = require('@dnd-kit/utilities');
16
- var input = require('@base-ui/react/input');
17
17
  var menu = require('@base-ui/react/menu');
18
18
  var reactVirtual = require('@tanstack/react-virtual');
19
19
  var reactDom = require('react-dom');
20
20
 
21
21
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
22
22
 
23
- var React10__default = /*#__PURE__*/_interopDefault(React10);
23
+ var React12__default = /*#__PURE__*/_interopDefault(React12);
24
24
  var classNames7__default = /*#__PURE__*/_interopDefault(classNames7);
25
25
 
26
26
  // src/object-table/ObjectTable.tsx
27
+
28
+ // src/object-table/EditableCell.module.css
29
+ var EditableCell_default = {};
30
+
31
+ // src/object-table/EditableCell.tsx
32
+ var NUMBER_TYPES = ["double", "integer", "long", "float", "decimal", "byte", "short"];
33
+ function valueToString(value) {
34
+ if (value == null) {
35
+ return "";
36
+ }
37
+ if (typeof value === "object") {
38
+ return JSON.stringify(value);
39
+ }
40
+ return String(value);
41
+ }
42
+ function parseValueByType(value, dataType) {
43
+ if (!dataType || !NUMBER_TYPES.includes(dataType)) {
44
+ return value;
45
+ }
46
+ if (value === "") {
47
+ return null;
48
+ }
49
+ const parsedNumber = Number(value);
50
+ if (isNaN(parsedNumber)) {
51
+ return value;
52
+ }
53
+ return parsedNumber;
54
+ }
55
+ function EditableCell({
56
+ initialValue,
57
+ currentValue,
58
+ cellId,
59
+ dataType,
60
+ onCellEdit
61
+ }) {
62
+ const [value, setValue] = React12.useState(valueToString(currentValue));
63
+ const isCancelled = React12.useRef(false);
64
+ React12.useEffect(() => {
65
+ setValue(valueToString(currentValue));
66
+ }, [currentValue]);
67
+ const handleBlur = React12.useCallback(() => {
68
+ if (isCancelled.current) {
69
+ isCancelled.current = false;
70
+ return;
71
+ }
72
+ const parsedValue = parseValueByType(value, dataType);
73
+ onCellEdit?.(cellId, {
74
+ newValue: parsedValue,
75
+ oldValue: initialValue
76
+ });
77
+ }, [value, initialValue, onCellEdit, cellId, dataType]);
78
+ const handleChange = React12.useCallback((value2) => {
79
+ setValue(value2);
80
+ }, []);
81
+ const handleKeyDown = React12.useCallback((e) => {
82
+ if (e.key === "Enter") {
83
+ e.currentTarget.blur();
84
+ }
85
+ if (e.key === "Escape") {
86
+ isCancelled.current = true;
87
+ setValue(valueToString(currentValue));
88
+ e.currentTarget.blur();
89
+ }
90
+ }, [currentValue]);
91
+ const inputType = dataType && NUMBER_TYPES.includes(dataType) ? "number" : "text";
92
+ return /* @__PURE__ */ React12__default.default.createElement(input.Input, {
93
+ className: EditableCell_default.osdkEditableInput,
94
+ type: inputType,
95
+ value,
96
+ onValueChange: handleChange,
97
+ onBlur: handleBlur,
98
+ onKeyDown: handleKeyDown
99
+ });
100
+ }
101
+
102
+ // src/object-table/utils/getCellId.ts
103
+ function getCellId(cellIdentifier) {
104
+ return JSON.stringify(cellIdentifier);
105
+ }
106
+ function getCellIdentifier(cellId) {
107
+ const parsed = JSON.parse(cellId);
108
+ if (typeof parsed === "object" && parsed != null && "rowId" in parsed && "columnId" in parsed) {
109
+ return parsed;
110
+ }
111
+ throw new Error("Parsed cellId does not have required properties");
112
+ }
113
+
114
+ // src/object-table/DefaultCellRenderer.tsx
115
+ function renderDefaultCell(cellContext) {
116
+ const meta = cellContext.table.options.meta;
117
+ const columnMeta = cellContext.column.columnDef.meta;
118
+ if (!columnMeta?.editable || !meta?.onCellEdit) {
119
+ return cellContext.getValue();
120
+ }
121
+ const rowId = cellContext.row.id;
122
+ const columnId = cellContext.column.id;
123
+ const cellId = getCellId({
124
+ rowId,
125
+ columnId
126
+ });
127
+ const cellEdits = meta.cellEdits;
128
+ const editedValue = cellEdits?.[cellId];
129
+ const currentValue = editedValue?.newValue ?? cellContext.getValue();
130
+ return /* @__PURE__ */ React12__default.default.createElement(EditableCell, {
131
+ initialValue: cellContext.getValue(),
132
+ currentValue,
133
+ cellId,
134
+ dataType: columnMeta?.dataType,
135
+ onCellEdit: meta.onCellEdit
136
+ });
137
+ }
138
+
139
+ // src/object-table/hooks/useColumnDefs.ts
27
140
  function useColumnDefs(objectType, columnDefinitions) {
28
141
  const {
29
142
  metadata,
30
143
  loading,
31
144
  error
32
145
  } = react.useOsdkMetadata(objectType);
33
- const columns = React10.useMemo(() => {
146
+ const columns = React12.useMemo(() => {
34
147
  const objectProperties = metadata?.properties;
35
148
  if (columnDefinitions) {
36
149
  return getColumnsFromColumnDefinitions(columnDefinitions, objectProperties);
@@ -53,19 +166,23 @@ function getColumnsFromColumnDefinitions(columnDefinitions, objectProperties) {
53
166
  resizable,
54
167
  orderable,
55
168
  filterable,
169
+ editable,
56
170
  renderCell,
57
171
  renderHeader,
58
172
  columnName
59
173
  } = col;
60
174
  const propertyMetadata = locator.type === "property" ? objectProperties?.[locator.id] : void 0;
61
175
  const colKey = locator.id;
176
+ const dataType = propertyMetadata?.type && typeof propertyMetadata.type === "string" ? propertyMetadata.type : void 0;
62
177
  const colDef = {
63
178
  id: colKey,
64
179
  accessorKey: colKey,
65
180
  header: renderHeader ?? (columnName || propertyMetadata?.displayName),
66
181
  meta: {
67
182
  columnName: columnName || propertyMetadata?.displayName,
68
- isVisible: col.isVisible !== false
183
+ isVisible: col.isVisible !== false,
184
+ editable,
185
+ dataType
69
186
  },
70
187
  size: width,
71
188
  ...minWidth ? {
@@ -79,7 +196,10 @@ function getColumnsFromColumnDefinitions(columnDefinitions, objectProperties) {
79
196
  enableColumnFilter: filterable,
80
197
  cell: (cellContext) => {
81
198
  const object = cellContext.row.original;
82
- return renderCell ? renderCell(object, locator) : cellContext.getValue();
199
+ if (renderCell) {
200
+ return renderCell(object, locator);
201
+ }
202
+ return renderDefaultCell(cellContext);
83
203
  }
84
204
  };
85
205
  return colDef;
@@ -105,11 +225,11 @@ var useColumnPinning = ({
105
225
  hasSelectionColumn,
106
226
  onColumnsPinnedChanged
107
227
  }) => {
108
- const [columnPinning, setColumnPinning] = React10.useState({
228
+ const [columnPinning, setColumnPinning] = React12.useState({
109
229
  left: [],
110
230
  right: []
111
231
  });
112
- React10.useEffect(() => {
232
+ React12.useEffect(() => {
113
233
  const defaultState = getColumnPinningStateFromColumnDefs(columnDefinitions);
114
234
  const selectionCol = hasSelectionColumn ? [SELECTION_COLUMN_ID] : [];
115
235
  setColumnPinning({
@@ -117,7 +237,7 @@ var useColumnPinning = ({
117
237
  right: [...defaultState.right ?? []]
118
238
  });
119
239
  }, [columnDefinitions, hasSelectionColumn]);
120
- const onColumnPinningChange = React10.useCallback((updater) => {
240
+ const onColumnPinningChange = React12.useCallback((updater) => {
121
241
  setColumnPinning((prev) => {
122
242
  const newPinning = typeof updater === "function" ? updater(prev) : updater;
123
243
  if (onColumnsPinnedChanged) {
@@ -174,8 +294,8 @@ function convertColumnPinningStateToArray(pinningState) {
174
294
  var useColumnResize = ({
175
295
  onColumnResize
176
296
  }) => {
177
- const [columnSizing, setColumnSizing] = React10.useState({});
178
- const onColumnSizingChange = React10.useCallback((updater) => {
297
+ const [columnSizing, setColumnSizing] = React12.useState({});
298
+ const onColumnSizingChange = React12.useCallback((updater) => {
179
299
  setColumnSizing((prev) => {
180
300
  const newState = typeof updater === "function" ? updater(prev) : updater;
181
301
  if (onColumnResize) {
@@ -202,15 +322,15 @@ var useColumnVisibility = ({
202
322
  allColumns,
203
323
  onColumnVisibilityChanged
204
324
  }) => {
205
- const [columnVisibility, setColumnVisibility] = React10.useState(() => getColumnVisibilityState(allColumns));
206
- const [columnOrder, setColumnOrder] = React10.useState(() => getColumnOrder(allColumns));
207
- React10.useEffect(() => {
325
+ const [columnVisibility, setColumnVisibility] = React12.useState(() => getColumnVisibilityState(allColumns));
326
+ const [columnOrder, setColumnOrder] = React12.useState(() => getColumnOrder(allColumns));
327
+ React12.useEffect(() => {
208
328
  setColumnVisibility(getColumnVisibilityState(allColumns));
209
329
  }, [allColumns]);
210
- React10.useEffect(() => {
330
+ React12.useEffect(() => {
211
331
  setColumnOrder(getColumnOrder(allColumns));
212
332
  }, [allColumns]);
213
- const onColumnVisibilityChange = React10.useCallback((updaterOrValue) => {
333
+ const onColumnVisibilityChange = React12.useCallback((updaterOrValue) => {
214
334
  setColumnVisibility((prev) => {
215
335
  const newState = typeof updaterOrValue === "function" ? updaterOrValue(prev) : updaterOrValue;
216
336
  if (onColumnVisibilityChanged) {
@@ -223,7 +343,7 @@ var useColumnVisibility = ({
223
343
  return newState;
224
344
  });
225
345
  }, [onColumnVisibilityChanged]);
226
- const onColumnOrderChange = React10.useCallback((updaterOrValue) => {
346
+ const onColumnOrderChange = React12.useCallback((updaterOrValue) => {
227
347
  setColumnOrder((prev) => {
228
348
  const newState = typeof updaterOrValue === "function" ? updaterOrValue(prev) : updaterOrValue;
229
349
  return newState;
@@ -251,9 +371,45 @@ var getColumnVisibilityState = (allColumns) => {
251
371
  var getColumnOrder = (allColumns) => {
252
372
  return allColumns.map((col) => col.id ?? col.accessorKey).filter((id) => id != null);
253
373
  };
374
+ function useEditableTable({
375
+ onCellValueChanged,
376
+ onSubmitEdits
377
+ }) {
378
+ const [cellEdits, setCellEdits] = React12.useState({});
379
+ const handleCellEdit = React12.useCallback((cellId, state) => {
380
+ const cellIdentifier = getCellIdentifier(cellId);
381
+ if (state.newValue === state.oldValue) {
382
+ setCellEdits((prev) => {
383
+ const {
384
+ [cellId]: _,
385
+ ...rest
386
+ } = prev;
387
+ return rest;
388
+ });
389
+ } else {
390
+ setCellEdits((prev) => ({
391
+ ...prev,
392
+ [cellId]: state
393
+ }));
394
+ }
395
+ onCellValueChanged?.(cellIdentifier, state);
396
+ }, [onCellValueChanged]);
397
+ const clearEdits = React12.useCallback(() => {
398
+ setCellEdits({});
399
+ }, []);
400
+ const handleSubmitEdits = React12.useCallback(async () => {
401
+ await onSubmitEdits?.(cellEdits);
402
+ }, [cellEdits, onSubmitEdits]);
403
+ return {
404
+ cellEdits,
405
+ handleCellEdit,
406
+ handleSubmitEdits,
407
+ clearEdits
408
+ };
409
+ }
254
410
  var PAGE_SIZE = 50;
255
411
  function useObjectTableData(objectOrInterfaceType, columnDefinitions, filter, sorting) {
256
- const orderBy = React10.useMemo(() => {
412
+ const orderBy = React12.useMemo(() => {
257
413
  if (!sorting || sorting.length === 0) {
258
414
  return void 0;
259
415
  }
@@ -262,7 +418,7 @@ function useObjectTableData(objectOrInterfaceType, columnDefinitions, filter, so
262
418
  return acc;
263
419
  }, {});
264
420
  }, [sorting]);
265
- const withProperties = React10.useMemo(() => {
421
+ const withProperties = React12.useMemo(() => {
266
422
  if (!columnDefinitions) {
267
423
  return;
268
424
  }
@@ -300,11 +456,11 @@ function useRowSelection({
300
456
  onRowSelection,
301
457
  data
302
458
  }) {
303
- const [internalRowSelection, setInternalRowSelection] = React10.useState({});
304
- const [lastSelectedRowIndex, setLastSelectedRowIndex] = React10.useState(null);
459
+ const [internalRowSelection, setInternalRowSelection] = React12.useState({});
460
+ const [lastSelectedRowIndex, setLastSelectedRowIndex] = React12.useState(null);
305
461
  const isControlled = selectedRows !== void 0;
306
462
  const enableRowSelection = selectionMode !== "none";
307
- const rowSelectionState = React10.useMemo(() => {
463
+ const rowSelectionState = React12.useMemo(() => {
308
464
  if (!enableRowSelection) return {};
309
465
  if (isControlled && selectedRows) {
310
466
  return getRowSelectionState(selectedRows);
@@ -315,7 +471,7 @@ function useRowSelection({
315
471
  const totalCount = data?.length ?? 0;
316
472
  const isAllSelected = totalCount > 0 && selectedCount === totalCount;
317
473
  const hasSelection = selectedCount > 0;
318
- const onToggleAll = React10.useCallback(() => {
474
+ const onToggleAll = React12.useCallback(() => {
319
475
  if (!enableRowSelection || !data) return;
320
476
  const newSelectedRows = isAllSelected ? [] : data.map((item) => item.$primaryKey);
321
477
  if (!isControlled) {
@@ -323,7 +479,7 @@ function useRowSelection({
323
479
  }
324
480
  onRowSelection?.(newSelectedRows);
325
481
  }, [enableRowSelection, data, isAllSelected, isControlled, onRowSelection]);
326
- const onToggleRow = React10.useCallback((rowId, rowIndex, isShiftClick = false) => {
482
+ const onToggleRow = React12.useCallback((rowId, rowIndex, isShiftClick = false) => {
327
483
  if (!enableRowSelection || !data) return;
328
484
  let newSelectedRows = [];
329
485
  if (selectionMode === "single") {
@@ -446,14 +602,14 @@ function Checkbox({
446
602
  indicatorProps,
447
603
  ...rest
448
604
  }) {
449
- return /* @__PURE__ */ React10__default.default.createElement(checkbox.Checkbox.Root, _extends({
605
+ return /* @__PURE__ */ React12__default.default.createElement(checkbox.Checkbox.Root, _extends({
450
606
  className: classNames7__default.default(Checkbox_default.osdkCheckboxRoot, className),
451
607
  indeterminate
452
- }, rest), /* @__PURE__ */ React10__default.default.createElement(checkbox.Checkbox.Indicator, _extends({}, indicatorProps, {
608
+ }, rest), /* @__PURE__ */ React12__default.default.createElement(checkbox.Checkbox.Indicator, _extends({}, indicatorProps, {
453
609
  className: classNames7__default.default(Checkbox_default.osdkCheckboxIndicator, indicatorProps?.className)
454
- }), indeterminate ? /* @__PURE__ */ React10__default.default.createElement(icons.Minus, {
610
+ }), indeterminate ? /* @__PURE__ */ React12__default.default.createElement(icons.Minus, {
455
611
  color: "currentColor"
456
- }) : /* @__PURE__ */ React10__default.default.createElement(icons.Tick, {
612
+ }) : /* @__PURE__ */ React12__default.default.createElement(icons.Tick, {
457
613
  color: "currentColor"
458
614
  })));
459
615
  }
@@ -464,7 +620,7 @@ function SelectionHeaderCell({
464
620
  hasSelection,
465
621
  onToggleAll
466
622
  }) {
467
- return /* @__PURE__ */ React10__default.default.createElement(Checkbox, {
623
+ return /* @__PURE__ */ React12__default.default.createElement(Checkbox, {
468
624
  indeterminate: hasSelection && !isAllSelected,
469
625
  checked: isAllSelected,
470
626
  onCheckedChange: onToggleAll,
@@ -475,11 +631,11 @@ function SelectionCell({
475
631
  row,
476
632
  onToggleRow
477
633
  }) {
478
- const handleClick = React10.useCallback((event) => {
634
+ const handleClick = React12.useCallback((event) => {
479
635
  const isShiftClick = event.shiftKey;
480
636
  onToggleRow(row.id, row.index, isShiftClick);
481
637
  }, [row, onToggleRow]);
482
- return /* @__PURE__ */ React10__default.default.createElement(Checkbox, {
638
+ return /* @__PURE__ */ React12__default.default.createElement(Checkbox, {
483
639
  checked: row.getIsSelected(),
484
640
  onClick: handleClick,
485
641
  "aria-label": `Select row ${row.index + 1}`
@@ -494,26 +650,26 @@ var useSelectionColumn = ({
494
650
  onToggleAll,
495
651
  onToggleRow
496
652
  }) => {
497
- const isAllSelectedRef = React10.useRef(isAllSelected);
653
+ const isAllSelectedRef = React12.useRef(isAllSelected);
498
654
  isAllSelectedRef.current = isAllSelected;
499
- const hasSelectionRef = React10.useRef(hasSelection);
655
+ const hasSelectionRef = React12.useRef(hasSelection);
500
656
  hasSelectionRef.current = hasSelection;
501
- const onToggleAllRef = React10.useRef(onToggleAll);
657
+ const onToggleAllRef = React12.useRef(onToggleAll);
502
658
  onToggleAllRef.current = onToggleAll;
503
- const onToggleRowRef = React10.useRef(onToggleRow);
659
+ const onToggleRowRef = React12.useRef(onToggleRow);
504
660
  onToggleRowRef.current = onToggleRow;
505
- const selectionColumn = React10.useMemo(() => {
661
+ const selectionColumn = React12.useMemo(() => {
506
662
  if (selectionMode === "none") return null;
507
663
  const colDef = {
508
664
  id: SELECTION_COLUMN_ID,
509
- header: () => selectionMode === "multiple" ? /* @__PURE__ */ React10__default.default.createElement(SelectionHeaderCell, {
665
+ header: () => selectionMode === "multiple" ? /* @__PURE__ */ React12__default.default.createElement(SelectionHeaderCell, {
510
666
  isAllSelected: isAllSelectedRef.current,
511
667
  hasSelection: hasSelectionRef.current,
512
668
  onToggleAll: onToggleAllRef.current
513
669
  }) : null,
514
670
  cell: ({
515
671
  row
516
- }) => /* @__PURE__ */ React10__default.default.createElement(SelectionCell, {
672
+ }) => /* @__PURE__ */ React12__default.default.createElement(SelectionCell, {
517
673
  row,
518
674
  onToggleRow: onToggleRowRef.current
519
675
  }),
@@ -533,10 +689,10 @@ var useTableSorting = ({
533
689
  defaultOrderBy,
534
690
  onOrderByChanged
535
691
  }) => {
536
- const [internalSorting, setInternalSorting] = React10.useState(() => defaultOrderBy ? convertOrderByToSortingState(defaultOrderBy) : []);
692
+ const [internalSorting, setInternalSorting] = React12.useState(() => defaultOrderBy ? convertOrderByToSortingState(defaultOrderBy) : []);
537
693
  const isControlled = orderBy !== void 0;
538
- const sortingState = React10.useMemo(() => orderBy ? convertOrderByToSortingState(orderBy) : internalSorting, [orderBy, internalSorting]);
539
- const onSortingChange = React10.useCallback((updater) => {
694
+ const sortingState = React12.useMemo(() => orderBy ? convertOrderByToSortingState(orderBy) : internalSorting, [orderBy, internalSorting]);
695
+ const onSortingChange = React12.useCallback((updater) => {
540
696
  const newSorting = typeof updater === "function" ? updater(sortingState) : updater;
541
697
  if (!isControlled) {
542
698
  setInternalSorting(newSorting);
@@ -570,6 +726,29 @@ function convertSortingStateToOrderBy(sorting) {
570
726
  }));
571
727
  }
572
728
 
729
+ // src/base-components/action-button/ActionButton.module.css
730
+ var ActionButton_default = {};
731
+
732
+ // src/base-components/action-button/ActionButton.tsx
733
+ function _extends2() {
734
+ return _extends2 = Object.assign ? Object.assign.bind() : function(n) {
735
+ for (var e = 1; e < arguments.length; e++) {
736
+ var t = arguments[e];
737
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
738
+ }
739
+ return n;
740
+ }, _extends2.apply(null, arguments);
741
+ }
742
+ function ActionButton({
743
+ variant = "secondary",
744
+ className,
745
+ ...rest
746
+ }) {
747
+ return /* @__PURE__ */ React12__default.default.createElement(button.Button, _extends2({
748
+ className: classNames7__default.default(ActionButton_default.button, variant === "primary" ? ActionButton_default.primaryButton : ActionButton_default.secondaryButton, className)
749
+ }, rest));
750
+ }
751
+
573
752
  // src/object-table/LoadingCell.module.css
574
753
  var LoadingCell_default = {};
575
754
 
@@ -580,12 +759,12 @@ var TableCell_default = {};
580
759
  function LoadingCell({
581
760
  width
582
761
  }) {
583
- return /* @__PURE__ */ React10__default.default.createElement("td", {
762
+ return /* @__PURE__ */ React12__default.default.createElement("td", {
584
763
  className: TableCell_default.osdkTableCell,
585
764
  style: {
586
765
  width
587
766
  }
588
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
767
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
589
768
  className: classNames7__default.default(LoadingCell_default.osdkLoadingCell, LoadingCell_default.osdkCellSkeleton)
590
769
  }));
591
770
  }
@@ -601,17 +780,17 @@ function LoadingRow({
601
780
  rowHeight = 40,
602
781
  columnWidth = 80
603
782
  }) {
604
- return /* @__PURE__ */ React10__default.default.createElement("tr", {
783
+ return /* @__PURE__ */ React12__default.default.createElement("tr", {
605
784
  className: TableRow_default.osdkTableRow,
606
785
  style: {
607
786
  height: `${rowHeight}px`,
608
787
  transform: `translateY(${translateY}px)`
609
788
  }
610
- }, /* @__PURE__ */ React10__default.default.createElement(React10__default.default.Fragment, null, Array.from({
789
+ }, /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, Array.from({
611
790
  length: columnCount
612
791
  }).map((_, index) => {
613
792
  const width = headers.length > index ? headers[index].getSize() : columnWidth;
614
- return /* @__PURE__ */ React10__default.default.createElement(LoadingCell, {
793
+ return /* @__PURE__ */ React12__default.default.createElement(LoadingCell, {
615
794
  key: `loading-cell-${index}`,
616
795
  width
617
796
  });
@@ -621,29 +800,6 @@ function LoadingRow({
621
800
  // src/object-table/TableBody.module.css
622
801
  var TableBody_default = {};
623
802
 
624
- // src/base-components/action-button/ActionButton.module.css
625
- var ActionButton_default = {};
626
-
627
- // src/base-components/action-button/ActionButton.tsx
628
- function _extends2() {
629
- return _extends2 = Object.assign ? Object.assign.bind() : function(n) {
630
- for (var e = 1; e < arguments.length; e++) {
631
- var t = arguments[e];
632
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
633
- }
634
- return n;
635
- }, _extends2.apply(null, arguments);
636
- }
637
- function ActionButton({
638
- variant = "secondary",
639
- className,
640
- ...rest
641
- }) {
642
- return /* @__PURE__ */ React10__default.default.createElement(button.Button, _extends2({
643
- className: classNames7__default.default(ActionButton_default.button, variant === "primary" ? ActionButton_default.primaryButton : ActionButton_default.secondaryButton, className)
644
- }, rest));
645
- }
646
-
647
803
  // src/base-components/dialog/Dialog.module.css
648
804
  var Dialog_default = {};
649
805
 
@@ -656,25 +812,25 @@ function Dialog({
656
812
  footer,
657
813
  className
658
814
  }) {
659
- return /* @__PURE__ */ React10__default.default.createElement(dialog.Dialog.Root, {
815
+ return /* @__PURE__ */ React12__default.default.createElement(dialog.Dialog.Root, {
660
816
  open: isOpen,
661
817
  onOpenChange
662
- }, /* @__PURE__ */ React10__default.default.createElement(dialog.Dialog.Portal, null, /* @__PURE__ */ React10__default.default.createElement(dialog.Dialog.Backdrop, {
818
+ }, /* @__PURE__ */ React12__default.default.createElement(dialog.Dialog.Portal, null, /* @__PURE__ */ React12__default.default.createElement(dialog.Dialog.Backdrop, {
663
819
  className: Dialog_default.backdrop
664
- }), /* @__PURE__ */ React10__default.default.createElement(dialog.Dialog.Popup, {
820
+ }), /* @__PURE__ */ React12__default.default.createElement(dialog.Dialog.Popup, {
665
821
  className: classNames7__default.default(Dialog_default.popup, className)
666
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
822
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
667
823
  className: Dialog_default.header
668
- }, /* @__PURE__ */ React10__default.default.createElement(dialog.Dialog.Title, {
824
+ }, /* @__PURE__ */ React12__default.default.createElement(dialog.Dialog.Title, {
669
825
  className: Dialog_default.title
670
- }, title), /* @__PURE__ */ React10__default.default.createElement(dialog.Dialog.Close, {
826
+ }, title), /* @__PURE__ */ React12__default.default.createElement(dialog.Dialog.Close, {
671
827
  className: Dialog_default.closeButton,
672
828
  "aria-label": "Close dialog"
673
- }, /* @__PURE__ */ React10__default.default.createElement(icons.Cross, {
829
+ }, /* @__PURE__ */ React12__default.default.createElement(icons.Cross, {
674
830
  className: Dialog_default.closeIcon
675
- }))), /* @__PURE__ */ React10__default.default.createElement("div", {
831
+ }))), /* @__PURE__ */ React12__default.default.createElement("div", {
676
832
  className: Dialog_default.body
677
- }, children), footer != null && /* @__PURE__ */ React10__default.default.createElement("div", {
833
+ }, children), footer != null && /* @__PURE__ */ React12__default.default.createElement("div", {
678
834
  className: Dialog_default.footer
679
835
  }, footer))));
680
836
  }
@@ -712,27 +868,27 @@ function DraggableListItem({
712
868
  transform: utilities.CSS.Transform.toString(transform),
713
869
  transition
714
870
  };
715
- const handleRemove = React10.useCallback(() => {
871
+ const handleRemove = React12.useCallback(() => {
716
872
  onRemove?.(item.id);
717
873
  }, [item.id, onRemove]);
718
874
  const RemoveIcon = removeIconVariant === "trash" ? icons.Trash : icons.SmallCross;
719
- return /* @__PURE__ */ React10__default.default.createElement("div", {
875
+ return /* @__PURE__ */ React12__default.default.createElement("div", {
720
876
  ref: setNodeRef,
721
877
  style,
722
878
  className: DraggableList_default.draggableItem,
723
879
  "data-dragging": isDragging
724
- }, /* @__PURE__ */ React10__default.default.createElement("div", _extends3({
880
+ }, /* @__PURE__ */ React12__default.default.createElement("div", _extends3({
725
881
  className: DraggableList_default.dragHandle,
726
882
  "aria-label": `Reorder ${item.label}`
727
- }, attributes, listeners), /* @__PURE__ */ React10__default.default.createElement(icons.DragHandleVertical, {
883
+ }, attributes, listeners), /* @__PURE__ */ React12__default.default.createElement(icons.DragHandleVertical, {
728
884
  className: DraggableList_default.icon
729
- })), /* @__PURE__ */ React10__default.default.createElement("div", {
885
+ })), /* @__PURE__ */ React12__default.default.createElement("div", {
730
886
  className: DraggableList_default.itemContent
731
- }, renderContent ? renderContent(item) : item.label), onRemove && /* @__PURE__ */ React10__default.default.createElement(button.Button, {
887
+ }, renderContent ? renderContent(item) : item.label), onRemove && /* @__PURE__ */ React12__default.default.createElement(button.Button, {
732
888
  className: DraggableList_default.removeButton,
733
889
  onClick: handleRemove,
734
890
  "aria-label": `Remove ${item.label}`
735
- }, /* @__PURE__ */ React10__default.default.createElement(RemoveIcon, {
891
+ }, /* @__PURE__ */ React12__default.default.createElement(RemoveIcon, {
736
892
  className: DraggableList_default.icon
737
893
  })));
738
894
  }
@@ -745,7 +901,7 @@ function DraggableList({
745
901
  emptyMessage,
746
902
  className
747
903
  }) {
748
- const itemIds = React10.useMemo(() => items.map((item) => item.id), [items]);
904
+ const itemIds = React12.useMemo(() => items.map((item) => item.id), [items]);
749
905
  const sensors = core.useSensors(core.useSensor(core.PointerSensor, {
750
906
  activationConstraint: {
751
907
  distance: 5
@@ -753,7 +909,7 @@ function DraggableList({
753
909
  }), core.useSensor(core.KeyboardSensor, {
754
910
  coordinateGetter: sortable.sortableKeyboardCoordinates
755
911
  }));
756
- const handleDragEnd = React10.useCallback((event) => {
912
+ const handleDragEnd = React12.useCallback((event) => {
757
913
  const {
758
914
  active,
759
915
  over
@@ -764,31 +920,31 @@ function DraggableList({
764
920
  onReorder(oldIndex, newIndex);
765
921
  }
766
922
  }, [items, onReorder]);
767
- const containerRef = React10.useRef(null);
923
+ const containerRef = React12.useRef(null);
768
924
  useKeyboardEvents(containerRef);
769
925
  const DndContext = core.DndContext;
770
- return /* @__PURE__ */ React10__default.default.createElement("div", {
926
+ return /* @__PURE__ */ React12__default.default.createElement("div", {
771
927
  ref: containerRef,
772
928
  className: classNames7__default.default(DraggableList_default.draggableListContainer, className)
773
- }, /* @__PURE__ */ React10__default.default.createElement(DndContext, {
929
+ }, /* @__PURE__ */ React12__default.default.createElement(DndContext, {
774
930
  sensors,
775
931
  collisionDetection: core.closestCenter,
776
932
  onDragEnd: handleDragEnd
777
- }, /* @__PURE__ */ React10__default.default.createElement(sortable.SortableContext, {
933
+ }, /* @__PURE__ */ React12__default.default.createElement(sortable.SortableContext, {
778
934
  items: itemIds,
779
935
  strategy: sortable.verticalListSortingStrategy
780
- }, items.map((item) => /* @__PURE__ */ React10__default.default.createElement(DraggableListItem, {
936
+ }, items.map((item) => /* @__PURE__ */ React12__default.default.createElement(DraggableListItem, {
781
937
  key: item.id,
782
938
  item,
783
939
  onRemove,
784
940
  removeIconVariant,
785
941
  renderContent
786
- })))), items.length === 0 && emptyMessage && /* @__PURE__ */ React10__default.default.createElement("div", {
942
+ })))), items.length === 0 && emptyMessage && /* @__PURE__ */ React12__default.default.createElement("div", {
787
943
  className: DraggableList_default.emptyState
788
944
  }, emptyMessage));
789
945
  }
790
946
  var useKeyboardEvents = (containerRef) => {
791
- React10.useEffect(() => {
947
+ React12.useEffect(() => {
792
948
  const el = containerRef.current;
793
949
  if (el == null) {
794
950
  return;
@@ -825,11 +981,11 @@ function SearchBar({
825
981
  className,
826
982
  onKeyDown
827
983
  }) {
828
- return /* @__PURE__ */ React10__default.default.createElement("div", {
984
+ return /* @__PURE__ */ React12__default.default.createElement("div", {
829
985
  className: classNames7__default.default(SearchBar_default.searchBar, className)
830
- }, /* @__PURE__ */ React10__default.default.createElement(icons.Search, {
986
+ }, /* @__PURE__ */ React12__default.default.createElement(icons.Search, {
831
987
  className: SearchBar_default.searchIcon
832
- }), /* @__PURE__ */ React10__default.default.createElement(input.Input, {
988
+ }), /* @__PURE__ */ React12__default.default.createElement(input.Input, {
833
989
  type: "text",
834
990
  placeholder,
835
991
  "aria-label": ariaLabel ?? placeholder,
@@ -853,9 +1009,9 @@ function ColumnConfigDialog({
853
1009
  onApply,
854
1010
  isValidConfig
855
1011
  }) {
856
- const [visibleColumns, setVisibleColumns] = React10.useState([]);
857
- const [searchQuery, setSearchQuery] = React10.useState("");
858
- const allColumns = React10.useMemo(() => {
1012
+ const [visibleColumns, setVisibleColumns] = React12.useState([]);
1013
+ const [searchQuery, setSearchQuery] = React12.useState("");
1014
+ const allColumns = React12.useMemo(() => {
859
1015
  return columnOptions.map((opt) => {
860
1016
  const isVisible = currentVisibility ? currentVisibility[opt.id] : false;
861
1017
  return {
@@ -865,7 +1021,7 @@ function ColumnConfigDialog({
865
1021
  };
866
1022
  });
867
1023
  }, [columnOptions, currentVisibility]);
868
- React10.useEffect(() => {
1024
+ React12.useEffect(() => {
869
1025
  if (isOpen) {
870
1026
  const visibleCols = allColumns.filter((col) => col.isVisible);
871
1027
  if (!!currentColumnOrder?.length) {
@@ -881,19 +1037,19 @@ function ColumnConfigDialog({
881
1037
  setSearchQuery("");
882
1038
  }
883
1039
  }, [isOpen, allColumns, currentColumnOrder]);
884
- const handleApply = React10.useCallback(() => {
1040
+ const handleApply = React12.useCallback(() => {
885
1041
  onApply(getColumnConfig(allColumns, visibleColumns));
886
1042
  onClose();
887
1043
  }, [allColumns, visibleColumns, onApply, onClose]);
888
1044
  const isValid = isValidConfig ? isValidConfig(getColumnConfig(allColumns, visibleColumns)) : true;
889
1045
  const isApplyDisabled = visibleColumns.length === 0 || !isValid;
890
- const handleReorderColumns = React10.useCallback((fromIndex, toIndex) => {
1046
+ const handleReorderColumns = React12.useCallback((fromIndex, toIndex) => {
891
1047
  setVisibleColumns((items) => sortable.arrayMove(items, fromIndex, toIndex));
892
1048
  }, []);
893
- const handleRemoveColumn = React10.useCallback((columnId) => {
1049
+ const handleRemoveColumn = React12.useCallback((columnId) => {
894
1050
  setVisibleColumns((prev) => prev.filter((col) => col.id !== columnId));
895
1051
  }, []);
896
- const handleToggleColumn = React10.useCallback((column) => {
1052
+ const handleToggleColumn = React12.useCallback((column) => {
897
1053
  setVisibleColumns((prev) => {
898
1054
  const isCurrentlyVisible = prev.some((col) => col.id === column.id);
899
1055
  if (isCurrentlyVisible) {
@@ -903,10 +1059,10 @@ function ColumnConfigDialog({
903
1059
  }
904
1060
  });
905
1061
  }, []);
906
- const handleSearchChange = React10.useCallback((event) => {
1062
+ const handleSearchChange = React12.useCallback((event) => {
907
1063
  setSearchQuery(event.target.value);
908
1064
  }, []);
909
- const handleSelectAll = React10.useCallback((columns) => {
1065
+ const handleSelectAll = React12.useCallback((columns) => {
910
1066
  setVisibleColumns((prev) => {
911
1067
  const allSelected = columns.every((col) => prev.some((v) => v.id === col.id));
912
1068
  if (allSelected) {
@@ -917,33 +1073,33 @@ function ColumnConfigDialog({
917
1073
  }
918
1074
  });
919
1075
  }, []);
920
- const filteredAvailableColumns = React10.useMemo(() => {
1076
+ const filteredAvailableColumns = React12.useMemo(() => {
921
1077
  const query = searchQuery.toLowerCase().trim();
922
1078
  if (!query) {
923
1079
  return allColumns;
924
1080
  }
925
1081
  return allColumns.filter((col) => (col.label?.toLowerCase().includes(query) ?? false) || col.id.toLowerCase().includes(query));
926
1082
  }, [allColumns, searchQuery]);
927
- const footer = React10.useMemo(() => /* @__PURE__ */ React10__default.default.createElement(React10__default.default.Fragment, null, /* @__PURE__ */ React10__default.default.createElement(ActionButton, {
1083
+ const footer = React12.useMemo(() => /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement(ActionButton, {
928
1084
  onClick: onClose
929
- }, "Cancel"), /* @__PURE__ */ React10__default.default.createElement(ActionButton, {
1085
+ }, "Cancel"), /* @__PURE__ */ React12__default.default.createElement(ActionButton, {
930
1086
  variant: "primary",
931
1087
  onClick: handleApply,
932
1088
  disabled: isApplyDisabled
933
1089
  }, "Apply")), [onClose, handleApply, isApplyDisabled]);
934
- return /* @__PURE__ */ React10__default.default.createElement(Dialog, {
1090
+ return /* @__PURE__ */ React12__default.default.createElement(Dialog, {
935
1091
  isOpen,
936
1092
  onOpenChange: onClose,
937
1093
  title: DialogTitle,
938
1094
  footer,
939
1095
  className: ColumnConfigDialog_default.columnConfigDialog
940
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1096
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
941
1097
  className: ColumnConfigDialog_default.dialogLayout
942
- }, /* @__PURE__ */ React10__default.default.createElement(VisibleColumnsList, {
1098
+ }, /* @__PURE__ */ React12__default.default.createElement(VisibleColumnsList, {
943
1099
  columns: visibleColumns,
944
1100
  onReorder: handleReorderColumns,
945
1101
  onRemove: handleRemoveColumn
946
- }), /* @__PURE__ */ React10__default.default.createElement(AvailableColumnsList, {
1102
+ }), /* @__PURE__ */ React12__default.default.createElement(AvailableColumnsList, {
947
1103
  visibleColumns,
948
1104
  searchQuery,
949
1105
  onSearchChange: handleSearchChange,
@@ -952,9 +1108,9 @@ function ColumnConfigDialog({
952
1108
  filteredColumns: filteredAvailableColumns
953
1109
  })));
954
1110
  }
955
- var DialogTitle = /* @__PURE__ */ React10__default.default.createElement("div", {
1111
+ var DialogTitle = /* @__PURE__ */ React12__default.default.createElement("div", {
956
1112
  className: ColumnConfigDialog_default.title
957
- }, /* @__PURE__ */ React10__default.default.createElement(icons.Cog, null), "Configure Table Columns");
1113
+ }, /* @__PURE__ */ React12__default.default.createElement(icons.Cog, null), "Configure Table Columns");
958
1114
  var getColumnConfig = (allColumns, visibleColumns) => {
959
1115
  const hiddenColumns = allColumns.filter((col) => !visibleColumns.some((v) => v.id === col.id));
960
1116
  return [...visibleColumns.map((col) => ({
@@ -970,17 +1126,17 @@ function VisibleColumnsList({
970
1126
  onReorder,
971
1127
  onRemove
972
1128
  }) {
973
- return /* @__PURE__ */ React10__default.default.createElement("div", {
1129
+ return /* @__PURE__ */ React12__default.default.createElement("div", {
974
1130
  className: ColumnConfigDialog_default.visibleColumnsContainer
975
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1131
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
976
1132
  className: ColumnConfigDialog_default.sectionHeader
977
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1133
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
978
1134
  className: ColumnConfigDialog_default.sectionTitle
979
- }, /* @__PURE__ */ React10__default.default.createElement("span", null, "Visible Columns"), /* @__PURE__ */ React10__default.default.createElement("span", {
1135
+ }, /* @__PURE__ */ React12__default.default.createElement("span", null, "Visible Columns"), /* @__PURE__ */ React12__default.default.createElement("span", {
980
1136
  className: ColumnConfigDialog_default.countTag
981
- }, columns.length)), /* @__PURE__ */ React10__default.default.createElement("div", {
1137
+ }, columns.length)), /* @__PURE__ */ React12__default.default.createElement("div", {
982
1138
  className: ColumnConfigDialog_default.sectionHint
983
- }, "Drag to reorder")), /* @__PURE__ */ React10__default.default.createElement(DraggableList, {
1139
+ }, "Drag to reorder")), /* @__PURE__ */ React12__default.default.createElement(DraggableList, {
984
1140
  items: columns,
985
1141
  onReorder,
986
1142
  onRemove,
@@ -1001,42 +1157,42 @@ function AvailableColumnsList({
1001
1157
  const totalCount = filteredColumns.length;
1002
1158
  const allFilteredSelected = filteredColumns.every((col) => visibleColumns.some((v) => v.id === col.id));
1003
1159
  const someFilteredSelected = filteredColumns.some((col) => visibleColumns.some((v) => v.id === col.id));
1004
- const handleSelectAllClick = React10.useCallback(() => {
1160
+ const handleSelectAllClick = React12.useCallback(() => {
1005
1161
  onSelectAll(filteredColumns);
1006
1162
  }, [filteredColumns, onSelectAll]);
1007
- return /* @__PURE__ */ React10__default.default.createElement("div", {
1163
+ return /* @__PURE__ */ React12__default.default.createElement("div", {
1008
1164
  className: ColumnConfigDialog_default.availableColumnsContainer
1009
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1165
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
1010
1166
  className: classNames7__default.default(ColumnConfigDialog_default.sectionHeader, ColumnConfigDialog_default.sectionTitle)
1011
- }, "Add or Remove Columns"), /* @__PURE__ */ React10__default.default.createElement(SearchBar, {
1167
+ }, "Add or Remove Columns"), /* @__PURE__ */ React12__default.default.createElement(SearchBar, {
1012
1168
  value: searchQuery,
1013
1169
  onChange: onSearchChange,
1014
1170
  placeholder: "Search...",
1015
1171
  "aria-label": "Search available columns",
1016
1172
  className: ColumnConfigDialog_default.searchContainer
1017
- }), /* @__PURE__ */ React10__default.default.createElement(collapsible.Collapsible.Root, {
1173
+ }), /* @__PURE__ */ React12__default.default.createElement(collapsible.Collapsible.Root, {
1018
1174
  defaultOpen: true,
1019
1175
  className: ColumnConfigDialog_default.propertiesList
1020
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1176
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
1021
1177
  className: ColumnConfigDialog_default.categoryHeader
1022
- }, /* @__PURE__ */ React10__default.default.createElement(Checkbox, {
1178
+ }, /* @__PURE__ */ React12__default.default.createElement(Checkbox, {
1023
1179
  checked: allFilteredSelected,
1024
1180
  indeterminate: someFilteredSelected && !allFilteredSelected,
1025
1181
  onCheckedChange: handleSelectAllClick,
1026
1182
  className: ColumnConfigDialog_default.checkbox
1027
- }), /* @__PURE__ */ React10__default.default.createElement(collapsible.Collapsible.Trigger, {
1183
+ }), /* @__PURE__ */ React12__default.default.createElement(collapsible.Collapsible.Trigger, {
1028
1184
  className: ColumnConfigDialog_default.categoryTrigger
1029
- }, /* @__PURE__ */ React10__default.default.createElement("span", {
1185
+ }, /* @__PURE__ */ React12__default.default.createElement("span", {
1030
1186
  className: ColumnConfigDialog_default.categoryTitle
1031
- }, "All Columns"), /* @__PURE__ */ React10__default.default.createElement("span", {
1187
+ }, "All Columns"), /* @__PURE__ */ React12__default.default.createElement("span", {
1032
1188
  className: ColumnConfigDialog_default.categoryCount
1033
- }, selectedCount, "/", totalCount), /* @__PURE__ */ React10__default.default.createElement(icons.CaretDown, {
1189
+ }, selectedCount, "/", totalCount), /* @__PURE__ */ React12__default.default.createElement(icons.CaretDown, {
1034
1190
  className: ColumnConfigDialog_default.caretIcon
1035
- }))), /* @__PURE__ */ React10__default.default.createElement(collapsible.Collapsible.Panel, {
1191
+ }))), /* @__PURE__ */ React12__default.default.createElement(collapsible.Collapsible.Panel, {
1036
1192
  className: ColumnConfigDialog_default.propertyList
1037
- }, filteredColumns.length === 0 ? /* @__PURE__ */ React10__default.default.createElement("div", {
1193
+ }, filteredColumns.length === 0 ? /* @__PURE__ */ React12__default.default.createElement("div", {
1038
1194
  className: ColumnConfigDialog_default.emptyState
1039
- }, "No matching columns found") : filteredColumns.map((column) => /* @__PURE__ */ React10__default.default.createElement(PropertyItem, {
1195
+ }, "No matching columns found") : filteredColumns.map((column) => /* @__PURE__ */ React12__default.default.createElement(PropertyItem, {
1040
1196
  key: column.id,
1041
1197
  column,
1042
1198
  isSelected: visibleColumns.some((v) => v.id === column.id),
@@ -1049,19 +1205,19 @@ function PropertyItem({
1049
1205
  onToggle,
1050
1206
  showInfoIcon = false
1051
1207
  }) {
1052
- const handleClick = React10.useCallback(() => {
1208
+ const handleClick = React12.useCallback(() => {
1053
1209
  onToggle(column);
1054
1210
  }, [onToggle, column]);
1055
- return /* @__PURE__ */ React10__default.default.createElement("div", {
1211
+ return /* @__PURE__ */ React12__default.default.createElement("div", {
1056
1212
  className: ColumnConfigDialog_default.propertyItem
1057
- }, /* @__PURE__ */ React10__default.default.createElement(Checkbox, {
1213
+ }, /* @__PURE__ */ React12__default.default.createElement(Checkbox, {
1058
1214
  checked: isSelected,
1059
1215
  onCheckedChange: handleClick,
1060
1216
  className: ColumnConfigDialog_default.checkbox
1061
- }), /* @__PURE__ */ React10__default.default.createElement(button.Button, {
1217
+ }), /* @__PURE__ */ React12__default.default.createElement(button.Button, {
1062
1218
  onClick: handleClick,
1063
1219
  className: ColumnConfigDialog_default.propertyName
1064
- }, column.label), showInfoIcon && /* @__PURE__ */ React10__default.default.createElement(icons.SmallInfoSign, {
1220
+ }, column.label), showInfoIcon && /* @__PURE__ */ React12__default.default.createElement(icons.SmallInfoSign, {
1065
1221
  className: ColumnConfigDialog_default.infoIcon
1066
1222
  }));
1067
1223
  }
@@ -1074,8 +1230,8 @@ function SortableItemsList({
1074
1230
  onRemove,
1075
1231
  className
1076
1232
  }) {
1077
- const renderContent = React10.useCallback((item) => item.content, []);
1078
- return /* @__PURE__ */ React10__default.default.createElement(DraggableList, {
1233
+ const renderContent = React12.useCallback((item) => item.content, []);
1234
+ return /* @__PURE__ */ React12__default.default.createElement(DraggableList, {
1079
1235
  items,
1080
1236
  onReorder,
1081
1237
  onRemove,
@@ -1093,9 +1249,9 @@ function MultiColumnSortDialog({
1093
1249
  currentSorting,
1094
1250
  columnOptions
1095
1251
  }) {
1096
- const [selectedSortColumns, setSelectedSortColumns] = React10.useState([]);
1097
- const [menuSearchQuery, setMenuSearchQuery] = React10.useState("");
1098
- React10.useEffect(() => {
1252
+ const [selectedSortColumns, setSelectedSortColumns] = React12.useState([]);
1253
+ const [menuSearchQuery, setMenuSearchQuery] = React12.useState("");
1254
+ React12.useEffect(() => {
1099
1255
  if (isOpen) {
1100
1256
  const selectedColumns = [];
1101
1257
  for (const sort of currentSorting) {
@@ -1110,25 +1266,25 @@ function MultiColumnSortDialog({
1110
1266
  setSelectedSortColumns(selectedColumns);
1111
1267
  }
1112
1268
  }, [isOpen, currentSorting, columnOptions]);
1113
- const handleAddColumn = React10.useCallback((column) => {
1269
+ const handleAddColumn = React12.useCallback((column) => {
1114
1270
  setSelectedSortColumns((prev) => [...prev, {
1115
1271
  ...column,
1116
1272
  direction: "asc"
1117
1273
  }]);
1118
1274
  }, []);
1119
- const handleRemoveSortColumn = React10.useCallback((id) => {
1275
+ const handleRemoveSortColumn = React12.useCallback((id) => {
1120
1276
  setSelectedSortColumns((prev) => prev.filter((item) => item.id !== id));
1121
1277
  }, []);
1122
- const handleReorderSortColumns = React10.useCallback((fromIndex, toIndex) => {
1278
+ const handleReorderSortColumns = React12.useCallback((fromIndex, toIndex) => {
1123
1279
  setSelectedSortColumns((items) => sortable.arrayMove(items, fromIndex, toIndex));
1124
1280
  }, []);
1125
- const handleToggleSortDirection = React10.useCallback((id) => {
1281
+ const handleToggleSortDirection = React12.useCallback((id) => {
1126
1282
  setSelectedSortColumns((prev) => prev.map((item) => item.id === id ? {
1127
1283
  ...item,
1128
1284
  direction: item.direction === "asc" ? "desc" : "asc"
1129
1285
  } : item));
1130
1286
  }, []);
1131
- const handleApply = React10.useCallback(() => {
1287
+ const handleApply = React12.useCallback(() => {
1132
1288
  const sortingState = selectedSortColumns.map((col) => ({
1133
1289
  id: col.id,
1134
1290
  desc: col.direction === "desc"
@@ -1136,100 +1292,100 @@ function MultiColumnSortDialog({
1136
1292
  onApply(sortingState);
1137
1293
  onClose();
1138
1294
  }, [selectedSortColumns, onApply, onClose]);
1139
- const availableColumns = React10.useMemo(() => columnOptions.filter((col) => col.canSort && !selectedSortColumns.some((selected) => selected.id === col.id)), [columnOptions, selectedSortColumns]);
1140
- const filteredAvailableColumns = React10.useMemo(() => {
1295
+ const availableColumns = React12.useMemo(() => columnOptions.filter((col) => col.canSort && !selectedSortColumns.some((selected) => selected.id === col.id)), [columnOptions, selectedSortColumns]);
1296
+ const filteredAvailableColumns = React12.useMemo(() => {
1141
1297
  const query = menuSearchQuery.toLowerCase().trim();
1142
1298
  if (!query) {
1143
1299
  return availableColumns;
1144
1300
  }
1145
1301
  return availableColumns.filter((col) => col.name.toLowerCase().includes(query));
1146
1302
  }, [availableColumns, menuSearchQuery]);
1147
- const handleMenuSearchChange = React10.useCallback((event) => {
1303
+ const handleMenuSearchChange = React12.useCallback((event) => {
1148
1304
  setMenuSearchQuery(event.target.value);
1149
1305
  }, []);
1150
- const handleMenuOpenChange = React10.useCallback((open) => {
1306
+ const handleMenuOpenChange = React12.useCallback((open) => {
1151
1307
  if (open) {
1152
1308
  setMenuSearchQuery("");
1153
1309
  }
1154
1310
  }, []);
1155
- const sortableItems = React10.useMemo(() => {
1311
+ const sortableItems = React12.useMemo(() => {
1156
1312
  return selectedSortColumns.map((item) => ({
1157
1313
  id: item.id,
1158
1314
  label: item.name,
1159
- content: /* @__PURE__ */ React10__default.default.createElement("div", {
1315
+ content: /* @__PURE__ */ React12__default.default.createElement("div", {
1160
1316
  className: MultiColumnSortDialog_default.sortColumnItem
1161
- }, /* @__PURE__ */ React10__default.default.createElement("span", {
1317
+ }, /* @__PURE__ */ React12__default.default.createElement("span", {
1162
1318
  className: classNames7__default.default(MultiColumnSortDialog_default.sortColumnName, MultiColumnSortDialog_default.truncate)
1163
- }, item.name), /* @__PURE__ */ React10__default.default.createElement(button.Button, {
1319
+ }, item.name), /* @__PURE__ */ React12__default.default.createElement(button.Button, {
1164
1320
  className: MultiColumnSortDialog_default.sortDirectionButton,
1165
1321
  onClick: () => handleToggleSortDirection(item.id),
1166
1322
  "aria-label": `Toggle sort direction for ${item.name}`
1167
- }, item.direction === "asc" ? /* @__PURE__ */ React10__default.default.createElement(icons.SortAlphabetical, {
1323
+ }, item.direction === "asc" ? /* @__PURE__ */ React12__default.default.createElement(icons.SortAlphabetical, {
1168
1324
  className: MultiColumnSortDialog_default.sortIcon
1169
- }) : /* @__PURE__ */ React10__default.default.createElement(icons.SortAlphabeticalDesc, {
1325
+ }) : /* @__PURE__ */ React12__default.default.createElement(icons.SortAlphabeticalDesc, {
1170
1326
  className: MultiColumnSortDialog_default.sortIcon
1171
1327
  })))
1172
1328
  }));
1173
1329
  }, [selectedSortColumns, handleToggleSortDirection]);
1174
- const footer = React10.useMemo(() => /* @__PURE__ */ React10__default.default.createElement(React10__default.default.Fragment, null, /* @__PURE__ */ React10__default.default.createElement(ActionButton, {
1330
+ const footer = React12.useMemo(() => /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement(ActionButton, {
1175
1331
  onClick: onClose
1176
- }, "Cancel"), /* @__PURE__ */ React10__default.default.createElement(ActionButton, {
1332
+ }, "Cancel"), /* @__PURE__ */ React12__default.default.createElement(ActionButton, {
1177
1333
  variant: "primary",
1178
1334
  onClick: handleApply
1179
1335
  }, "Apply")), [handleApply, onClose]);
1180
- return /* @__PURE__ */ React10__default.default.createElement(Dialog, {
1336
+ return /* @__PURE__ */ React12__default.default.createElement(Dialog, {
1181
1337
  isOpen,
1182
1338
  onOpenChange: onClose,
1183
1339
  title: DialogTitle2,
1184
1340
  footer
1185
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1341
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
1186
1342
  className: MultiColumnSortDialog_default.sortColumnsList
1187
- }, /* @__PURE__ */ React10__default.default.createElement(SortableItemsList, {
1343
+ }, /* @__PURE__ */ React12__default.default.createElement(SortableItemsList, {
1188
1344
  items: sortableItems,
1189
1345
  onReorder: handleReorderSortColumns,
1190
1346
  onRemove: handleRemoveSortColumn,
1191
1347
  className: MultiColumnSortDialog_default.sortableList
1192
- }), /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Root, {
1348
+ }), /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Root, {
1193
1349
  onOpenChange: handleMenuOpenChange
1194
- }, /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Trigger, {
1350
+ }, /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Trigger, {
1195
1351
  className: MultiColumnSortDialog_default.addColumnButton,
1196
1352
  disabled: availableColumns.length === 0,
1197
1353
  "aria-label": "Add column to sort"
1198
- }, /* @__PURE__ */ React10__default.default.createElement(icons.Add, {
1354
+ }, /* @__PURE__ */ React12__default.default.createElement(icons.Add, {
1199
1355
  className: MultiColumnSortDialog_default.addIcon
1200
- }), /* @__PURE__ */ React10__default.default.createElement("span", {
1356
+ }), /* @__PURE__ */ React12__default.default.createElement("span", {
1201
1357
  className: MultiColumnSortDialog_default.addColumnText
1202
- }, "Add Column to Sort"), /* @__PURE__ */ React10__default.default.createElement(icons.CaretDown, {
1358
+ }, "Add Column to Sort"), /* @__PURE__ */ React12__default.default.createElement(icons.CaretDown, {
1203
1359
  color: "currentColor"
1204
- })), /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Portal, null, /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Positioner, {
1360
+ })), /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Portal, null, /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Positioner, {
1205
1361
  className: MultiColumnSortDialog_default.menuPositioner,
1206
1362
  sideOffset: 4
1207
- }, /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Popup, {
1363
+ }, /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Popup, {
1208
1364
  className: MultiColumnSortDialog_default.dropdownMenu
1209
- }, /* @__PURE__ */ React10__default.default.createElement(SearchBar, {
1365
+ }, /* @__PURE__ */ React12__default.default.createElement(SearchBar, {
1210
1366
  value: menuSearchQuery,
1211
1367
  onChange: handleMenuSearchChange,
1212
1368
  placeholder: "Search columns",
1213
1369
  "aria-label": "Search columns to sort",
1214
1370
  className: MultiColumnSortDialog_default.menuSearchContainer,
1215
1371
  onKeyDown: (e) => e.stopPropagation()
1216
- }), filteredAvailableColumns.map((column) => /* @__PURE__ */ React10__default.default.createElement(AvailableColumnMenuItem, {
1372
+ }), filteredAvailableColumns.map((column) => /* @__PURE__ */ React12__default.default.createElement(AvailableColumnMenuItem, {
1217
1373
  key: column.id,
1218
1374
  column,
1219
1375
  onAddColumn: handleAddColumn
1220
- })), filteredAvailableColumns.length === 0 && /* @__PURE__ */ React10__default.default.createElement("div", {
1376
+ })), filteredAvailableColumns.length === 0 && /* @__PURE__ */ React12__default.default.createElement("div", {
1221
1377
  className: MultiColumnSortDialog_default.menuEmptyState
1222
1378
  }, "No matching columns")))))));
1223
1379
  }
1224
- var DialogTitle2 = /* @__PURE__ */ React10__default.default.createElement("div", {
1380
+ var DialogTitle2 = /* @__PURE__ */ React12__default.default.createElement("div", {
1225
1381
  className: MultiColumnSortDialog_default.title
1226
- }, /* @__PURE__ */ React10__default.default.createElement(icons.Cog, null), "Sort on Multiple Columns");
1382
+ }, /* @__PURE__ */ React12__default.default.createElement(icons.Cog, null), "Sort on Multiple Columns");
1227
1383
  function AvailableColumnMenuItem({
1228
1384
  column,
1229
1385
  onAddColumn
1230
1386
  }) {
1231
- const onClick = React10.useCallback(() => onAddColumn(column), [onAddColumn, column]);
1232
- return /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Item, {
1387
+ const onClick = React12.useCallback(() => onAddColumn(column), [onAddColumn, column]);
1388
+ return /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Item, {
1233
1389
  className: classNames7__default.default(MultiColumnSortDialog_default.dropdownItem, MultiColumnSortDialog_default.truncate),
1234
1390
  onClick
1235
1391
  }, column.name);
@@ -1245,7 +1401,7 @@ var TableHeaderContent_default = {};
1245
1401
  function TableHeaderContent({
1246
1402
  header
1247
1403
  }) {
1248
- return /* @__PURE__ */ React10__default.default.createElement("div", {
1404
+ return /* @__PURE__ */ React12__default.default.createElement("div", {
1249
1405
  className: TableHeaderContent_default.osdkHeaderContent
1250
1406
  }, reactTable.flexRender(header.column.columnDef.header, header.getContext()));
1251
1407
  }
@@ -1260,14 +1416,14 @@ function HeaderMenuItem({
1260
1416
  label,
1261
1417
  active = false
1262
1418
  }) {
1263
- return /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Item, {
1419
+ return /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Item, {
1264
1420
  closeOnClick: true,
1265
1421
  className: classNames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderMenuItem, active && TableHeaderWithPopover_default.osdkHeaderActiveMenuItem),
1266
1422
  onClick
1267
- }, /* @__PURE__ */ React10__default.default.createElement(Icon, {
1423
+ }, /* @__PURE__ */ React12__default.default.createElement(Icon, {
1268
1424
  className: TableHeaderWithPopover_default.osdkHeaderIcon,
1269
1425
  color: "currentColor"
1270
- }), /* @__PURE__ */ React10__default.default.createElement("span", null, label));
1426
+ }), /* @__PURE__ */ React12__default.default.createElement("span", null, label));
1271
1427
  }
1272
1428
  function TableHeaderWithPopover({
1273
1429
  header,
@@ -1290,8 +1446,8 @@ function TableHeaderWithPopover({
1290
1446
  setSorting
1291
1447
  } = table;
1292
1448
  const currentSorting = table.getState().sorting;
1293
- const [isOpen, setIsOpen] = React10.useState(false);
1294
- const handlePinLeft = React10.useCallback(() => {
1449
+ const [isOpen, setIsOpen] = React12.useState(false);
1450
+ const handlePinLeft = React12.useCallback(() => {
1295
1451
  setColumnPinning((prev) => {
1296
1452
  return {
1297
1453
  left: [...prev.left || [], header.column.id],
@@ -1299,7 +1455,7 @@ function TableHeaderWithPopover({
1299
1455
  };
1300
1456
  });
1301
1457
  }, [header.column.id, setColumnPinning]);
1302
- const handleUnpin = React10.useCallback(() => {
1458
+ const handleUnpin = React12.useCallback(() => {
1303
1459
  setColumnPinning((prev) => {
1304
1460
  return {
1305
1461
  left: prev.left?.filter((id) => id !== header.column.id) || [],
@@ -1307,39 +1463,39 @@ function TableHeaderWithPopover({
1307
1463
  };
1308
1464
  });
1309
1465
  }, [header.column.id, setColumnPinning]);
1310
- const handleSortAscending = React10.useCallback(() => {
1466
+ const handleSortAscending = React12.useCallback(() => {
1311
1467
  header.column.toggleSorting(false);
1312
1468
  setSorting?.([{
1313
1469
  id: header.column.id,
1314
1470
  desc: false
1315
1471
  }]);
1316
1472
  }, [header.column, setSorting]);
1317
- const handleSortDescending = React10.useCallback(() => {
1473
+ const handleSortDescending = React12.useCallback(() => {
1318
1474
  header.column.toggleSorting(true);
1319
1475
  setSorting?.([{
1320
1476
  id: header.column.id,
1321
1477
  desc: true
1322
1478
  }]);
1323
1479
  }, [header.column, setSorting]);
1324
- const handleClearAllSorts = React10.useCallback(() => {
1480
+ const handleClearAllSorts = React12.useCallback(() => {
1325
1481
  header.column.clearSorting();
1326
1482
  setSorting?.([]);
1327
1483
  }, [header.column, setSorting]);
1328
- const handleResetSize = React10.useCallback(() => {
1484
+ const handleResetSize = React12.useCallback(() => {
1329
1485
  header.column.resetSize();
1330
1486
  if (onResetSize) {
1331
1487
  onResetSize();
1332
1488
  }
1333
1489
  }, [header.column, onResetSize]);
1334
- const handleInteraction = React10.useCallback((e) => {
1490
+ const handleInteraction = React12.useCallback((e) => {
1335
1491
  e.preventDefault();
1336
1492
  setIsOpen((prev) => !prev);
1337
1493
  }, []);
1338
- const handleOpenColumnConfig = React10.useCallback(() => {
1494
+ const handleOpenColumnConfig = React12.useCallback(() => {
1339
1495
  onOpenColumnConfig?.();
1340
1496
  setIsOpen(false);
1341
1497
  }, [onOpenColumnConfig]);
1342
- const handleOpenMultiSort = React10.useCallback(() => {
1498
+ const handleOpenMultiSort = React12.useCallback(() => {
1343
1499
  onOpenMultiSort?.();
1344
1500
  setIsOpen(false);
1345
1501
  }, [onOpenMultiSort]);
@@ -1347,72 +1503,72 @@ function TableHeaderWithPopover({
1347
1503
  const isSortable = header.column.getCanSort();
1348
1504
  const sortIndex = currentSorting?.findIndex((s) => s.id === header.column.id) ?? -1;
1349
1505
  const hasAnyMenuItems = showPinningItems || showSortingItems && isSortable || showResizeItem || showConfigItem;
1350
- return /* @__PURE__ */ React10__default.default.createElement(React10__default.default.Fragment, null, /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Root, {
1506
+ return /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Root, {
1351
1507
  open: isOpen,
1352
1508
  onOpenChange: setIsOpen
1353
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1509
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
1354
1510
  className: classNames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContainer),
1355
1511
  onContextMenu: handleInteraction
1356
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1512
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
1357
1513
  className: classNames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentLeft)
1358
- }, isColumnPinned && /* @__PURE__ */ React10__default.default.createElement(icons.Pin, {
1514
+ }, isColumnPinned && /* @__PURE__ */ React12__default.default.createElement(icons.Pin, {
1359
1515
  className: TableHeaderWithPopover_default.osdkHeaderIcon,
1360
1516
  color: "currentColor"
1361
- }), /* @__PURE__ */ React10__default.default.createElement(TableHeaderContent, {
1517
+ }), /* @__PURE__ */ React12__default.default.createElement(TableHeaderContent, {
1362
1518
  header
1363
- })), /* @__PURE__ */ React10__default.default.createElement("div", {
1519
+ })), /* @__PURE__ */ React12__default.default.createElement("div", {
1364
1520
  className: classNames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkContentGap, TableHeaderWithPopover_default.osdkHeaderContentRight)
1365
- }, isSorted && /* @__PURE__ */ React10__default.default.createElement("div", {
1521
+ }, isSorted && /* @__PURE__ */ React12__default.default.createElement("div", {
1366
1522
  className: TableHeaderWithPopover_default.osdkCenterContainer
1367
- }, isSorted === "asc" ? /* @__PURE__ */ React10__default.default.createElement(icons.SortAlphabetical, {
1523
+ }, isSorted === "asc" ? /* @__PURE__ */ React12__default.default.createElement(icons.SortAlphabetical, {
1368
1524
  className: TableHeaderWithPopover_default.osdkHeaderIcon
1369
- }) : /* @__PURE__ */ React10__default.default.createElement(icons.SortAlphabeticalDesc, {
1525
+ }) : /* @__PURE__ */ React12__default.default.createElement(icons.SortAlphabeticalDesc, {
1370
1526
  className: TableHeaderWithPopover_default.osdkHeaderIcon
1371
- }), currentSorting.length > 1 && sortIndex >= 0 && /* @__PURE__ */ React10__default.default.createElement("span", {
1527
+ }), currentSorting.length > 1 && sortIndex >= 0 && /* @__PURE__ */ React12__default.default.createElement("span", {
1372
1528
  className: TableHeaderWithPopover_default.sortIndex
1373
- }, sortIndex + 1)), hasAnyMenuItems && /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Trigger, {
1529
+ }, sortIndex + 1)), hasAnyMenuItems && /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Trigger, {
1374
1530
  "aria-label": `Open header menu for column with id=${header.column.id}`,
1375
1531
  className: classNames7__default.default(TableHeaderWithPopover_default.osdkCenterContainer, TableHeaderWithPopover_default.osdkHeaderPopoverTrigger)
1376
- }, /* @__PURE__ */ React10__default.default.createElement(icons.ChevronDown, {
1532
+ }, /* @__PURE__ */ React12__default.default.createElement(icons.ChevronDown, {
1377
1533
  className: TableHeaderWithPopover_default.osdkHeaderIcon
1378
- }))), /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Portal, {
1534
+ }))), /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Portal, {
1379
1535
  container: document.body
1380
- }, /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Positioner, {
1536
+ }, /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Positioner, {
1381
1537
  sideOffset: 4
1382
- }, /* @__PURE__ */ React10__default.default.createElement(menu.Menu.Popup, {
1538
+ }, /* @__PURE__ */ React12__default.default.createElement(menu.Menu.Popup, {
1383
1539
  className: TableHeaderWithPopover_default.osdkHeaderPopup
1384
- }, showPinningItems && !isColumnPinned && /* @__PURE__ */ React10__default.default.createElement(HeaderMenuItem, {
1540
+ }, showPinningItems && !isColumnPinned && /* @__PURE__ */ React12__default.default.createElement(HeaderMenuItem, {
1385
1541
  onClick: handlePinLeft,
1386
1542
  icon: icons.Pin,
1387
1543
  label: "Pin column"
1388
- }), showPinningItems && isColumnPinned && /* @__PURE__ */ React10__default.default.createElement(HeaderMenuItem, {
1544
+ }), showPinningItems && isColumnPinned && /* @__PURE__ */ React12__default.default.createElement(HeaderMenuItem, {
1389
1545
  onClick: handleUnpin,
1390
1546
  icon: icons.Unpin,
1391
1547
  label: "Unpin Column",
1392
1548
  active: true
1393
- }), showSortingItems && isSortable && /* @__PURE__ */ React10__default.default.createElement(React10__default.default.Fragment, null, /* @__PURE__ */ React10__default.default.createElement(HeaderMenuItem, {
1549
+ }), showSortingItems && isSortable && /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement(HeaderMenuItem, {
1394
1550
  onClick: handleSortAscending,
1395
1551
  icon: icons.SortAlphabetical,
1396
1552
  label: "Sort ascending",
1397
1553
  active: isSorted === "asc"
1398
- }), /* @__PURE__ */ React10__default.default.createElement(HeaderMenuItem, {
1554
+ }), /* @__PURE__ */ React12__default.default.createElement(HeaderMenuItem, {
1399
1555
  onClick: handleSortDescending,
1400
1556
  icon: icons.SortAlphabeticalDesc,
1401
1557
  label: "Sort descending",
1402
1558
  active: isSorted === "desc"
1403
- }), columnOptions?.some((col) => col.canSort) && /* @__PURE__ */ React10__default.default.createElement(HeaderMenuItem, {
1559
+ }), columnOptions?.some((col) => col.canSort) && /* @__PURE__ */ React12__default.default.createElement(HeaderMenuItem, {
1404
1560
  onClick: handleOpenMultiSort,
1405
1561
  icon: icons.Sort,
1406
1562
  label: "Sort on multiple columns"
1407
- })), showSortingItems && !!currentSorting?.length && /* @__PURE__ */ React10__default.default.createElement(HeaderMenuItem, {
1563
+ })), showSortingItems && !!currentSorting?.length && /* @__PURE__ */ React12__default.default.createElement(HeaderMenuItem, {
1408
1564
  onClick: handleClearAllSorts,
1409
1565
  icon: icons.Remove,
1410
1566
  label: "Clear all sorts"
1411
- }), showResizeItem && /* @__PURE__ */ React10__default.default.createElement(HeaderMenuItem, {
1567
+ }), showResizeItem && /* @__PURE__ */ React12__default.default.createElement(HeaderMenuItem, {
1412
1568
  onClick: handleResetSize,
1413
1569
  icon: icons.VerticalDistribution,
1414
1570
  label: "Reset Column Size"
1415
- }), showConfigItem && /* @__PURE__ */ React10__default.default.createElement(HeaderMenuItem, {
1571
+ }), showConfigItem && /* @__PURE__ */ React12__default.default.createElement(HeaderMenuItem, {
1416
1572
  onClick: handleOpenColumnConfig,
1417
1573
  icon: icons.Settings,
1418
1574
  label: "Configure Columns"
@@ -1466,25 +1622,25 @@ function TableHeader({
1466
1622
  const currentVisibility = table.getState().columnVisibility;
1467
1623
  const currentColumnOrder = table.getState().columnOrder;
1468
1624
  const isResizing = !!table.getState().columnSizingInfo?.isResizingColumn;
1469
- const [configDialogOpen, setConfigDialogOpen] = React10.useState(false);
1470
- const [multiSortDialogOpen, setMultiSortDialogOpen] = React10.useState(false);
1471
- const handleOpenColumnConfig = React10.useCallback(() => {
1625
+ const [configDialogOpen, setConfigDialogOpen] = React12.useState(false);
1626
+ const [multiSortDialogOpen, setMultiSortDialogOpen] = React12.useState(false);
1627
+ const handleOpenColumnConfig = React12.useCallback(() => {
1472
1628
  setConfigDialogOpen(true);
1473
1629
  }, []);
1474
- const handleCloseColumnConfig = React10.useCallback(() => {
1630
+ const handleCloseColumnConfig = React12.useCallback(() => {
1475
1631
  setConfigDialogOpen(false);
1476
1632
  }, []);
1477
- const handleOpenMultiSort = React10.useCallback(() => {
1633
+ const handleOpenMultiSort = React12.useCallback(() => {
1478
1634
  setMultiSortDialogOpen(true);
1479
1635
  }, []);
1480
- const handleCloseMultiSort = React10.useCallback(() => {
1636
+ const handleCloseMultiSort = React12.useCallback(() => {
1481
1637
  setMultiSortDialogOpen(false);
1482
1638
  }, []);
1483
- const handleApplyMultiSort = React10.useCallback((sortColumns) => {
1639
+ const handleApplyMultiSort = React12.useCallback((sortColumns) => {
1484
1640
  setMultiSortDialogOpen(false);
1485
1641
  setSorting?.(sortColumns);
1486
1642
  }, [setSorting]);
1487
- const handleApplyColumnConfig = React10.useCallback((updates) => {
1643
+ const handleApplyColumnConfig = React12.useCallback((updates) => {
1488
1644
  const newVisibilityState = {};
1489
1645
  for (const update of updates) {
1490
1646
  newVisibilityState[update.columnId] = update.isVisible;
@@ -1492,7 +1648,7 @@ function TableHeader({
1492
1648
  setColumnOrder(updates.map((col) => col.columnId));
1493
1649
  setColumnVisibility(newVisibilityState);
1494
1650
  }, [setColumnOrder, setColumnVisibility]);
1495
- const columnOptions = React10.useMemo(() => {
1651
+ const columnOptions = React12.useMemo(() => {
1496
1652
  const allHeaders = table.getHeaderGroups().flatMap((headerGroup) => headerGroup.headers);
1497
1653
  return table.getAllColumns().filter((column) => column.id !== SELECTION_COLUMN_ID).map((column) => {
1498
1654
  return {
@@ -1502,10 +1658,10 @@ function TableHeader({
1502
1658
  };
1503
1659
  });
1504
1660
  }, [table]);
1505
- return /* @__PURE__ */ React10__default.default.createElement(React10__default.default.Fragment, null, /* @__PURE__ */ React10__default.default.createElement("thead", {
1661
+ return /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement("thead", {
1506
1662
  className: TableHeader_default.osdkTableHeader,
1507
1663
  "data-resizing": isResizing
1508
- }, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React10__default.default.createElement("tr", {
1664
+ }, table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ React12__default.default.createElement("tr", {
1509
1665
  key: headerGroup.id,
1510
1666
  className: TableHeader_default.osdkTableHeaderRow
1511
1667
  }, headerGroup.headers.map((header) => {
@@ -1514,14 +1670,14 @@ function TableHeader({
1514
1670
  } = getColumnPinningStyles(header.column);
1515
1671
  const isColumnPinned = header.column.getIsPinned();
1516
1672
  const isSelectColumn = header.id === SELECTION_COLUMN_ID;
1517
- return /* @__PURE__ */ React10__default.default.createElement("th", {
1673
+ return /* @__PURE__ */ React12__default.default.createElement("th", {
1518
1674
  key: header.id,
1519
1675
  "data-pinned": header.column.getIsPinned(),
1520
1676
  className: TableHeader_default.osdkTableHeaderCell,
1521
1677
  style: columnStyles
1522
- }, header.isPlaceholder ? null : isSelectColumn ? /* @__PURE__ */ React10__default.default.createElement(TableHeaderContent, {
1678
+ }, header.isPlaceholder ? null : isSelectColumn ? /* @__PURE__ */ React12__default.default.createElement(TableHeaderContent, {
1523
1679
  header
1524
- }) : /* @__PURE__ */ React10__default.default.createElement(TableHeaderWithPopover, {
1680
+ }) : /* @__PURE__ */ React12__default.default.createElement(TableHeaderWithPopover, {
1525
1681
  table,
1526
1682
  header,
1527
1683
  isColumnPinned,
@@ -1529,20 +1685,20 @@ function TableHeader({
1529
1685
  featureFlags: headerMenuFeatureFlags,
1530
1686
  onOpenColumnConfig: handleOpenColumnConfig,
1531
1687
  onOpenMultiSort: handleOpenMultiSort
1532
- }), header.column.getCanResize() && headerMenuFeatureFlags?.showResizeItem !== false && /* @__PURE__ */ React10__default.default.createElement("div", {
1688
+ }), header.column.getCanResize() && headerMenuFeatureFlags?.showResizeItem !== false && /* @__PURE__ */ React12__default.default.createElement("div", {
1533
1689
  className: TableHeader_default.osdkTableHeaderResizer,
1534
1690
  onDoubleClick: () => header.column.resetSize(),
1535
1691
  onMouseDown: header.getResizeHandler(),
1536
1692
  onTouchStart: header.getResizeHandler()
1537
1693
  }));
1538
- })))), !!columnOptions?.length && /* @__PURE__ */ React10__default.default.createElement(ColumnConfigDialog, {
1694
+ })))), !!columnOptions?.length && /* @__PURE__ */ React12__default.default.createElement(ColumnConfigDialog, {
1539
1695
  isOpen: configDialogOpen,
1540
1696
  onClose: handleCloseColumnConfig,
1541
1697
  columnOptions,
1542
1698
  currentVisibility,
1543
1699
  currentColumnOrder,
1544
1700
  onApply: handleApplyColumnConfig
1545
- }), columnOptions?.some((col) => col.canSort) && /* @__PURE__ */ React10__default.default.createElement(MultiColumnSortDialog, {
1701
+ }), columnOptions?.some((col) => col.canSort) && /* @__PURE__ */ React12__default.default.createElement(MultiColumnSortDialog, {
1546
1702
  isOpen: multiSortDialogOpen,
1547
1703
  onClose: handleCloseMultiSort,
1548
1704
  columnOptions,
@@ -1562,13 +1718,13 @@ function LoadingStateTable({
1562
1718
  }) {
1563
1719
  const enableRowSelection = table.options.enableRowSelection;
1564
1720
  const minHeaderCount = enableRowSelection ? 1 : 0;
1565
- const headers = React10.useMemo(() => headerGroups.length > 0 ? headerGroups[0].headers : [], [headerGroups]);
1721
+ const headers = React12.useMemo(() => headerGroups.length > 0 ? headerGroups[0].headers : [], [headerGroups]);
1566
1722
  const hasHeadersLoaded = headers.length > minHeaderCount;
1567
- const headerRef = React10.useRef(null);
1568
- const bodyRef = React10.useRef(null);
1569
- const [loadingRowCount, setLoadingRowCount] = React10.useState(MIN_ROWS);
1570
- const [loadingColumnCount, setLoadingColumnCount] = React10.useState(headers.length);
1571
- React10.useEffect(() => {
1723
+ const headerRef = React12.useRef(null);
1724
+ const bodyRef = React12.useRef(null);
1725
+ const [loadingRowCount, setLoadingRowCount] = React12.useState(MIN_ROWS);
1726
+ const [loadingColumnCount, setLoadingColumnCount] = React12.useState(headers.length);
1727
+ React12.useEffect(() => {
1572
1728
  if (hasHeadersLoaded) {
1573
1729
  setLoadingColumnCount(headers.length);
1574
1730
  } else {
@@ -1581,7 +1737,7 @@ function LoadingStateTable({
1581
1737
  }
1582
1738
  }
1583
1739
  }, [columnWidth, hasHeadersLoaded, headers, tableContainerRef]);
1584
- React10.useEffect(() => {
1740
+ React12.useEffect(() => {
1585
1741
  if (tableContainerRef.current) {
1586
1742
  const containerHeight = tableContainerRef.current.clientHeight;
1587
1743
  const availableHeight = containerHeight - rowHeight;
@@ -1591,32 +1747,32 @@ function LoadingStateTable({
1591
1747
  }
1592
1748
  }
1593
1749
  }, [tableContainerRef, rowHeight]);
1594
- return /* @__PURE__ */ React10__default.default.createElement(React10__default.default.Fragment, null, hasHeadersLoaded ? /* @__PURE__ */ React10__default.default.createElement(TableHeader, {
1750
+ return /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, hasHeadersLoaded ? /* @__PURE__ */ React12__default.default.createElement(TableHeader, {
1595
1751
  table
1596
- }) : /* @__PURE__ */ React10__default.default.createElement("thead", {
1752
+ }) : /* @__PURE__ */ React12__default.default.createElement("thead", {
1597
1753
  className: TableHeader_default.osdkTableHeader,
1598
1754
  ref: headerRef
1599
- }, /* @__PURE__ */ React10__default.default.createElement("tr", {
1755
+ }, /* @__PURE__ */ React12__default.default.createElement("tr", {
1600
1756
  className: TableHeader_default.osdkTableHeaderRow
1601
1757
  }, Array.from({
1602
1758
  length: loadingColumnCount
1603
1759
  }).map((_, index) => {
1604
1760
  const width = headers.length > index ? headers[index].getSize() : columnWidth;
1605
- return /* @__PURE__ */ React10__default.default.createElement("th", {
1761
+ return /* @__PURE__ */ React12__default.default.createElement("th", {
1606
1762
  key: `loading-header-${index}`,
1607
1763
  className: TableHeader_default.osdkTableHeaderCell,
1608
1764
  style: {
1609
1765
  width
1610
1766
  }
1611
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1767
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
1612
1768
  className: classNames7__default.default(TableHeader_default.osdkLoadingHeaderCell, LoadingCell_default.osdkCellSkeleton)
1613
1769
  }));
1614
- }))), /* @__PURE__ */ React10__default.default.createElement("tbody", {
1770
+ }))), /* @__PURE__ */ React12__default.default.createElement("tbody", {
1615
1771
  className: TableBody_default.osdkTableBody,
1616
1772
  ref: bodyRef
1617
1773
  }, Array.from({
1618
1774
  length: loadingRowCount
1619
- }).map((_, index) => /* @__PURE__ */ React10__default.default.createElement(LoadingRow, {
1775
+ }).map((_, index) => /* @__PURE__ */ React12__default.default.createElement(LoadingRow, {
1620
1776
  key: `skeleton-${index}`,
1621
1777
  columnCount: loadingColumnCount,
1622
1778
  headers,
@@ -1633,9 +1789,9 @@ var NonIdealState_default = {};
1633
1789
  function NonIdealState({
1634
1790
  message
1635
1791
  }) {
1636
- return /* @__PURE__ */ React10__default.default.createElement("div", {
1792
+ return /* @__PURE__ */ React12__default.default.createElement("div", {
1637
1793
  className: NonIdealState_default.container
1638
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1794
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
1639
1795
  className: NonIdealState_default.message
1640
1796
  }, message));
1641
1797
  }
@@ -1653,8 +1809,8 @@ function CellContextMenu({
1653
1809
  onClose,
1654
1810
  renderContent
1655
1811
  }) {
1656
- const ref = React10.useRef(null);
1657
- React10.useEffect(() => {
1812
+ const ref = React12.useRef(null);
1813
+ React12.useEffect(() => {
1658
1814
  const handleClickOutside = (event) => {
1659
1815
  if (ref.current && !ref.current.contains(event.target)) {
1660
1816
  onClose();
@@ -1665,7 +1821,7 @@ function CellContextMenu({
1665
1821
  document.removeEventListener("mousedown", handleClickOutside);
1666
1822
  };
1667
1823
  }, [onClose]);
1668
- return /* @__PURE__ */ reactDom.createPortal(/* @__PURE__ */ React10__default.default.createElement("div", {
1824
+ return /* @__PURE__ */ reactDom.createPortal(/* @__PURE__ */ React12__default.default.createElement("div", {
1669
1825
  ref,
1670
1826
  className: CellContextMenu_default.osdkCellContextMenu,
1671
1827
  style: {
@@ -1678,9 +1834,9 @@ function CellContextMenu({
1678
1834
  var useCellContextMenu = ({
1679
1835
  tdRef
1680
1836
  }) => {
1681
- const [popoverPosition, setPopoverPosition] = React10.useState(null);
1682
- const [isContextMenuOpen, setIsContextMenuOpen] = React10.useState(false);
1683
- const handleOpenContextMenu = React10.useCallback((event) => {
1837
+ const [popoverPosition, setPopoverPosition] = React12.useState(null);
1838
+ const [isContextMenuOpen, setIsContextMenuOpen] = React12.useState(false);
1839
+ const handleOpenContextMenu = React12.useCallback((event) => {
1684
1840
  event.preventDefault();
1685
1841
  event.stopPropagation();
1686
1842
  if (tdRef.current) {
@@ -1694,7 +1850,7 @@ var useCellContextMenu = ({
1694
1850
  setIsContextMenuOpen(true);
1695
1851
  }
1696
1852
  }, [tdRef]);
1697
- const handleCloseContextMenu = React10.useCallback(() => {
1853
+ const handleCloseContextMenu = React12.useCallback(() => {
1698
1854
  setIsContextMenuOpen(false);
1699
1855
  setPopoverPosition(null);
1700
1856
  }, []);
@@ -1711,7 +1867,7 @@ function TableCell({
1711
1867
  cell,
1712
1868
  renderCellContextMenu
1713
1869
  }) {
1714
- const tdRef = React10.useRef(null);
1870
+ const tdRef = React12.useRef(null);
1715
1871
  const isSelectColumn = cell.column.id === SELECTION_COLUMN_ID;
1716
1872
  const {
1717
1873
  isContextMenuOpen,
@@ -1725,15 +1881,15 @@ function TableCell({
1725
1881
  const {
1726
1882
  columnStyles
1727
1883
  } = getColumnPinningStyles(cell.column);
1728
- return /* @__PURE__ */ React10__default.default.createElement(React10__default.default.Fragment, null, /* @__PURE__ */ React10__default.default.createElement("td", {
1884
+ return /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement("td", {
1729
1885
  ref: tdRef,
1730
1886
  "data-pinned": cell.column.getIsPinned(),
1731
1887
  className: TableCell_default.osdkTableCell,
1732
1888
  style: columnStyles,
1733
1889
  onContextMenu: handleOpenContextMenu
1734
- }, /* @__PURE__ */ React10__default.default.createElement("div", {
1890
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
1735
1891
  className: TableCell_default.osdkTableCellContent
1736
- }, reactTable.flexRender(cell.column.columnDef.cell, cell.getContext()))), shouldRenderContextMenu && /* @__PURE__ */ React10__default.default.createElement(CellContextMenu, {
1892
+ }, reactTable.flexRender(cell.column.columnDef.cell, cell.getContext()))), shouldRenderContextMenu && /* @__PURE__ */ React12__default.default.createElement(CellContextMenu, {
1737
1893
  cell,
1738
1894
  position: popoverPosition,
1739
1895
  onClose: handleCloseContextMenu,
@@ -1748,10 +1904,10 @@ function TableRow({
1748
1904
  onRowClick,
1749
1905
  renderCellContextMenu
1750
1906
  }) {
1751
- const handleClick = React10.useCallback(() => {
1907
+ const handleClick = React12.useCallback(() => {
1752
1908
  onRowClick?.(row.original);
1753
1909
  }, [onRowClick, row.original]);
1754
- return /* @__PURE__ */ React10__default.default.createElement("tr", {
1910
+ return /* @__PURE__ */ React12__default.default.createElement("tr", {
1755
1911
  "data-selected": row.getIsSelected(),
1756
1912
  className: TableRow_default.osdkTableRow,
1757
1913
  style: {
@@ -1759,7 +1915,7 @@ function TableRow({
1759
1915
  transform: `translateY(${virtualRow.start}px)`
1760
1916
  },
1761
1917
  onClick: handleClick
1762
- }, row.getVisibleCells().map((cell) => /* @__PURE__ */ React10__default.default.createElement(TableCell, {
1918
+ }, row.getVisibleCells().map((cell) => /* @__PURE__ */ React12__default.default.createElement(TableCell, {
1763
1919
  key: cell.id,
1764
1920
  cell,
1765
1921
  renderCellContextMenu
@@ -1782,27 +1938,27 @@ function TableBody({
1782
1938
  getScrollElement: () => tableContainerRef.current,
1783
1939
  overscan: 5
1784
1940
  });
1785
- React10.useLayoutEffect(() => {
1941
+ React12.useLayoutEffect(() => {
1786
1942
  rowVirtualizer.measure();
1787
1943
  }, [rowVirtualizer, rows.length]);
1788
1944
  const totalSize = rowVirtualizer.getTotalSize();
1789
1945
  const bodyHeight = isLoadingMore ? totalSize + rowHeight : totalSize;
1790
1946
  const headers = headerGroups[0]?.headers ?? [];
1791
- return /* @__PURE__ */ React10__default.default.createElement("tbody", {
1947
+ return /* @__PURE__ */ React12__default.default.createElement("tbody", {
1792
1948
  className: TableBody_default.osdkTableBody,
1793
1949
  style: {
1794
1950
  height: `${bodyHeight}px`
1795
1951
  }
1796
1952
  }, rowVirtualizer.getVirtualItems().map((virtualRow) => {
1797
1953
  const row = rows[virtualRow.index];
1798
- return /* @__PURE__ */ React10__default.default.createElement(TableRow, {
1954
+ return /* @__PURE__ */ React12__default.default.createElement(TableRow, {
1799
1955
  key: row.id,
1800
1956
  row,
1801
1957
  virtualRow,
1802
1958
  onRowClick,
1803
1959
  renderCellContextMenu
1804
1960
  });
1805
- }), isLoadingMore && /* @__PURE__ */ React10__default.default.createElement(LoadingRow, {
1961
+ }), isLoadingMore && /* @__PURE__ */ React12__default.default.createElement(LoadingRow, {
1806
1962
  headers,
1807
1963
  translateY: totalSize,
1808
1964
  rowHeight,
@@ -1820,17 +1976,18 @@ function BaseTable({
1820
1976
  renderCellContextMenu,
1821
1977
  className,
1822
1978
  error,
1823
- headerMenuFeatureFlags
1979
+ headerMenuFeatureFlags,
1980
+ editableConfig
1824
1981
  }) {
1825
- const tableContainerRef = React10.useRef(null);
1826
- const [isLoadingMore, setIsLoadingMore] = React10.useState(false);
1827
- const fetchingRef = React10.useRef(false);
1828
- React10.useEffect(() => {
1982
+ const tableContainerRef = React12.useRef(null);
1983
+ const [isLoadingMore, setIsLoadingMore] = React12.useState(false);
1984
+ const fetchingRef = React12.useRef(false);
1985
+ React12.useEffect(() => {
1829
1986
  if (!isLoading || fetchNextPage == null) {
1830
1987
  setIsLoadingMore(false);
1831
1988
  }
1832
1989
  }, [isLoading, fetchNextPage]);
1833
- const fetchMoreOnEndReached = React10.useCallback(async (containerRefElement) => {
1990
+ const fetchMoreOnEndReached = React12.useCallback(async (containerRefElement) => {
1834
1991
  if (containerRefElement && !fetchingRef.current && !isLoadingMore) {
1835
1992
  const {
1836
1993
  scrollHeight,
@@ -1848,25 +2005,32 @@ function BaseTable({
1848
2005
  }
1849
2006
  }
1850
2007
  }, [fetchNextPage, isLoading, isLoadingMore]);
1851
- const handleScroll = React10.useCallback(async (e) => {
2008
+ const handleScroll = React12.useCallback(async (e) => {
1852
2009
  await fetchMoreOnEndReached(e.currentTarget);
1853
2010
  }, [fetchMoreOnEndReached]);
1854
2011
  const rows = table.getRowModel().rows;
1855
2012
  const headerGroups = table.getHeaderGroups();
1856
2013
  const hasData = rows.length > 0;
1857
- return /* @__PURE__ */ React10__default.default.createElement("div", {
2014
+ const hasEdits = Object.keys(editableConfig?.cellEdits ?? {}).length > 0;
2015
+ const handleSubmitEdits = React12.useCallback(async () => {
2016
+ await editableConfig?.onSubmitEdits?.();
2017
+ editableConfig?.clearEdits?.();
2018
+ }, [editableConfig]);
2019
+ return /* @__PURE__ */ React12__default.default.createElement("div", {
2020
+ className: classNames7__default.default(Table_default.osdkTableWrapper, className)
2021
+ }, /* @__PURE__ */ React12__default.default.createElement("div", {
1858
2022
  ref: tableContainerRef,
1859
- className: classNames7__default.default(Table_default.osdkTableContainer, className),
2023
+ className: classNames7__default.default(Table_default.osdkTableContainer, editableConfig && Table_default.osdkTableContainerWithButton),
1860
2024
  onScroll: handleScroll
1861
- }, /* @__PURE__ */ React10__default.default.createElement("table", null, isLoading && !hasData ? /* @__PURE__ */ React10__default.default.createElement(LoadingStateTable, {
2025
+ }, /* @__PURE__ */ React12__default.default.createElement("table", null, isLoading && !hasData ? /* @__PURE__ */ React12__default.default.createElement(LoadingStateTable, {
1862
2026
  table,
1863
2027
  headerGroups,
1864
2028
  rowHeight,
1865
2029
  tableContainerRef
1866
- }) : /* @__PURE__ */ React10__default.default.createElement(React10__default.default.Fragment, null, /* @__PURE__ */ React10__default.default.createElement(TableHeader, {
2030
+ }) : /* @__PURE__ */ React12__default.default.createElement(React12__default.default.Fragment, null, /* @__PURE__ */ React12__default.default.createElement(TableHeader, {
1867
2031
  table,
1868
2032
  headerMenuFeatureFlags
1869
- }), /* @__PURE__ */ React10__default.default.createElement(TableBody, {
2033
+ }), /* @__PURE__ */ React12__default.default.createElement(TableBody, {
1870
2034
  rows,
1871
2035
  tableContainerRef,
1872
2036
  onRowClick,
@@ -1874,11 +2038,17 @@ function BaseTable({
1874
2038
  renderCellContextMenu,
1875
2039
  isLoadingMore,
1876
2040
  headerGroups
1877
- }))), !hasData && error == null && /* @__PURE__ */ React10__default.default.createElement(NonIdealState, {
2041
+ }))), !hasData && error == null && /* @__PURE__ */ React12__default.default.createElement(NonIdealState, {
1878
2042
  message: "No Data"
1879
- }), error != null && /* @__PURE__ */ React10__default.default.createElement(NonIdealState, {
2043
+ }), error != null && /* @__PURE__ */ React12__default.default.createElement(NonIdealState, {
1880
2044
  message: `Error Loading Data: ${error.message}`
1881
- }));
2045
+ })), editableConfig && /* @__PURE__ */ React12__default.default.createElement("div", {
2046
+ className: Table_default.submitButtonContainer
2047
+ }, /* @__PURE__ */ React12__default.default.createElement(ActionButton, {
2048
+ variant: "primary",
2049
+ onClick: handleSubmitEdits,
2050
+ disabled: !hasEdits
2051
+ }, "Submit Edits")));
1882
2052
  }
1883
2053
 
1884
2054
  // src/object-table/ObjectTable.tsx
@@ -1896,6 +2066,8 @@ function ObjectTable({
1896
2066
  selectionMode = "none",
1897
2067
  selectedRows,
1898
2068
  onColumnVisibilityChanged,
2069
+ onCellValueChanged,
2070
+ onSubmitEdits,
1899
2071
  enableOrdering = true,
1900
2072
  enableColumnPinning = true,
1901
2073
  enableColumnResizing = true,
@@ -1908,6 +2080,15 @@ function ObjectTable({
1908
2080
  } = useColumnResize({
1909
2081
  onColumnResize
1910
2082
  });
2083
+ const {
2084
+ cellEdits,
2085
+ clearEdits,
2086
+ handleCellEdit,
2087
+ handleSubmitEdits
2088
+ } = useEditableTable({
2089
+ onCellValueChanged,
2090
+ onSubmitEdits
2091
+ });
1911
2092
  const {
1912
2093
  sorting,
1913
2094
  onSortingChange
@@ -1963,7 +2144,7 @@ function ObjectTable({
1963
2144
  hasSelectionColumn: enableRowSelection,
1964
2145
  onColumnsPinnedChanged
1965
2146
  });
1966
- const allColumns = React10.useMemo(() => {
2147
+ const allColumns = React12.useMemo(() => {
1967
2148
  return selectionColumn ? [selectionColumn, ...columns] : columns;
1968
2149
  }, [selectionColumn, columns]);
1969
2150
  const table = reactTable.useReactTable({
@@ -1992,19 +2173,33 @@ function ObjectTable({
1992
2173
  defaultColumn: {
1993
2174
  minSize: 80
1994
2175
  },
1995
- getRowId
2176
+ getRowId,
2177
+ meta: {
2178
+ onCellEdit: handleCellEdit,
2179
+ cellEdits
2180
+ }
1996
2181
  });
1997
- const onRenderCellContextMenu = React10.useCallback((row, cell) => {
2182
+ const onRenderCellContextMenu = React12.useCallback((row, cell) => {
1998
2183
  return renderCellContextMenu?.(row, cell.getValue());
1999
2184
  }, [renderCellContextMenu]);
2000
2185
  const isTableLoading = isLoading || isColumnsLoading;
2001
- const headerMenuFeatureFlags = React10.useMemo(() => ({
2186
+ const headerMenuFeatureFlags = React12.useMemo(() => ({
2002
2187
  showSortingItems: enableOrdering,
2003
2188
  showPinningItems: enableColumnPinning,
2004
2189
  showResizeItem: enableColumnResizing,
2005
2190
  showConfigItem: enableColumnConfig
2006
2191
  }), [enableOrdering, enableColumnPinning, enableColumnResizing, enableColumnConfig]);
2007
- return /* @__PURE__ */ React10__default.default.createElement(BaseTable, {
2192
+ const editableConfig = React12.useMemo(() => {
2193
+ if (!onSubmitEdits) {
2194
+ return;
2195
+ }
2196
+ return {
2197
+ onSubmitEdits: handleSubmitEdits,
2198
+ clearEdits,
2199
+ cellEdits
2200
+ };
2201
+ }, [onSubmitEdits, handleSubmitEdits, clearEdits, cellEdits]);
2202
+ return /* @__PURE__ */ React12__default.default.createElement(BaseTable, {
2008
2203
  table,
2009
2204
  isLoading: isTableLoading,
2010
2205
  fetchNextPage: fetchMore,
@@ -2013,7 +2208,8 @@ function ObjectTable({
2013
2208
  renderCellContextMenu: onRenderCellContextMenu,
2014
2209
  className: props.className,
2015
2210
  error,
2016
- headerMenuFeatureFlags
2211
+ headerMenuFeatureFlags,
2212
+ editableConfig
2017
2213
  });
2018
2214
  }
2019
2215