@medusajs/ui 4.0.22-snapshot-20250829152522 → 4.0.22-snapshot-20250901165744

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 (113) hide show
  1. package/dist/cjs/blocks/data-table/components/data-table-column-visibility-menu.d.ts +9 -0
  2. package/dist/cjs/blocks/data-table/components/data-table-column-visibility-menu.d.ts.map +1 -0
  3. package/dist/cjs/blocks/data-table/components/data-table-column-visibility-menu.js +58 -0
  4. package/dist/cjs/blocks/data-table/components/data-table-column-visibility-menu.js.map +1 -0
  5. package/dist/cjs/blocks/data-table/components/data-table-filter-bar.d.ts +5 -1
  6. package/dist/cjs/blocks/data-table/components/data-table-filter-bar.d.ts.map +1 -1
  7. package/dist/cjs/blocks/data-table/components/data-table-filter-bar.js +71 -9
  8. package/dist/cjs/blocks/data-table/components/data-table-filter-bar.js.map +1 -1
  9. package/dist/cjs/blocks/data-table/components/data-table-filter-menu.d.ts +5 -1
  10. package/dist/cjs/blocks/data-table/components/data-table-filter-menu.d.ts.map +1 -1
  11. package/dist/cjs/blocks/data-table/components/data-table-filter-menu.js +35 -7
  12. package/dist/cjs/blocks/data-table/components/data-table-filter-menu.js.map +1 -1
  13. package/dist/cjs/blocks/data-table/components/data-table-filter.d.ts +4 -1
  14. package/dist/cjs/blocks/data-table/components/data-table-filter.d.ts.map +1 -1
  15. package/dist/cjs/blocks/data-table/components/data-table-filter.js +488 -73
  16. package/dist/cjs/blocks/data-table/components/data-table-filter.js.map +1 -1
  17. package/dist/cjs/blocks/data-table/components/data-table-non-sortable-header-cell.d.ts +9 -0
  18. package/dist/cjs/blocks/data-table/components/data-table-non-sortable-header-cell.d.ts.map +1 -0
  19. package/dist/cjs/blocks/data-table/components/data-table-non-sortable-header-cell.js +42 -0
  20. package/dist/cjs/blocks/data-table/components/data-table-non-sortable-header-cell.js.map +1 -0
  21. package/dist/cjs/blocks/data-table/components/data-table-sortable-header-cell.d.ts +9 -0
  22. package/dist/cjs/blocks/data-table/components/data-table-sortable-header-cell.d.ts.map +1 -0
  23. package/dist/cjs/blocks/data-table/components/data-table-sortable-header-cell.js +44 -0
  24. package/dist/cjs/blocks/data-table/components/data-table-sortable-header-cell.js.map +1 -0
  25. package/dist/cjs/blocks/data-table/components/data-table-table.d.ts.map +1 -1
  26. package/dist/cjs/blocks/data-table/components/data-table-table.js +132 -4
  27. package/dist/cjs/blocks/data-table/components/data-table-table.js.map +1 -1
  28. package/dist/cjs/blocks/data-table/components/data-table-toolbar.d.ts +12 -0
  29. package/dist/cjs/blocks/data-table/components/data-table-toolbar.d.ts.map +1 -1
  30. package/dist/cjs/blocks/data-table/components/data-table-toolbar.js +5 -2
  31. package/dist/cjs/blocks/data-table/components/data-table-toolbar.js.map +1 -1
  32. package/dist/cjs/blocks/data-table/context/data-table-context-provider.d.ts.map +1 -1
  33. package/dist/cjs/blocks/data-table/context/data-table-context-provider.js +5 -1
  34. package/dist/cjs/blocks/data-table/context/data-table-context-provider.js.map +1 -1
  35. package/dist/cjs/blocks/data-table/context/data-table-context.d.ts +2 -0
  36. package/dist/cjs/blocks/data-table/context/data-table-context.d.ts.map +1 -1
  37. package/dist/cjs/blocks/data-table/context/data-table-context.js.map +1 -1
  38. package/dist/cjs/blocks/data-table/data-table.d.ts +6 -1
  39. package/dist/cjs/blocks/data-table/data-table.d.ts.map +1 -1
  40. package/dist/cjs/blocks/data-table/data-table.js +4 -0
  41. package/dist/cjs/blocks/data-table/data-table.js.map +1 -1
  42. package/dist/cjs/blocks/data-table/index.d.ts +2 -1
  43. package/dist/cjs/blocks/data-table/index.d.ts.map +1 -1
  44. package/dist/cjs/blocks/data-table/index.js.map +1 -1
  45. package/dist/cjs/blocks/data-table/types.d.ts +75 -3
  46. package/dist/cjs/blocks/data-table/types.d.ts.map +1 -1
  47. package/dist/cjs/blocks/data-table/types.js.map +1 -1
  48. package/dist/cjs/blocks/data-table/use-data-table.d.ts +21 -3
  49. package/dist/cjs/blocks/data-table/use-data-table.d.ts.map +1 -1
  50. package/dist/cjs/blocks/data-table/use-data-table.js +47 -7
  51. package/dist/cjs/blocks/data-table/use-data-table.js.map +1 -1
  52. package/dist/cjs/blocks/data-table/utils/create-data-table-column-helper.d.ts.map +1 -1
  53. package/dist/cjs/blocks/data-table/utils/create-data-table-column-helper.js +2 -1
  54. package/dist/cjs/blocks/data-table/utils/create-data-table-column-helper.js.map +1 -1
  55. package/dist/cjs/blocks/data-table/utils/create-data-table-filter-helper.d.ts +27 -0
  56. package/dist/cjs/blocks/data-table/utils/create-data-table-filter-helper.d.ts.map +1 -1
  57. package/dist/esm/blocks/data-table/components/data-table-column-visibility-menu.d.ts +9 -0
  58. package/dist/esm/blocks/data-table/components/data-table-column-visibility-menu.d.ts.map +1 -0
  59. package/dist/esm/blocks/data-table/components/data-table-column-visibility-menu.js +54 -0
  60. package/dist/esm/blocks/data-table/components/data-table-column-visibility-menu.js.map +1 -0
  61. package/dist/esm/blocks/data-table/components/data-table-filter-bar.d.ts +5 -1
  62. package/dist/esm/blocks/data-table/components/data-table-filter-bar.d.ts.map +1 -1
  63. package/dist/esm/blocks/data-table/components/data-table-filter-bar.js +71 -9
  64. package/dist/esm/blocks/data-table/components/data-table-filter-bar.js.map +1 -1
  65. package/dist/esm/blocks/data-table/components/data-table-filter-menu.d.ts +5 -1
  66. package/dist/esm/blocks/data-table/components/data-table-filter-menu.d.ts.map +1 -1
  67. package/dist/esm/blocks/data-table/components/data-table-filter-menu.js +35 -7
  68. package/dist/esm/blocks/data-table/components/data-table-filter-menu.js.map +1 -1
  69. package/dist/esm/blocks/data-table/components/data-table-filter.d.ts +4 -1
  70. package/dist/esm/blocks/data-table/components/data-table-filter.d.ts.map +1 -1
  71. package/dist/esm/blocks/data-table/components/data-table-filter.js +489 -74
  72. package/dist/esm/blocks/data-table/components/data-table-filter.js.map +1 -1
  73. package/dist/esm/blocks/data-table/components/data-table-non-sortable-header-cell.d.ts +9 -0
  74. package/dist/esm/blocks/data-table/components/data-table-non-sortable-header-cell.d.ts.map +1 -0
  75. package/dist/esm/blocks/data-table/components/data-table-non-sortable-header-cell.js +38 -0
  76. package/dist/esm/blocks/data-table/components/data-table-non-sortable-header-cell.js.map +1 -0
  77. package/dist/esm/blocks/data-table/components/data-table-sortable-header-cell.d.ts +9 -0
  78. package/dist/esm/blocks/data-table/components/data-table-sortable-header-cell.d.ts.map +1 -0
  79. package/dist/esm/blocks/data-table/components/data-table-sortable-header-cell.js +40 -0
  80. package/dist/esm/blocks/data-table/components/data-table-sortable-header-cell.js.map +1 -0
  81. package/dist/esm/blocks/data-table/components/data-table-table.d.ts.map +1 -1
  82. package/dist/esm/blocks/data-table/components/data-table-table.js +132 -4
  83. package/dist/esm/blocks/data-table/components/data-table-table.js.map +1 -1
  84. package/dist/esm/blocks/data-table/components/data-table-toolbar.d.ts +12 -0
  85. package/dist/esm/blocks/data-table/components/data-table-toolbar.d.ts.map +1 -1
  86. package/dist/esm/blocks/data-table/components/data-table-toolbar.js +5 -2
  87. package/dist/esm/blocks/data-table/components/data-table-toolbar.js.map +1 -1
  88. package/dist/esm/blocks/data-table/context/data-table-context-provider.d.ts.map +1 -1
  89. package/dist/esm/blocks/data-table/context/data-table-context-provider.js +5 -1
  90. package/dist/esm/blocks/data-table/context/data-table-context-provider.js.map +1 -1
  91. package/dist/esm/blocks/data-table/context/data-table-context.d.ts +2 -0
  92. package/dist/esm/blocks/data-table/context/data-table-context.d.ts.map +1 -1
  93. package/dist/esm/blocks/data-table/context/data-table-context.js.map +1 -1
  94. package/dist/esm/blocks/data-table/data-table.d.ts +6 -1
  95. package/dist/esm/blocks/data-table/data-table.d.ts.map +1 -1
  96. package/dist/esm/blocks/data-table/data-table.js +4 -0
  97. package/dist/esm/blocks/data-table/data-table.js.map +1 -1
  98. package/dist/esm/blocks/data-table/index.d.ts +2 -1
  99. package/dist/esm/blocks/data-table/index.d.ts.map +1 -1
  100. package/dist/esm/blocks/data-table/index.js.map +1 -1
  101. package/dist/esm/blocks/data-table/types.d.ts +75 -3
  102. package/dist/esm/blocks/data-table/types.d.ts.map +1 -1
  103. package/dist/esm/blocks/data-table/types.js.map +1 -1
  104. package/dist/esm/blocks/data-table/use-data-table.d.ts +21 -3
  105. package/dist/esm/blocks/data-table/use-data-table.d.ts.map +1 -1
  106. package/dist/esm/blocks/data-table/use-data-table.js +47 -7
  107. package/dist/esm/blocks/data-table/use-data-table.js.map +1 -1
  108. package/dist/esm/blocks/data-table/utils/create-data-table-column-helper.d.ts.map +1 -1
  109. package/dist/esm/blocks/data-table/utils/create-data-table-column-helper.js +2 -1
  110. package/dist/esm/blocks/data-table/utils/create-data-table-column-helper.js.map +1 -1
  111. package/dist/esm/blocks/data-table/utils/create-data-table-filter-helper.d.ts +27 -0
  112. package/dist/esm/blocks/data-table/utils/create-data-table-filter-helper.d.ts.map +1 -1
  113. package/package.json +6 -3
