@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.
- package/LICENSE +23 -0
- package/README.md +244 -2
- package/dist/components/accordion/Accordion.d.ts +17 -0
- package/dist/components/accordion/Accordion.js +204 -0
- package/dist/components/accordion/Accordion.js.map +1 -0
- package/dist/components/alert/Alert.d.ts +18 -0
- package/dist/components/alert/Alert.js +164 -0
- package/dist/components/alert/Alert.js.map +1 -0
- package/dist/components/app-shell/AppShell.d.ts +97 -0
- package/dist/components/app-shell/AppShell.js +689 -0
- package/dist/components/app-shell/AppShell.js.map +1 -0
- package/dist/components/avatar/Avatar.d.ts +21 -0
- package/dist/components/avatar/Avatar.js +190 -0
- package/dist/components/avatar/Avatar.js.map +1 -0
- package/dist/components/badge/Badge.d.ts +16 -0
- package/dist/components/badge/Badge.js +94 -0
- package/dist/components/badge/Badge.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/button/Button.d.ts +23 -0
- package/dist/components/button/Button.js +159 -0
- package/dist/components/button/Button.js.map +1 -0
- package/dist/components/calendar/Calendar.d.ts +59 -0
- package/dist/components/calendar/Calendar.js +709 -0
- package/dist/components/calendar/Calendar.js.map +1 -0
- package/dist/components/calendar/date-utils.d.ts +32 -0
- package/dist/components/calendar/date-utils.js +112 -0
- package/dist/components/calendar/date-utils.js.map +1 -0
- package/dist/components/card/Card.d.ts +42 -0
- package/dist/components/card/Card.js +82 -0
- package/dist/components/card/Card.js.map +1 -0
- package/dist/components/choice/Choice.d.ts +32 -0
- package/dist/components/choice/Choice.js +371 -0
- package/dist/components/choice/Choice.js.map +1 -0
- package/dist/components/collapsible/Collapsible.d.ts +15 -0
- package/dist/components/collapsible/Collapsible.js +155 -0
- package/dist/components/collapsible/Collapsible.js.map +1 -0
- package/dist/components/combobox/Combobox.d.ts +68 -0
- package/dist/components/combobox/Combobox.js +752 -0
- package/dist/components/combobox/Combobox.js.map +1 -0
- package/dist/components/command-palette/CommandPalette.d.ts +52 -0
- package/dist/components/command-palette/CommandPalette.js +328 -0
- package/dist/components/command-palette/CommandPalette.js.map +1 -0
- package/dist/components/data-table/DataTable.d.ts +73 -0
- package/dist/components/data-table/DataTable.js +478 -0
- package/dist/components/data-table/DataTable.js.map +1 -0
- package/dist/components/data-table/DataTableContent.d.ts +35 -0
- package/dist/components/data-table/DataTableContent.js +550 -0
- package/dist/components/data-table/DataTableContent.js.map +1 -0
- package/dist/components/data-table/DataTableFilters.d.ts +15 -0
- package/dist/components/data-table/DataTableFilters.js +284 -0
- package/dist/components/data-table/DataTableFilters.js.map +1 -0
- package/dist/components/data-table/DataTableRow.d.ts +33 -0
- package/dist/components/data-table/DataTableRow.js +552 -0
- package/dist/components/data-table/DataTableRow.js.map +1 -0
- package/dist/components/data-table/context.d.ts +5 -0
- package/dist/components/data-table/context.js +14 -0
- package/dist/components/data-table/context.js.map +1 -0
- package/dist/components/data-table/layout.d.ts +60 -0
- package/dist/components/data-table/layout.js +272 -0
- package/dist/components/data-table/layout.js.map +1 -0
- package/dist/components/data-table/types.d.ts +319 -0
- package/dist/components/data-table/useDataTable.d.ts +9 -0
- package/dist/components/data-table/useDataTable.js +666 -0
- package/dist/components/data-table/useDataTable.js.map +1 -0
- package/dist/components/date-picker/DatePicker.d.ts +50 -0
- package/dist/components/date-picker/DatePicker.js +485 -0
- package/dist/components/date-picker/DatePicker.js.map +1 -0
- package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
- package/dist/components/date-picker/DateRangePicker.js +339 -0
- package/dist/components/date-picker/DateRangePicker.js.map +1 -0
- package/dist/components/date-picker/PickerField.d.ts +38 -0
- package/dist/components/date-picker/PickerField.js +238 -0
- package/dist/components/date-picker/PickerField.js.map +1 -0
- package/dist/components/dialog/Dialog.d.ts +70 -0
- package/dist/components/dialog/Dialog.js +354 -0
- package/dist/components/dialog/Dialog.js.map +1 -0
- package/dist/components/drawer/Drawer.d.ts +39 -0
- package/dist/components/drawer/Drawer.js +225 -0
- package/dist/components/drawer/Drawer.js.map +1 -0
- package/dist/components/empty-state/EmptyState.d.ts +12 -0
- package/dist/components/empty-state/EmptyState.js +116 -0
- package/dist/components/empty-state/EmptyState.js.map +1 -0
- package/dist/components/field/Field.d.ts +36 -0
- package/dist/components/field/Field.js +337 -0
- package/dist/components/field/Field.js.map +1 -0
- package/dist/components/file-upload/FileUpload.d.ts +91 -0
- package/dist/components/file-upload/FileUpload.js +714 -0
- package/dist/components/file-upload/FileUpload.js.map +1 -0
- package/dist/components/input/Input.d.ts +49 -0
- package/dist/components/input/Input.js +538 -0
- package/dist/components/input/Input.js.map +1 -0
- package/dist/components/link/Link.d.ts +17 -0
- package/dist/components/link/Link.js +91 -0
- package/dist/components/link/Link.js.map +1 -0
- package/dist/components/menu/Menu.d.ts +79 -0
- package/dist/components/menu/Menu.js +615 -0
- package/dist/components/menu/Menu.js.map +1 -0
- package/dist/components/number-field/NumberField.d.ts +16 -0
- package/dist/components/number-field/NumberField.js +188 -0
- package/dist/components/number-field/NumberField.js.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +34 -0
- package/dist/components/pagination/Pagination.js +244 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/components/popover/Popover.d.ts +22 -0
- package/dist/components/popover/Popover.js +186 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/preview-card/PreviewCard.d.ts +20 -0
- package/dist/components/preview-card/PreviewCard.js +114 -0
- package/dist/components/preview-card/PreviewCard.js.map +1 -0
- package/dist/components/progress/Progress.d.ts +20 -0
- package/dist/components/progress/Progress.js +169 -0
- package/dist/components/progress/Progress.js.map +1 -0
- package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
- package/dist/components/scroll-area/ScrollArea.js +112 -0
- package/dist/components/scroll-area/ScrollArea.js.map +1 -0
- package/dist/components/search-input/SearchInput.d.ts +14 -0
- package/dist/components/search-input/SearchInput.js +114 -0
- package/dist/components/search-input/SearchInput.js.map +1 -0
- package/dist/components/select/Select.d.ts +66 -0
- package/dist/components/select/Select.js +601 -0
- package/dist/components/select/Select.js.map +1 -0
- package/dist/components/separator/Separator.d.ts +4 -0
- package/dist/components/separator/Separator.js +46 -0
- package/dist/components/separator/Separator.js.map +1 -0
- package/dist/components/skeleton/Skeleton.d.ts +16 -0
- package/dist/components/skeleton/Skeleton.js +135 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/slider/Slider.d.ts +11 -0
- package/dist/components/slider/Slider.js +107 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/spinner/Spinner.d.ts +9 -0
- package/dist/components/spinner/Spinner.js +78 -0
- package/dist/components/spinner/Spinner.js.map +1 -0
- package/dist/components/stack/Stack.d.ts +23 -0
- package/dist/components/stack/Stack.js +79 -0
- package/dist/components/stack/Stack.js.map +1 -0
- package/dist/components/stat-card/StatCard.d.ts +22 -0
- package/dist/components/stat-card/StatCard.js +153 -0
- package/dist/components/stat-card/StatCard.js.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +30 -0
- package/dist/components/stepper/Stepper.js +131 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/table/Table.d.ts +53 -0
- package/dist/components/table/Table.js +221 -0
- package/dist/components/table/Table.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +19 -0
- package/dist/components/tabs/Tabs.js +183 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/tag/Tag.d.ts +22 -0
- package/dist/components/tag/Tag.js +121 -0
- package/dist/components/tag/Tag.js.map +1 -0
- package/dist/components/toast/Toast.d.ts +34 -0
- package/dist/components/toast/Toast.js +187 -0
- package/dist/components/toast/Toast.js.map +1 -0
- package/dist/components/toggle/Toggle.d.ts +31 -0
- package/dist/components/toggle/Toggle.js +197 -0
- package/dist/components/toggle/Toggle.js.map +1 -0
- package/dist/components/toolbar/Toolbar.d.ts +21 -0
- package/dist/components/toolbar/Toolbar.js +239 -0
- package/dist/components/toolbar/Toolbar.js.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +33 -0
- package/dist/components/tooltip/Tooltip.js +182 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/typography/Typography.d.ts +32 -0
- package/dist/components/typography/Typography.js +183 -0
- package/dist/components/typography/Typography.js.map +1 -0
- package/dist/fonts.css +3 -0
- package/dist/icons/index.d.ts +133 -0
- package/dist/icons/index.js +182 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.js +58 -0
- package/dist/opti-ui.css +5692 -0
- package/dist/theme/ThemeProvider.d.ts +22 -0
- package/dist/theme/ThemeProvider.js +115 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/utils/cx.d.ts +10 -0
- package/dist/utils/cx.js +18 -0
- package/dist/utils/cx.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/portal.d.ts +8 -0
- package/dist/utils/portal.js +16 -0
- package/dist/utils/portal.js.map +1 -0
- package/dist/utils/primitive.d.ts +13 -0
- package/dist/utils/primitive.js +61 -0
- package/dist/utils/primitive.js.map +1 -0
- package/dist/utils/search.d.ts +4 -0
- package/dist/utils/search.js +15 -0
- package/dist/utils/search.js.map +1 -0
- 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;
|