@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.
Files changed (107) hide show
  1. package/ai/skills/bridge-ui-components/SKILL.md +3 -1
  2. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +1 -1
  3. package/dist/Components/ColorField/composables/useColorField.d.ts +2 -1
  4. package/dist/Components/DataTable/DataTable.js +5 -0
  5. package/dist/Components/DataTable/DataTable.vue.d.ts +43 -0
  6. package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +382 -0
  7. package/dist/Components/DataTable/DataTableCellContent.js +5 -0
  8. package/dist/Components/DataTable/DataTableCellContent.vue.d.ts +23 -0
  9. package/dist/Components/DataTable/DataTableCellContent.vue_vue_type_script_setup_true_lang.js +38 -0
  10. package/dist/Components/DataTable/DataTableColumnsMenu.js +5 -0
  11. package/dist/Components/DataTable/DataTableColumnsMenu.vue.d.ts +11 -0
  12. package/dist/Components/DataTable/DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js +47 -0
  13. package/dist/Components/DataTable/DataTableFilterMenu.js +5 -0
  14. package/dist/Components/DataTable/DataTableFilterMenu.vue.d.ts +17 -0
  15. package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +132 -0
  16. package/dist/Components/DataTable/DataTableFilterOptions.js +5 -0
  17. package/dist/Components/DataTable/DataTableFilterOptions.vue.d.ts +14 -0
  18. package/dist/Components/DataTable/DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js +73 -0
  19. package/dist/Components/DataTable/DataTableSearch.js +5 -0
  20. package/dist/Components/DataTable/DataTableSearch.vue.d.ts +12 -0
  21. package/dist/Components/DataTable/DataTableSearch.vue_vue_type_script_setup_true_lang.js +39 -0
  22. package/dist/Components/DataTable/DataTableSelection.js +5 -0
  23. package/dist/Components/DataTable/DataTableSelection.vue.d.ts +20 -0
  24. package/dist/Components/DataTable/DataTableSelection.vue_vue_type_script_setup_true_lang.js +55 -0
  25. package/dist/Components/DataTable/DataTableSortButton.js +5 -0
  26. package/dist/Components/DataTable/DataTableSortButton.vue.d.ts +17 -0
  27. package/dist/Components/DataTable/DataTableSortButton.vue_vue_type_script_setup_true_lang.js +43 -0
  28. package/dist/Components/DataTable/DataTableToolbarButton.js +5 -0
  29. package/dist/Components/DataTable/DataTableToolbarButton.vue.d.ts +13 -0
  30. package/dist/Components/DataTable/DataTableToolbarButton.vue_vue_type_script_setup_true_lang.js +31 -0
  31. package/dist/Components/DataTable/composables/useDataTable.d.ts +557 -0
  32. package/dist/Components/DataTable/composables/useDataTable.js +479 -0
  33. package/dist/Components/DataTable/dataTable.types.d.ts +480 -0
  34. package/dist/Components/DataTable/index.d.ts +3 -0
  35. package/dist/Components/DataTable/index.js +3 -0
  36. package/dist/Components/DateField/composables/useDateField.d.ts +2 -1
  37. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +2 -1
  38. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +2 -1
  39. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +2 -1
  40. package/dist/Components/FormField/composables/useFormField.d.ts +1 -1
  41. package/dist/Components/Menu/Menu.vue_vue_type_script_setup_true_lang.js +1 -0
  42. package/dist/Components/Menu/composables/useMenu.d.ts +1 -1
  43. package/dist/Components/Menu/composables/useMenu.js +7 -3
  44. package/dist/Components/Menu/menu.types.d.ts +6 -0
  45. package/dist/Components/NumberField/composables/useNumberField.d.ts +1 -1
  46. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +1 -1
  47. package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +9 -9
  48. package/dist/Components/Radio/composables/useRadio.js +57 -54
  49. package/dist/Components/Select/composables/useSelect.d.ts +1 -1
  50. package/dist/Components/Slider/composables/useSlider.d.ts +2 -2
  51. package/dist/Components/Snackbar/composables/useSnackbar.d.ts +1 -1
  52. package/dist/Components/Table/Table.js +5 -0
  53. package/dist/Components/Table/Table.vue.d.ts +16 -0
  54. package/dist/Components/Table/Table.vue_vue_type_script_setup_true_lang.js +44 -0
  55. package/dist/Components/Table/TableBody.js +5 -0
  56. package/dist/Components/Table/TableBody.vue.d.ts +11 -0
  57. package/dist/Components/Table/TableBody.vue_vue_type_script_setup_true_lang.js +17 -0
  58. package/dist/Components/Table/TableCaption.js +5 -0
  59. package/dist/Components/Table/TableCaption.vue.d.ts +11 -0
  60. package/dist/Components/Table/TableCaption.vue_vue_type_script_setup_true_lang.js +17 -0
  61. package/dist/Components/Table/TableCell.js +5 -0
  62. package/dist/Components/Table/TableCell.vue.d.ts +11 -0
  63. package/dist/Components/Table/TableCell.vue_vue_type_script_setup_true_lang.js +19 -0
  64. package/dist/Components/Table/TableFooter.js +5 -0
  65. package/dist/Components/Table/TableFooter.vue.d.ts +11 -0
  66. package/dist/Components/Table/TableFooter.vue_vue_type_script_setup_true_lang.js +17 -0
  67. package/dist/Components/Table/TableHead.js +5 -0
  68. package/dist/Components/Table/TableHead.vue.d.ts +11 -0
  69. package/dist/Components/Table/TableHead.vue_vue_type_script_setup_true_lang.js +19 -0
  70. package/dist/Components/Table/TableHeader.js +5 -0
  71. package/dist/Components/Table/TableHeader.vue.d.ts +11 -0
  72. package/dist/Components/Table/TableHeader.vue_vue_type_script_setup_true_lang.js +17 -0
  73. package/dist/Components/Table/TableRow.js +5 -0
  74. package/dist/Components/Table/TableRow.vue.d.ts +11 -0
  75. package/dist/Components/Table/TableRow.vue_vue_type_script_setup_true_lang.js +17 -0
  76. package/dist/Components/Table/composables/useTable.d.ts +16 -0
  77. package/dist/Components/Table/composables/useTable.js +88 -0
  78. package/dist/Components/Table/composables/useTableCell.d.ts +12 -0
  79. package/dist/Components/Table/composables/useTableCell.js +40 -0
  80. package/dist/Components/Table/composables/useTablePart.d.ts +12 -0
  81. package/dist/Components/Table/composables/useTablePart.js +32 -0
  82. package/dist/Components/Table/composables/useTableRow.d.ts +6 -0
  83. package/dist/Components/Table/composables/useTableRow.js +29 -0
  84. package/dist/Components/Table/index.d.ts +14 -0
  85. package/dist/Components/Table/index.js +14 -0
  86. package/dist/Components/Table/table.types.d.ts +416 -0
  87. package/dist/Components/Table/tableInjectionKey.d.ts +114 -0
  88. package/dist/Components/Table/tableInjectionKey.js +4 -0
  89. package/dist/Components/TextField/composables/useTextField.d.ts +1 -1
  90. package/dist/Components/Textarea/composables/useTextarea.d.ts +1 -1
  91. package/dist/Components/TimeField/composables/useTimeField.d.ts +2 -1
  92. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +2 -1
  93. package/docs/README.md +2 -0
  94. package/docs/components/CalendarDate.md +1 -1
  95. package/docs/components/DataTable.md +345 -0
  96. package/docs/components/DateField.md +2 -2
  97. package/docs/components/DatePicker.md +3 -3
  98. package/docs/components/DateRangePicker.md +1 -1
  99. package/docs/components/Pagination.md +2 -2
  100. package/docs/components/Table.md +122 -0
  101. package/docs/examples/i18n-dictionary.ts +4 -0
  102. package/docs/examples/icon-fontawesome.ts +8 -0
  103. package/docs/examples/icon-heroicons.ts +8 -0
  104. package/docs/examples/icon-lucide.ts +8 -0
  105. package/docs/examples/icon-phosphor.ts +8 -0
  106. package/docs/examples/icon-tabler.ts +8 -0
  107. package/package.json +9 -2