@@ -1,4 +1,4 @@
1
- import { type TableOptions, useReactTable } from "@tanstack/react-table";
1
+ import { type ColumnOrderState, type TableOptions, useReactTable, type VisibilityState } from "@tanstack/react-table";
2
2
  import * as React from "react";
3
3
  import { DataTableColumnDef, DataTableColumnFilter, DataTableCommand, DataTableDateComparisonOperator, DataTableEmptyState, DataTableFilter, DataTableFilteringState, DataTableFilterOption, DataTablePaginationState, DataTableRow, DataTableRowSelectionState, DataTableSortingState } from "./types";
4
4
  interface DataTableOptions<TData> extends Pick<TableOptions<TData>, "data" | "getRowId"> {
@@ -74,8 +74,22 @@ interface DataTableOptions<TData> extends Pick<TableOptions<TData>, "data" | "ge
74
74
  * @default true
75
75
  */
76
76
  autoResetPageIndex?: boolean;
77
+ /**
78
+ * The state and callback for the column visibility.
79
+ */
80
+ columnVisibility?: {
81
+ state: VisibilityState;
82
+ onColumnVisibilityChange: (state: VisibilityState) => void;
83
+ };
84
+ /**
85
+ * The state and callback for the column order.
86
+ */
87
+ columnOrder?: {
88
+ state: ColumnOrderState;
89
+ onColumnOrderChange: (state: ColumnOrderState) => void;
90
+ };
77
91
  }
78
- interface UseDataTableReturn<TData> extends Pick<ReturnType<typeof useReactTable<TData>>, "getHeaderGroups" | "getRowModel" | "getCanNextPage" | "getCanPreviousPage" | "nextPage" | "previousPage" | "getPageCount" | "getAllColumns"> {
92
+ interface UseDataTableReturn<TData> extends Pick<ReturnType<typeof useReactTable<TData>>, "getHeaderGroups" | "getRowModel" | "getCanNextPage" | "getCanPreviousPage" | "nextPage" | "previousPage" | "getPageCount" | "getAllColumns" | "setColumnVisibility" | "setColumnOrder"> {
79
93
  getSorting: () => DataTableSortingState | null;
80
94
  setSorting: (sortingOrUpdater: DataTableSortingState | ((prev: DataTableSortingState | null) => DataTableSortingState)) => void;
81
95
  getFilters: () => DataTableFilter[];
@@ -101,8 +115,12 @@ interface UseDataTableReturn<TData> extends Pick<ReturnType<typeof useReactTable
101
115
  enableFiltering: boolean;
102
116
  enableSorting: boolean;
103
117
  enableSearch: boolean;
118
+ enableColumnVisibility: boolean;
119
+ enableColumnOrder: boolean;
120
+ columnOrder: ColumnOrderState;
121
+ setColumnOrderFromArray: (order: string[]) => void;
104
122
  }
105
- declare const useDataTable: <TData>({ rowCount, filters, commands, rowSelection, sorting, filtering, pagination, search, onRowClick, autoResetPageIndex, isLoading, ...options }: DataTableOptions<TData>) => UseDataTableReturn<TData>;
123
+ declare const useDataTable: <TData>({ rowCount, filters, commands, rowSelection, sorting, filtering, pagination, search, onRowClick, autoResetPageIndex, isLoading, columnVisibility, columnOrder, ...options }: DataTableOptions<TData>) => UseDataTableReturn<TData>;
106
124
  export { useDataTable };
107
125
  export type { DataTableOptions, UseDataTableReturn };
108
126
  //# sourceMappingURL=use-data-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-data-table.d.ts","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import { getCoreRowModel, useReactTable, } from "@tanstack/react-table";
2
2
  import * as React from "react";
3
3
  import { DataTableEmptyState, } from "./types";
4
- const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting, filtering, pagination, search, onRowClick, autoResetPageIndex = true, isLoading = false, ...options }) => {
4
+ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting, filtering, pagination, search, onRowClick, autoResetPageIndex = true, isLoading = false, columnVisibility, columnOrder, ...options }) => {
5
5
  var _a, _b, _c, _d, _e, _f;
6
6
  const { state: sortingState, onSortingChange } = sorting !== null && sorting !== void 0 ? sorting : {};
7
7
  const { state: filteringState, onFilteringChange } = filtering !== null && filtering !== void 0 ? filtering : {};
8
8
  const { state: paginationState, onPaginationChange } = pagination !== null && pagination !== void 0 ? pagination : {};
9
9
  const { state: rowSelectionState, onRowSelectionChange, enableRowSelection, } = rowSelection !== null && rowSelection !== void 0 ? rowSelection : {};
10
+ const { state: columnVisibilityState, onColumnVisibilityChange } = columnVisibility !== null && columnVisibility !== void 0 ? columnVisibility : {};
11
+ const { state: columnOrderState, onColumnOrderChange } = columnOrder !== null && columnOrder !== void 0 ? columnOrder : {};
12
+ // Store filter metadata like openOnMount
10
13
  const autoResetPageIndexHandler = React.useCallback(() => {
11
14
  return autoResetPageIndex
12
15
  ? () => paginationState &&
@@ -43,6 +46,26 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
43
46
  ? onPaginationChangeTransformer(onPaginationChange, paginationState)
44
47
  : undefined;
45
48
  }, [onPaginationChange, paginationState]);
49
+ const columnVisibilityStateHandler = React.useCallback(() => {
50
+ return onColumnVisibilityChange
51
+ ? (updaterOrValue) => {
52
+ const value = typeof updaterOrValue === "function"
53
+ ? updaterOrValue(columnVisibilityState !== null && columnVisibilityState !== void 0 ? columnVisibilityState : {})
54
+ : updaterOrValue;
55
+ onColumnVisibilityChange(value);
56
+ }
57
+ : undefined;
58
+ }, [onColumnVisibilityChange, columnVisibilityState]);
59
+ const columnOrderStateHandler = React.useCallback(() => {
60
+ return onColumnOrderChange
61
+ ? (updaterOrValue) => {
62
+ const value = typeof updaterOrValue === "function"
63
+ ? updaterOrValue(columnOrderState !== null && columnOrderState !== void 0 ? columnOrderState : [])
64
+ : updaterOrValue;
65
+ onColumnOrderChange(value);
66
+ }
67
+ : undefined;
68
+ }, [onColumnOrderChange, columnOrderState]);
46
69
  const instance = useReactTable({
47
70
  ...options,
48
71
  getCoreRowModel: getCoreRowModel(),
@@ -54,6 +77,8 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
54
77
  value: filter,
55
78
  })),
