@optimum-intelligence/opti-ui 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +105 -3
  2. package/dist/components/accordion/Accordion.d.ts +12 -0
  3. package/dist/components/accordion/Accordion.js +12 -0
  4. package/dist/components/accordion/Accordion.js.map +1 -1
  5. package/dist/components/alert/Alert.d.ts +4 -0
  6. package/dist/components/alert/Alert.js.map +1 -1
  7. package/dist/components/app-shell/AppShell.d.ts +22 -0
  8. package/dist/components/app-shell/AppShell.js +6 -0
  9. package/dist/components/app-shell/AppShell.js.map +1 -1
  10. package/dist/components/avatar/Avatar.d.ts +8 -0
  11. package/dist/components/avatar/Avatar.js +2 -0
  12. package/dist/components/avatar/Avatar.js.map +1 -1
  13. package/dist/components/badge/Badge.d.ts +9 -0
  14. package/dist/components/badge/Badge.js +6 -0
  15. package/dist/components/badge/Badge.js.map +1 -1
  16. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +1 -0
  17. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -1
  18. package/dist/components/button/Button.d.ts +8 -0
  19. package/dist/components/button/Button.js +6 -0
  20. package/dist/components/button/Button.js.map +1 -1
  21. package/dist/components/calendar/Calendar.d.ts +3 -0
  22. package/dist/components/calendar/Calendar.js.map +1 -1
  23. package/dist/components/card/Card.d.ts +14 -1
  24. package/dist/components/card/Card.js +13 -0
  25. package/dist/components/card/Card.js.map +1 -1
  26. package/dist/components/choice/Choice.d.ts +13 -0
  27. package/dist/components/choice/Choice.js +10 -0
  28. package/dist/components/choice/Choice.js.map +1 -1
  29. package/dist/components/combobox/Combobox.d.ts +12 -0
  30. package/dist/components/combobox/Combobox.js.map +1 -1
  31. package/dist/components/command-palette/CommandPalette.d.ts +10 -0
  32. package/dist/components/command-palette/CommandPalette.js.map +1 -1
  33. package/dist/components/data-table/DataTable.d.ts +62 -96
  34. package/dist/components/data-table/DataTable.js +452 -418
  35. package/dist/components/data-table/DataTable.js.map +1 -1
  36. package/dist/components/data-table/DataTableContent.d.ts +36 -0
  37. package/dist/components/data-table/DataTableContent.js +550 -0
  38. package/dist/components/data-table/DataTableContent.js.map +1 -0
  39. package/dist/components/data-table/DataTableFilters.d.ts +18 -0
  40. package/dist/components/data-table/DataTableFilters.js +284 -0
  41. package/dist/components/data-table/DataTableFilters.js.map +1 -0
  42. package/dist/components/data-table/DataTableRow.d.ts +33 -0
  43. package/dist/components/data-table/DataTableRow.js +552 -0
  44. package/dist/components/data-table/DataTableRow.js.map +1 -0
  45. package/dist/components/data-table/context.d.ts +5 -0
  46. package/dist/components/data-table/context.js +14 -0
  47. package/dist/components/data-table/context.js.map +1 -0
  48. package/dist/components/data-table/layout.d.ts +60 -0
  49. package/dist/components/data-table/layout.js +272 -0
  50. package/dist/components/data-table/layout.js.map +1 -0
  51. package/dist/components/data-table/types.d.ts +335 -0
  52. package/dist/components/data-table/useDataTable.d.ts +9 -0
  53. package/dist/components/data-table/useDataTable.js +666 -0
  54. package/dist/components/data-table/useDataTable.js.map +1 -0
  55. package/dist/components/date-picker/DateRangePicker.d.ts +1 -0
  56. package/dist/components/date-picker/DateRangePicker.js.map +1 -1
  57. package/dist/components/date-picker/PickerField.d.ts +13 -0
  58. package/dist/components/date-picker/PickerField.js.map +1 -1
  59. package/dist/components/dialog/Dialog.d.ts +5 -0
  60. package/dist/components/dialog/Dialog.js.map +1 -1
  61. package/dist/components/drawer/Drawer.d.ts +10 -0
  62. package/dist/components/drawer/Drawer.js.map +1 -1
  63. package/dist/components/empty-state/EmptyState.d.ts +5 -0
  64. package/dist/components/empty-state/EmptyState.js.map +1 -1
  65. package/dist/components/file-upload/FileUpload.d.ts +21 -0
  66. package/dist/components/file-upload/FileUpload.js.map +1 -1
  67. package/dist/components/input/Input.d.ts +7 -0
  68. package/dist/components/input/Input.js +3 -0
  69. package/dist/components/input/Input.js.map +1 -1
  70. package/dist/components/link/Link.d.ts +1 -0
  71. package/dist/components/link/Link.js.map +1 -1
  72. package/dist/components/menu/Menu.d.ts +6 -0
  73. package/dist/components/menu/Menu.js.map +1 -1
  74. package/dist/components/number-field/NumberField.d.ts +7 -0
  75. package/dist/components/number-field/NumberField.js.map +1 -1
  76. package/dist/components/pagination/Pagination.d.ts +4 -0
  77. package/dist/components/pagination/Pagination.js.map +1 -1
  78. package/dist/components/popover/Popover.d.ts +4 -0
  79. package/dist/components/popover/Popover.js.map +1 -1
  80. package/dist/components/preview-card/PreviewCard.d.ts +4 -0
  81. package/dist/components/preview-card/PreviewCard.js.map +1 -1
  82. package/dist/components/progress/Progress.d.ts +8 -0
  83. package/dist/components/progress/Progress.js.map +1 -1
  84. package/dist/components/scroll-area/ScrollArea.d.ts +1 -0
  85. package/dist/components/scroll-area/ScrollArea.js.map +1 -1
  86. package/dist/components/search-input/SearchInput.d.ts +2 -0
  87. package/dist/components/search-input/SearchInput.js.map +1 -1
  88. package/dist/components/select/Select.d.ts +11 -0
  89. package/dist/components/select/Select.js.map +1 -1
  90. package/dist/components/separator/Separator.d.ts +1 -0
  91. package/dist/components/separator/Separator.js +1 -0
  92. package/dist/components/separator/Separator.js.map +1 -1
  93. package/dist/components/skeleton/Skeleton.d.ts +7 -0
  94. package/dist/components/skeleton/Skeleton.js +1 -0
  95. package/dist/components/skeleton/Skeleton.js.map +1 -1
  96. package/dist/components/slider/Slider.d.ts +1 -0
  97. package/dist/components/slider/Slider.js.map +1 -1
  98. package/dist/components/spinner/Spinner.d.ts +2 -0
  99. package/dist/components/spinner/Spinner.js +1 -0
  100. package/dist/components/spinner/Spinner.js.map +1 -1
  101. package/dist/components/stat-card/StatCard.d.ts +5 -1
  102. package/dist/components/stat-card/StatCard.js.map +1 -1
  103. package/dist/components/stepper/Stepper.d.ts +4 -0
  104. package/dist/components/stepper/Stepper.js.map +1 -1
  105. package/dist/components/table/Table.d.ts +23 -0
  106. package/dist/components/table/Table.js +17 -0
  107. package/dist/components/table/Table.js.map +1 -1
  108. package/dist/components/tabs/Tabs.d.ts +1 -0
  109. package/dist/components/tabs/Tabs.js.map +1 -1
  110. package/dist/components/tag/Tag.d.ts +3 -0
  111. package/dist/components/tag/Tag.js.map +1 -1
  112. package/dist/components/toast/Toast.d.ts +2 -0
  113. package/dist/components/toast/Toast.js.map +1 -1
  114. package/dist/components/toggle/Toggle.d.ts +7 -0
  115. package/dist/components/toggle/Toggle.js +1 -0
  116. package/dist/components/toggle/Toggle.js.map +1 -1
  117. package/dist/components/tooltip/Tooltip.d.ts +8 -0
  118. package/dist/components/tooltip/Tooltip.js.map +1 -1
  119. package/dist/components/typography/Typography.d.ts +5 -0
  120. package/dist/components/typography/Typography.js +2 -0
  121. package/dist/components/typography/Typography.js.map +1 -1
  122. package/dist/components.json +5375 -0
  123. package/dist/icons/index.d.ts +8 -0
  124. package/dist/icons/index.js +9 -1
  125. package/dist/icons/index.js.map +1 -1
  126. package/dist/index.d.ts +2 -0
  127. package/dist/index.js +4 -2
  128. package/dist/llms-full.txt +2590 -0
  129. package/dist/llms.txt +175 -0
  130. package/dist/opti-ui.css +494 -167
  131. package/dist/theme/ThemeProvider.d.ts +1 -0
  132. package/dist/theme/ThemeProvider.js.map +1 -1
  133. package/dist/utils/portal.d.ts +4 -0
  134. package/dist/utils/portal.js +4 -0
  135. package/dist/utils/portal.js.map +1 -1
  136. package/package.json +7 -3