@@ -2,7 +2,7 @@
2
2
  name: bridge-ui-components
3
3
  description: >-
4
4
  Use Bridge UI Vue components — Button, Avatar, Card, Alert, Accordion, Badge, Icon,
5
- Link, List, Tabs, Spinner, Skeleton, Progress, Stepper, TextField, Select,
5
+ Link, List, Table, DataTable, Tabs, Spinner, Skeleton, Progress, Stepper, Pagination, TextField, Select,
6
6
  Autocomplete, DateField, DatePicker, DateRangeField, DateRangePicker,
7
7
  TimeField, TimePicker, DateTimeField, DateTimePicker, ColorField, ColorPicker,
8
8
  classes, customProps, slots. Use when building UI with Bridge components.
@@ -27,6 +27,8 @@ In templates, use kebab-case attrs (`start-icon`, `custom-props`, `error-message
27
27
  | Stepper | `.ai/docs/components/Stepper.md` |
28
28
  | Icon | `.ai/docs/components/Icon.md` |
29
29
  | Lists | `.ai/docs/components/List.md` |
30
+ | Table | `.ai/docs/components/Table.md` |
31
+ | DataTable | `.ai/docs/components/DataTable.md` |
30
32
  | Tabs | `.ai/docs/components/Tabs.md` |
31
33
  | Text input | `.ai/docs/components/TextField.md` |
32
34
  | Select / autocomplete | `.ai/docs/components/Select.md`, `Autocomplete.md` |
@@ -179,7 +179,7 @@ export declare function useAutocomplete(props: AutocompleteOwnProps, model: Ref<
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?: "done" | "search" | "enter" | "go" | "next" | "previous" | "send" | undefined;
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;
@@ -181,7 +181,7 @@ export declare function useColorField(props: ColorFieldOwnProps, model: Ref<null
181
181
  dir?: string | undefined | undefined;
182
182
  draggable?: (boolean | "true" | "false") | undefined;
183
183
  enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
184
- enterKeyHint?: "done" | "search" | "enter" | "go" | "next" | "previous" | "send" | undefined;
184
+ enterKeyHint?: "search" | "done" | "enter" | "go" | "next" | "previous" | "send" | undefined;
185
185
  hidden?: "" | "until-found" | "hidden" | (boolean | "true" | "false") | undefined;
186
186
  inert?: (boolean | "true" | "false") | undefined;
187
187
  placeholder?: string | undefined | undefined;
@@ -734,6 +734,7 @@ export declare function useColorField(props: ColorFieldOwnProps, model: Ref<null
734
734
  disableAutoFocus?: boolean;
735
735
  disableScrollLock?: boolean;
736
736
  keepMounted?: boolean;
737
+ matchWidth?: boolean;
737
738
  offset?: number;
738
739
  onShowChange?: (show: boolean) => void;
739
740
  persistent?: boolean;
@@ -0,0 +1,5 @@
1
+ import e from "./DataTable.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/Components/DataTable/DataTable.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,43 @@
1
+ import { VNodeChild } from 'vue';
2
+ import { DataTableColumnSearch, DataTableFilters } from '@bridge-ui/core/Domain';
3
+ import { DataTableItemSlotProps, DataTableOwnProps, DataTableSlots, DataTableSorting } from './dataTable.types';
4
+ declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
5
+ props: import('vue').PublicProps & __VLS_PrettifyLocal<(Omit<DataTableOwnProps<T>, "search" | "page" | "filters" | "columnSearch" | "expanded" | "hiddenColumns" | "perPage" | "selection" | "sorting"> & {
6
+ page?: number;
7
+ perPage?: number;
8
+ expanded?: string[];
9
+ selection?: string[];
10
+ filters?: DataTableFilters;
11
+ sorting?: DataTableSorting;
12
+ hiddenColumns?: string[];
13
+ columnSearch?: DataTableColumnSearch;
14
+ search?: string;
15
+ }) & {
16
+ "onUpdate:page"?: ((value: number | undefined) => any) | undefined;
17
+ "onUpdate:perPage"?: ((value: number | undefined) => any) | undefined;
18
+ "onUpdate:expanded"?: ((value: string[] | undefined) => any) | undefined;
19
+ "onUpdate:selection"?: ((value: string[] | undefined) => any) | undefined;
20
+ "onUpdate:filters"?: ((value: DataTableFilters | undefined) => any) | undefined;
21
+ "onUpdate:sorting"?: ((value: DataTableSorting | undefined) => any) | undefined;
22
+ "onUpdate:hiddenColumns"?: ((value: string[] | undefined) => any) | undefined;
23
+ "onUpdate:columnSearch"?: ((value: DataTableColumnSearch | undefined) => any) | undefined;
24
+ "onUpdate:search"?: ((value: string | undefined) => any) | undefined;
25
+ }> & (typeof globalThis extends {
26
+ __VLS_PROPS_FALLBACK: infer P;
27
+ } ? P : {});
28
+ expose: (exposed: {}) => void;
29
+ attrs: any;
30
+ slots: DataTableSlots<T> & {
31
+ [x: `item.${string}`]: ((props: DataTableItemSlotProps<T>) => VNodeChild) | undefined;
32
+ };
33
+ emit: ((event: "update:page", value: number | undefined) => void) & ((event: "update:perPage", value: number | undefined) => void) & ((event: "update:expanded", value: string[] | undefined) => void) & ((event: "update:selection", value: string[] | undefined) => void) & ((event: "update:filters", value: DataTableFilters | undefined) => void) & ((event: "update:sorting", value: DataTableSorting | undefined) => void) & ((event: "update:hiddenColumns", value: string[] | undefined) => void) & ((event: "update:columnSearch", value: DataTableColumnSearch | undefined) => void) & ((event: "update:search", value: string | undefined) => void);
34
+ }>) => import('vue').VNode & {
35
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
36
+ };
37
+ declare const _default: typeof __VLS_export;
38
+ export default _default;
39
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
40
+ [K in keyof T]: T[K];
41
+ } : {
42
+ [K in keyof T as K]: T[K];
43
+ }) & {};
@@ -0,0 +1,382 @@
1
+ import { useResolveMessage as e } from "../../Adapters/I18n/useI18nAdapter.js";
2
+ import { hasNamedSlot as t } from "../../Utils/slotOrProp.js";
3
+ import n from "../Icon/Icon.js";
4
+ import ee from "../Progress/Progress.js";
5
+ import te from "../Pagination/Pagination.js";
6
+ import ne from "../Select/Select.js";
7
+ import { useDataTable as r } from "./composables/useDataTable.js";
8
+ import re from "./DataTableCellContent.js";
9
+ import ie from "./DataTableColumnsMenu.js";
10
+ import ae from "./DataTableFilterMenu.js";
11
+ import oe from "./DataTableSearch.js";
12
+ import i from "./DataTableSelection.js";
13
+ import se from "./DataTableSortButton.js";
14
+ import ce from "../Table/Table.js";
15
+ import le from "../Table/TableBody.js";
16
+ import a from "../Table/TableCell.js";
17
+ import ue from "../Table/TableFooter.js";
18
+ import de from "../Table/TableHead.js";
19
+ import fe from "../Table/TableHeader.js";
20
+ import o from "../Table/TableRow.js";
21
+ import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createTextVNode as pe, createVNode as p, defineComponent as m, guardReactiveProps as h, mergeModels as g, mergeProps as _, normalizeClass as v, normalizeProps as y, openBlock as b, renderList as x, renderSlot as S, toDisplayString as C, unref as w, useId as me, useModel as T, useSlots as he, withCtx as E } from "vue";
22
+ import { cn as D } from "@bridge-ui/core/Utils";
23
+ //#region src/Components/DataTable/DataTable.vue?vue&type=script&setup=true&lang.ts
24
+ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center gap-2" }, ve = {
25
+ key: 0,
26
+ class: "inline-flex items-center rounded-lg border border-dark-200 bg-white p-0.5 dark:border-dark-700 dark:bg-dark-900"
27
+ }, ye = { class: "relative" }, be = {
28
+ key: 1,
29
+ class: "flex w-full min-w-0 items-center gap-1.5 leading-none"
30
+ }, O = ["aria-expanded", "onClick"], k = ["aria-hidden"], A = { class: "min-h-0 overflow-hidden" }, j = { class: "p-3" }, M = ["aria-hidden"], N = { class: "flex shrink-0 items-center gap-2" }, xe = { class: "text-sm whitespace-nowrap text-dark-500 dark:text-dark-400" }, P = /*@__PURE__*/ m({
31
+ inheritAttrs: !1,
32
+ __name: "DataTable",
33
+ props: /*@__PURE__*/ g({
34
+ classes: {},
35
+ columns: {},
36
+ customProps: {},
37
+ full: {
38
+ type: Boolean,
39
+ default: !0
40
+ },
41
+ getRowId: {},
42
+ hoverable: {
43
+ type: Boolean,
44
+ default: !1
45
+ },
46
+ loading: {
47
+ type: Boolean,
48
+ default: !1
49
+ },
50
+ loadingVariant: { default: "overlay" },
51
+ pageCount: {},
52
+ paginationAlign: { default: "end" },
53
+ perPageOptions: {},
54
+ rounded: {},
55
+ rows: {},
56
+ selectionMode: {},
57
+ size: {},
58
+ stickyHeader: {
59
+ type: [String, Boolean],
60
+ default: !1
61
+ },
62
+ striped: {
63
+ type: Boolean,
64
+ default: !1
65
+ },
66
+ totalCount: {},
67
+ variant: {}
68
+ }, {
69
+ page: {},
70
+ pageModifiers: {},
71
+ perPage: {},
72
+ perPageModifiers: {},
73
+ expanded: {},
74
+ expandedModifiers: {},
75
+ selection: {},
76
+ selectionModifiers: {},
77
+ filters: {},
78
+ filtersModifiers: {},
79
+ sorting: {},
80
+ sortingModifiers: {},
81
+ hiddenColumns: {},
82
+ hiddenColumnsModifiers: {},
83
+ columnSearch: {},
84
+ columnSearchModifiers: {},
85
+ search: {},
86
+ searchModifiers: {}
87
+ }),
88
+ emits: [
89
+ "update:page",
90
+ "update:perPage",
91
+ "update:expanded",
92
+ "update:selection",
93
+ "update:filters",
94
+ "update:sorting",
95
+ "update:hiddenColumns",
96
+ "update:columnSearch",
97
+ "update:search"
98
+ ],
99
+ setup(m) {
100
+ let g = m, P = he(), F = e(), I = T(m, "page"), L = T(m, "perPage"), Se = T(m, "expanded"), Ce = T(m, "selection"), we = T(m, "filters"), Te = T(m, "sorting"), Ee = T(m, "hiddenColumns"), De = T(m, "columnSearch"), R = T(m, "search"), { merged: z, rowViews: Oe, rootBind: ke, emptyBind: Ae, showEmpty: B, tableProps: je, footerBind: Me, loadingBar: V, showSearch: Ne, getHeadBind: Pe, headerViews: Fe, loadingBind: Ie, onToggleRow: Le, toolbarBind: Re, getCellBind: H, columnCount: U, showPerPage: ze, showToolbar: Be, getHeadAlign: Ve, getCellAlign: W, onTogglePage: He, summaryCells: G, expandEnabled: Ue, loadingBarBind: We, paginationBind: Ge, selectAllState: K, showPagination: Ke, onChangeSearch: qe, onToggleExpand: Je, visibilityItems: Ye, perPageSlotProps: q, resolvedPageCount: J, selectionMultiple: Y, visibilityEnabled: Xe, paginationSlotProps: X, onCommitColumnFilter: Ze, onToggleColumnVisibility: Qe } = r(g, {
101
+ size: "md",
102
+ full: !0,
103
+ rounded: "lg",
104
+ loading: !1,
105
+ striped: !1,
106
+ variant: "plain",
107
+ hoverable: !1,
108
+ stickyHeader: !1,
109
+ paginationAlign: "end",
110
+ selectionMode: "multiple",
111
+ loadingVariant: "overlay"
112
+ }, {
113
+ page: I,
114
+ search: R,
115
+ perPage: L,
116
+ filters: we,
117
+ sorting: Te,
118
+ expanded: Se,
119
+ selection: Ce,
120
+ columnSearch: De,
121
+ hiddenColumns: Ee
122
+ }), Z = c(() => z.value.size === "lg" ? "md" : "sm");
123
+ function $e(e, t) {
124
+ let n = P[`item.${t.id}`] ?? P.item;
125
+ return n ? n({
126
+ id: t.id,
127
+ row: e.original,
128
+ value: t.value
129
+ }) : t.content;
130
+ }
131
+ let Q = c({
132
+ get: () => I.value ?? 1,
133
+ set: (e) => {
134
+ I.value = e;
135
+ }
136
+ }), et = c(() => q.value.options.map((e) => ({
137
+ value: e,
138
+ label: String(e)
139
+ }))), tt = c(() => {
140
+ let e = z.value.customProps?.perPage?.customProps;
141
+ return {
142
+ ...e,
143
+ listbox: {
144
+ showCheckmark: !1,
145
+ ...e?.listbox,
146
+ customProps: {
147
+ ...e?.listbox?.customProps,
148
+ menu: {
149
+ matchWidth: !0,
150
+ ...e?.listbox?.customProps?.menu
151
+ }
152
+ }
153
+ }
154
+ };
155
+ }), nt = me(), $ = (e) => e.node ?? null;
156
+ return (e, r) => (b(), d("div", y(h(w(ke))), [
157
+ w(Be) ? (b(), d("div", y(_({ key: 0 }, w(Re))), [f("div", ge, [S(e.$slots, "toolbar")]), f("div", _e, [
158
+ w(Xe) ? (b(), d("div", ve, [p(ie, {
159
+ items: w(Ye),
160
+ onToggle: w(Qe)
161
+ }, null, 8, ["items", "onToggle"])])) : u("", !0),
162
+ S(e.$slots, "toolbarActions"),
163
+ w(Ne) ? S(e.$slots, "search", {}, () => [p(oe, {
164
+ "model-value": R.value ?? "",
165
+ "onUpdate:modelValue": w(qe),
166
+ "field-props": w(z).customProps?.search
167
+ }, null, 8, [
168
+ "model-value",
169
+ "onUpdate:modelValue",
170
+ "field-props"
171
+ ])], void 0, 1) : u("", !0)
172
+ ])], 16)) : u("", !0),
173
+ f("div", ye, [p(w(ce), y(h(w(je))), {
174
+ default: E(() => [
175
+ p(w(fe), y(h(w(z).customProps?.header)), {
176
+ default: E(() => [p(w(o), y(h(w(z).customProps?.row)), {
177
+ default: E(() => [(b(!0), d(s, null, x(w(Fe), (e) => (b(), l(w(de), _({
178
+ key: e.id,
179
+ align: w(Ve)(e)
180
+ }, { ref_for: !0 }, w(Pe)(e)), {
181
+ default: E(() => [e.isSelection && w(Y) ? (b(), l(i, {
182
+ key: 0,
183
+ kind: "page",
184
+ size: Z.value,
185
+ onChange: w(He),
186
+ checked: w(K).checked,
187
+ indeterminate: w(K).indeterminate,
188
+ "checkbox-props": w(z).customProps?.checkbox
189
+ }, null, 8, [
190
+ "size",
191
+ "onChange",
192
+ "checked",
193
+ "indeterminate",
194
+ "checkbox-props"
195
+ ])) : !e.isSelection && !e.isExpand ? (b(), d("div", be, [e.sortable ? (b(), l(se, {
196
+ key: 0,
197
+ sort: e.ariaSort
198
+ }, {
199
+ default: E(() => [p($, { node: e.header }, null, 8, ["node"])]),
200
+ _: 2
201
+ }, 1032, ["sort"])) : (b(), l($, {
202
+ key: 1,
203
+ node: e.header
204
+ }, null, 8, ["node"])), e.filterable ? (b(), l(ae, {
205
+ key: 2,
206
+ "column-id": e.id,
207
+ active: e.filterActive,
208
+ values: e.filterValues,
209
+ options: e.filterOptions,
210
+ searchable: e.searchable,
211
+ multiple: e.filterMultiple,
212
+ "search-value": e.searchQuery,
213
+ onApply: (t, n) => w(Ze)(e.id, t, n)
214
+ }, null, 8, [
215
+ "column-id",
216
+ "active",
217
+ "values",
218
+ "options",
219
+ "searchable",
220
+ "multiple",
221
+ "search-value",
222
+ "onApply"
223
+ ])) : u("", !0)])) : u("", !0)]),
224
+ _: 2
225
+ }, 1040, ["align"]))), 128))]),
226
+ _: 1
227
+ }, 16), w(z).loading && w(V) ? (b(), l(w(o), {
228
+ key: 0,
229
+ classes: { root: "h-0" }
230
+ }, {
231
+ default: E(() => [p(w(a), {
232
+ colspan: w(U),
233
+ classes: { root: "relative h-0 border-0 p-0 after:hidden" }
234
+ }, {
235
+ default: E(() => [f("div", y(h(w(We))), [S(e.$slots, "loading", {}, () => [p(w(ee), _({
236
+ size: "xs",
237
+ rounded: "none"
238
+ }, w(z).customProps?.progress), null, 16)])], 16)]),
239
+ _: 3
240
+ }, 8, ["colspan"])]),
241
+ _: 3
242
+ })) : u("", !0)]),
243
+ _: 3
244
+ }, 16),
245
+ p(w(le), y(h(w(z).customProps?.body)), {
246
+ default: E(() => [w(B) ? (b(), l(w(o), { key: 0 }, {
247
+ default: E(() => [p(w(a), {
248
+ align: "center",
249
+ colspan: w(U)
250
+ }, {
251
+ default: E(() => [f("div", y(h(w(Ae))), [S(e.$slots, "empty", {}, () => [r[2] ||= f("span", { class: "relative mb-1 block h-10 w-12 rounded-md border-2 border-dark-300 dark:border-dark-600" }, [f("span", { class: "absolute -top-1.5 left-2 right-2 h-2 rounded-sm border-2 border-dark-300 bg-white dark:border-dark-600 dark:bg-dark-900" })], -1), pe(" " + C(w(F)("No data")), 1)])], 16)]),
252
+ _: 3
253
+ }, 8, ["colspan"])]),
254
+ _: 3
255
+ })) : u("", !0), w(B) ? u("", !0) : (b(!0), d(s, { key: 1 }, x(w(Oe), (t) => (b(), d(s, { key: t.id }, [p(w(o), _({ ref_for: !0 }, w(z).customProps?.row), {
256
+ default: E(() => [(b(!0), d(s, null, x(t.cells, (e) => (b(), l(w(a), _({
257
+ key: e.id,
258
+ align: w(W)(e)
259
+ }, { ref_for: !0 }, w(H)(e)), {
260
+ default: E(() => [e.isSelection ? (b(), l(i, {
261
+ key: 0,
262
+ kind: "row",
263
+ value: t.id,
264
+ size: Z.value,
265
+ name: w(nt),
266
+ checked: t.selected,
267
+ multiple: w(Y),
268
+ "radio-props": w(z).customProps?.radio,
269
+ "checkbox-props": w(z).customProps?.checkbox,
270
+ onChange: (e) => w(Le)(t.id, e)
271
+ }, null, 8, [
272
+ "value",
273
+ "size",
274
+ "name",
275
+ "checked",
276
+ "multiple",
277
+ "radio-props",
278
+ "checkbox-props",
279
+ "onChange"
280
+ ])) : e.isExpand ? (b(), d("button", {
281
+ key: 1,
282
+ type: "button",
283
+ "aria-label": "Expand row",
284
+ "aria-expanded": t.expanded,
285
+ onClick: (e) => w(Je)(t.id, !t.expanded),
286
+ class: "inline-flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm leading-none hover:bg-dark-500/10 dark:hover:bg-dark-500/15"
287
+ }, [f("span", { class: v([{ "rotate-90": t.expanded }, "inline-flex transition-transform duration-200 motion-reduce:transition-none"]) }, [p(w(n), {
288
+ size: "sm",
289
+ icon: "chevronRight"
290
+ })], 2)], 8, O)) : (b(), l(re, {
291
+ key: 2,
292
+ tooltip: e.tooltip,
293
+ ellipsis: e.ellipsis
294
+ }, {
295
+ default: E(() => [p($, { node: $e(t, e) }, null, 8, ["node"])]),
296
+ _: 2
297
+ }, 1032, ["tooltip", "ellipsis"]))]),
298
+ _: 2
299
+ }, 1040, ["align"]))), 128))]),
300
+ _: 2
301
+ }, 1040), w(Ue) ? (b(), l(w(o), { key: 0 }, {
302
+ default: E(() => [p(w(a), {
303
+ colspan: w(U),
304
+ classes: { root: w(D)({
305
+ "p-0": !0,
306
+ "border-0": !t.expanded
307
+ }) }
308
+ }, {
309
+ default: E(() => [f("div", {
310
+ "aria-hidden": !t.expanded,
311
+ class: v(w(D)({
312
+ "grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none": !0,
313
+ "grid-rows-[1fr]": t.expanded,
314
+ "grid-rows-[0fr]": !t.expanded
315
+ }))
316
+ }, [f("div", A, [f("div", j, [S(e.$slots, "expanded", { row: t.original })])])], 10, k)]),
317
+ _: 2
318
+ }, 1032, ["colspan", "classes"])]),
319
+ _: 2
320
+ }, 1024)) : u("", !0)], 64))), 128))]),
321
+ _: 3
322
+ }, 16),
323
+ w(G) ? (b(), l(w(ue), { key: 0 }, {
324
+ default: E(() => [p(w(o), y(h(w(z).customProps?.row)), {
325
+ default: E(() => [(b(!0), d(s, null, x(w(G), (e) => (b(), l(w(a), _({
326
+ key: e.id,
327
+ align: w(W)(e)
328
+ }, { ref_for: !0 }, w(H)(e)), {
329
+ default: E(() => [p($, { node: e.content }, null, 8, ["node"])]),
330
+ _: 2
331
+ }, 1040, ["align"]))), 128))]),
332
+ _: 1
333
+ }, 16)]),
334
+ _: 1
335
+ })) : u("", !0)
336
+ ]),
337
+ _: 3
338
+ }, 16), w(z).loading ? (b(), d("div", _({ key: 0 }, w(Ie), { "aria-hidden": w(V) || void 0 }), [w(V) ? u("", !0) : S(e.$slots, "loading", {}, () => [r[3] ||= f("span", {
339
+ role: "status",
340
+ "aria-label": "Loading",
341
+ class: "relative inline-block size-5 animate-spin motion-reduce:animate-none"
342
+ }, [
343
+ f("span", { class: "absolute inset-s-0 top-0 size-2 rounded-full bg-primary-500 opacity-30 dark:bg-primary-400" }),
344
+ f("span", { class: "absolute inset-e-0 top-0 size-2 rounded-full bg-primary-500 opacity-50 dark:bg-primary-400" }),
345
+ f("span", { class: "absolute inset-e-0 bottom-0 size-2 rounded-full bg-primary-500 dark:bg-primary-400" }),
346
+ f("span", { class: "absolute inset-s-0 bottom-0 size-2 rounded-full bg-primary-500 opacity-70 dark:bg-primary-400" })
347
+ ], -1)], void 0, 0)], 16, M)) : u("", !0)]),
348
+ w(t)(w(P), "footer") ? (b(), d("div", y(_({ key: 1 }, w(Me))), [S(e.$slots, "footer")], 16)) : u("", !0),
349
+ w(Ke) ? (b(), d("div", y(_({ key: 2 }, w(Ge))), [w(ze) ? S(e.$slots, "perPage", y(h(w(q))), () => [f("div", N, [f("span", xe, C(w(F)("Per page:")), 1), p(w(ne), _({ size: "sm" }, w(z).customProps?.perPage, {
350
+ overlay: "menu",
351
+ clearable: !1,
352
+ "hide-error-message": "",
353
+ "aria-label": "Per page",
354
+ options: et.value,
355
+ "custom-props": tt.value,
356
+ "model-value": w(q).perPage,
357
+ "onUpdate:modelValue": r[0] ||= (e) => w(q).onPerPageChange(Number(e)),
358
+ classes: {
359
+ ...w(z).customProps?.perPage?.classes,
360
+ root: w(D)("w-20", w(z).customProps?.perPage?.classes?.root)
361
+ }
362
+ }), null, 16, [
363
+ "options",
364
+ "custom-props",
365
+ "model-value",
366
+ "classes"
367
+ ])])], void 0, 0) : u("", !0), S(e.$slots, "pagination", y(h(w(X))), () => [w(J) === void 0 ? u("", !0) : (b(), l(w(te), _({
368
+ key: 0,
369
+ modelValue: Q.value,
370
+ "onUpdate:modelValue": r[1] ||= (e) => Q.value = e,
371
+ count: w(J),
372
+ variant: w(X).variant
373
+ }, w(z).customProps?.pagination), null, 16, [
374
+ "modelValue",
375
+ "count",
376
+ "variant"
377
+ ]))])], 16)) : u("", !0)
378
+ ], 16));
379
+ }
380
+ });
381
+ //#endregion
382
+ export { P as default };
@@ -0,0 +1,5 @@
1
+ import e from "./DataTableCellContent.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/Components/DataTable/DataTableCellContent.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,23 @@
1
+ type __VLS_Props = {
2
+ ellipsis: boolean;
3
+ tooltip?: string;
4
+ };
5
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_15: {};
6
+ type __VLS_Slots = {} & {
7
+ default?: (props: typeof __VLS_1) => any;
8
+ } & {
9
+ default?: (props: typeof __VLS_3) => any;
10
+ } & {
11
+ default?: (props: typeof __VLS_5) => any;
12
+ } & {
13
+ default?: (props: typeof __VLS_15) => any;
14
+ };
15
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
19
+ type __VLS_WithSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -0,0 +1,38 @@
1
+ import e from "../Tooltip/Tooltip.js";
2
+ import { createBlock as t, createElementBlock as n, createElementVNode as r, defineComponent as i, openBlock as a, ref as o, renderSlot as s, unref as c, withCtx as l } from "vue";
3
+ //#region src/Components/DataTable/DataTableCellContent.vue?vue&type=script&setup=true&lang.ts
4
+ var u = {
5
+ key: 1,
6
+ class: "min-w-0 overflow-hidden text-ellipsis whitespace-nowrap"
7
+ }, d = { class: "min-w-0 overflow-hidden text-ellipsis whitespace-nowrap" }, f = { class: "min-w-0 overflow-hidden text-ellipsis whitespace-nowrap" }, p = /*@__PURE__*/ i({
8
+ inheritAttrs: !1,
9
+ name: "DataTableCellContent",
10
+ __name: "DataTableCellContent",
11
+ props: {
12
+ ellipsis: { type: Boolean },
13
+ tooltip: {}
14
+ },
15
+ setup(i) {
16
+ let p = o(!1), m = o(!1);
17
+ function h() {
18
+ p.value = !0, m.value = !0;
19
+ }
20
+ return (o, g) => i.ellipsis ? i.tooltip ? m.value ? (a(), t(c(e), {
21
+ key: 3,
22
+ content: i.tooltip,
23
+ modelValue: p.value,
24
+ "onUpdate:modelValue": g[0] ||= (e) => p.value = e,
25
+ "custom-props": { trigger: { class: "block min-w-0 w-full max-w-full" } }
26
+ }, {
27
+ trigger: l(() => [r("div", f, [s(o.$slots, "default")])]),
28
+ _: 3
29
+ }, 8, ["content", "modelValue"])) : (a(), n("div", {
30
+ key: 2,
31
+ onFocusin: h,
32
+ onPointerenter: h,
33
+ class: "block min-w-0 w-full max-w-full"
34
+ }, [r("div", d, [s(o.$slots, "default")])], 32)) : (a(), n("div", u, [s(o.$slots, "default")])) : s(o.$slots, "default", {}, void 0, void 0, 0);
35
+ }
36
+ });
37
+ //#endregion
38
+ export { p as default };
@@ -0,0 +1,5 @@
1
+ import e from "./DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/Components/DataTable/DataTableColumnsMenu.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,11 @@
1
+ import { DataTableVisibilityItem } from './composables/useDataTable';
2
+ type __VLS_Props = {
3
+ items: DataTableVisibilityItem[];
4
+ };
5
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
6
+ toggle: (columnId: string, hide: boolean) => any;
7
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onToggle?: ((columnId: string, hide: boolean) => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,47 @@
1
+ import { useResolveMessage as e } from "../../Adapters/I18n/useI18nAdapter.js";
2
+ import t from "../Menu/Menu.js";
3
+ import n from "../Checkbox/Checkbox.js";
4
+ import r from "./DataTableToolbarButton.js";
5
+ import { Fragment as i, createBlock as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, openBlock as u, ref as d, renderList as f, unref as p, withCtx as m } from "vue";
6
+ //#region src/Components/DataTable/DataTableColumnsMenu.vue?vue&type=script&setup=true&lang.ts
7
+ var h = { class: "min-w-52 p-1" }, g = ["aria-checked", "onClick"], _ = /*@__PURE__*/ l({
8
+ inheritAttrs: !1,
9
+ name: "DataTableColumnsMenu",
10
+ __name: "DataTableColumnsMenu",
11
+ props: { items: {} },
12
+ emits: ["toggle"],
13
+ setup(l, { emit: _ }) {
14
+ let v = _, y = d(!1), b = e();
15
+ return (e, d) => (u(), a(p(t), {
16
+ modelValue: y.value,
17
+ "onUpdate:modelValue": d[0] ||= (e) => y.value = e,
18
+ placement: "bottom"
19
+ }, {
20
+ trigger: m(() => [c(r, {
21
+ icon: "columns",
22
+ label: p(b)("Columns")
23
+ }, null, 8, ["label"])]),
24
+ default: m(() => [s("div", h, [(u(!0), o(i, null, f(l.items, (e) => (u(), o("div", {
25
+ key: e.id,
26
+ role: "menuitemcheckbox",
27
+ "aria-checked": !e.hidden,
28
+ onClick: (t) => e.hideable && v("toggle", e.id, !e.hidden),
29
+ class: "flex w-full cursor-pointer items-center rounded-md px-2 py-1.5 text-start hover:bg-dark-500/5 dark:hover:bg-dark-500/10"
30
+ }, [c(p(n), {
31
+ size: "sm",
32
+ "hide-error-message": "",
33
+ "end-label": e.label,
34
+ disabled: !e.hideable,
35
+ "model-value": !e.hidden,
36
+ classes: { root: "pointer-events-none" }
37
+ }, null, 8, [
38
+ "end-label",
39
+ "disabled",
40
+ "model-value"
41
+ ])], 8, g))), 128))])]),
42
+ _: 1
43
+ }, 8, ["modelValue"]));
44
+ }
45
+ });
46
+ //#endregion
47
+ export { _ as default };
@@ -0,0 +1,5 @@
1
+ import e from "./DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/Components/DataTable/DataTableFilterMenu.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,17 @@
1
+ import { DataTableFilterOption } from '@bridge-ui/core/Domain';
2
+ type __VLS_Props = {
3
+ active: boolean;
4
+ columnId: string;
5
+ multiple: boolean;
6
+ options: DataTableFilterOption[];
7
+ searchable: boolean;
8
+ searchValue: string;
9
+ values: string[];
10
+ };
11
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
+ apply: (values: string[], query: string) => any;
13
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onApply?: ((values: string[], query: string) => any) | undefined;
15
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;