@optimum-intelligence/opti-ui 0.0.0-stage → 0.3.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 (193) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +244 -2
  3. package/dist/components/accordion/Accordion.d.ts +17 -0
  4. package/dist/components/accordion/Accordion.js +204 -0
  5. package/dist/components/accordion/Accordion.js.map +1 -0
  6. package/dist/components/alert/Alert.d.ts +18 -0
  7. package/dist/components/alert/Alert.js +164 -0
  8. package/dist/components/alert/Alert.js.map +1 -0
  9. package/dist/components/app-shell/AppShell.d.ts +97 -0
  10. package/dist/components/app-shell/AppShell.js +689 -0
  11. package/dist/components/app-shell/AppShell.js.map +1 -0
  12. package/dist/components/avatar/Avatar.d.ts +21 -0
  13. package/dist/components/avatar/Avatar.js +190 -0
  14. package/dist/components/avatar/Avatar.js.map +1 -0
  15. package/dist/components/badge/Badge.d.ts +16 -0
  16. package/dist/components/badge/Badge.js +94 -0
  17. package/dist/components/badge/Badge.js.map +1 -0
  18. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
  19. package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
  20. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
  21. package/dist/components/button/Button.d.ts +23 -0
  22. package/dist/components/button/Button.js +159 -0
  23. package/dist/components/button/Button.js.map +1 -0
  24. package/dist/components/calendar/Calendar.d.ts +59 -0
  25. package/dist/components/calendar/Calendar.js +709 -0
  26. package/dist/components/calendar/Calendar.js.map +1 -0
  27. package/dist/components/calendar/date-utils.d.ts +32 -0
  28. package/dist/components/calendar/date-utils.js +112 -0
  29. package/dist/components/calendar/date-utils.js.map +1 -0
  30. package/dist/components/card/Card.d.ts +42 -0
  31. package/dist/components/card/Card.js +82 -0
  32. package/dist/components/card/Card.js.map +1 -0
  33. package/dist/components/choice/Choice.d.ts +32 -0
  34. package/dist/components/choice/Choice.js +371 -0
  35. package/dist/components/choice/Choice.js.map +1 -0
  36. package/dist/components/collapsible/Collapsible.d.ts +15 -0
  37. package/dist/components/collapsible/Collapsible.js +155 -0
  38. package/dist/components/collapsible/Collapsible.js.map +1 -0
  39. package/dist/components/combobox/Combobox.d.ts +68 -0
  40. package/dist/components/combobox/Combobox.js +752 -0
  41. package/dist/components/combobox/Combobox.js.map +1 -0
  42. package/dist/components/command-palette/CommandPalette.d.ts +52 -0
  43. package/dist/components/command-palette/CommandPalette.js +328 -0
  44. package/dist/components/command-palette/CommandPalette.js.map +1 -0
  45. package/dist/components/data-table/DataTable.d.ts +73 -0
  46. package/dist/components/data-table/DataTable.js +478 -0
  47. package/dist/components/data-table/DataTable.js.map +1 -0
  48. package/dist/components/data-table/DataTableContent.d.ts +35 -0
  49. package/dist/components/data-table/DataTableContent.js +550 -0
  50. package/dist/components/data-table/DataTableContent.js.map +1 -0
  51. package/dist/components/data-table/DataTableFilters.d.ts +15 -0
  52. package/dist/components/data-table/DataTableFilters.js +284 -0
  53. package/dist/components/data-table/DataTableFilters.js.map +1 -0
  54. package/dist/components/data-table/DataTableRow.d.ts +33 -0
  55. package/dist/components/data-table/DataTableRow.js +552 -0
  56. package/dist/components/data-table/DataTableRow.js.map +1 -0
  57. package/dist/components/data-table/context.d.ts +5 -0
  58. package/dist/components/data-table/context.js +14 -0
  59. package/dist/components/data-table/context.js.map +1 -0
  60. package/dist/components/data-table/layout.d.ts +60 -0
  61. package/dist/components/data-table/layout.js +272 -0
  62. package/dist/components/data-table/layout.js.map +1 -0
  63. package/dist/components/data-table/types.d.ts +319 -0
  64. package/dist/components/data-table/useDataTable.d.ts +9 -0
  65. package/dist/components/data-table/useDataTable.js +666 -0
  66. package/dist/components/data-table/useDataTable.js.map +1 -0
  67. package/dist/components/date-picker/DatePicker.d.ts +50 -0
  68. package/dist/components/date-picker/DatePicker.js +485 -0
  69. package/dist/components/date-picker/DatePicker.js.map +1 -0
  70. package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
  71. package/dist/components/date-picker/DateRangePicker.js +339 -0
  72. package/dist/components/date-picker/DateRangePicker.js.map +1 -0
  73. package/dist/components/date-picker/PickerField.d.ts +38 -0
  74. package/dist/components/date-picker/PickerField.js +238 -0
  75. package/dist/components/date-picker/PickerField.js.map +1 -0
  76. package/dist/components/dialog/Dialog.d.ts +70 -0
  77. package/dist/components/dialog/Dialog.js +354 -0
  78. package/dist/components/dialog/Dialog.js.map +1 -0
  79. package/dist/components/drawer/Drawer.d.ts +39 -0
  80. package/dist/components/drawer/Drawer.js +225 -0
  81. package/dist/components/drawer/Drawer.js.map +1 -0
  82. package/dist/components/empty-state/EmptyState.d.ts +12 -0
  83. package/dist/components/empty-state/EmptyState.js +116 -0
  84. package/dist/components/empty-state/EmptyState.js.map +1 -0
  85. package/dist/components/field/Field.d.ts +36 -0
  86. package/dist/components/field/Field.js +337 -0
  87. package/dist/components/field/Field.js.map +1 -0
  88. package/dist/components/file-upload/FileUpload.d.ts +91 -0
  89. package/dist/components/file-upload/FileUpload.js +714 -0
  90. package/dist/components/file-upload/FileUpload.js.map +1 -0
  91. package/dist/components/input/Input.d.ts +49 -0
  92. package/dist/components/input/Input.js +538 -0
  93. package/dist/components/input/Input.js.map +1 -0
  94. package/dist/components/link/Link.d.ts +17 -0
  95. package/dist/components/link/Link.js +91 -0
  96. package/dist/components/link/Link.js.map +1 -0
  97. package/dist/components/menu/Menu.d.ts +79 -0
  98. package/dist/components/menu/Menu.js +615 -0
  99. package/dist/components/menu/Menu.js.map +1 -0
  100. package/dist/components/number-field/NumberField.d.ts +16 -0
  101. package/dist/components/number-field/NumberField.js +188 -0
  102. package/dist/components/number-field/NumberField.js.map +1 -0
  103. package/dist/components/pagination/Pagination.d.ts +34 -0
  104. package/dist/components/pagination/Pagination.js +244 -0
  105. package/dist/components/pagination/Pagination.js.map +1 -0
  106. package/dist/components/popover/Popover.d.ts +22 -0
  107. package/dist/components/popover/Popover.js +186 -0
  108. package/dist/components/popover/Popover.js.map +1 -0
  109. package/dist/components/preview-card/PreviewCard.d.ts +20 -0
  110. package/dist/components/preview-card/PreviewCard.js +114 -0
  111. package/dist/components/preview-card/PreviewCard.js.map +1 -0
  112. package/dist/components/progress/Progress.d.ts +20 -0
  113. package/dist/components/progress/Progress.js +169 -0
  114. package/dist/components/progress/Progress.js.map +1 -0
  115. package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
  116. package/dist/components/scroll-area/ScrollArea.js +112 -0
  117. package/dist/components/scroll-area/ScrollArea.js.map +1 -0
  118. package/dist/components/search-input/SearchInput.d.ts +14 -0
  119. package/dist/components/search-input/SearchInput.js +114 -0
  120. package/dist/components/search-input/SearchInput.js.map +1 -0
  121. package/dist/components/select/Select.d.ts +66 -0
  122. package/dist/components/select/Select.js +601 -0
  123. package/dist/components/select/Select.js.map +1 -0
  124. package/dist/components/separator/Separator.d.ts +4 -0
  125. package/dist/components/separator/Separator.js +46 -0
  126. package/dist/components/separator/Separator.js.map +1 -0
  127. package/dist/components/skeleton/Skeleton.d.ts +16 -0
  128. package/dist/components/skeleton/Skeleton.js +135 -0
  129. package/dist/components/skeleton/Skeleton.js.map +1 -0
  130. package/dist/components/slider/Slider.d.ts +11 -0
  131. package/dist/components/slider/Slider.js +107 -0
  132. package/dist/components/slider/Slider.js.map +1 -0
  133. package/dist/components/spinner/Spinner.d.ts +9 -0
  134. package/dist/components/spinner/Spinner.js +78 -0
  135. package/dist/components/spinner/Spinner.js.map +1 -0
  136. package/dist/components/stack/Stack.d.ts +23 -0
  137. package/dist/components/stack/Stack.js +79 -0
  138. package/dist/components/stack/Stack.js.map +1 -0
  139. package/dist/components/stat-card/StatCard.d.ts +22 -0
  140. package/dist/components/stat-card/StatCard.js +153 -0
  141. package/dist/components/stat-card/StatCard.js.map +1 -0
  142. package/dist/components/stepper/Stepper.d.ts +30 -0
  143. package/dist/components/stepper/Stepper.js +131 -0
  144. package/dist/components/stepper/Stepper.js.map +1 -0
  145. package/dist/components/table/Table.d.ts +53 -0
  146. package/dist/components/table/Table.js +221 -0
  147. package/dist/components/table/Table.js.map +1 -0
  148. package/dist/components/tabs/Tabs.d.ts +19 -0
  149. package/dist/components/tabs/Tabs.js +183 -0
  150. package/dist/components/tabs/Tabs.js.map +1 -0
  151. package/dist/components/tag/Tag.d.ts +22 -0
  152. package/dist/components/tag/Tag.js +121 -0
  153. package/dist/components/tag/Tag.js.map +1 -0
  154. package/dist/components/toast/Toast.d.ts +34 -0
  155. package/dist/components/toast/Toast.js +187 -0
  156. package/dist/components/toast/Toast.js.map +1 -0
  157. package/dist/components/toggle/Toggle.d.ts +31 -0
  158. package/dist/components/toggle/Toggle.js +197 -0
  159. package/dist/components/toggle/Toggle.js.map +1 -0
  160. package/dist/components/toolbar/Toolbar.d.ts +21 -0
  161. package/dist/components/toolbar/Toolbar.js +239 -0
  162. package/dist/components/toolbar/Toolbar.js.map +1 -0
  163. package/dist/components/tooltip/Tooltip.d.ts +33 -0
  164. package/dist/components/tooltip/Tooltip.js +182 -0
  165. package/dist/components/tooltip/Tooltip.js.map +1 -0
  166. package/dist/components/typography/Typography.d.ts +32 -0
  167. package/dist/components/typography/Typography.js +183 -0
  168. package/dist/components/typography/Typography.js.map +1 -0
  169. package/dist/fonts.css +3 -0
  170. package/dist/icons/index.d.ts +133 -0
  171. package/dist/icons/index.js +182 -0
  172. package/dist/icons/index.js.map +1 -0
  173. package/dist/index.d.ts +55 -0
  174. package/dist/index.js +58 -0
  175. package/dist/opti-ui.css +5692 -0
  176. package/dist/theme/ThemeProvider.d.ts +22 -0
  177. package/dist/theme/ThemeProvider.js +115 -0
  178. package/dist/theme/ThemeProvider.js.map +1 -0
  179. package/dist/theme/index.d.ts +2 -0
  180. package/dist/utils/cx.d.ts +10 -0
  181. package/dist/utils/cx.js +18 -0
  182. package/dist/utils/cx.js.map +1 -0
  183. package/dist/utils/index.d.ts +2 -0
  184. package/dist/utils/portal.d.ts +8 -0
  185. package/dist/utils/portal.js +16 -0
  186. package/dist/utils/portal.js.map +1 -0
  187. package/dist/utils/primitive.d.ts +13 -0
  188. package/dist/utils/primitive.js +61 -0
  189. package/dist/utils/primitive.js.map +1 -0
  190. package/dist/utils/search.d.ts +4 -0
  191. package/dist/utils/search.js +15 -0
  192. package/dist/utils/search.js.map +1 -0
  193. package/package.json +71 -4