56
79
  pagination: paginationState,
80
+ columnVisibility: columnVisibilityState !== null && columnVisibilityState !== void 0 ? columnVisibilityState : {},
81
+ columnOrder: columnOrderState !== null && columnOrderState !== void 0 ? columnOrderState : [],
57
82
  },
58
83
  enableRowSelection,
59
84
  rowCount,
@@ -61,6 +86,8 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
61
86
  onRowSelectionChange: rowSelectionStateHandler(),
62
87
  onSortingChange: sortingStateHandler(),
63
88
  onPaginationChange: paginationStateHandler(),
89
+ onColumnVisibilityChange: columnVisibilityStateHandler(),
90
+ onColumnOrderChange: columnOrderStateHandler(),
64
91
  manualSorting: true,
65
92
  manualPagination: true,
66
93
  manualFiltering: true,
@@ -86,7 +113,7 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
86
113
  if (!filter) {
87
114
  return null;
88
115
  }
89
- return filter.options;
116
+ return filter.options || null;
90
117
  }, [getFilters]);
91
118
  const getFilterMeta = React.useCallback((id) => {
92
119
  return getFilters().find((filter) => filter.id === id) || null;
@@ -98,10 +125,10 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
98
125
  }, [instance]);
99
126
  const addFilter = React.useCallback((filter) => {
100
127
  var _a;
101
- if (filter.value) {
102
- (_a = autoResetPageIndexHandler()) === null || _a === void 0 ? void 0 : _a();
103
- }
104
- onFilteringChange === null || onFilteringChange === void 0 ? void 0 : onFilteringChange({ ...getFiltering(), [filter.id]: filter.value });
128
+ const currentFilters = getFiltering();
129
+ const newFilters = { ...currentFilters, [filter.id]: filter.value };
130
+ (_a = autoResetPageIndexHandler()) === null || _a === void 0 ? void 0 : _a();
131
+ onFilteringChange === null || onFilteringChange === void 0 ? void 0 : onFilteringChange(newFilters);
105
132
  }, [onFilteringChange, getFiltering, autoResetPageIndexHandler]);
106
133
  const removeFilter = React.useCallback((id) => {
107
134
  var _a;
@@ -185,11 +212,18 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
185
212
  const enableFiltering = !!filtering;
186
213
  const enableSorting = !!sorting;
187
214
  const enableSearch = !!search;
215
+ const enableColumnVisibility = !!columnVisibility;
216
+ const enableColumnOrder = !!columnOrder;
217
+ const setColumnOrderFromArray = React.useCallback((order) => {
218
+ instance.setColumnOrder(order);
219
+ }, [instance]);
188
220
  return {
189
221
  // Table
190
222
  getHeaderGroups: instance.getHeaderGroups,
191
223
  getRowModel: instance.getRowModel,
192
224
  getAllColumns: instance.getAllColumns,
225
+ setColumnVisibility: instance.setColumnVisibility,
226
+ setColumnOrder: instance.setColumnOrder,
193
227
  // Pagination
194
228
  enablePagination,
195
229
  getCanNextPage: instance.getCanNextPage,
@@ -228,6 +262,12 @@ const useDataTable = ({ rowCount = 0, filters, commands, rowSelection, sorting,
228
262
  // Loading
229
263
  isLoading,
230
264
  showSkeleton,
265
+ // Column Visibility
266
+ enableColumnVisibility,
267
+ // Column Order
268
+ enableColumnOrder,
269
+ columnOrder: instance.getState().columnOrder,
270
+ setColumnOrderFromArray,
231
271
  };
232
272
  };
233
273
  function onSortingChangeTransformer(onSortingChange, state) {
@@ -255,7 +295,7 @@ function onFilteringChangeTransformer(onFilteringChange, state) {
255
295
  value: filter,
256
296
  })))
257
297
  : updaterOrValue;
258
- const transformedValue = Object.fromEntries(value.map((filter) => [filter.id, filter]));
298
+ const transformedValue = Object.fromEntries(value.map((filter) => [filter.id, filter.value]));
259
299
  onFilteringChange(transformedValue);
260
300
  };