@@ -0,0 +1,666 @@
1
+ "use client";
2
+ import { datePart, pad } from "../calendar/date-utils.js";
3
+ import { normalizeText } from "../../utils/search.js";
4
+ import { c } from "react/compiler-runtime";
5
+ import * as React from "react";
6
+ //#region src/components/data-table/useDataTable.ts
7
+ var defaultLabels = {
8
+ search: "Search…",
9
+ clearSearch: "Clear search",
10
+ selectAll: "Select all",
11
+ selectRow: (label) => `Select ${label}`,
12
+ count: (count) => `${count} ${count === 1 ? "record" : "records"}`,
13
+ selected: (count) => `${count} selected`,
14
+ emptyTitle: "No records yet",
15
+ emptyDescription: "Records will appear here once added.",
16
+ noMatchTitle: "No matching records",
17
+ noMatchDescription: "Try a different search.",
18
+ loading: "Loading",
19
+ errorTitle: "Could not load records",
20
+ retry: "Try again",
21
+ filters: "Filters",
22
+ filterAll: "All",
23
+ clearFilters: "Clear filters",
24
+ actions: "Actions",
25
+ edit: "Edit",
26
+ save: "Save",
27
+ cancel: "Cancel",
28
+ delete: "Delete"
29
+ };
30
+ function useControlled(value, initial, onChange) {
31
+ const $ = c(5);
32
+ const [inner, setInner] = React.useState(initial);
33
+ let t0;
34
+ if ($[0] !== onChange) {
35
+ t0 = (next) => {
36
+ setInner(next);
37
+ onChange?.(next);
38
+ };
39
+ $[0] = onChange;
40
+ $[1] = t0;
41
+ } else t0 = $[1];
42
+ const set = t0;
43
+ const t1 = value === void 0 ? inner : value;
44
+ let t2;
45
+ if ($[2] !== set || $[3] !== t1) {
46
+ t2 = [t1, set];
47
+ $[2] = set;
48
+ $[3] = t1;
49
+ $[4] = t2;
50
+ } else t2 = $[4];
51
+ return t2;
52
+ }
53
+ /** The value a column sorts, searches and filters by. */
54
+ function getColumnValue(column, row) {
55
+ return column.accessor ? column.accessor(row) : row[column.id];
56
+ }
57
+ function isEmpty(value) {
58
+ return value === null || value === void 0 || value === "";
59
+ }
60
+ function hasValue(column) {
61
+ return column.accessor !== void 0 || column.cell === void 0;
62
+ }
63
+ /** A toggle filter without `match` reads the value as a flag; "No", "false" and "0" count as off. */
64
+ function isOn(value) {
65
+ if (typeof value !== "string") return Boolean(value);
66
+ return ![
67
+ "",
68
+ "no",
69
+ "false",
70
+ "0"
71
+ ].includes(value.trim().toLowerCase());
72
+ }
73
+ /** Local calendar day of a row's date, as `"2026-03-09"`. */
74
+ function dayOf(value) {
75
+ if (isEmpty(value)) return null;
76
+ if (typeof value === "string" && datePart(value)) return datePart(value);
77
+ const date = value instanceof Date ? value : new Date(value);
78
+ if (Number.isNaN(date.getTime())) return null;
79
+ return `${pad(date.getFullYear(), 4)}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`;
80
+ }
81
+ var WORD_CHARACTER = /[\p{L}\p{N}]/u;
82
+ /** True when `term` occurs in `text` as a whole word (or run of words). */
83
+ function hasWord(text, term) {
84
+ for (let from = text.indexOf(term); from !== -1; from = text.indexOf(term, from + 1)) {
85
+ const before = text[from - 1];
86
+ const after = text[from + term.length];
87
+ if (!(before && WORD_CHARACTER.test(before)) && !(after && WORD_CHARACTER.test(after))) return true;
88
+ }
89
+ return false;
90
+ }
91
+ /** Every term has to occur in one of the columns. */
92
+ function matchesTerms(columns, row, terms) {
93
+ const values = columns.map((column) => ({
94
+ exact: column.searchMode === "exact",
95
+ text: normalizeText(getColumnValue(column, row))
96
+ }));
97
+ return terms.every((term) => values.some(({ exact, text }) => exact ? hasWord(text, term) : text.includes(term)));
98
+ }
99
+ function resolveFilter(filter, read, data, collator) {
100
+ const { id, label } = filter;
101
+ if (filter.type === "toggle") {
102
+ const match = filter.match ?? ((row) => isOn(read(row)));
103
+ return {
104
+ id,
105
+ label,
106
+ type: "toggle",
107
+ options: [],
108
+ test: (row) => match(row)
109
+ };
110
+ }
111
+ const get = filter.value ?? read;
112
+ if (filter.type === "dateRange") {
113
+ const { presets, min, max } = filter;
114
+ return {
115
+ id,
116
+ label,
117
+ type: "dateRange",
118
+ options: [],
119
+ presets,
120
+ min,
121
+ max,
122
+ test: (row, value) => {
123
+ const day = dayOf(get(row));
124
+ const range = value;
125
+ return day !== null && day >= range.start && day <= range.end;
126
+ }
127
+ };
128
+ }
129
+ const items = (row) => {
130
+ const value = get(row);
131
+ return (Array.isArray(value) ? value : [value]).filter((item) => !isEmpty(item)).map(String);
132
+ };
133
+ return {
134
+ id,
135
+ label,
136
+ type: "select",
137
+ options: filter.options ?? [...new Set(data.flatMap(items))].sort(collator.compare).map((value) => ({
138
+ value,
139
+ label: value
140
+ })),
141
+ test: (row, value) => items(row).includes(value)
142
+ };
143
+ }
144
+ /**
145
+ * State and row processing of a `DataTable`, without any markup. Pass the
146
+ * result to `DataTable.Root` to lay the parts out yourself, or read `rows`,
147
+ * `filterValues` and the rest to drive something else (an export, a chart).
148
+ */
149
+ function useDataTable(t0) {
150
+ const $ = c(146);
151
+ const { data, columns, mode: t1, total, loading: t2, error, onRetry, getRowId, locale, searchable: t3, search: searchProp, defaultSearch: t4, onSearchChange, searchDebounce, filter, filters: filtersProp, filterValues: filterValuesProp, defaultFilterValues, onFilterValuesChange, sort: sortProp, defaultSort: t5, onSortChange, paginated: t6, page: pageProp, onPageChange, pageSize: pageSizeProp, defaultPageSize: t7, onPageSizeChange, selection: selectionProp, onSelectionChange, onRowClick, rowLabel, rowActions, rowTone, rowProps, onRowSave, onRowDelete, labels } = t0;
152
+ const mode = t1 === void 0 ? "client" : t1;
153
+ const loading = t2 === void 0 ? false : t2;
154
+ const searchable = t3 === void 0 ? true : t3;
155
+ const defaultSearch = t4 === void 0 ? "" : t4;
156
+ const defaultSort = t5 === void 0 ? null : t5;
157
+ const paginated = t6 === void 0 ? true : t6;
158
+ const defaultPageSize = t7 === void 0 ? 10 : t7;
159
+ const [search, setSearchState] = useControlled(searchProp, defaultSearch, onSearchChange);
160
+ let t8;
161
+ if ($[0] !== defaultFilterValues) {
162
+ t8 = defaultFilterValues ?? {};
163
+ $[0] = defaultFilterValues;
164
+ $[1] = t8;
165
+ } else t8 = $[1];
166
+ const [filterValues, setFilterValues] = useControlled(filterValuesProp, t8, onFilterValuesChange);
167
+ const [sort, setSort] = useControlled(sortProp, defaultSort, onSortChange);
168
+ const [page, setPage] = useControlled(pageProp, 1, onPageChange);
169
+ const [pageSize, setPageSizeState] = useControlled(pageSizeProp, defaultPageSize, onPageSizeChange);
170
+ const [edit, setEdit] = React.useState(null);
171
+ const [saving, setSaving] = React.useState(false);
172
+ const server = mode === "server";
173
+ let activeFilters;
174
+ let currentPage;
175
+ let entries;
176
+ let filters;
177
+ let isSortable;
178
+ let matchCount;
179
+ let pageCount;
180
+ let pageRows;
181
+ let query;
182
+ let rows;
183
+ let selected;
184
+ let selection;
185
+ let t9;
186
+ let text;
187
+ if ($[2] !== columns || $[3] !== data || $[4] !== filter || $[5] !== filterValues || $[6] !== filtersProp || $[7] !== getRowId || $[8] !== labels || $[9] !== locale || $[10] !== page || $[11] !== pageSize || $[12] !== paginated || $[13] !== search || $[14] !== selectionProp || $[15] !== server || $[16] !== sort || $[17] !== total) {
188
+ const collator = new Intl.Collator(locale, {
189
+ numeric: true,
190
+ sensitivity: "base"
191
+ });
192
+ const count = labels?.count ?? defaultLabels.count;
193
+ let t10;
194
+ if ($[32] !== count) {
195
+ t10 = (matches, all) => React.createElement(React.Fragment, null, matches, " / ", count(all));
196
+ $[32] = count;
197
+ $[33] = t10;
198
+ } else t10 = $[33];
199
+ const t11 = labels?.noMatchDescription ?? "Try different filters, or clear them.";
200
+ let t12;
201
+ if ($[34] !== labels || $[35] !== t10 || $[36] !== t11) {
202
+ t12 = {
203
+ ...defaultLabels,
204
+ filteredCount: t10,
205
+ noFilterMatchDescription: t11,
206
+ ...labels
207
+ };
208
+ $[34] = labels;
209
+ $[35] = t10;
210
+ $[36] = t11;
211
+ $[37] = t12;
212
+ } else t12 = $[37];
213
+ text = t12;
214
+ filters = [...columns.flatMap((column) => {
215
+ if (!column.filter) return [];
216
+ const config = typeof column.filter === "string" ? { type: column.filter } : column.filter;
217
+ const label = ("label" in config ? config.label : void 0) ?? column.label ?? (typeof column.header === "string" ? column.header : column.id);
218
+ return [resolveFilter({
219
+ ...config,
220
+ id: column.id,
221
+ label
222
+ }, (row) => getColumnValue(column, row), data, collator)];
223
+ }), ...(filtersProp ?? []).map((definition_0) => resolveFilter(definition_0, (row_0) => row_0[definition_0.id], data, collator))];
224
+ activeFilters = filters.filter((t13) => {
225
+ const { id } = t13;
226
+ return filterValues[id] !== void 0;
227
+ });
228
+ let t14;
229
+ if ($[38] !== getRowId) {
230
+ t14 = (row_1, index) => getRowId?.(row_1, index) ?? String(row_1.id ?? index);
231
+ $[38] = getRowId;
232
+ $[39] = t14;
233
+ } else t14 = $[39];
234
+ const idOf = t14;
235
+ let t15;
236
+ if ($[40] !== idOf) {
237
+ t15 = (row_2, index_0) => ({
238
+ row: row_2,
239
+ id: idOf(row_2, index_0)
240
+ });
241
+ $[40] = idOf;
242
+ $[41] = t15;
243
+ } else t15 = $[41];
244
+ entries = data.map(t15);
245
+ rows = entries;
246
+ if (!server && activeFilters.length) rows = rows.filter((t16) => {
247
+ const { row: row_3 } = t16;
248
+ return activeFilters.every((t17) => {
249
+ const { id: id_0, test } = t17;
250
+ return test(row_3, filterValues[id_0]);
251
+ });
252
+ });
253
+ query = search.trim();
254
+ if (!server && query) {
255
+ const searchColumns = columns.filter(_temp);
256
+ const terms = normalizeText(query).split(/\s+/).filter(Boolean);
257
+ rows = rows.filter((t16) => {
258
+ const { row: row_4 } = t16;
259
+ return filter ? filter(row_4, search) : matchesTerms(searchColumns, row_4, terms);
260
+ });
261
+ }
262
+ isSortable = _temp2;
263
+ const sortColumn = sort && columns.find((candidate) => candidate.id === sort.id);
264
+ if (!server && sort && sortColumn) {
265
+ const direction = sort.direction === "asc" ? 1 : -1;
266
+ rows = [...rows].sort((a, b) => {
267
+ if (sortColumn.compare) return direction * sortColumn.compare(a.row, b.row);
268
+ const [av, bv] = [getColumnValue(sortColumn, a.row), getColumnValue(sortColumn, b.row)];
269
+ if (isEmpty(av) || isEmpty(bv)) return Number(isEmpty(av)) - Number(isEmpty(bv));
270
+ if (typeof av === "number" && typeof bv === "number") return direction * (av - bv);
271
+ if (av instanceof Date && bv instanceof Date) return direction * (av.getTime() - bv.getTime());
272
+ if (typeof av === "boolean" && typeof bv === "boolean") return direction * (Number(av) - Number(bv));
273
+ return direction * collator.compare(String(av), String(bv));
274
+ });
275
+ }
276
+ matchCount = server ? total ?? rows.length : rows.length;
277
+ pageCount = Math.max(1, Math.ceil(matchCount / pageSize));
278
+ currentPage = Math.min(Math.max(1, page), pageCount);
279
+ pageRows = paginated && !server ? rows.slice((currentPage - 1) * pageSize, currentPage * pageSize) : rows;
280
+ let t16;
281
+ if ($[42] !== selectionProp) {
282
+ t16 = selectionProp ?? [];
283
+ $[42] = selectionProp;
284
+ $[43] = t16;
285
+ } else t16 = $[43];
286
+ selection = t16;
287
+ let t17;
288
+ if ($[44] !== selection) {
289
+ t17 = new Set(selection);
290
+ $[44] = selection;
291
+ $[45] = t17;
292
+ } else t17 = $[45];
293
+ selected = t17;
294
+ let t18;
295
+ if ($[46] !== selected) {
296
+ t18 = (t19) => {
297
+ const { id: id_1 } = t19;
298
+ return selected.has(id_1);
299
+ };
300
+ $[46] = selected;
301
+ $[47] = t18;
302
+ } else t18 = $[47];
303
+ t9 = rows.filter(t18);
304
+ $[2] = columns;
305
+ $[3] = data;
306
+ $[4] = filter;
307
+ $[5] = filterValues;
308
+ $[6] = filtersProp;
309
+ $[7] = getRowId;
310
+ $[8] = labels;
311
+ $[9] = locale;
312
+ $[10] = page;
313
+ $[11] = pageSize;
314
+ $[12] = paginated;
315
+ $[13] = search;
316
+ $[14] = selectionProp;
317
+ $[15] = server;
318
+ $[16] = sort;
319
+ $[17] = total;
320
+ $[18] = activeFilters;
321
+ $[19] = currentPage;
322
+ $[20] = entries;
323
+ $[21] = filters;
324
+ $[22] = isSortable;
325
+ $[23] = matchCount;
326
+ $[24] = pageCount;
327
+ $[25] = pageRows;
328
+ $[26] = query;
329
+ $[27] = rows;
330
+ $[28] = selected;
331
+ $[29] = selection;
332
+ $[30] = t9;
333
+ $[31] = text;
334
+ } else {
335
+ activeFilters = $[18];
336
+ currentPage = $[19];
337
+ entries = $[20];
338
+ filters = $[21];
339
+ isSortable = $[22];
340
+ matchCount = $[23];
341
+ pageCount = $[24];
342
+ pageRows = $[25];
343
+ query = $[26];
344
+ rows = $[27];
345
+ selected = $[28];
346
+ selection = $[29];
347
+ t9 = $[30];
348
+ text = $[31];
349
+ }
350
+ const selectedInView = t9.length;
351
+ const allSelected = rows.length > 0 && selectedInView === rows.length;
352
+ let t10;
353
+ if ($[48] !== setPage || $[49] !== setSearchState) {
354
+ t10 = (next) => {
355
+ setSearchState(next);
356
+ setPage(1);
357
+ };
358
+ $[48] = setPage;
359
+ $[49] = setSearchState;
360
+ $[50] = t10;
361
+ } else t10 = $[50];
362
+ const setSearch = t10;
363
+ let t11;
364
+ if ($[51] !== setFilterValues || $[52] !== setPage) {
365
+ t11 = (next_0) => {
366
+ setFilterValues(next_0);
367
+ setPage(1);
368
+ };
369
+ $[51] = setFilterValues;
370
+ $[52] = setPage;
371
+ $[53] = t11;
372
+ } else t11 = $[53];
373
+ const changeFilters = t11;
374
+ let t12;
375
+ if ($[54] !== changeFilters || $[55] !== filterValues) {
376
+ t12 = (id_2, value) => {
377
+ const others = Object.entries(filterValues).filter((t13) => {
378
+ const [key] = t13;
379
+ return key !== id_2;
380
+ });
381
+ changeFilters(Object.fromEntries(value === void 0 ? others : [...others, [id_2, value]]));
382
+ };
383
+ $[54] = changeFilters;
384
+ $[55] = filterValues;
385
+ $[56] = t12;
386
+ } else t12 = $[56];
387
+ const setFilterValue = t12;
388
+ let t13;
389
+ if ($[57] !== edit || $[58] !== entries || $[59] !== onRowSave || $[60] !== saving) {
390
+ t13 = () => {
391
+ const entry = edit && entries.find((t14) => {
392
+ const { id: id_3 } = t14;
393
+ return id_3 === edit.id;
394
+ });
395
+ if (!entry || !onRowSave || saving) return;
396
+ setSaving(true);
397
+ Promise.resolve().then(() => onRowSave({
398
+ ...entry.row,
399
+ ...edit.draft
400
+ }, entry.row)).then(() => setEdit(null), _temp3).then(() => setSaving(false));
401
+ };
402
+ $[57] = edit;
403
+ $[58] = entries;
404
+ $[59] = onRowSave;
405
+ $[60] = saving;
406
+ $[61] = t13;
407
+ } else t13 = $[61];
408
+ const saveEdit = t13;
409
+ let t14;
410
+ if ($[62] !== columns) {
411
+ t14 = columns.filter(_temp4);
412
+ $[62] = columns;
413
+ $[63] = t14;
414
+ } else t14 = $[63];
415
+ const t15 = rows;
416
+ const t16 = server ? matchCount : data.length;
417
+ const t17 = Boolean(query) || activeFilters.length > 0;
418
+ let t18;
419
+ if ($[64] !== changeFilters || $[65] !== setSearchState) {
420
+ t18 = () => {
421
+ setSearchState("");
422
+ changeFilters({});
423
+ };
424
+ $[64] = changeFilters;
425
+ $[65] = setSearchState;
426
+ $[66] = t18;
427
+ } else t18 = $[66];
428
+ const t19 = loading && !rows.length && !error;
429
+ const t20 = searchDebounce ?? (server ? 300 : 0);
430
+ let t21;
431
+ if ($[67] !== changeFilters) {
432
+ t21 = () => changeFilters({});
433
+ $[67] = changeFilters;
434
+ $[68] = t21;
435
+ } else t21 = $[68];
436
+ const t22 = activeFilters.length;
437
+ let t23;
438
+ if ($[69] !== setSort || $[70] !== sort) {
439
+ t23 = (id_4) => setSort(sort?.id !== id_4 ? {
440
+ id: id_4,
441
+ direction: "asc"
442
+ } : sort.direction === "asc" ? {
443
+ id: id_4,
444
+ direction: "desc"
445
+ } : null);
446
+ $[69] = setSort;
447
+ $[70] = sort;
448
+ $[71] = t23;
449
+ } else t23 = $[71];
450
+ let t24;
451
+ if ($[72] !== setPage || $[73] !== setPageSizeState) {
452
+ t24 = (size) => {
453
+ setPageSizeState(size);
454
+ setPage(1);
455
+ };
456
+ $[72] = setPage;
457
+ $[73] = setPageSizeState;
458
+ $[74] = t24;
459
+ } else t24 = $[74];
460
+ const t25 = Boolean(onSelectionChange);
461
+ let t26;
462
+ if ($[75] !== selected) {
463
+ t26 = (id_5) => selected.has(id_5);
464
+ $[75] = selected;
465
+ $[76] = t26;
466
+ } else t26 = $[76];
467
+ let t27;
468
+ if ($[77] !== onSelectionChange || $[78] !== selection) {
469
+ t27 = (id_6, checked) => onSelectionChange?.(checked ? [...selection.filter((item) => item !== id_6), id_6] : selection.filter((item_0) => item_0 !== id_6));
470
+ $[77] = onSelectionChange;
471
+ $[78] = selection;
472
+ $[79] = t27;
473
+ } else t27 = $[79];
474
+ let t28;
475
+ if ($[80] !== onSelectionChange || $[81] !== rows || $[82] !== selection) {
476
+ t28 = (checked_0) => {
477
+ const ids = new Set(rows.map(_temp5));
478
+ const kept = selection.filter((id_8) => !ids.has(id_8));
479
+ onSelectionChange?.(checked_0 ? [...kept, ...ids] : kept);
480
+ };
481
+ $[80] = onSelectionChange;
482
+ $[81] = rows;
483
+ $[82] = selection;
484
+ $[83] = t28;
485
+ } else t28 = $[83];
486
+ const t29 = selectedInView > 0 && !allSelected;
487
+ const t30 = Boolean(onRowSave);
488
+ const t31 = Boolean(onRowDelete);
489
+ const t32 = edit?.id ?? null;
490
+ let t33;
491
+ let t34;
492
+ if ($[84] === Symbol.for("react.memo_cache_sentinel")) {
493
+ t33 = (id_9) => setEdit({
494
+ id: id_9,
495
+ draft: {}
496
+ });
497
+ t34 = () => setEdit(null);
498
+ $[84] = t33;
499
+ $[85] = t34;
500
+ } else {
501
+ t33 = $[84];
502
+ t34 = $[85];
503
+ }
504
+ let t35;
505
+ if ($[86] !== edit) {
506
+ t35 = (row_5, field) => edit && field in edit.draft ? edit.draft[field] : row_5[field];
507
+ $[86] = edit;
508
+ $[87] = t35;
509
+ } else t35 = $[87];
510
+ let t36;
511
+ if ($[88] === Symbol.for("react.memo_cache_sentinel")) {
512
+ t36 = (field_0, value_0) => setEdit((current) => current && {
513
+ ...current,
514
+ draft: {
515
+ ...current.draft,
516
+ [field_0]: value_0
517
+ }
518
+ });
519
+ $[88] = t36;
520
+ } else t36 = $[88];
521
+ let t37;
522
+ if ($[89] !== onRowDelete) {
523
+ t37 = (row_6) => {
524
+ onRowDelete?.(row_6);
525
+ setEdit(null);
526
+ };
527
+ $[89] = onRowDelete;
528
+ $[90] = t37;
529
+ } else t37 = $[90];
530
+ let t38;
531
+ if ($[91] !== activeFilters.length || $[92] !== allSelected || $[93] !== columns || $[94] !== currentPage || $[95] !== entries || $[96] !== error || $[97] !== filterValues || $[98] !== filters || $[99] !== isSortable || $[100] !== loading || $[101] !== locale || $[102] !== matchCount || $[103] !== mode || $[104] !== onRetry || $[105] !== onRowClick || $[106] !== pageCount || $[107] !== pageRows || $[108] !== pageSize || $[109] !== paginated || $[110] !== rowActions || $[111] !== rowLabel || $[112] !== rowProps || $[113] !== rowTone || $[114] !== rows || $[115] !== saveEdit || $[116] !== saving || $[117] !== search || $[118] !== searchable || $[119] !== selection || $[120] !== setFilterValue || $[121] !== setPage || $[122] !== setSearch || $[123] !== setSort || $[124] !== sort || $[125] !== t14 || $[126] !== t16 || $[127] !== t17 || $[128] !== t18 || $[129] !== t19 || $[130] !== t20 || $[131] !== t21 || $[132] !== t23 || $[133] !== t24 || $[134] !== t25 || $[135] !== t26 || $[136] !== t27 || $[137] !== t28 || $[138] !== t29 || $[139] !== t30 || $[140] !== t31 || $[141] !== t32 || $[142] !== t35 || $[143] !== t37 || $[144] !== text) {
532
+ t38 = {
533
+ mode,
534
+ columns,
535
+ visibleColumns: t14,
536
+ labels: text,
537
+ locale,
538
+ allRows: entries,
539
+ rows: t15,
540
+ pageRows,
541
+ count: matchCount,
542
+ totalCount: t16,
543
+ filtered: t17,
544
+ reset: t18,
545
+ loading,
546
+ pending: t19,
547
+ error,
548
+ onRetry,
549
+ searchable,
550
+ search,
551
+ setSearch,
552
+ searchDebounce: t20,
553
+ filters,
554
+ filterValues,
555
+ setFilterValue,
556
+ clearFilters: t21,
557
+ activeFilterCount: t22,
558
+ sort,
559
+ setSort,
560
+ toggleSort: t23,
561
+ isSortable,
562
+ paginated,
563
+ page: currentPage,
564
+ pageCount,
565
+ pageSize,
566
+ setPage,
567
+ setPageSize: t24,
568
+ selectable: t25,
569
+ selection,
570
+ isSelected: t26,
571
+ toggleRow: t27,
572
+ toggleAll: t28,
573
+ allSelected,
574
+ someSelected: t29,
575
+ editable: t30,
576
+ deletable: t31,
577
+ editingId: t32,
578
+ saving,
579
+ startEdit: t33,
580
+ cancelEdit: t34,
581
+ editValue: t35,
582
+ setEditValue: t36,
583
+ saveEdit,
584
+ deleteRow: t37,
585
+ onRowClick,
586
+ rowLabel,
587
+ rowActions,
588
+ rowTone,
589
+ rowProps
590
+ };
591
+ $[91] = activeFilters.length;
592
+ $[92] = allSelected;
593
+ $[93] = columns;
594
+ $[94] = currentPage;
595
+ $[95] = entries;
596
+ $[96] = error;
597
+ $[97] = filterValues;
598
+ $[98] = filters;
599
+ $[99] = isSortable;
600
+ $[100] = loading;
601
+ $[101] = locale;
602
+ $[102] = matchCount;
603
+ $[103] = mode;
604
+ $[104] = onRetry;
605
+ $[105] = onRowClick;
606
+ $[106] = pageCount;
607
+ $[107] = pageRows;
608
+ $[108] = pageSize;
609
+ $[109] = paginated;
610
+ $[110] = rowActions;
611
+ $[111] = rowLabel;
612
+ $[112] = rowProps;
613
+ $[113] = rowTone;
614
+ $[114] = rows;
615
+ $[115] = saveEdit;
616
+ $[116] = saving;
617
+ $[117] = search;
618
+ $[118] = searchable;
619
+ $[119] = selection;
620
+ $[120] = setFilterValue;
621
+ $[121] = setPage;
622
+ $[122] = setSearch;
623
+ $[123] = setSort;
624
+ $[124] = sort;
625
+ $[125] = t14;
626
+ $[126] = t16;
627
+ $[127] = t17;
628
+ $[128] = t18;
629
+ $[129] = t19;
630
+ $[130] = t20;
631
+ $[131] = t21;
632
+ $[132] = t23;
633
+ $[133] = t24;
634
+ $[134] = t25;
635
+ $[135] = t26;
636
+ $[136] = t27;
637
+ $[137] = t28;
638
+ $[138] = t29;
639
+ $[139] = t30;
640
+ $[140] = t31;
641
+ $[141] = t32;
642
+ $[142] = t35;
643
+ $[143] = t37;
644
+ $[144] = text;
645
+ $[145] = t38;
646
+ } else t38 = $[145];
647
+ return t38;
648
+ }
649
+ function _temp5(t0) {
650
+ const { id: id_7 } = t0;
651
+ return id_7;
652
+ }
653
+ function _temp4(column_2) {
654
+ return !column_2.hidden;
655
+ }
656
+ function _temp3() {}
657
+ function _temp2(column_1) {
658
+ return column_1.sortable ?? hasValue(column_1);
659
+ }
660
+ function _temp(column_0) {
661
+ return column_0.searchable ?? hasValue(column_0);
662
+ }
663
+ //#endregion
664
+ export { getColumnValue, useDataTable };
665
+
666
+ //# sourceMappingURL=useDataTable.js.map