@@ -0,0 +1,478 @@
1
+ "use client";
2
+ import { cx } from "../../utils/cx.js";
3
+ import { createPrimitive } from "../../utils/primitive.js";
4
+ import { Spinner } from "../spinner/Spinner.js";
5
+ import { SearchInput } from "../search-input/SearchInput.js";
6
+ import { Pagination } from "../pagination/Pagination.js";
7
+ import { DataTableContext, useDataTableContext } from "./context.js";
8
+ import { useDataTable } from "./useDataTable.js";
9
+ import { DataTableContent } from "./DataTableContent.js";
10
+ import { DataTableFilter, DataTableFilters } from "./DataTableFilters.js";
11
+ import { c } from "react/compiler-runtime";
12
+ import * as React from "react";
13
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
+ //#region src/components/data-table/DataTable.tsx
15
+ /** Provides a table to the parts inside it. */
16
+ function DataTableRoot(t0) {
17
+ const $ = c(15);
18
+ let className;
19
+ let props;
20
+ let ref;
21
+ let table;
22
+ if ($[0] !== t0) {
23
+ ({table, className, ref, ...props} = t0);
24
+ $[0] = t0;
25
+ $[1] = className;
26
+ $[2] = props;
27
+ $[3] = ref;
28
+ $[4] = table;
29
+ } else {
30
+ className = $[1];
31
+ props = $[2];
32
+ ref = $[3];
33
+ table = $[4];
34
+ }
35
+ let t1;
36
+ if ($[5] !== className) {
37
+ t1 = cx("oui-data-table", className);
38
+ $[5] = className;
39
+ $[6] = t1;
40
+ } else t1 = $[6];
41
+ const t2 = table.loading ? table.rows.length ? "refresh" : "initial" : void 0;
42
+ let t3;
43
+ if ($[7] !== props || $[8] !== ref || $[9] !== t1 || $[10] !== t2) {
44
+ t3 = /* @__PURE__ */ jsx("div", {
45
+ ref,
46
+ className: t1,
47
+ "data-loading": t2,
48
+ ...props
49
+ });
50
+ $[7] = props;
51
+ $[8] = ref;
52
+ $[9] = t1;
53
+ $[10] = t2;
54
+ $[11] = t3;
55
+ } else t3 = $[11];
56
+ let t4;
57
+ if ($[12] !== t3 || $[13] !== table) {
58
+ t4 = /* @__PURE__ */ jsx(DataTableContext.Provider, {
59
+ value: table,
60
+ children: t3
61
+ });
62
+ $[12] = t3;
63
+ $[13] = table;
64
+ $[14] = t4;
65
+ } else t4 = $[14];
66
+ return t4;
67
+ }
68
+ var DataTableToolbar = createPrimitive("div", "oui-data-table__toolbar", "DataTableToolbar");
69
+ var DataTableActions = createPrimitive("div", "oui-data-table__actions", "DataTableActions");
70
+ /** Search box of the table. Typing applies after the table's `searchDebounce`; clearing applies at once. */
71
+ function DataTableSearch(t0) {
72
+ const $ = c(26);
73
+ let className;
74
+ let props;
75
+ if ($[0] !== t0) {
76
+ ({className, ...props} = t0);
77
+ $[0] = t0;
78
+ $[1] = className;
79
+ $[2] = props;
80
+ } else {
81
+ className = $[1];
82
+ props = $[2];
83
+ }
84
+ const table = useDataTableContext();
85
+ const { search, searchDebounce, labels: text } = table;
86
+ const [draft, setDraft] = React.useState(search);
87
+ const [seen, setSeen] = React.useState(search);
88
+ const [sent, setSent] = React.useState(search);
89
+ if (seen !== search) {
90
+ setSeen(search);
91
+ if (search !== sent) {
92
+ setSent(search);
93
+ setDraft(search);
94
+ }
95
+ }
96
+ let t1;
97
+ if ($[3] !== table) {
98
+ t1 = (next) => {
99
+ setSent(next);
100
+ table.setSearch(next);
101
+ };
102
+ $[3] = table;
103
+ $[4] = t1;
104
+ } else t1 = $[4];
105
+ const commit = t1;
106
+ let t2;
107
+ if ($[5] !== commit || $[6] !== draft || $[7] !== searchDebounce || $[8] !== sent) {
108
+ t2 = () => {
109
+ if (draft === sent) return;
110
+ const timer = window.setTimeout(() => commit(draft), searchDebounce);
111
+ return () => window.clearTimeout(timer);
112
+ };
113
+ $[5] = commit;
114
+ $[6] = draft;
115
+ $[7] = searchDebounce;
116
+ $[8] = sent;
117
+ $[9] = t2;
118
+ } else t2 = $[9];
119
+ let t3;
120
+ if ($[10] !== draft || $[11] !== searchDebounce || $[12] !== sent) {
121
+ t3 = [
122
+ draft,
123
+ sent,
124
+ searchDebounce
125
+ ];
126
+ $[10] = draft;
127
+ $[11] = searchDebounce;
128
+ $[12] = sent;
129
+ $[13] = t3;
130
+ } else t3 = $[13];
131
+ React.useEffect(t2, t3);
132
+ let t4;
133
+ if ($[14] !== commit || $[15] !== searchDebounce) {
134
+ t4 = (next_0) => {
135
+ setDraft(next_0);
136
+ if (!searchDebounce || !next_0) commit(next_0);
137
+ };
138
+ $[14] = commit;
139
+ $[15] = searchDebounce;
140
+ $[16] = t4;
141
+ } else t4 = $[16];
142
+ const change = t4;
143
+ let t5;
144
+ if ($[17] !== className) {
145
+ t5 = cx("oui-data-table__search", className);
146
+ $[17] = className;
147
+ $[18] = t5;
148
+ } else t5 = $[18];
149
+ let t6;
150
+ if ($[19] !== change || $[20] !== draft || $[21] !== props || $[22] !== t5 || $[23] !== text.clearSearch || $[24] !== text.search) {
151
+ t6 = /* @__PURE__ */ jsx(SearchInput, {
152
+ className: t5,
153
+ "aria-label": text.search,
154
+ placeholder: text.search,
155
+ clearLabel: text.clearSearch,
156
+ ...props,
157
+ value: draft,
158
+ onValueChange: change
159
+ });
160
+ $[19] = change;
161
+ $[20] = draft;
162
+ $[21] = props;
163
+ $[22] = t5;
164
+ $[23] = text.clearSearch;
165
+ $[24] = text.search;
166
+ $[25] = t6;
167
+ } else t6 = $[25];
168
+ return t6;
169
+ }
170
+ /** Row count, or the number of selected rows, with a spinner while loading. */
171
+ function DataTableSummary(t0) {
172
+ const $ = c(24);
173
+ let className;
174
+ let props;
175
+ if ($[0] !== t0) {
176
+ ({className, ...props} = t0);
177
+ $[0] = t0;
178
+ $[1] = className;
179
+ $[2] = props;
180
+ } else {
181
+ className = $[1];
182
+ props = $[2];
183
+ }
184
+ const table = useDataTableContext();
185
+ const text = table.labels;
186
+ let t1;
187
+ if ($[3] !== table.selection) {
188
+ t1 = new Set(table.selection);
189
+ $[3] = table.selection;
190
+ $[4] = t1;
191
+ } else t1 = $[4];
192
+ const selected = t1.size;
193
+ let t2;
194
+ if ($[5] !== table.loading || $[6] !== text) {
195
+ t2 = table.loading && /* @__PURE__ */ jsx(Spinner, {
196
+ className: "oui-data-table__spinner",
197
+ label: text.loading
198
+ });
199
+ $[5] = table.loading;
200
+ $[6] = text;
201
+ $[7] = t2;
202
+ } else t2 = $[7];
203
+ let t3;
204
+ if ($[8] !== className) {
205
+ t3 = cx("oui-data-table__summary", className);
206
+ $[8] = className;
207
+ $[9] = t3;
208
+ } else t3 = $[9];
209
+ let t4;
210
+ if ($[10] !== selected || $[11] !== table.count || $[12] !== table.pending || $[13] !== table.selectable || $[14] !== table.totalCount || $[15] !== text) {
211
+ t4 = table.selectable && selected ? text.selected(selected) : table.pending ? null : table.count !== table.totalCount ? text.filteredCount(table.count, table.totalCount) : text.count(table.count);
212
+ $[10] = selected;
213
+ $[11] = table.count;
214
+ $[12] = table.pending;
215
+ $[13] = table.selectable;
216
+ $[14] = table.totalCount;
217
+ $[15] = text;
218
+ $[16] = t4;
219
+ } else t4 = $[16];
220
+ let t5;
221
+ if ($[17] !== props || $[18] !== t3 || $[19] !== t4) {
222
+ t5 = /* @__PURE__ */ jsx("span", {
223
+ className: t3,
224
+ "aria-live": "polite",
225
+ ...props,
226
+ children: t4
227
+ });
228
+ $[17] = props;
229
+ $[18] = t3;
230
+ $[19] = t4;
231
+ $[20] = t5;
232
+ } else t5 = $[20];
233
+ let t6;
234
+ if ($[21] !== t2 || $[22] !== t5) {
235
+ t6 = /* @__PURE__ */ jsxs(Fragment, { children: [t2, t5] });
236
+ $[21] = t2;
237
+ $[22] = t5;
238
+ $[23] = t6;
239
+ } else t6 = $[23];
240
+ return t6;
241
+ }
242
+ /** Page navigation of the table. Renders nothing when there are no rows, or the table is not paginated. */
243
+ function DataTablePagination(t0) {
244
+ const $ = c(14);
245
+ let className;
246
+ let props;
247
+ if ($[0] !== t0) {
248
+ ({className, ...props} = t0);
249
+ $[0] = t0;
250
+ $[1] = className;
251
+ $[2] = props;
252
+ } else {
253
+ className = $[1];
254
+ props = $[2];
255
+ }
256
+ const table = useDataTableContext();
257
+ if (!table.paginated || table.count <= 0 || table.error) return null;
258
+ let t1;
259
+ if ($[3] !== className) {
260
+ t1 = cx("oui-data-table__pagination", className);
261
+ $[3] = className;
262
+ $[4] = t1;
263
+ } else t1 = $[4];
264
+ let t2;
265
+ if ($[5] !== props || $[6] !== t1 || $[7] !== table.count || $[8] !== table.labels || $[9] !== table.page || $[10] !== table.pageSize || $[11] !== table.setPage || $[12] !== table.setPageSize) {
266
+ t2 = /* @__PURE__ */ jsx(Pagination, {
267
+ className: t1,
268
+ variant: "simple",
269
+ labels: table.labels,
270
+ ...props,
271
+ page: table.page,
272
+ pageSize: table.pageSize,
273
+ total: table.count,
274
+ onPageChange: table.setPage,
275
+ onPageSizeChange: table.setPageSize
276
+ });
277
+ $[5] = props;
278
+ $[6] = t1;
279
+ $[7] = table.count;
280
+ $[8] = table.labels;
281
+ $[9] = table.page;
282
+ $[10] = table.pageSize;
283
+ $[11] = table.setPage;
284
+ $[12] = table.setPageSize;
285
+ $[13] = t2;
286
+ } else t2 = $[13];
287
+ return t2;
288
+ }
289
+ function DataTableComponent(t0) {
290
+ const $ = c(51);
291
+ let className;
292
+ let controlSize;
293
+ let density;
294
+ let empty;
295
+ let layout;
296
+ let maxHeight;
297
+ let onEndReached;
298
+ let options;
299
+ let pageSizeOptions;
300
+ let stickyHeader;
301
+ let striped;
302
+ let tableProps;
303
+ let toolbar;
304
+ let virtualized;
305
+ if ($[0] !== t0) {
306
+ ({density, striped, stickyHeader, layout, maxHeight, virtualized, onEndReached, empty, tableProps, pageSizeOptions, controlSize, toolbar, className, ...options} = t0);
307
+ $[0] = t0;
308
+ $[1] = className;
309
+ $[2] = controlSize;
310
+ $[3] = density;
311
+ $[4] = empty;
312
+ $[5] = layout;
313
+ $[6] = maxHeight;
314
+ $[7] = onEndReached;
315
+ $[8] = options;
316
+ $[9] = pageSizeOptions;
317
+ $[10] = stickyHeader;
318
+ $[11] = striped;
319
+ $[12] = tableProps;
320
+ $[13] = toolbar;
321
+ $[14] = virtualized;
322
+ } else {
323
+ className = $[1];
324
+ controlSize = $[2];
325
+ density = $[3];
326
+ empty = $[4];
327
+ layout = $[5];
328
+ maxHeight = $[6];
329
+ onEndReached = $[7];
330
+ options = $[8];
331
+ pageSizeOptions = $[9];
332
+ stickyHeader = $[10];
333
+ striped = $[11];
334
+ tableProps = $[12];
335
+ toolbar = $[13];
336
+ virtualized = $[14];
337
+ }
338
+ const t1 = options.paginated ?? !virtualized;
339
+ let t2;
340
+ if ($[15] !== options || $[16] !== t1) {
341
+ t2 = {
342
+ ...options,
343
+ paginated: t1
344
+ };
345
+ $[15] = options;
346
+ $[16] = t1;
347
+ $[17] = t2;
348
+ } else t2 = $[17];
349
+ const table = useDataTable(t2);
350
+ let t3;
351
+ if ($[18] !== table || $[19] !== toolbar) {
352
+ t3 = typeof toolbar === "function" ? toolbar({
353
+ rows: table.rows.map(_temp),
354
+ selection: table.selection,
355
+ table
356
+ }) : toolbar;
357
+ $[18] = table;
358
+ $[19] = toolbar;
359
+ $[20] = t3;
360
+ } else t3 = $[20];
361
+ const extra = t3;
362
+ let t4;
363
+ if ($[21] !== controlSize || $[22] !== table.searchable) {
364
+ t4 = table.searchable && /* @__PURE__ */ jsx(DataTableSearch, { size: controlSize });
365
+ $[21] = controlSize;
366
+ $[22] = table.searchable;
367
+ $[23] = t4;
368
+ } else t4 = $[23];
369
+ let t5;
370
+ if ($[24] !== controlSize) {
371
+ t5 = /* @__PURE__ */ jsx(DataTableFilters, { size: controlSize });
372
+ $[24] = controlSize;
373
+ $[25] = t5;
374
+ } else t5 = $[25];
375
+ let t6;
376
+ if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
377
+ t6 = /* @__PURE__ */ jsx(DataTableSummary, {});
378
+ $[26] = t6;
379
+ } else t6 = $[26];
380
+ let t7;
381
+ if ($[27] !== extra) {
382
+ t7 = /* @__PURE__ */ jsxs(DataTableActions, { children: [t6, extra] });
383
+ $[27] = extra;
384
+ $[28] = t7;
385
+ } else t7 = $[28];
386
+ let t8;
387
+ if ($[29] !== t4 || $[30] !== t5 || $[31] !== t7) {
388
+ t8 = /* @__PURE__ */ jsxs(DataTableToolbar, { children: [
389
+ t4,
390
+ t5,
391
+ t7
392
+ ] });
393
+ $[29] = t4;
394
+ $[30] = t5;
395
+ $[31] = t7;
396
+ $[32] = t8;
397
+ } else t8 = $[32];
398
+ let t9;
399
+ if ($[33] !== density || $[34] !== empty || $[35] !== layout || $[36] !== maxHeight || $[37] !== onEndReached || $[38] !== stickyHeader || $[39] !== striped || $[40] !== tableProps || $[41] !== virtualized) {
400
+ t9 = /* @__PURE__ */ jsx(DataTableContent, {
401
+ density,
402
+ striped,
403
+ stickyHeader,
404
+ layout,
405
+ maxHeight,
406
+ virtualized,
407
+ onEndReached,
408
+ empty,
409
+ tableProps
410
+ });
411
+ $[33] = density;
412
+ $[34] = empty;
413
+ $[35] = layout;
414
+ $[36] = maxHeight;
415
+ $[37] = onEndReached;
416
+ $[38] = stickyHeader;
417
+ $[39] = striped;
418
+ $[40] = tableProps;
419
+ $[41] = virtualized;
420
+ $[42] = t9;
421
+ } else t9 = $[42];
422
+ let t10;
423
+ if ($[43] !== pageSizeOptions) {
424
+ t10 = /* @__PURE__ */ jsx(DataTablePagination, { pageSizeOptions });
425
+ $[43] = pageSizeOptions;
426
+ $[44] = t10;
427
+ } else t10 = $[44];
428
+ let t11;
429
+ if ($[45] !== className || $[46] !== t10 || $[47] !== t8 || $[48] !== t9 || $[49] !== table) {
430
+ t11 = /* @__PURE__ */ jsxs(DataTableRoot, {
431
+ table,
432
+ className,
433
+ children: [
434
+ t8,
435
+ t9,
436
+ t10
437
+ ]
438
+ });
439
+ $[45] = className;
440
+ $[46] = t10;
441
+ $[47] = t8;
442
+ $[48] = t9;
443
+ $[49] = table;
444
+ $[50] = t11;
445
+ } else t11 = $[50];
446
+ return t11;
447
+ }
448
+ /**
449
+ * `<DataTable data={…} columns={…} />` renders a complete table with search,
450
+ * filters, sorting, pagination, row selection, row actions and inline editing;
451
+ * columns declare what they take part in. Every piece of state works
452
+ * uncontrolled or controlled (`search` / `filterValues` / `sort` / `page` /
453
+ * `selection`), and with `mode="server"` the same state drives an API.
454
+ *
455
+ * For another layout, create the table with `useDataTable` and compose the
456
+ * parts: `DataTable.Root`, `DataTable.Toolbar`, `DataTable.Search`,
457
+ * `DataTable.Filters`, `DataTable.Filter`, `DataTable.Actions`,
458
+ * `DataTable.Summary`, `DataTable.Content`, `DataTable.Pagination`.
459
+ */
460
+ function _temp(t0) {
461
+ const { row } = t0;
462
+ return row;
463
+ }
464
+ var DataTable = Object.assign(DataTableComponent, {
465
+ Root: DataTableRoot,
466
+ Toolbar: DataTableToolbar,
467
+ Search: DataTableSearch,
468
+ Filters: DataTableFilters,
469
+ Filter: DataTableFilter,
470
+ Actions: DataTableActions,
471
+ Summary: DataTableSummary,
472
+ Content: DataTableContent,
473
+ Pagination: DataTablePagination
474
+ });
475
+ //#endregion
476
+ export { DataTable, useDataTableContext };
477
+
478
+ //# sourceMappingURL=DataTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.js","names":["React","cx","createPrimitive","Pagination","PaginationProps","SearchInput","SearchInputProps","Spinner","DataTableContext","useDataTableContext","DataTableContent","DataTableContentProps","DataTableFilter","DataTableFilters","DataTableControlSize","useDataTable","DataTableInstance","UseDataTableOptions","DataTableVirtualOptions","DataTableFilterProps","DataTableFiltersProps","DataTableRootProps","HTMLAttributes","HTMLDivElement","ref","Ref","table","T","DataTableRoot","t0","$","_c","className","props","t1","t2","loading","rows","length","undefined","t3","t4","DataTableToolbar","DataTableActions","DataTableSearchProps","Omit","DataTableSearch","search","searchDebounce","labels","text","draft","setDraft","useState","seen","setSeen","sent","setSent","next","setSearch","commit","timer","window","setTimeout","clearTimeout","useEffect","next_0","change","t5","t6","clearSearch","DataTableSummary","selection","Set","selected","size","count","pending","selectable","totalCount","filteredCount","DataTablePaginationProps","DataTablePagination","paginated","error","page","pageSize","setPage","setPageSize","DataTableToolbarContext","DataTableProps","pageSizeOptions","controlSize","toolbar","ReactNode","context","DataTableComponent","density","empty","layout","maxHeight","onEndReached","options","stickyHeader","striped","tableProps","virtualized","map","_temp","extra","searchable","Symbol","for","t7","t8","t9","t10","t11","row","DataTable","Object","assign","Root","Toolbar","Search","Filters","Filter","Actions","Summary","Content","_c","_Fragment"],"sources":["../../../src/components/data-table/DataTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { Pagination, type PaginationProps } from '../pagination/Pagination';\nimport { SearchInput, type SearchInputProps } from '../search-input/SearchInput';\nimport { Spinner } from '../spinner/Spinner';\nimport { DataTableContext, useDataTableContext } from './context';\nimport { DataTableContent, type DataTableContentProps } from './DataTableContent';\nimport { DataTableFilter, DataTableFilters, type DataTableControlSize } from './DataTableFilters';\nimport { useDataTable } from './useDataTable';\nimport type { DataTableInstance, UseDataTableOptions } from './types';\n\nexport { useDataTableContext } from './context';\nexport type { DataTableContentProps, DataTableVirtualOptions } from './DataTableContent';\nexport type { DataTableControlSize, DataTableFilterProps, DataTableFiltersProps } from './DataTableFilters';\n\n// ─── Parts ───────────────────────────────────────────────────────────────────\n\nexport interface DataTableRootProps<T> extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement>;\n /** The table from `useDataTable`. */\n table: DataTableInstance<T>;\n}\n\n/** Provides a table to the parts inside it. */\nfunction DataTableRoot<T>({ table, className, ref, ...props }: DataTableRootProps<T>) {\n return (\n <DataTableContext.Provider value={table}>\n <div\n ref={ref}\n className={cx('oui-data-table', className)}\n data-loading={table.loading ? (table.rows.length ? 'refresh' : 'initial') : undefined}\n {...props}\n />\n </DataTableContext.Provider>\n );\n}\n\nconst DataTableToolbar = createPrimitive('div', 'oui-data-table__toolbar', 'DataTableToolbar');\nconst DataTableActions = createPrimitive('div', 'oui-data-table__actions', 'DataTableActions');\n\nexport interface DataTableSearchProps extends Omit<SearchInputProps, 'value' | 'defaultValue' | 'onValueChange' | 'className'> {\n className?: string;\n}\n\n/** Search box of the table. Typing applies after the table's `searchDebounce`; clearing applies at once. */\nfunction DataTableSearch({ className, ...props }: DataTableSearchProps) {\n const table = useDataTableContext();\n const { search, searchDebounce, labels: text } = table;\n const [draft, setDraft] = React.useState(search);\n const [seen, setSeen] = React.useState(search);\n const [sent, setSent] = React.useState(search);\n\n // Follow a search set from outside (reset, controlled state), but not the echo\n // of our own change: it can arrive after the user has typed further.\n if (seen !== search) {\n setSeen(search);\n if (search !== sent) {\n setSent(search);\n setDraft(search);\n }\n }\n\n const commit = (next: string) => {\n setSent(next);\n table.setSearch(next);\n };\n\n // Typed text that has not been applied yet goes out once the typing pauses.\n React.useEffect(() => {\n if (draft === sent) return;\n const timer = window.setTimeout(() => commit(draft), searchDebounce);\n return () => window.clearTimeout(timer);\n // `commit` is new on every render; only a change of the text restarts the wait.\n }, [draft, sent, searchDebounce]);\n\n const change = (next: string) => {\n setDraft(next);\n if (!searchDebounce || !next) commit(next);\n };\n\n return (\n <SearchInput\n className={cx('oui-data-table__search', className)}\n aria-label={text.search}\n placeholder={text.search}\n clearLabel={text.clearSearch}\n {...props}\n value={draft}\n onValueChange={change}\n />\n );\n}\n\n/** Row count, or the number of selected rows, with a spinner while loading. */\nfunction DataTableSummary({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n const table = useDataTableContext();\n const text = table.labels;\n const selected = new Set(table.selection).size;\n return (\n <>\n {table.loading && <Spinner className=\"oui-data-table__spinner\" label={text.loading} />}\n <span className={cx('oui-data-table__summary', className)} aria-live=\"polite\" {...props}>\n {/* No count before the first rows arrive: \"0 records\" would be wrong. */}\n {table.selectable && selected\n ? text.selected(selected)\n : table.pending\n ? null\n : table.count !== table.totalCount\n ? text.filteredCount(table.count, table.totalCount)\n : text.count(table.count)}\n </span>\n </>\n );\n}\n\nexport interface DataTablePaginationProps\n extends Omit<PaginationProps, 'page' | 'pageSize' | 'total' | 'onPageChange' | 'onPageSizeChange'> {}\n\n/** Page navigation of the table. Renders nothing when there are no rows, or the table is not paginated. */\nfunction DataTablePagination({ className, ...props }: DataTablePaginationProps) {\n const table = useDataTableContext();\n if (!table.paginated || table.count <= 0 || table.error) return null;\n return (\n <Pagination\n className={cx('oui-data-table__pagination', className)}\n variant=\"simple\"\n labels={table.labels}\n {...props}\n page={table.page}\n pageSize={table.pageSize}\n total={table.count}\n onPageChange={table.setPage}\n onPageSizeChange={table.setPageSize}\n />\n );\n}\n\n// ─── Convenience component ───────────────────────────────────────────────────\n\nexport interface DataTableToolbarContext<T> {\n /** Rows after filters, search and sorting, across all pages. In server mode: the current page. */\n rows: T[];\n /** Ids of the selected rows. */\n selection: string[];\n /** The whole table: filter values, sort, setters. */\n table: DataTableInstance<T>;\n}\n\nexport interface DataTableProps<T> extends UseDataTableOptions<T>, DataTableContentProps {\n pageSizeOptions?: number[];\n /** Size of the search box and the filters. */\n controlSize?: DataTableControlSize;\n /** Extra toolbar content (export, add…). A function receives the processed rows. */\n toolbar?: React.ReactNode | ((context: DataTableToolbarContext<T>) => React.ReactNode);\n className?: string;\n}\n\nfunction DataTableComponent<T>({\n density,\n striped,\n stickyHeader,\n layout,\n maxHeight,\n virtualized,\n onEndReached,\n empty,\n tableProps,\n pageSizeOptions,\n controlSize,\n toolbar,\n className,\n ...options\n}: DataTableProps<T>) {\n // A virtualized table shows all its rows in one scrolling list, unless pages are asked for.\n const table = useDataTable({ ...options, paginated: options.paginated ?? !virtualized });\n const extra =\n typeof toolbar === 'function'\n ? toolbar({ rows: table.rows.map(({ row }) => row), selection: table.selection, table })\n : toolbar;\n\n return (\n <DataTableRoot table={table} className={className}>\n <DataTableToolbar>\n {table.searchable && <DataTableSearch size={controlSize} />}\n <DataTableFilters size={controlSize} />\n <DataTableActions>\n <DataTableSummary />\n {extra}\n </DataTableActions>\n </DataTableToolbar>\n <DataTableContent\n density={density}\n striped={striped}\n stickyHeader={stickyHeader}\n layout={layout}\n maxHeight={maxHeight}\n virtualized={virtualized}\n onEndReached={onEndReached}\n empty={empty}\n tableProps={tableProps}\n />\n <DataTablePagination pageSizeOptions={pageSizeOptions} />\n </DataTableRoot>\n );\n}\n\n/**\n * `<DataTable data={…} columns={…} />` renders a complete table with search,\n * filters, sorting, pagination, row selection, row actions and inline editing;\n * columns declare what they take part in. Every piece of state works\n * uncontrolled or controlled (`search` / `filterValues` / `sort` / `page` /\n * `selection`), and with `mode=\"server\"` the same state drives an API.\n *\n * For another layout, create the table with `useDataTable` and compose the\n * parts: `DataTable.Root`, `DataTable.Toolbar`, `DataTable.Search`,\n * `DataTable.Filters`, `DataTable.Filter`, `DataTable.Actions`,\n * `DataTable.Summary`, `DataTable.Content`, `DataTable.Pagination`.\n */\nexport const DataTable = Object.assign(DataTableComponent, {\n Root: DataTableRoot,\n Toolbar: DataTableToolbar,\n Search: DataTableSearch,\n Filters: DataTableFilters,\n Filter: DataTableFilter,\n Actions: DataTableActions,\n Summary: DataTableSummary,\n Content: DataTableContent,\n Pagination: DataTablePagination,\n});\n"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ import { type TableProps } from '../table/Table';
3
+ export interface DataTableVirtualOptions {
4
+ /** Height of every row in pixels. Left out, the rows are measured. */
5
+ rowHeight?: number;
6
+ /** Rows rendered beyond each edge of the view (default 8). */
7
+ overscan?: number;
8
+ }
9
+ export interface DataTableContentProps extends Pick<TableProps, 'density' | 'striped' | 'stickyHeader'> {
10
+ /**
11
+ * `stable` (default) measures the columns once and holds their widths, keeps a
12
+ * short last page as tall as a full one, and keeps a row's height while it is
13
+ * edited: nothing moves while the table is used. `auto` leaves the layout to
14
+ * the browser, which fits the columns to the rows on screen.
15
+ */
16
+ layout?: 'stable' | 'auto';
17
+ /** Scrolls the rows inside this height and keeps the header in view. */
18
+ maxHeight?: number | string;
19
+ /**
20
+ * Renders only the rows in view, for thousands of rows without pagination.
21
+ * Rows are one line high: columns fit their longest value, so mark those with
22
+ * long text `truncate`. Scrolls inside `maxHeight` (default `32rem`).
23
+ */
24
+ virtualized?: boolean | DataTableVirtualOptions;
25
+ /**
26
+ * Called when the rows are scrolled near their end, once per row count: load
27
+ * and append the next rows. Needs `maxHeight` or `virtualized`.
28
+ */
29
+ onEndReached?: () => void;
30
+ /** Replaces the default empty state. */
31
+ empty?: React.ReactNode;
32
+ tableProps?: Omit<TableProps, 'children'>;
33
+ }
34
+ /** The table itself, with its loading, empty and error states. */
35
+ export declare function DataTableContent({ density, striped, stickyHeader, layout, maxHeight, virtualized, onEndReached, empty, tableProps, }: DataTableContentProps): React.JSX.Element;