261
301
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ColumnFilter,\n ColumnFiltersState,\n type ColumnSort,\n getCoreRowModel,\n PaginationState,\n type RowSelectionState,\n type SortingState,\n type TableOptions,\n type Updater,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport * as React from \"react\"\nimport {\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableFilter,\n DataTableFilteringState,\n DataTableFilterOption,\n DataTablePaginationState,\n DataTableRow,\n DataTableRowSelectionState,\n DataTableSortingState,\n} from \"./types\"\n\ninterface DataTableOptions<TData>\n extends Pick<TableOptions<TData>, \"data\" | \"getRowId\"> {\n /**\n * The columns to use for the table.\n */\n columns: DataTableColumnDef<TData, any>[]\n /**\n * The filters which the user can apply to the table.\n */\n filters?: DataTableFilter[]\n /**\n * The commands which the user can apply to selected rows.\n */\n commands?: DataTableCommand[]\n /**\n * Whether the data for the table is currently being loaded.\n */\n isLoading?: boolean\n /**\n * The state and callback for the filtering.\n */\n filtering?: {\n state: DataTableFilteringState\n onFilteringChange: (state: DataTableFilteringState) => void\n }\n /**\n * The state and callback for the row selection.\n */\n rowSelection?: {\n state: DataTableRowSelectionState\n onRowSelectionChange: (state: DataTableRowSelectionState) => void\n enableRowSelection?:\n | boolean\n | ((row: DataTableRow<TData>) => boolean)\n | undefined\n }\n /**\n * The state and callback for the sorting.\n */\n sorting?: {\n state: DataTableSortingState | null\n onSortingChange: (state: DataTableSortingState) => void\n }\n /**\n * The state and callback for the search, with optional debounce.\n */\n search?: {\n state: string\n onSearchChange: (state: string) => void\n /**\n * Debounce time in milliseconds for the search callback.\n * @default 300\n */\n debounce?: number\n }\n /**\n * The state and callback for the pagination.\n */\n pagination?: {\n state: DataTablePaginationState\n onPaginationChange: (state: DataTablePaginationState) => void\n }\n /**\n * The function to execute when a row is clicked.\n */\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n /**\n * The total count of rows. When working with pagination, this will be the total\n * number of rows available, not the number of rows currently being displayed.\n */\n rowCount?: number\n /**\n * Whether the page index should be reset the filtering, sorting, or pagination changes.\n *\n * @default true\n */\n autoResetPageIndex?: boolean\n}\n\ninterface UseDataTableReturn<TData>\n extends Pick<\n ReturnType<typeof useReactTable<TData>>,\n | \"getHeaderGroups\"\n | \"getRowModel\"\n | \"getCanNextPage\"\n | \"getCanPreviousPage\"\n | \"nextPage\"\n | \"previousPage\"\n | \"getPageCount\"\n | \"getAllColumns\"\n > {\n getSorting: () => DataTableSortingState | null\n setSorting: (\n sortingOrUpdater:\n | DataTableSortingState\n | ((prev: DataTableSortingState | null) => DataTableSortingState)\n ) => void\n getFilters: () => DataTableFilter[]\n getFilterOptions: <\n T extends string | string[] | DataTableDateComparisonOperator\n >(\n id: string\n ) => DataTableFilterOption<T>[] | null\n getFilterMeta: (id: string) => DataTableFilter | null\n getFiltering: () => DataTableFilteringState\n addFilter: (filter: DataTableColumnFilter) => void\n removeFilter: (id: string) => void\n clearFilters: () => void\n updateFilter: (filter: DataTableColumnFilter) => void\n getSearch: () => string\n onSearchChange: (search: string) => void\n getCommands: () => DataTableCommand[]\n getRowSelection: () => DataTableRowSelectionState\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n emptyState: DataTableEmptyState\n isLoading: boolean\n showSkeleton: boolean\n pageIndex: number\n pageSize: number\n rowCount: number\n enablePagination: boolean\n enableFiltering: boolean\n enableSorting: boolean\n enableSearch: boolean\n}\n\nconst useDataTable = <TData,>({\n rowCount = 0,\n filters,\n commands,\n rowSelection,\n sorting,\n filtering,\n pagination,\n search,\n onRowClick,\n autoResetPageIndex = true,\n isLoading = false,\n ...options\n}: DataTableOptions<TData>): UseDataTableReturn<TData> => {\n const { state: sortingState, onSortingChange } = sorting ?? {}\n const { state: filteringState, onFilteringChange } = filtering ?? {}\n const { state: paginationState, onPaginationChange } = pagination ?? {}\n const {\n state: rowSelectionState,\n onRowSelectionChange,\n enableRowSelection,\n } = rowSelection ?? {}\n\n const autoResetPageIndexHandler = React.useCallback(() => {\n return autoResetPageIndex\n ? () =>\n paginationState &&\n onPaginationChange?.({ ...paginationState, pageIndex: 0 })\n : undefined\n }, [autoResetPageIndex, paginationState, onPaginationChange])\n\n const sortingStateHandler = React.useCallback(() => {\n return onSortingChange\n ? (updaterOrValue: Updater<SortingState>) => {\n autoResetPageIndexHandler()?.()\n onSortingChangeTransformer(\n onSortingChange,\n sortingState\n )(updaterOrValue)\n }\n : undefined\n }, [onSortingChange, sortingState, autoResetPageIndexHandler])\n\n const rowSelectionStateHandler = React.useCallback(() => {\n return onRowSelectionChange\n ? (updaterOrValue: Updater<RowSelectionState>) => {\n onRowSelectionChangeTransformer(\n onRowSelectionChange,\n rowSelectionState\n )(updaterOrValue)\n }\n : undefined\n }, [onRowSelectionChange, rowSelectionState, autoResetPageIndexHandler])\n\n const filteringStateHandler = React.useCallback(() => {\n return onFilteringChange\n ? (updaterOrValue: Updater<ColumnFiltersState>) => {\n autoResetPageIndexHandler()?.()\n onFilteringChangeTransformer(\n onFilteringChange,\n filteringState\n )(updaterOrValue)\n }\n : undefined\n }, [onFilteringChange, filteringState, autoResetPageIndexHandler])\n\n const paginationStateHandler = React.useCallback(() => {\n return onPaginationChange\n ? onPaginationChangeTransformer(onPaginationChange, paginationState)\n : undefined\n }, [onPaginationChange, paginationState])\n\n const instance = useReactTable({\n ...options,\n getCoreRowModel: getCoreRowModel(),\n state: {\n rowSelection: rowSelectionState ?? {},\n sorting: sortingState ? [sortingState] : undefined,\n columnFilters: Object.entries(filteringState ?? {}).map(\n ([id, filter]) => ({\n id,\n value: filter,\n })\n ),\n pagination: paginationState,\n },\n enableRowSelection,\n rowCount,\n onColumnFiltersChange: filteringStateHandler(),\n onRowSelectionChange: rowSelectionStateHandler(),\n onSortingChange: sortingStateHandler(),\n onPaginationChange: paginationStateHandler(),\n manualSorting: true,\n manualPagination: true,\n manualFiltering: true,\n })\n\n const getSorting = React.useCallback(() => {\n return instance.getState().sorting?.[0] ?? null\n }, [instance])\n\n const setSorting = React.useCallback(\n (\n sortingOrUpdater: ColumnSort | ((prev: ColumnSort | null) => ColumnSort)\n ) => {\n const currentSort = instance.getState().sorting?.[0] ?? null\n const newSorting =\n typeof sortingOrUpdater === \"function\"\n ? sortingOrUpdater(currentSort)\n : sortingOrUpdater\n\n autoResetPageIndexHandler()?.()\n instance.setSorting([newSorting])\n },\n [instance, autoResetPageIndexHandler]\n )\n\n const getFilters = React.useCallback(() => {\n return filters ?? []\n }, [filters])\n\n const getFilterOptions = React.useCallback(\n <T extends string | string[] | DataTableDateComparisonOperator>(\n id: string\n ) => {\n const filter = getFilters().find((filter) => filter.id === id)\n\n if (!filter) {\n return null\n }\n\n return filter.options as DataTableFilterOption<T>[]\n },\n [getFilters]\n )\n\n const getFilterMeta = React.useCallback(\n (id: string) => {\n return getFilters().find((filter) => filter.id === id) || null\n },\n [getFilters]\n )\n\n const getFiltering = React.useCallback(() => {\n const state = instance.getState().columnFilters ?? []\n return Object.fromEntries(state.map((filter) => [filter.id, filter.value]))\n }, [instance])\n\n const addFilter = React.useCallback(\n (filter: ColumnFilter) => {\n if (filter.value) {\n autoResetPageIndexHandler()?.()\n }\n onFilteringChange?.({ ...getFiltering(), [filter.id]: filter.value })\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const removeFilter = React.useCallback(\n (id: string) => {\n const currentFilters = getFiltering()\n delete currentFilters[id]\n autoResetPageIndexHandler()?.()\n onFilteringChange?.(currentFilters)\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const clearFilters = React.useCallback(() => {\n autoResetPageIndexHandler()?.()\n onFilteringChange?.({})\n }, [onFilteringChange, autoResetPageIndexHandler])\n\n const updateFilter = React.useCallback(\n (filter: ColumnFilter) => {\n addFilter(filter)\n },\n [addFilter]\n )\n\n const { state: searchState, onSearchChange, debounce = 300 } = search ?? {}\n\n const [localSearch, setLocalSearch] = React.useState(searchState ?? \"\")\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n setLocalSearch(searchState ?? \"\")\n }, [searchState])\n\n const getSearch = React.useCallback(() => {\n return localSearch\n }, [localSearch])\n\n const debouncedSearchChange = React.useMemo(() => {\n if (!onSearchChange) {\n return undefined\n }\n\n return (value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (debounce <= 0) {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n }, debounce)\n }\n }, [onSearchChange, debounce, autoResetPageIndexHandler])\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onSearchChangeHandler = React.useCallback(\n (search: string) => {\n setLocalSearch(search)\n debouncedSearchChange?.(search)\n },\n [debouncedSearchChange]\n )\n\n const getCommands = React.useCallback(() => {\n return commands ?? []\n }, [commands])\n\n const getRowSelection = React.useCallback(() => {\n return instance.getState().rowSelection\n }, [instance])\n\n const rows = instance.getRowModel().rows\n\n const emptyState = React.useMemo(() => {\n const hasRows = rows.length > 0\n const hasSearch = Boolean(searchState)\n const hasFilters = Object.keys(filteringState ?? {}).length > 0\n\n if (hasRows) {\n return DataTableEmptyState.POPULATED\n }\n\n if (hasSearch || hasFilters) {\n return DataTableEmptyState.FILTERED_EMPTY\n }\n\n return DataTableEmptyState.EMPTY\n }, [rows, searchState, filteringState])\n\n const showSkeleton = React.useMemo(() => {\n return isLoading === true && rows.length === 0\n }, [isLoading, rows])\n\n const enablePagination: boolean = !!pagination\n const enableFiltering: boolean = !!filtering\n const enableSorting: boolean = !!sorting\n const enableSearch: boolean = !!search\n\n return {\n // Table\n getHeaderGroups: instance.getHeaderGroups,\n getRowModel: instance.getRowModel,\n getAllColumns: instance.getAllColumns,\n // Pagination\n enablePagination,\n getCanNextPage: instance.getCanNextPage,\n getCanPreviousPage: instance.getCanPreviousPage,\n nextPage: instance.nextPage,\n previousPage: instance.previousPage,\n getPageCount: instance.getPageCount,\n pageIndex: instance.getState()?.pagination?.pageIndex ?? 0,\n pageSize: instance.getState()?.pagination?.pageSize ?? 10,\n rowCount,\n // Search\n enableSearch,\n getSearch,\n onSearchChange: onSearchChangeHandler,\n // Sorting\n enableSorting,\n getSorting,\n setSorting,\n // Filtering\n enableFiltering,\n getFilters,\n getFilterOptions,\n getFilterMeta,\n getFiltering,\n addFilter,\n removeFilter,\n clearFilters,\n updateFilter,\n // Commands\n getCommands,\n getRowSelection,\n // Handlers\n onRowClick,\n // Empty State\n emptyState,\n // Loading\n isLoading,\n showSkeleton,\n }\n}\n\nfunction onSortingChangeTransformer(\n onSortingChange: (state: ColumnSort) => void,\n state?: ColumnSort | null\n) {\n return (updaterOrValue: Updater<SortingState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ? [state] : [])\n : updaterOrValue\n const columnSort = value[0]\n\n onSortingChange(columnSort)\n }\n}\n\nfunction onRowSelectionChangeTransformer(\n onRowSelectionChange: (state: RowSelectionState) => void,\n state?: RowSelectionState\n) {\n return (updaterOrValue: Updater<RowSelectionState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? {})\n : updaterOrValue\n\n onRowSelectionChange(value)\n }\n}\n\nfunction onFilteringChangeTransformer(\n onFilteringChange: (state: DataTableFilteringState) => void,\n state?: DataTableFilteringState\n) {\n return (updaterOrValue: Updater<ColumnFiltersState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(\n Object.entries(state ?? {}).map(([id, filter]) => ({\n id,\n value: filter,\n }))\n )\n : updaterOrValue\n\n const transformedValue = Object.fromEntries(\n value.map((filter) => [filter.id, filter])\n )\n\n onFilteringChange(transformedValue)\n }\n}\n\nfunction onPaginationChangeTransformer(\n onPaginationChange: (state: PaginationState) => void,\n state?: PaginationState\n) {\n return (updaterOrValue: Updater<PaginationState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? { pageIndex: 0, pageSize: 10 })\n : updaterOrValue\n\n onPaginationChange(value)\n }\n}\n\nexport { useDataTable }\nexport type { DataTableOptions, UseDataTableReturn }\n"]}
1
+ {"version":3,"file":"use-data-table.js","sourceRoot":"","sources":["../../../../src/blocks/data-table/use-data-table.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n ColumnFilter,\n ColumnFiltersState,\n type ColumnSort,\n type ColumnOrderState,\n getCoreRowModel,\n PaginationState,\n type RowSelectionState,\n type SortingState,\n type TableOptions,\n type Updater,\n useReactTable,\n type VisibilityState,\n} from \"@tanstack/react-table\"\nimport * as React from \"react\"\nimport {\n DataTableColumnDef,\n DataTableColumnFilter,\n DataTableCommand,\n DataTableDateComparisonOperator,\n DataTableEmptyState,\n DataTableFilter,\n DataTableFilteringState,\n DataTableFilterOption,\n DataTablePaginationState,\n DataTableRow,\n DataTableRowSelectionState,\n DataTableSortingState,\n} from \"./types\"\n\ninterface DataTableOptions<TData>\n extends Pick<TableOptions<TData>, \"data\" | \"getRowId\"> {\n /**\n * The columns to use for the table.\n */\n columns: DataTableColumnDef<TData, any>[]\n /**\n * The filters which the user can apply to the table.\n */\n filters?: DataTableFilter[]\n /**\n * The commands which the user can apply to selected rows.\n */\n commands?: DataTableCommand[]\n /**\n * Whether the data for the table is currently being loaded.\n */\n isLoading?: boolean\n /**\n * The state and callback for the filtering.\n */\n filtering?: {\n state: DataTableFilteringState\n onFilteringChange: (state: DataTableFilteringState) => void\n }\n /**\n * The state and callback for the row selection.\n */\n rowSelection?: {\n state: DataTableRowSelectionState\n onRowSelectionChange: (state: DataTableRowSelectionState) => void\n enableRowSelection?:\n | boolean\n | ((row: DataTableRow<TData>) => boolean)\n | undefined\n }\n /**\n * The state and callback for the sorting.\n */\n sorting?: {\n state: DataTableSortingState | null\n onSortingChange: (state: DataTableSortingState) => void\n }\n /**\n * The state and callback for the search, with optional debounce.\n */\n search?: {\n state: string\n onSearchChange: (state: string) => void\n /**\n * Debounce time in milliseconds for the search callback.\n * @default 300\n */\n debounce?: number\n }\n /**\n * The state and callback for the pagination.\n */\n pagination?: {\n state: DataTablePaginationState\n onPaginationChange: (state: DataTablePaginationState) => void\n }\n /**\n * The function to execute when a row is clicked.\n */\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n /**\n * The total count of rows. When working with pagination, this will be the total\n * number of rows available, not the number of rows currently being displayed.\n */\n rowCount?: number\n /**\n * Whether the page index should be reset the filtering, sorting, or pagination changes.\n *\n * @default true\n */\n autoResetPageIndex?: boolean\n /**\n * The state and callback for the column visibility.\n */\n columnVisibility?: {\n state: VisibilityState\n onColumnVisibilityChange: (state: VisibilityState) => void\n }\n /**\n * The state and callback for the column order.\n */\n columnOrder?: {\n state: ColumnOrderState\n onColumnOrderChange: (state: ColumnOrderState) => void\n }\n}\n\ninterface UseDataTableReturn<TData>\n extends Pick<\n ReturnType<typeof useReactTable<TData>>,\n | \"getHeaderGroups\"\n | \"getRowModel\"\n | \"getCanNextPage\"\n | \"getCanPreviousPage\"\n | \"nextPage\"\n | \"previousPage\"\n | \"getPageCount\"\n | \"getAllColumns\"\n | \"setColumnVisibility\"\n | \"setColumnOrder\"\n > {\n getSorting: () => DataTableSortingState | null\n setSorting: (\n sortingOrUpdater:\n | DataTableSortingState\n | ((prev: DataTableSortingState | null) => DataTableSortingState)\n ) => void\n getFilters: () => DataTableFilter[]\n getFilterOptions: <\n T extends string | string[] | DataTableDateComparisonOperator\n >(\n id: string\n ) => DataTableFilterOption<T>[] | null\n getFilterMeta: (id: string) => DataTableFilter | null\n getFiltering: () => DataTableFilteringState\n addFilter: (filter: DataTableColumnFilter) => void\n removeFilter: (id: string) => void\n clearFilters: () => void\n updateFilter: (filter: DataTableColumnFilter) => void\n getSearch: () => string\n onSearchChange: (search: string) => void\n getCommands: () => DataTableCommand[]\n getRowSelection: () => DataTableRowSelectionState\n onRowClick?: (\n event: React.MouseEvent<HTMLTableRowElement, MouseEvent>,\n row: TData\n ) => void\n emptyState: DataTableEmptyState\n isLoading: boolean\n showSkeleton: boolean\n pageIndex: number\n pageSize: number\n rowCount: number\n enablePagination: boolean\n enableFiltering: boolean\n enableSorting: boolean\n enableSearch: boolean\n enableColumnVisibility: boolean\n enableColumnOrder: boolean\n columnOrder: ColumnOrderState\n setColumnOrderFromArray: (order: string[]) => void\n}\n\nconst useDataTable = <TData,>({\n rowCount = 0,\n filters,\n commands,\n rowSelection,\n sorting,\n filtering,\n pagination,\n search,\n onRowClick,\n autoResetPageIndex = true,\n isLoading = false,\n columnVisibility,\n columnOrder,\n ...options\n}: DataTableOptions<TData>): UseDataTableReturn<TData> => {\n const { state: sortingState, onSortingChange } = sorting ?? {}\n const { state: filteringState, onFilteringChange } = filtering ?? {}\n const { state: paginationState, onPaginationChange } = pagination ?? {}\n const {\n state: rowSelectionState,\n onRowSelectionChange,\n enableRowSelection,\n } = rowSelection ?? {}\n const { state: columnVisibilityState, onColumnVisibilityChange } = columnVisibility ?? {}\n const { state: columnOrderState, onColumnOrderChange } = columnOrder ?? {}\n \n // Store filter metadata like openOnMount\n\n const autoResetPageIndexHandler = React.useCallback(() => {\n return autoResetPageIndex\n ? () =>\n paginationState &&\n onPaginationChange?.({ ...paginationState, pageIndex: 0 })\n : undefined\n }, [autoResetPageIndex, paginationState, onPaginationChange])\n\n const sortingStateHandler = React.useCallback(() => {\n return onSortingChange\n ? (updaterOrValue: Updater<SortingState>) => {\n autoResetPageIndexHandler()?.()\n onSortingChangeTransformer(\n onSortingChange,\n sortingState\n )(updaterOrValue)\n }\n : undefined\n }, [onSortingChange, sortingState, autoResetPageIndexHandler])\n\n const rowSelectionStateHandler = React.useCallback(() => {\n return onRowSelectionChange\n ? (updaterOrValue: Updater<RowSelectionState>) => {\n onRowSelectionChangeTransformer(\n onRowSelectionChange,\n rowSelectionState\n )(updaterOrValue)\n }\n : undefined\n }, [onRowSelectionChange, rowSelectionState, autoResetPageIndexHandler])\n\n const filteringStateHandler = React.useCallback(() => {\n return onFilteringChange\n ? (updaterOrValue: Updater<ColumnFiltersState>) => {\n autoResetPageIndexHandler()?.()\n onFilteringChangeTransformer(\n onFilteringChange,\n filteringState\n )(updaterOrValue)\n }\n : undefined\n }, [onFilteringChange, filteringState, autoResetPageIndexHandler])\n\n const paginationStateHandler = React.useCallback(() => {\n return onPaginationChange\n ? onPaginationChangeTransformer(onPaginationChange, paginationState)\n : undefined\n }, [onPaginationChange, paginationState])\n\n const columnVisibilityStateHandler = React.useCallback(() => {\n return onColumnVisibilityChange\n ? (updaterOrValue: Updater<VisibilityState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(columnVisibilityState ?? {})\n : updaterOrValue\n\n onColumnVisibilityChange(value)\n }\n : undefined\n }, [onColumnVisibilityChange, columnVisibilityState])\n\n const columnOrderStateHandler = React.useCallback(() => {\n return onColumnOrderChange\n ? (updaterOrValue: Updater<ColumnOrderState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(columnOrderState ?? [])\n : updaterOrValue\n\n onColumnOrderChange(value)\n }\n : undefined\n }, [onColumnOrderChange, columnOrderState])\n\n const instance = useReactTable({\n ...options,\n getCoreRowModel: getCoreRowModel(),\n state: {\n rowSelection: rowSelectionState ?? {},\n sorting: sortingState ? [sortingState] : undefined,\n columnFilters: Object.entries(filteringState ?? {}).map(\n ([id, filter]) => ({\n id,\n value: filter,\n })\n ),\n pagination: paginationState,\n columnVisibility: columnVisibilityState ?? {},\n columnOrder: columnOrderState ?? [],\n },\n enableRowSelection,\n rowCount,\n onColumnFiltersChange: filteringStateHandler(),\n onRowSelectionChange: rowSelectionStateHandler(),\n onSortingChange: sortingStateHandler(),\n onPaginationChange: paginationStateHandler(),\n onColumnVisibilityChange: columnVisibilityStateHandler(),\n onColumnOrderChange: columnOrderStateHandler(),\n manualSorting: true,\n manualPagination: true,\n manualFiltering: true,\n })\n\n const getSorting = React.useCallback(() => {\n return instance.getState().sorting?.[0] ?? null\n }, [instance])\n\n const setSorting = React.useCallback(\n (\n sortingOrUpdater: ColumnSort | ((prev: ColumnSort | null) => ColumnSort)\n ) => {\n const currentSort = instance.getState().sorting?.[0] ?? null\n const newSorting =\n typeof sortingOrUpdater === \"function\"\n ? sortingOrUpdater(currentSort)\n : sortingOrUpdater\n\n autoResetPageIndexHandler()?.()\n instance.setSorting([newSorting])\n },\n [instance, autoResetPageIndexHandler]\n )\n\n const getFilters = React.useCallback(() => {\n return filters ?? []\n }, [filters])\n\n const getFilterOptions = React.useCallback(\n <T extends string | string[] | DataTableDateComparisonOperator>(\n id: string\n ) => {\n const filter = getFilters().find((filter) => filter.id === id)\n\n if (!filter) {\n return null\n }\n\n return ((filter as any).options as DataTableFilterOption<T>[]) || null\n },\n [getFilters]\n )\n\n const getFilterMeta = React.useCallback(\n (id: string) => {\n return getFilters().find((filter) => filter.id === id) || null\n },\n [getFilters]\n )\n\n const getFiltering = React.useCallback(() => {\n const state = instance.getState().columnFilters ?? []\n return Object.fromEntries(state.map((filter) => [filter.id, filter.value]))\n }, [instance])\n\n const addFilter = React.useCallback(\n (filter: DataTableColumnFilter) => {\n const currentFilters = getFiltering()\n const newFilters = { ...currentFilters, [filter.id]: filter.value }\n autoResetPageIndexHandler()?.()\n onFilteringChange?.(newFilters)\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const removeFilter = React.useCallback(\n (id: string) => {\n const currentFilters = getFiltering()\n delete currentFilters[id]\n autoResetPageIndexHandler()?.()\n onFilteringChange?.(currentFilters)\n },\n [onFilteringChange, getFiltering, autoResetPageIndexHandler]\n )\n\n const clearFilters = React.useCallback(() => {\n autoResetPageIndexHandler()?.()\n onFilteringChange?.({})\n }, [onFilteringChange, autoResetPageIndexHandler])\n\n const updateFilter = React.useCallback(\n (filter: ColumnFilter) => {\n addFilter(filter)\n },\n [addFilter]\n )\n\n const { state: searchState, onSearchChange, debounce = 300 } = search ?? {}\n\n const [localSearch, setLocalSearch] = React.useState(searchState ?? \"\")\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n setLocalSearch(searchState ?? \"\")\n }, [searchState])\n\n const getSearch = React.useCallback(() => {\n return localSearch\n }, [localSearch])\n\n const debouncedSearchChange = React.useMemo(() => {\n if (!onSearchChange) {\n return undefined\n }\n\n return (value: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (debounce <= 0) {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n autoResetPageIndexHandler()?.()\n onSearchChange(value)\n }, debounce)\n }\n }, [onSearchChange, debounce, autoResetPageIndexHandler])\n\n React.useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [])\n\n const onSearchChangeHandler = React.useCallback(\n (search: string) => {\n setLocalSearch(search)\n debouncedSearchChange?.(search)\n },\n [debouncedSearchChange]\n )\n\n const getCommands = React.useCallback(() => {\n return commands ?? []\n }, [commands])\n\n const getRowSelection = React.useCallback(() => {\n return instance.getState().rowSelection\n }, [instance])\n\n const rows = instance.getRowModel().rows\n\n const emptyState = React.useMemo(() => {\n const hasRows = rows.length > 0\n const hasSearch = Boolean(searchState)\n const hasFilters = Object.keys(filteringState ?? {}).length > 0\n\n if (hasRows) {\n return DataTableEmptyState.POPULATED\n }\n\n if (hasSearch || hasFilters) {\n return DataTableEmptyState.FILTERED_EMPTY\n }\n\n return DataTableEmptyState.EMPTY\n }, [rows, searchState, filteringState])\n\n const showSkeleton = React.useMemo(() => {\n return isLoading === true && rows.length === 0\n }, [isLoading, rows])\n\n const enablePagination: boolean = !!pagination\n const enableFiltering: boolean = !!filtering\n const enableSorting: boolean = !!sorting\n const enableSearch: boolean = !!search\n const enableColumnVisibility: boolean = !!columnVisibility\n const enableColumnOrder: boolean = !!columnOrder\n\n const setColumnOrderFromArray = React.useCallback((order: string[]) => {\n instance.setColumnOrder(order)\n }, [instance])\n\n return {\n // Table\n getHeaderGroups: instance.getHeaderGroups,\n getRowModel: instance.getRowModel,\n getAllColumns: instance.getAllColumns,\n setColumnVisibility: instance.setColumnVisibility,\n setColumnOrder: instance.setColumnOrder,\n // Pagination\n enablePagination,\n getCanNextPage: instance.getCanNextPage,\n getCanPreviousPage: instance.getCanPreviousPage,\n nextPage: instance.nextPage,\n previousPage: instance.previousPage,\n getPageCount: instance.getPageCount,\n pageIndex: instance.getState()?.pagination?.pageIndex ?? 0,\n pageSize: instance.getState()?.pagination?.pageSize ?? 10,\n rowCount,\n // Search\n enableSearch,\n getSearch,\n onSearchChange: onSearchChangeHandler,\n // Sorting\n enableSorting,\n getSorting,\n setSorting,\n // Filtering\n enableFiltering,\n getFilters,\n getFilterOptions,\n getFilterMeta,\n getFiltering,\n addFilter,\n removeFilter,\n clearFilters,\n updateFilter,\n // Commands\n getCommands,\n getRowSelection,\n // Handlers\n onRowClick,\n // Empty State\n emptyState,\n // Loading\n isLoading,\n showSkeleton,\n // Column Visibility\n enableColumnVisibility,\n // Column Order\n enableColumnOrder,\n columnOrder: instance.getState().columnOrder,\n setColumnOrderFromArray,\n }\n}\n\nfunction onSortingChangeTransformer(\n onSortingChange: (state: ColumnSort) => void,\n state?: ColumnSort | null\n) {\n return (updaterOrValue: Updater<SortingState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ? [state] : [])\n : updaterOrValue\n const columnSort = value[0]\n\n onSortingChange(columnSort)\n }\n}\n\nfunction onRowSelectionChangeTransformer(\n onRowSelectionChange: (state: RowSelectionState) => void,\n state?: RowSelectionState\n) {\n return (updaterOrValue: Updater<RowSelectionState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? {})\n : updaterOrValue\n\n onRowSelectionChange(value)\n }\n}\n\nfunction onFilteringChangeTransformer(\n onFilteringChange: (state: DataTableFilteringState) => void,\n state?: DataTableFilteringState\n) {\n return (updaterOrValue: Updater<ColumnFiltersState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(\n Object.entries(state ?? {}).map(([id, filter]) => ({\n id,\n value: filter,\n }))\n )\n : updaterOrValue\n\n const transformedValue = Object.fromEntries(\n value.map((filter) => [filter.id, filter.value])\n )\n\n onFilteringChange(transformedValue)\n }\n}\n\nfunction onPaginationChangeTransformer(\n onPaginationChange: (state: PaginationState) => void,\n state?: PaginationState\n) {\n return (updaterOrValue: Updater<PaginationState>) => {\n const value =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(state ?? { pageIndex: 0, pageSize: 10 })\n : updaterOrValue\n\n onPaginationChange(value)\n }\n}\n\nexport { useDataTable }\nexport type { DataTableOptions, UseDataTableReturn }\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"create-data-table-column-helper.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/utils/create-data-table-column-helper.tsx"],"names":[],"mappings":"AASA,OAAO,EAEL,qBAAqB,EAItB,MAAM,UAAU,CAAA;AAEjB,QAAA,MAAM,2BAA2B,eAE5B,sBAAsB,KAAK,CAgD/B,CAAA;AAQD,OAAO,EAAE,2BAA2B,EAAE,CAAA"}
1
+ {"version":3,"file":"create-data-table-column-helper.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/utils/create-data-table-column-helper.tsx"],"names":[],"mappings":"AASA,OAAO,EAEL,qBAAqB,EAMtB,MAAM,UAAU,CAAA;AAEjB,QAAA,MAAM,2BAA2B,eAE5B,sBAAsB,KAAK,CAkD/B,CAAA;AAQD,OAAO,EAAE,2BAA2B,EAAE,CAAA"}
@@ -7,9 +7,10 @@ const createDataTableColumnHelper = () => {
7
7
  const { accessor: accessorTanstack, display } = createColumnHelperTanstack();
8
8
  return {
9
9
  accessor: (accessor, column) => {
10
- const { sortLabel, sortAscLabel, sortDescLabel, meta, enableSorting, ...rest } = column;
10
+ const { sortLabel, sortAscLabel, sortDescLabel, headerAlign, meta, enableSorting, ...rest } = column;
11
11
  const extendedMeta = {
12
12
  ___sortMetaData: { sortLabel, sortAscLabel, sortDescLabel },
13
+ ___alignMetaData: { headerAlign },
13
14
  ...(meta || {}),
14
15
  };
15
16
  return accessorTanstack(accessor, {
@@ -1 +1 @@
1
- {"version":3,"file":"create-data-table-column-helper.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/utils/create-data-table-column-helper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA;AAS7C,MAAM,2BAA2B,GAAG,GAEF,EAAE;IAClC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAC3C,0BAA0B,EAAS,CAAA;IAErC,OAAO;QACL,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YAC7B,MAAM,EACJ,SAAS,EACT,YAAY,EACZ,aAAa,EACb,IAAI,EACJ,aAAa,EACb,GAAG,IAAI,EACR,GAAG,MAA0C,CAAA;YAE9C,MAAM,YAAY,GAAmC;gBACnD,eAAe,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE;gBAC3D,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,CAAA;YAED,OAAO,gBAAgB,CAAC,QAAQ,EAAE;gBAChC,GAAG,IAAI;gBACP,aAAa,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,KAAK;gBACrC,IAAI,EAAE,YAAY;aACnB,CAAC,CAAA;QACJ,CAAC;QACD,OAAO;QACP,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAmC,EAAE,EAAE,CACjE,OAAO,CAAC;YACN,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAC,mBAAmB,IAAC,GAAG,EAAE,GAAG,GAAI;YAChD,IAAI,EAAE;gBACJ,UAAU,EAAE,OAAO;gBACnB,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;aACtB;YACD,GAAG,KAAK;SACT,CAAC;QACJ,MAAM,EAAE,CAAC,KAAuC,EAAE,EAAE,CAClD,OAAO,CAAC;YACN,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM;gBACnB,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAC,qBAAqB,IAAC,GAAG,EAAE,GAAG,GAAI;YAChD,IAAI,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI;gBACf,CAAC,CAAC,KAAK,CAAC,IAAI;gBACZ,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAC,mBAAmB,IAAC,GAAG,EAAE,GAAG,GAAI;SAC/C,CAAC;KACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,0BAA0B,EAAE,CAAA;AAE3C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,EAAE;CACT,CAAC,CAAA;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport { createColumnHelper as createColumnHelperTanstack } from \"@tanstack/react-table\"\nimport * as React from \"react\"\nimport { DataTableActionCell } from \"../components/data-table-action-cell\"\nimport {\n DataTableSelectCell,\n DataTableSelectHeader,\n} from \"../components/data-table-select-cell\"\nimport {\n DataTableActionColumnDef,\n DataTableColumnHelper,\n DataTableSelectColumnDef,\n DataTableSortableColumnDef,\n DataTableSortableColumnDefMeta,\n} from \"../types\"\n\nconst createDataTableColumnHelper = <\n TData,\n>(): DataTableColumnHelper<TData> => {\n const { accessor: accessorTanstack, display } =\n createColumnHelperTanstack<TData>()\n\n return {\n accessor: (accessor, column) => {\n const {\n sortLabel,\n sortAscLabel,\n sortDescLabel,\n meta,\n enableSorting,\n ...rest\n } = column as any & DataTableSortableColumnDef\n\n const extendedMeta: DataTableSortableColumnDefMeta = {\n ___sortMetaData: { sortLabel, sortAscLabel, sortDescLabel },\n ...(meta || {}),\n }\n\n return accessorTanstack(accessor, {\n ...rest,\n enableSorting: enableSorting ?? false,\n meta: extendedMeta,\n })\n },\n display,\n action: ({ actions, ...props }: DataTableActionColumnDef<TData>) =>\n display({\n id: \"action\",\n cell: (ctx) => <DataTableActionCell ctx={ctx} />,\n meta: {\n ___actions: actions,\n ...(props.meta || {}),\n },\n ...props,\n }),\n select: (props?: DataTableSelectColumnDef<TData>) =>\n display({\n id: \"select\",\n header: props?.header\n ? props.header\n : (ctx) => <DataTableSelectHeader ctx={ctx} />,\n cell: props?.cell\n ? props.cell\n : (ctx) => <DataTableSelectCell ctx={ctx} />,\n }),\n }\n}\n\nconst helper = createColumnHelperTanstack()\n\nhelper.accessor(\"name\", {\n meta: {},\n})\n\nexport { createDataTableColumnHelper }\n"]}
1
+ {"version":3,"file":"create-data-table-column-helper.js","sourceRoot":"","sources":["../../../../../src/blocks/data-table/utils/create-data-table-column-helper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAC1E,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sCAAsC,CAAA;AAW7C,MAAM,2BAA2B,GAAG,GAEF,EAAE;IAClC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAC3C,0BAA0B,EAAS,CAAA;IAErC,OAAO;QACL,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;YAC7B,MAAM,EACJ,SAAS,EACT,YAAY,EACZ,aAAa,EACb,WAAW,EACX,IAAI,EACJ,aAAa,EACb,GAAG,IAAI,EACR,GAAG,MAAwE,CAAA;YAE5E,MAAM,YAAY,GAAqE;gBACrF,eAAe,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE;gBAC3D,gBAAgB,EAAE,EAAE,WAAW,EAAE;gBACjC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,CAAA;YAED,OAAO,gBAAgB,CAAC,QAAQ,EAAE;gBAChC,GAAG,IAAI;gBACP,aAAa,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,KAAK;gBACrC,IAAI,EAAE,YAAY;aACnB,CAAC,CAAA;QACJ,CAAC;QACD,OAAO;QACP,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAmC,EAAE,EAAE,CACjE,OAAO,CAAC;YACN,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAC,mBAAmB,IAAC,GAAG,EAAE,GAAG,GAAI;YAChD,IAAI,EAAE;gBACJ,UAAU,EAAE,OAAO;gBACnB,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;aACtB;YACD,GAAG,KAAK;SACT,CAAC;QACJ,MAAM,EAAE,CAAC,KAAuC,EAAE,EAAE,CAClD,OAAO,CAAC;YACN,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM;gBACnB,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAC,qBAAqB,IAAC,GAAG,EAAE,GAAG,GAAI;YAChD,IAAI,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI;gBACf,CAAC,CAAC,KAAK,CAAC,IAAI;gBACZ,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAC,mBAAmB,IAAC,GAAG,EAAE,GAAG,GAAI;SAC/C,CAAC;KACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,0BAA0B,EAAE,CAAA;AAE3C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,EAAE;CACT,CAAC,CAAA;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAA","sourcesContent":["\"use client\"\n\nimport { createColumnHelper as createColumnHelperTanstack } from \"@tanstack/react-table\"\nimport * as React from \"react\"\nimport { DataTableActionCell } from \"../components/data-table-action-cell\"\nimport {\n DataTableSelectCell,\n DataTableSelectHeader,\n} from \"../components/data-table-select-cell\"\nimport {\n DataTableActionColumnDef,\n DataTableColumnHelper,\n DataTableSelectColumnDef,\n DataTableSortableColumnDef,\n DataTableSortableColumnDefMeta,\n DataTableAlignableColumnDef,\n DataTableAlignableColumnDefMeta,\n} from \"../types\"\n\nconst createDataTableColumnHelper = <\n TData,\n>(): DataTableColumnHelper<TData> => {\n const { accessor: accessorTanstack, display } =\n createColumnHelperTanstack<TData>()\n\n return {\n accessor: (accessor, column) => {\n const {\n sortLabel,\n sortAscLabel,\n sortDescLabel,\n headerAlign,\n meta,\n enableSorting,\n ...rest\n } = column as any & DataTableSortableColumnDef & DataTableAlignableColumnDef\n\n const extendedMeta: DataTableSortableColumnDefMeta & DataTableAlignableColumnDefMeta = {\n ___sortMetaData: { sortLabel, sortAscLabel, sortDescLabel },\n ___alignMetaData: { headerAlign },\n ...(meta || {}),\n }\n\n return accessorTanstack(accessor, {\n ...rest,\n enableSorting: enableSorting ?? false,\n meta: extendedMeta,\n })\n },\n display,\n action: ({ actions, ...props }: DataTableActionColumnDef<TData>) =>\n display({\n id: \"action\",\n cell: (ctx) => <DataTableActionCell ctx={ctx} />,\n meta: {\n ___actions: actions,\n ...(props.meta || {}),\n },\n ...props,\n }),\n select: (props?: DataTableSelectColumnDef<TData>) =>\n display({\n id: \"select\",\n header: props?.header\n ? props.header\n : (ctx) => <DataTableSelectHeader ctx={ctx} />,\n cell: props?.cell\n ? props.cell\n : (ctx) => <DataTableSelectCell ctx={ctx} />,\n }),\n }\n}\n\nconst helper = createColumnHelperTanstack()\n\nhelper.accessor(\"name\", {\n meta: {},\n})\n\nexport { createDataTableColumnHelper }\n"]}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { DeepKeys } from "@tanstack/react-table";
2
3
  import { DataTableFilter, DataTableFilterProps } from "../types";
3
4
  declare const createDataTableFilterHelper: <TData>() => {
@@ -22,6 +23,32 @@ declare const createDataTableFilterHelper: <TData>() => {
22
23
  options: import("../types").DataTableFilterOption<import("../types").DataTableDateComparisonOperator>[];
23
24
  label: string;
24
25
  id: DeepKeys<TData>;
26
+ } | {
27
+ type: "multiselect";
28
+ options: import("../types").DataTableFilterOption<string>[];
29
+ searchable?: boolean | undefined;
30
+ label: string;
31
+ id: DeepKeys<TData>;
32
+ } | {
33
+ type: "string";
34
+ placeholder?: string | undefined;
35
+ label: string;
36
+ id: DeepKeys<TData>;
37
+ } | {
38
+ type: "number";
39
+ placeholder?: string | undefined;
40
+ includeOperators?: boolean | undefined;
41
+ label: string;
42
+ id: DeepKeys<TData>;
43
+ } | {
44
+ type: "custom";
45
+ render: (props: {
46
+ value: any;
47
+ onChange: (value: any) => void;
48
+ onRemove: () => void;
49
+ }) => import("react").ReactNode;
50
+ label: string;
51
+ id: DeepKeys<TData>;
25
52
  };
26
53
  custom: <T extends DataTableFilterProps>(props: DataTableFilter<T>) => DataTableFilter<T>;
27
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create-data-table-filter-helper.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/utils/create-data-table-filter-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAGhE,QAAA,MAAM,2BAA2B;yBACV,SAAS,KAAK,CAAC,SAAS,oBAAoB;;;;;;;;;;;;;;;;;;;;;;oDAIjB,gBAAgB,CAAC,CAAC;CAClE,CAAA;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAA"}
1
+ {"version":3,"file":"create-data-table-filter-helper.d.ts","sourceRoot":"","sources":["../../../../../src/blocks/data-table/utils/create-data-table-filter-helper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAGhE,QAAA,MAAM,2BAA2B;yBACV,SAAS,KAAK,CAAC,SAAS,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAIjB,gBAAgB,CAAC,CAAC;CAClE,CAAA;AAEF,OAAO,EAAE,2BAA2B,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medusajs/ui",
3
- "version": "4.0.22-snapshot-20250829152522",
3
+ "version": "4.0.22-snapshot-20250901165744",
4
4
  "author": "Kasper Kristensen <kasper@medusajs.com>",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "devDependencies": {
45
45
  "@faker-js/faker": "^9.2.0",
46
- "@medusajs/ui-preset": "2.10.2-snapshot-20250829152522",
46
+ "@medusajs/ui-preset": "2.10.2-snapshot-20250901165744",
47
47
  "@storybook/addon-essentials": "^8.3.5",
48
48
  "@storybook/addon-interactions": "^8.3.5",
49
49
  "@storybook/addon-links": "^8.3.5",
@@ -81,7 +81,10 @@
81
81
  "vitest": "^3.0.5"
82
82
  },
83
83
  "dependencies": {
84
- "@medusajs/icons": "2.10.2-snapshot-20250829152522",
84
+ "@dnd-kit/core": "^6.0.0",
85
+ "@dnd-kit/sortable": "^7.0.0",
86
+ "@dnd-kit/utilities": "^3.2.0",
87
+ "@medusajs/icons": "2.10.2-snapshot-20250901165744",
85
88
  "@tanstack/react-table": "8.20.5",
86
89
  "clsx": "^1.2.1",
87
90
  "copy-to-clipboard": "^3.3.3",