@bridge-ui/vue 0.2.0 → 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/ai/skills/bridge-ui-components/SKILL.md +3 -1
- package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +1 -1
- package/dist/Components/ColorField/composables/useColorField.d.ts +2 -1
- package/dist/Components/DataTable/DataTable.js +5 -0
- package/dist/Components/DataTable/DataTable.vue.d.ts +43 -0
- package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +382 -0
- package/dist/Components/DataTable/DataTableCellContent.js +5 -0
- package/dist/Components/DataTable/DataTableCellContent.vue.d.ts +23 -0
- package/dist/Components/DataTable/DataTableCellContent.vue_vue_type_script_setup_true_lang.js +38 -0
- package/dist/Components/DataTable/DataTableColumnsMenu.js +5 -0
- package/dist/Components/DataTable/DataTableColumnsMenu.vue.d.ts +11 -0
- package/dist/Components/DataTable/DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/Components/DataTable/DataTableFilterMenu.js +5 -0
- package/dist/Components/DataTable/DataTableFilterMenu.vue.d.ts +17 -0
- package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +132 -0
- package/dist/Components/DataTable/DataTableFilterOptions.js +5 -0
- package/dist/Components/DataTable/DataTableFilterOptions.vue.d.ts +14 -0
- package/dist/Components/DataTable/DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js +73 -0
- package/dist/Components/DataTable/DataTableSearch.js +5 -0
- package/dist/Components/DataTable/DataTableSearch.vue.d.ts +12 -0
- package/dist/Components/DataTable/DataTableSearch.vue_vue_type_script_setup_true_lang.js +39 -0
- package/dist/Components/DataTable/DataTableSelection.js +5 -0
- package/dist/Components/DataTable/DataTableSelection.vue.d.ts +20 -0
- package/dist/Components/DataTable/DataTableSelection.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/Components/DataTable/DataTableSortButton.js +5 -0
- package/dist/Components/DataTable/DataTableSortButton.vue.d.ts +17 -0
- package/dist/Components/DataTable/DataTableSortButton.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/Components/DataTable/DataTableToolbarButton.js +5 -0
- package/dist/Components/DataTable/DataTableToolbarButton.vue.d.ts +13 -0
- package/dist/Components/DataTable/DataTableToolbarButton.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/Components/DataTable/composables/useDataTable.d.ts +557 -0
- package/dist/Components/DataTable/composables/useDataTable.js +479 -0
- package/dist/Components/DataTable/dataTable.types.d.ts +480 -0
- package/dist/Components/DataTable/index.d.ts +3 -0
- package/dist/Components/DataTable/index.js +3 -0
- package/dist/Components/DateField/composables/useDateField.d.ts +2 -1
- package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +2 -1
- package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +2 -1
- package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +2 -1
- package/dist/Components/FormField/composables/useFormField.d.ts +1 -1
- package/dist/Components/Menu/Menu.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/Components/Menu/composables/useMenu.d.ts +1 -1
- package/dist/Components/Menu/composables/useMenu.js +7 -3
- package/dist/Components/Menu/menu.types.d.ts +6 -0
- package/dist/Components/NumberField/composables/useNumberField.d.ts +1 -1
- package/dist/Components/PasswordField/composables/usePasswordField.d.ts +1 -1
- package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +9 -9
- package/dist/Components/Radio/composables/useRadio.js +57 -54
- package/dist/Components/Select/composables/useSelect.d.ts +1 -1
- package/dist/Components/Slider/composables/useSlider.d.ts +2 -2
- package/dist/Components/Snackbar/composables/useSnackbar.d.ts +1 -1
- package/dist/Components/Table/Table.js +5 -0
- package/dist/Components/Table/Table.vue.d.ts +16 -0
- package/dist/Components/Table/Table.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/Components/Table/TableBody.js +5 -0
- package/dist/Components/Table/TableBody.vue.d.ts +11 -0
- package/dist/Components/Table/TableBody.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/TableCaption.js +5 -0
- package/dist/Components/Table/TableCaption.vue.d.ts +11 -0
- package/dist/Components/Table/TableCaption.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/TableCell.js +5 -0
- package/dist/Components/Table/TableCell.vue.d.ts +11 -0
- package/dist/Components/Table/TableCell.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/Components/Table/TableFooter.js +5 -0
- package/dist/Components/Table/TableFooter.vue.d.ts +11 -0
- package/dist/Components/Table/TableFooter.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/TableHead.js +5 -0
- package/dist/Components/Table/TableHead.vue.d.ts +11 -0
- package/dist/Components/Table/TableHead.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/Components/Table/TableHeader.js +5 -0
- package/dist/Components/Table/TableHeader.vue.d.ts +11 -0
- package/dist/Components/Table/TableHeader.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/TableRow.js +5 -0
- package/dist/Components/Table/TableRow.vue.d.ts +11 -0
- package/dist/Components/Table/TableRow.vue_vue_type_script_setup_true_lang.js +17 -0
- package/dist/Components/Table/composables/useTable.d.ts +16 -0
- package/dist/Components/Table/composables/useTable.js +88 -0
- package/dist/Components/Table/composables/useTableCell.d.ts +12 -0
- package/dist/Components/Table/composables/useTableCell.js +40 -0
- package/dist/Components/Table/composables/useTablePart.d.ts +12 -0
- package/dist/Components/Table/composables/useTablePart.js +32 -0
- package/dist/Components/Table/composables/useTableRow.d.ts +6 -0
- package/dist/Components/Table/composables/useTableRow.js +29 -0
- package/dist/Components/Table/index.d.ts +14 -0
- package/dist/Components/Table/index.js +14 -0
- package/dist/Components/Table/table.types.d.ts +416 -0
- package/dist/Components/Table/tableInjectionKey.d.ts +114 -0
- package/dist/Components/Table/tableInjectionKey.js +4 -0
- package/dist/Components/TextField/composables/useTextField.d.ts +1 -1
- package/dist/Components/Textarea/composables/useTextarea.d.ts +1 -1
- package/dist/Components/TimeField/composables/useTimeField.d.ts +2 -1
- package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +2 -1
- package/docs/README.md +2 -0
- package/docs/components/CalendarDate.md +1 -1
- package/docs/components/DataTable.md +345 -0
- package/docs/components/DateField.md +2 -2
- package/docs/components/DatePicker.md +3 -3
- package/docs/components/DateRangePicker.md +1 -1
- package/docs/components/Pagination.md +2 -2
- package/docs/components/Table.md +122 -0
- package/docs/examples/i18n-dictionary.ts +4 -0
- package/docs/examples/icon-fontawesome.ts +8 -0
- package/docs/examples/icon-heroicons.ts +8 -0
- package/docs/examples/icon-lucide.ts +8 -0
- package/docs/examples/icon-phosphor.ts +8 -0
- package/docs/examples/icon-tabler.ts +8 -0
- package/package.json +9 -2
|
@@ -0,0 +1,480 @@
|
|
|
1
|
+
import { HTMLAttributes, Slot, VNodeChild } from 'vue';
|
|
2
|
+
import { DataTableColumnBase, DataTableColumnSearch, DataTableFilterOption, DataTableFilters, DataTableItemSlotProps, DataTableLoadingVariant, DataTablePaginationSlotProps, DataTablePerPageSlotProps, DataTableSelectionMode, DataTableSorting, DataTableStickyEdge, DataTableStickyHeader } from '@bridge-ui/core/Domain';
|
|
3
|
+
import { TableAlign, TableRounded, TableSize, TableVariant } from '@bridge-ui/core/Tokens';
|
|
4
|
+
import { MergeHtmlProps, MergeProps } from '@bridge-ui/core/Utils';
|
|
5
|
+
import { CheckboxProps } from '../Checkbox/checkbox.types';
|
|
6
|
+
import { PaginationOwnProps } from '../Pagination/pagination.types';
|
|
7
|
+
import { ProgressOwnProps } from '../Progress/progress.types';
|
|
8
|
+
import { RadioProps } from '../Radio/radio.types';
|
|
9
|
+
import { SelectOwnProps } from '../Select/select.types';
|
|
10
|
+
import { TableAlignOverrides, TableRoundedOverrides, TableSizeOverrides, TableVariantOverrides } from '../Table/table.types';
|
|
11
|
+
import { TextFieldOwnProps } from '../TextField/textField.types';
|
|
12
|
+
export type { DataTableColumnBase, DataTableColumnSearch, DataTableFilterOption, DataTableFilters, DataTableItemSlotProps, DataTableLoadingVariant, DataTablePaginationSlotProps, DataTablePerPageSlotProps, DataTableSelectionMode, DataTableSorting, DataTableStickyEdge, DataTableStickyHeader, };
|
|
13
|
+
/**
|
|
14
|
+
* Column definition with Vue renderers.
|
|
15
|
+
*/
|
|
16
|
+
export type DataTableColumn<T> = Omit<DataTableColumnBase<T>, "align"> & {
|
|
17
|
+
/**
|
|
18
|
+
* Text alignment for the header and cells.
|
|
19
|
+
*
|
|
20
|
+
* @default "start"
|
|
21
|
+
*/
|
|
22
|
+
align?: MergeProps<TableAlign, TableAlignOverrides>;
|
|
23
|
+
/**
|
|
24
|
+
* Cell renderer for a data row. Used when no `#item.{id}` slot is set.
|
|
25
|
+
* Defaults to the column accessor (or `row[id]`).
|
|
26
|
+
*
|
|
27
|
+
* @default undefined
|
|
28
|
+
*/
|
|
29
|
+
cell?: (row: T) => VNodeChild;
|
|
30
|
+
/**
|
|
31
|
+
* Header content.
|
|
32
|
+
*/
|
|
33
|
+
header: VNodeChild;
|
|
34
|
+
/**
|
|
35
|
+
* Footer cell for a summary row. Receives the current (filtered) rows.
|
|
36
|
+
*/
|
|
37
|
+
summary?: (rows: T[]) => VNodeChild;
|
|
38
|
+
};
|
|
39
|
+
export interface DataTableClasses {
|
|
40
|
+
/**
|
|
41
|
+
* Classes merged onto the body rowgroup.
|
|
42
|
+
*/
|
|
43
|
+
body?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Classes merged onto body cells.
|
|
46
|
+
*/
|
|
47
|
+
cell?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Classes merged onto the empty-state region.
|
|
50
|
+
*/
|
|
51
|
+
empty?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Classes merged onto the footer region below the table.
|
|
54
|
+
*/
|
|
55
|
+
footer?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Classes merged onto header cells.
|
|
58
|
+
*/
|
|
59
|
+
head?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Classes merged onto the header rowgroup.
|
|
62
|
+
*/
|
|
63
|
+
header?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Classes merged onto the loading region.
|
|
66
|
+
*/
|
|
67
|
+
loading?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Classes merged onto the pagination region.
|
|
70
|
+
*/
|
|
71
|
+
pagination?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Classes merged onto the per-page Select.
|
|
74
|
+
*/
|
|
75
|
+
perPage?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Classes merged onto the DataTable root.
|
|
78
|
+
*/
|
|
79
|
+
root?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Classes merged onto rows.
|
|
82
|
+
*/
|
|
83
|
+
row?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Classes merged onto the toolbar search field.
|
|
86
|
+
*/
|
|
87
|
+
search?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Classes merged onto the `<table>` element.
|
|
90
|
+
*/
|
|
91
|
+
table?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Classes merged onto the toolbar region.
|
|
94
|
+
*/
|
|
95
|
+
toolbar?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Classes merged onto the table wrapper (`Table` root).
|
|
98
|
+
*/
|
|
99
|
+
wrapper?: string;
|
|
100
|
+
}
|
|
101
|
+
export interface DataTableCustomProps {
|
|
102
|
+
/**
|
|
103
|
+
* Props forwarded to the body rowgroup.
|
|
104
|
+
*
|
|
105
|
+
* @default undefined
|
|
106
|
+
*/
|
|
107
|
+
body?: HTMLAttributes;
|
|
108
|
+
/**
|
|
109
|
+
* Props forwarded to body cells.
|
|
110
|
+
*
|
|
111
|
+
* @default undefined
|
|
112
|
+
*/
|
|
113
|
+
cell?: HTMLAttributes;
|
|
114
|
+
/**
|
|
115
|
+
* Extra props for selection checkboxes.
|
|
116
|
+
*
|
|
117
|
+
* @default undefined
|
|
118
|
+
*/
|
|
119
|
+
checkbox?: Partial<Omit<CheckboxProps, "modelValue" | "indeterminate">>;
|
|
120
|
+
/**
|
|
121
|
+
* Props forwarded to the empty-state region.
|
|
122
|
+
*
|
|
123
|
+
* @default undefined
|
|
124
|
+
*/
|
|
125
|
+
empty?: HTMLAttributes;
|
|
126
|
+
/**
|
|
127
|
+
* Props forwarded to the footer region below the table.
|
|
128
|
+
*
|
|
129
|
+
* @default undefined
|
|
130
|
+
*/
|
|
131
|
+
footer?: HTMLAttributes;
|
|
132
|
+
/**
|
|
133
|
+
* Props forwarded to header cells.
|
|
134
|
+
*
|
|
135
|
+
* @default undefined
|
|
136
|
+
*/
|
|
137
|
+
head?: HTMLAttributes;
|
|
138
|
+
/**
|
|
139
|
+
* Props forwarded to the header rowgroup.
|
|
140
|
+
*
|
|
141
|
+
* @default undefined
|
|
142
|
+
*/
|
|
143
|
+
header?: HTMLAttributes;
|
|
144
|
+
/**
|
|
145
|
+
* Props forwarded to the loading region.
|
|
146
|
+
*
|
|
147
|
+
* @default undefined
|
|
148
|
+
*/
|
|
149
|
+
loading?: HTMLAttributes;
|
|
150
|
+
/**
|
|
151
|
+
* Extra props for the built-in `Pagination`.
|
|
152
|
+
*
|
|
153
|
+
* @default undefined
|
|
154
|
+
*/
|
|
155
|
+
pagination?: Partial<Omit<PaginationOwnProps, "count">>;
|
|
156
|
+
/**
|
|
157
|
+
* Extra props for the built-in per-page `Select`.
|
|
158
|
+
*
|
|
159
|
+
* @default undefined
|
|
160
|
+
*/
|
|
161
|
+
perPage?: Partial<Omit<SelectOwnProps, "options">>;
|
|
162
|
+
/**
|
|
163
|
+
* Extra props for the built-in `Progress` (`loadingVariant="bar"`).
|
|
164
|
+
*
|
|
165
|
+
* @default undefined
|
|
166
|
+
*/
|
|
167
|
+
progress?: Partial<ProgressOwnProps>;
|
|
168
|
+
/**
|
|
169
|
+
* Extra props for selection radios (`selectionMode="single"`).
|
|
170
|
+
*
|
|
171
|
+
* @default undefined
|
|
172
|
+
*/
|
|
173
|
+
radio?: Partial<Omit<RadioProps, "modelValue">>;
|
|
174
|
+
/**
|
|
175
|
+
* Props forwarded to the DataTable root.
|
|
176
|
+
*
|
|
177
|
+
* @default undefined
|
|
178
|
+
*/
|
|
179
|
+
root?: HTMLAttributes;
|
|
180
|
+
/**
|
|
181
|
+
* Props forwarded to rows.
|
|
182
|
+
*
|
|
183
|
+
* @default undefined
|
|
184
|
+
*/
|
|
185
|
+
row?: HTMLAttributes;
|
|
186
|
+
/**
|
|
187
|
+
* Extra props for the toolbar search field.
|
|
188
|
+
*
|
|
189
|
+
* @default undefined
|
|
190
|
+
*/
|
|
191
|
+
search?: Partial<Omit<TextFieldOwnProps, "modelValue">>;
|
|
192
|
+
/**
|
|
193
|
+
* Props forwarded to the `<table>` element.
|
|
194
|
+
*
|
|
195
|
+
* @default undefined
|
|
196
|
+
*/
|
|
197
|
+
table?: HTMLAttributes;
|
|
198
|
+
/**
|
|
199
|
+
* Props forwarded to the toolbar region.
|
|
200
|
+
*
|
|
201
|
+
* @default undefined
|
|
202
|
+
*/
|
|
203
|
+
toolbar?: HTMLAttributes;
|
|
204
|
+
/**
|
|
205
|
+
* Props forwarded to the table wrapper (`Table` root).
|
|
206
|
+
*
|
|
207
|
+
* @default undefined
|
|
208
|
+
*/
|
|
209
|
+
wrapper?: HTMLAttributes;
|
|
210
|
+
}
|
|
211
|
+
export interface DataTableEmits {
|
|
212
|
+
/**
|
|
213
|
+
* Emitted when per-column text search should update (`v-model:column-search`).
|
|
214
|
+
*/
|
|
215
|
+
"update:columnSearch": [search: DataTableColumnSearch];
|
|
216
|
+
/**
|
|
217
|
+
* Emitted when expanded row ids should update (`v-model:expanded`).
|
|
218
|
+
*/
|
|
219
|
+
"update:expanded": [ids: string[]];
|
|
220
|
+
/**
|
|
221
|
+
* Emitted when column filters should update (`v-model:filters`).
|
|
222
|
+
*/
|
|
223
|
+
"update:filters": [filters: DataTableFilters];
|
|
224
|
+
/**
|
|
225
|
+
* Emitted when hidden column ids should update (`v-model:hidden-columns`).
|
|
226
|
+
*/
|
|
227
|
+
"update:hiddenColumns": [ids: string[]];
|
|
228
|
+
/**
|
|
229
|
+
* Emitted when the numbered page should update (`v-model:page`).
|
|
230
|
+
*/
|
|
231
|
+
"update:page": [page: number];
|
|
232
|
+
/**
|
|
233
|
+
* Emitted when the page size should update (`v-model:per-page`).
|
|
234
|
+
* DataTable also resets to page 1.
|
|
235
|
+
*/
|
|
236
|
+
"update:perPage": [perPage: number];
|
|
237
|
+
/**
|
|
238
|
+
* Emitted when the toolbar search query should update (`v-model:search`).
|
|
239
|
+
*/
|
|
240
|
+
"update:search": [query: string];
|
|
241
|
+
/**
|
|
242
|
+
* Emitted when selected row ids should update (`v-model:selection`).
|
|
243
|
+
*/
|
|
244
|
+
"update:selection": [ids: string[]];
|
|
245
|
+
/**
|
|
246
|
+
* Emitted when sort should update (`v-model:sorting`).
|
|
247
|
+
*/
|
|
248
|
+
"update:sorting": [sorting: DataTableSorting];
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Opinionated data table. Compose with `columns` / `rows`.
|
|
252
|
+
*/
|
|
253
|
+
export interface DataTableOwnProps<T> {
|
|
254
|
+
/**
|
|
255
|
+
* Classes for DataTable regions.
|
|
256
|
+
*
|
|
257
|
+
* @default undefined
|
|
258
|
+
*/
|
|
259
|
+
classes?: DataTableClasses;
|
|
260
|
+
/**
|
|
261
|
+
* Column definitions (Bridge shape).
|
|
262
|
+
*
|
|
263
|
+
* @default []
|
|
264
|
+
*/
|
|
265
|
+
columns?: DataTableColumn<T>[];
|
|
266
|
+
/**
|
|
267
|
+
* Controlled per-column text search: column id → query. Set `searchable`
|
|
268
|
+
* on a column to show the field in that header's filter menu.
|
|
269
|
+
*
|
|
270
|
+
* @default undefined
|
|
271
|
+
*/
|
|
272
|
+
columnSearch?: DataTableColumnSearch;
|
|
273
|
+
/**
|
|
274
|
+
* Extra props for internal parts (`table`, `wrapper`, checkboxes, …).
|
|
275
|
+
*
|
|
276
|
+
* @default undefined
|
|
277
|
+
*/
|
|
278
|
+
customProps?: DataTableCustomProps;
|
|
279
|
+
/**
|
|
280
|
+
* Controlled expanded row ids.
|
|
281
|
+
*
|
|
282
|
+
* @default undefined
|
|
283
|
+
*/
|
|
284
|
+
expanded?: string[];
|
|
285
|
+
/**
|
|
286
|
+
* Controlled column filters: column id → selected option values.
|
|
287
|
+
*
|
|
288
|
+
* @default undefined
|
|
289
|
+
*/
|
|
290
|
+
filters?: DataTableFilters;
|
|
291
|
+
/**
|
|
292
|
+
* Stretch the table to at least the wrapper width.
|
|
293
|
+
*
|
|
294
|
+
* @default true
|
|
295
|
+
*/
|
|
296
|
+
full?: boolean;
|
|
297
|
+
/**
|
|
298
|
+
* Stable row id. Required for reliable selection.
|
|
299
|
+
*
|
|
300
|
+
* @default undefined
|
|
301
|
+
*/
|
|
302
|
+
getRowId?: (row: T) => string;
|
|
303
|
+
/**
|
|
304
|
+
* Controlled hidden column ids.
|
|
305
|
+
*
|
|
306
|
+
* @default undefined
|
|
307
|
+
*/
|
|
308
|
+
hiddenColumns?: string[];
|
|
309
|
+
/**
|
|
310
|
+
* Row hover styles on the body.
|
|
311
|
+
*
|
|
312
|
+
* @default false
|
|
313
|
+
*/
|
|
314
|
+
hoverable?: boolean;
|
|
315
|
+
/**
|
|
316
|
+
* Show the loading region (`aria-busy` on the table).
|
|
317
|
+
*
|
|
318
|
+
* @default false
|
|
319
|
+
*/
|
|
320
|
+
loading?: boolean;
|
|
321
|
+
/**
|
|
322
|
+
* How `loading` is shown. `overlay` dims the table; `bar` dims the table
|
|
323
|
+
* and draws a progress line under the header.
|
|
324
|
+
*
|
|
325
|
+
* @default "overlay"
|
|
326
|
+
*/
|
|
327
|
+
loadingVariant?: DataTableLoadingVariant;
|
|
328
|
+
/**
|
|
329
|
+
* Controlled page for built-in numbered Pagination (1-based).
|
|
330
|
+
*
|
|
331
|
+
* @default undefined
|
|
332
|
+
*/
|
|
333
|
+
page?: number;
|
|
334
|
+
/**
|
|
335
|
+
* Total pages for built-in numbered Pagination. Use this or `totalCount`.
|
|
336
|
+
*
|
|
337
|
+
* @default undefined
|
|
338
|
+
*/
|
|
339
|
+
pageCount?: number;
|
|
340
|
+
/**
|
|
341
|
+
* Alignment of the built-in Pagination region.
|
|
342
|
+
*
|
|
343
|
+
* @default "end"
|
|
344
|
+
*/
|
|
345
|
+
paginationAlign?: MergeProps<TableAlign, TableAlignOverrides>;
|
|
346
|
+
/**
|
|
347
|
+
* Page size. With `page` and no `pageCount`/`totalCount`, slices `rows`
|
|
348
|
+
* locally. With server paging, only drives the per-page Select.
|
|
349
|
+
*
|
|
350
|
+
* @default undefined
|
|
351
|
+
*/
|
|
352
|
+
perPage?: number;
|
|
353
|
+
/**
|
|
354
|
+
* Options for the built-in per-page Select.
|
|
355
|
+
*
|
|
356
|
+
* @default [10, 25, 50, 100]
|
|
357
|
+
*/
|
|
358
|
+
perPageOptions?: number[];
|
|
359
|
+
/**
|
|
360
|
+
* Corner radius of the table wrapper, header, and footer.
|
|
361
|
+
*
|
|
362
|
+
* @default "lg"
|
|
363
|
+
*/
|
|
364
|
+
rounded?: MergeProps<TableRounded, TableRoundedOverrides>;
|
|
365
|
+
/**
|
|
366
|
+
* Current page of data (or the full set when not paging on the server).
|
|
367
|
+
*
|
|
368
|
+
* @default []
|
|
369
|
+
*/
|
|
370
|
+
rows?: T[];
|
|
371
|
+
/**
|
|
372
|
+
* Controlled toolbar search query. Filters visible columns client-side,
|
|
373
|
+
* or emits `update:search` only when server-paged.
|
|
374
|
+
*
|
|
375
|
+
* @default undefined
|
|
376
|
+
*/
|
|
377
|
+
search?: string;
|
|
378
|
+
/**
|
|
379
|
+
* Controlled selected row ids.
|
|
380
|
+
*
|
|
381
|
+
* @default undefined
|
|
382
|
+
*/
|
|
383
|
+
selection?: string[];
|
|
384
|
+
/**
|
|
385
|
+
* Row selection chrome: radios (`single`) or checkboxes (`multiple`).
|
|
386
|
+
*
|
|
387
|
+
* @default "multiple"
|
|
388
|
+
*/
|
|
389
|
+
selectionMode?: DataTableSelectionMode;
|
|
390
|
+
/**
|
|
391
|
+
* Cell padding / type scale.
|
|
392
|
+
*
|
|
393
|
+
* @default "md"
|
|
394
|
+
*/
|
|
395
|
+
size?: MergeProps<TableSize, TableSizeOverrides>;
|
|
396
|
+
/**
|
|
397
|
+
* Controlled sort: one column, or `null` when unsorted.
|
|
398
|
+
*
|
|
399
|
+
* @default undefined
|
|
400
|
+
*/
|
|
401
|
+
sorting?: DataTableSorting;
|
|
402
|
+
/**
|
|
403
|
+
* Stick header cells to the page (`true`) or inside the wrapper (`"boxed"`).
|
|
404
|
+
* For boxed, set a max height on `classes.wrapper` or `classes.root`.
|
|
405
|
+
*
|
|
406
|
+
* @default false
|
|
407
|
+
*/
|
|
408
|
+
stickyHeader?: DataTableStickyHeader;
|
|
409
|
+
/**
|
|
410
|
+
* Alternating body row surfaces.
|
|
411
|
+
*
|
|
412
|
+
* @default false
|
|
413
|
+
*/
|
|
414
|
+
striped?: boolean;
|
|
415
|
+
/**
|
|
416
|
+
* Total item count when the app owns paging. Derives page count with
|
|
417
|
+
* `perPage`. Use this or `pageCount`, not both (`pageCount` wins).
|
|
418
|
+
*
|
|
419
|
+
* @default undefined
|
|
420
|
+
*/
|
|
421
|
+
totalCount?: number;
|
|
422
|
+
/**
|
|
423
|
+
* Chrome treatment. Built-in Pagination follows the matching variant.
|
|
424
|
+
*
|
|
425
|
+
* @default "plain"
|
|
426
|
+
*/
|
|
427
|
+
variant?: MergeProps<TableVariant, TableVariantOverrides>;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Opinionated data table slots. Per-column cells use `#item.{columnId}`
|
|
431
|
+
* (`row`, `value`) and override `columns[].cell`.
|
|
432
|
+
*/
|
|
433
|
+
export interface DataTableSlots<T = unknown> {
|
|
434
|
+
/**
|
|
435
|
+
* Shown when `rows` is empty.
|
|
436
|
+
*/
|
|
437
|
+
empty?: Slot<undefined>;
|
|
438
|
+
/**
|
|
439
|
+
* Rendered in a spanning row when a row is expanded.
|
|
440
|
+
*/
|
|
441
|
+
expanded?: Slot<{
|
|
442
|
+
row: T;
|
|
443
|
+
}>;
|
|
444
|
+
/**
|
|
445
|
+
* Region below the table, above pagination.
|
|
446
|
+
*/
|
|
447
|
+
footer?: Slot<undefined>;
|
|
448
|
+
/**
|
|
449
|
+
* Catch-all cell slot when `#item.{columnId}` is not set.
|
|
450
|
+
*/
|
|
451
|
+
item?: Slot<DataTableItemSlotProps<T>>;
|
|
452
|
+
/**
|
|
453
|
+
* Indicator shown when `loading` is set. Overlay defaults to a spin; bar
|
|
454
|
+
* defaults to `Progress` under the header.
|
|
455
|
+
*/
|
|
456
|
+
loading?: Slot<undefined>;
|
|
457
|
+
/**
|
|
458
|
+
* Replaces the built-in numbered Pagination (no auto variant). Receives
|
|
459
|
+
* `page`, `count`, `variant`, and `onPageChange`.
|
|
460
|
+
*/
|
|
461
|
+
pagination?: Slot<DataTablePaginationSlotProps>;
|
|
462
|
+
/**
|
|
463
|
+
* Replaces the built-in per-page Select. Receives `perPage`, `options`,
|
|
464
|
+
* and `onPerPageChange`.
|
|
465
|
+
*/
|
|
466
|
+
perPage?: Slot<DataTablePerPageSlotProps>;
|
|
467
|
+
/**
|
|
468
|
+
* Replaces the toolbar search field.
|
|
469
|
+
*/
|
|
470
|
+
search?: Slot<undefined>;
|
|
471
|
+
/**
|
|
472
|
+
* Leading toolbar region (left of Columns / Search).
|
|
473
|
+
*/
|
|
474
|
+
toolbar?: Slot<undefined>;
|
|
475
|
+
/**
|
|
476
|
+
* Extra controls beside Columns and Search in the toolbar end cluster.
|
|
477
|
+
*/
|
|
478
|
+
toolbarActions?: Slot<undefined>;
|
|
479
|
+
}
|
|
480
|
+
export type DataTableProps<T = unknown> = MergeHtmlProps<DataTableOwnProps<T>, HTMLAttributes>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { useDataTable } from './composables/useDataTable';
|
|
2
|
+
export type { DataTableClasses, DataTableColumn, DataTableColumnBase, DataTableColumnSearch, DataTableCustomProps, DataTableEmits, DataTableFilterOption, DataTableFilters, DataTableItemSlotProps, DataTableLoadingVariant, DataTableOwnProps, DataTablePaginationSlotProps, DataTablePerPageSlotProps, DataTableProps, DataTableSelectionMode, DataTableSlots, DataTableSorting, DataTableStickyEdge, DataTableStickyHeader, } from './dataTable.types';
|
|
3
|
+
export { default as DataTable } from './DataTable.vue';
|
|
@@ -179,7 +179,7 @@ export declare function useDateField(props: DateFieldOwnProps, model: Ref<null |
|
|
|
179
179
|
dir?: string | undefined | undefined;
|
|
180
180
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
181
181
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
182
|
-
enterKeyHint?: "
|
|
182
|
+
enterKeyHint?: "search" | "done" | "enter" | "go" | "next" | "previous" | "send" | undefined;
|
|
183
183
|
hidden?: "" | "until-found" | "hidden" | (boolean | "true" | "false") | undefined;
|
|
184
184
|
inert?: (boolean | "true" | "false") | undefined;
|
|
185
185
|
placeholder?: string | undefined | undefined;
|
|
@@ -720,6 +720,7 @@ export declare function useDateField(props: DateFieldOwnProps, model: Ref<null |
|
|
|
720
720
|
disableAutoFocus?: boolean;
|
|
721
721
|
disableScrollLock?: boolean;
|
|
722
722
|
keepMounted?: boolean;
|
|
723
|
+
matchWidth?: boolean;
|
|
723
724
|
offset?: number;
|
|
724
725
|
onShowChange?: (show: boolean) => void;
|
|
725
726
|
persistent?: boolean;
|
|
@@ -178,7 +178,7 @@ export declare function useDateRangeField(props: DateRangeFieldOwnProps, model:
|
|
|
178
178
|
dir?: string | undefined | undefined;
|
|
179
179
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
180
180
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
181
|
-
enterKeyHint?: "
|
|
181
|
+
enterKeyHint?: "search" | "done" | "enter" | "go" | "next" | "previous" | "send" | undefined;
|
|
182
182
|
hidden?: "" | "until-found" | "hidden" | (boolean | "true" | "false") | undefined;
|
|
183
183
|
inert?: (boolean | "true" | "false") | undefined;
|
|
184
184
|
placeholder?: string | undefined | undefined;
|
|
@@ -720,6 +720,7 @@ export declare function useDateRangeField(props: DateRangeFieldOwnProps, model:
|
|
|
720
720
|
disableAutoFocus?: boolean;
|
|
721
721
|
disableScrollLock?: boolean;
|
|
722
722
|
keepMounted?: boolean;
|
|
723
|
+
matchWidth?: boolean;
|
|
723
724
|
offset?: number;
|
|
724
725
|
onShowChange?: (show: boolean) => void;
|
|
725
726
|
persistent?: boolean;
|
|
@@ -179,7 +179,7 @@ export declare function useDateTimeField(props: DateTimeFieldOwnProps, model: Re
|
|
|
179
179
|
dir?: string | undefined | undefined;
|
|
180
180
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
181
181
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
182
|
-
enterKeyHint?: "
|
|
182
|
+
enterKeyHint?: "search" | "done" | "enter" | "go" | "next" | "previous" | "send" | undefined;
|
|
183
183
|
hidden?: "" | "until-found" | "hidden" | (boolean | "true" | "false") | undefined;
|
|
184
184
|
inert?: (boolean | "true" | "false") | undefined;
|
|
185
185
|
placeholder?: string | undefined | undefined;
|
|
@@ -721,6 +721,7 @@ export declare function useDateTimeField(props: DateTimeFieldOwnProps, model: Re
|
|
|
721
721
|
disableAutoFocus?: boolean;
|
|
722
722
|
disableScrollLock?: boolean;
|
|
723
723
|
keepMounted?: boolean;
|
|
724
|
+
matchWidth?: boolean;
|
|
724
725
|
offset?: number;
|
|
725
726
|
onShowChange?: (show: boolean) => void;
|
|
726
727
|
persistent?: boolean;
|
|
@@ -180,7 +180,7 @@ export declare function useDateTimeRangeField(props: DateTimeRangeFieldOwnProps,
|
|
|
180
180
|
dir?: string | undefined | undefined;
|
|
181
181
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
182
182
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
183
|
-
enterKeyHint?: "
|
|
183
|
+
enterKeyHint?: "search" | "done" | "enter" | "go" | "next" | "previous" | "send" | undefined;
|
|
184
184
|
hidden?: "" | "until-found" | "hidden" | (boolean | "true" | "false") | undefined;
|
|
185
185
|
inert?: (boolean | "true" | "false") | undefined;
|
|
186
186
|
placeholder?: string | undefined | undefined;
|
|
@@ -723,6 +723,7 @@ export declare function useDateTimeRangeField(props: DateTimeRangeFieldOwnProps,
|
|
|
723
723
|
disableAutoFocus?: boolean;
|
|
724
724
|
disableScrollLock?: boolean;
|
|
725
725
|
keepMounted?: boolean;
|
|
726
|
+
matchWidth?: boolean;
|
|
726
727
|
offset?: number;
|
|
727
728
|
onShowChange?: (show: boolean) => void;
|
|
728
729
|
persistent?: boolean;
|
|
@@ -190,7 +190,7 @@ export declare function useFormField(props: MaybeRefOrGetter<Omit<FormFieldOwnPr
|
|
|
190
190
|
dir?: string | undefined | undefined;
|
|
191
191
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
192
192
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
193
|
-
enterKeyHint?: "
|
|
193
|
+
enterKeyHint?: "search" | "done" | "enter" | "go" | "next" | "previous" | "send" | undefined;
|
|
194
194
|
hidden?: "" | "until-found" | "hidden" | (boolean | "true" | "false") | undefined;
|
|
195
195
|
inert?: (boolean | "true" | "false") | undefined;
|
|
196
196
|
placeholder?: string | undefined | undefined;
|
|
@@ -24,7 +24,7 @@ export declare function useMenu(props: MenuOwnProps, libDefaults: MenuLibDefault
|
|
|
24
24
|
merged: import('vue').ComputedRef<MenuMerged>;
|
|
25
25
|
menuId: string;
|
|
26
26
|
mounted: Ref<boolean, boolean>;
|
|
27
|
-
rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Omit<Omit<MenuProps, "offset" | "classes" | "customProps" | "rounded" | "shadow" | "closeOnEscape" | "disableScrollLock" | "keepMounted" | "persistent" | "placement" | "teleportTo" | "closeOnClickAway" | "disableAutoFocus" | "strategy">, "anchorEl" | "onShowChange">>>;
|
|
27
|
+
rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, Omit<Omit<MenuProps, "offset" | "classes" | "customProps" | "rounded" | "shadow" | "closeOnEscape" | "disableScrollLock" | "keepMounted" | "persistent" | "placement" | "teleportTo" | "closeOnClickAway" | "disableAutoFocus" | "matchWidth" | "strategy">, "anchorEl" | "onShowChange">>>;
|
|
28
28
|
isPortaled: import('vue').ComputedRef<boolean>;
|
|
29
29
|
triggerBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
|
|
30
30
|
tabindex: number;
|
|
@@ -13,6 +13,7 @@ var le = [
|
|
|
13
13
|
"rounded",
|
|
14
14
|
"strategy",
|
|
15
15
|
"placement",
|
|
16
|
+
"matchWidth",
|
|
16
17
|
"persistent",
|
|
17
18
|
"teleportTo",
|
|
18
19
|
"customProps",
|
|
@@ -100,6 +101,7 @@ function v(v, ue, y = {}) {
|
|
|
100
101
|
offset: L.value.offset,
|
|
101
102
|
strategy: L.value.strategy,
|
|
102
103
|
placement: L.value.placement,
|
|
104
|
+
matchWidth: L.value.matchWidth === !0,
|
|
103
105
|
onReferenceHidden: () => {
|
|
104
106
|
!M || !U.value || !P.value || q();
|
|
105
107
|
}
|
|
@@ -146,7 +148,7 @@ function v(v, ue, y = {}) {
|
|
|
146
148
|
j?.(), j = null, A?.(), A = null, O?.(), O = null, D?.release(), D = null, E = null, C.value = "", N.value = m, Y();
|
|
147
149
|
}
|
|
148
150
|
let xe = r(() => e(z.value?.root, pe.value, u({
|
|
149
|
-
"relative inline-
|
|
151
|
+
"relative inline-flex": !0,
|
|
150
152
|
[c(B.value, "root") ?? ""]: !0
|
|
151
153
|
}))), Se = r(() => e(z.value?.trigger, {}, {
|
|
152
154
|
tabindex: 0,
|
|
@@ -157,7 +159,7 @@ function v(v, ue, y = {}) {
|
|
|
157
159
|
onClickCapture: he,
|
|
158
160
|
"aria-controls": P.value ? x : void 0,
|
|
159
161
|
class: u({
|
|
160
|
-
"inline-
|
|
162
|
+
"inline-flex w-fit max-w-full cursor-pointer outline-hidden": !0,
|
|
161
163
|
[c(B.value, "trigger") ?? ""]: !0
|
|
162
164
|
})
|
|
163
165
|
})), Ce = r(() => e(z.value?.content, {}, {
|
|
@@ -167,7 +169,9 @@ function v(v, ue, y = {}) {
|
|
|
167
169
|
style: { zIndex: N.value },
|
|
168
170
|
"aria-hidden": V.value ? !0 : void 0,
|
|
169
171
|
class: u({
|
|
170
|
-
"bg-white text-dark-900 dark:bg-dark-800 dark:text-dark-100 ring-1 ring-black/5 dark:ring-white/10 outline-hidden overflow-hidden
|
|
172
|
+
"bg-white text-dark-900 dark:bg-dark-800 dark:text-dark-100 ring-1 ring-black/5 dark:ring-white/10 outline-hidden overflow-hidden max-w-[calc(100vw-16px)]": !0,
|
|
173
|
+
"min-w-0 w-full": L.value.matchWidth === !0,
|
|
174
|
+
"min-w-32 w-max": L.value.matchWidth !== !0,
|
|
171
175
|
"invisible pointer-events-none": V.value,
|
|
172
176
|
[de.value ?? ""]: !0,
|
|
173
177
|
[fe.value ?? ""]: !0,
|
|
@@ -112,6 +112,12 @@ export interface MenuOwnProps {
|
|
|
112
112
|
* @default false
|
|
113
113
|
*/
|
|
114
114
|
keepMounted?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* When true, the panel width matches the trigger / anchor.
|
|
117
|
+
*
|
|
118
|
+
* @default false
|
|
119
|
+
*/
|
|
120
|
+
matchWidth?: boolean;
|
|
115
121
|
/**
|
|
116
122
|
* Gap between the trigger and the menu panel (px).
|
|
117
123
|
*
|
|
@@ -178,7 +178,7 @@ export declare function useNumberField(props: NumberFieldOwnProps, model: Ref<nu
|
|
|
178
178
|
dir?: string | undefined | undefined;
|
|
179
179
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
180
180
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
181
|
-
enterKeyHint?: "
|
|
181
|
+
enterKeyHint?: "search" | "done" | "enter" | "go" | "next" | "previous" | "send" | undefined;
|
|
182
182
|
hidden?: "" | "until-found" | "hidden" | (boolean | "true" | "false") | undefined;
|
|
183
183
|
inert?: (boolean | "true" | "false") | undefined;
|
|
184
184
|
placeholder?: string | undefined | undefined;
|
|
@@ -176,7 +176,7 @@ export declare function usePasswordField(props: PasswordFieldOwnProps, options?:
|
|
|
176
176
|
dir?: string | undefined | undefined;
|
|
177
177
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
178
178
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
179
|
-
enterKeyHint?: "
|
|
179
|
+
enterKeyHint?: "search" | "done" | "enter" | "go" | "next" | "previous" | "send" | undefined;
|
|
180
180
|
hidden?: "" | "until-found" | "hidden" | (boolean | "true" | "false") | undefined;
|
|
181
181
|
inert?: (boolean | "true" | "false") | undefined;
|
|
182
182
|
placeholder?: string | undefined | undefined;
|