@bridge-ui/vue 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/ai/skills/bridge-ui-components/SKILL.md +3 -1
  2. package/dist/Components/Autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +40 -45
  3. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +2 -1
  4. package/dist/Components/ColorField/ColorField.vue_vue_type_script_setup_true_lang.js +39 -44
  5. package/dist/Components/ColorField/composables/useColorField.d.ts +3 -1
  6. package/dist/Components/DataTable/DataTable.js +5 -0
  7. package/dist/Components/DataTable/DataTable.vue.d.ts +43 -0
  8. package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +396 -0
  9. package/dist/Components/DataTable/DataTableCellContent.js +5 -0
  10. package/dist/Components/DataTable/DataTableCellContent.vue.d.ts +23 -0
  11. package/dist/Components/DataTable/DataTableCellContent.vue_vue_type_script_setup_true_lang.js +38 -0
  12. package/dist/Components/DataTable/DataTableColumnsMenu.js +5 -0
  13. package/dist/Components/DataTable/DataTableColumnsMenu.vue.d.ts +17 -0
  14. package/dist/Components/DataTable/DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js +92 -0
  15. package/dist/Components/DataTable/DataTableFilterMenu.js +5 -0
  16. package/dist/Components/DataTable/DataTableFilterMenu.vue.d.ts +20 -0
  17. package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +151 -0
  18. package/dist/Components/DataTable/DataTableFilterOptions.js +5 -0
  19. package/dist/Components/DataTable/DataTableFilterOptions.vue.d.ts +17 -0
  20. package/dist/Components/DataTable/DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js +81 -0
  21. package/dist/Components/DataTable/DataTableSearch.js +5 -0
  22. package/dist/Components/DataTable/DataTableSearch.vue.d.ts +12 -0
  23. package/dist/Components/DataTable/DataTableSearch.vue_vue_type_script_setup_true_lang.js +39 -0
  24. package/dist/Components/DataTable/DataTableSelection.js +5 -0
  25. package/dist/Components/DataTable/DataTableSelection.vue.d.ts +20 -0
  26. package/dist/Components/DataTable/DataTableSelection.vue_vue_type_script_setup_true_lang.js +56 -0
  27. package/dist/Components/DataTable/DataTableSortButton.js +5 -0
  28. package/dist/Components/DataTable/DataTableSortButton.vue.d.ts +17 -0
  29. package/dist/Components/DataTable/DataTableSortButton.vue_vue_type_script_setup_true_lang.js +43 -0
  30. package/dist/Components/DataTable/DataTableToolbarButton.js +5 -0
  31. package/dist/Components/DataTable/DataTableToolbarButton.vue.d.ts +14 -0
  32. package/dist/Components/DataTable/DataTableToolbarButton.vue_vue_type_script_setup_true_lang.js +31 -0
  33. package/dist/Components/DataTable/composables/useDataTable.d.ts +565 -0
  34. package/dist/Components/DataTable/composables/useDataTable.js +511 -0
  35. package/dist/Components/DataTable/composables/useDataTableColumnsMenu.d.ts +27 -0
  36. package/dist/Components/DataTable/composables/useDataTableColumnsMenu.js +54 -0
  37. package/dist/Components/DataTable/dataTable.types.d.ts +497 -0
  38. package/dist/Components/DataTable/index.d.ts +3 -0
  39. package/dist/Components/DataTable/index.js +3 -0
  40. package/dist/Components/DateField/DateField.vue_vue_type_script_setup_true_lang.js +52 -57
  41. package/dist/Components/DateField/composables/useDateField.d.ts +3 -1
  42. package/dist/Components/DateRangeField/DateRangeField.vue_vue_type_script_setup_true_lang.js +50 -55
  43. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +3 -1
  44. package/dist/Components/DateTimeField/DateTimeField.vue_vue_type_script_setup_true_lang.js +56 -61
  45. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +3 -1
  46. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue_vue_type_script_setup_true_lang.js +56 -61
  47. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +3 -1
  48. package/dist/Components/FormField/composables/useFormField.d.ts +2 -1
  49. package/dist/Components/FormField/composables/useFormField.js +80 -75
  50. package/dist/Components/Menu/Menu.vue_vue_type_script_setup_true_lang.js +1 -0
  51. package/dist/Components/Menu/composables/useMenu.d.ts +1 -1
  52. package/dist/Components/Menu/composables/useMenu.js +7 -3
  53. package/dist/Components/Menu/menu.types.d.ts +6 -0
  54. package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +53 -43
  55. package/dist/Components/NumberField/composables/useNumberField.d.ts +9 -2
  56. package/dist/Components/NumberField/composables/useNumberField.js +49 -36
  57. package/dist/Components/NumberField/index.d.ts +1 -1
  58. package/dist/Components/NumberField/numberField.types.d.ts +13 -1
  59. package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +28 -33
  60. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +2 -1
  61. package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +9 -9
  62. package/dist/Components/Radio/composables/useRadio.js +57 -54
  63. package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +42 -47
  64. package/dist/Components/Select/composables/useSelect.d.ts +2 -1
  65. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +43 -48
  66. package/dist/Components/Slider/composables/useSlider.d.ts +3 -3
  67. package/dist/Components/Snackbar/composables/useSnackbar.d.ts +1 -1
  68. package/dist/Components/Table/Table.js +5 -0
  69. package/dist/Components/Table/Table.vue.d.ts +16 -0
  70. package/dist/Components/Table/Table.vue_vue_type_script_setup_true_lang.js +44 -0
  71. package/dist/Components/Table/TableBody.js +5 -0
  72. package/dist/Components/Table/TableBody.vue.d.ts +11 -0
  73. package/dist/Components/Table/TableBody.vue_vue_type_script_setup_true_lang.js +17 -0
  74. package/dist/Components/Table/TableCaption.js +5 -0
  75. package/dist/Components/Table/TableCaption.vue.d.ts +11 -0
  76. package/dist/Components/Table/TableCaption.vue_vue_type_script_setup_true_lang.js +17 -0
  77. package/dist/Components/Table/TableCell.js +5 -0
  78. package/dist/Components/Table/TableCell.vue.d.ts +11 -0
  79. package/dist/Components/Table/TableCell.vue_vue_type_script_setup_true_lang.js +19 -0
  80. package/dist/Components/Table/TableFooter.js +5 -0
  81. package/dist/Components/Table/TableFooter.vue.d.ts +11 -0
  82. package/dist/Components/Table/TableFooter.vue_vue_type_script_setup_true_lang.js +17 -0
  83. package/dist/Components/Table/TableHead.js +5 -0
  84. package/dist/Components/Table/TableHead.vue.d.ts +11 -0
  85. package/dist/Components/Table/TableHead.vue_vue_type_script_setup_true_lang.js +19 -0
  86. package/dist/Components/Table/TableHeader.js +5 -0
  87. package/dist/Components/Table/TableHeader.vue.d.ts +11 -0
  88. package/dist/Components/Table/TableHeader.vue_vue_type_script_setup_true_lang.js +17 -0
  89. package/dist/Components/Table/TableRow.js +5 -0
  90. package/dist/Components/Table/TableRow.vue.d.ts +11 -0
  91. package/dist/Components/Table/TableRow.vue_vue_type_script_setup_true_lang.js +17 -0
  92. package/dist/Components/Table/composables/useTable.d.ts +19 -0
  93. package/dist/Components/Table/composables/useTable.js +89 -0
  94. package/dist/Components/Table/composables/useTableCell.d.ts +12 -0
  95. package/dist/Components/Table/composables/useTableCell.js +40 -0
  96. package/dist/Components/Table/composables/useTablePart.d.ts +12 -0
  97. package/dist/Components/Table/composables/useTablePart.js +32 -0
  98. package/dist/Components/Table/composables/useTableRow.d.ts +6 -0
  99. package/dist/Components/Table/composables/useTableRow.js +29 -0
  100. package/dist/Components/Table/index.d.ts +14 -0
  101. package/dist/Components/Table/index.js +14 -0
  102. package/dist/Components/Table/table.types.d.ts +417 -0
  103. package/dist/Components/Table/tableInjectionKey.d.ts +114 -0
  104. package/dist/Components/Table/tableInjectionKey.js +4 -0
  105. package/dist/Components/TextField/TextField.vue_vue_type_script_setup_true_lang.js +11 -16
  106. package/dist/Components/TextField/composables/useTextField.d.ts +2 -1
  107. package/dist/Components/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +15 -20
  108. package/dist/Components/Textarea/composables/useTextarea.d.ts +2 -1
  109. package/dist/Components/TimeField/TimeField.vue_vue_type_script_setup_true_lang.js +45 -50
  110. package/dist/Components/TimeField/composables/useTimeField.d.ts +3 -1
  111. package/dist/Components/TimeRangeField/TimeRangeField.vue_vue_type_script_setup_true_lang.js +45 -50
  112. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +3 -1
  113. package/dist/Utils/index.d.ts +1 -0
  114. package/dist/Utils/index.js +28 -27
  115. package/dist/Utils/useOptionalModel.d.ts +6 -0
  116. package/dist/Utils/useOptionalModel.js +13 -0
  117. package/dist/augments.d.ts +1 -1
  118. package/dist/index.d.ts +1 -1
  119. package/dist/theme.css +46 -42
  120. package/docs/README.md +2 -0
  121. package/docs/components/CalendarDate.md +1 -1
  122. package/docs/components/DataTable.md +371 -0
  123. package/docs/components/DateField.md +2 -2
  124. package/docs/components/DatePicker.md +3 -3
  125. package/docs/components/DateRangePicker.md +1 -1
  126. package/docs/components/NumberField.md +17 -6
  127. package/docs/components/Pagination.md +2 -2
  128. package/docs/components/Table.md +122 -0
  129. package/docs/examples/i18n-dictionary.ts +10 -0
  130. package/docs/examples/icon-fontawesome.ts +12 -0
  131. package/docs/examples/icon-heroicons.ts +12 -0
  132. package/docs/examples/icon-lucide.ts +12 -0
  133. package/docs/examples/icon-phosphor.ts +12 -0
  134. package/docs/examples/icon-tabler.ts +12 -0
  135. package/package.json +9 -2
@@ -0,0 +1,396 @@
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
+ columnsOverlay: { default: "auto" },
37
+ columnsShowFooter: {
38
+ type: Boolean,
39
+ default: void 0
40
+ },
41
+ customProps: {},
42
+ filterOverlay: { default: "auto" },
43
+ full: {
44
+ type: Boolean,
45
+ default: !0
46
+ },
47
+ getRowId: {},
48
+ hoverable: {
49
+ type: Boolean,
50
+ default: !1
51
+ },
52
+ loading: {
53
+ type: Boolean,
54
+ default: !1
55
+ },
56
+ loadingVariant: { default: "overlay" },
57
+ pageCount: {},
58
+ perPageOptions: {},
59
+ rounded: {},
60
+ rows: {},
61
+ selectionMode: {},
62
+ size: {},
63
+ stickyHeader: {
64
+ type: [String, Boolean],
65
+ default: !1
66
+ },
67
+ striped: {
68
+ type: Boolean,
69
+ default: !1
70
+ },
71
+ totalCount: {},
72
+ variant: {}
73
+ }, {
74
+ page: {},
75
+ pageModifiers: {},
76
+ perPage: {},
77
+ perPageModifiers: {},
78
+ search: {},
79
+ searchModifiers: {},
80
+ expanded: {},
81
+ expandedModifiers: {},
82
+ selection: {},
83
+ selectionModifiers: {},
84
+ filters: {},
85
+ filtersModifiers: {},
86
+ sorting: {},
87
+ sortingModifiers: {},
88
+ hiddenColumns: {},
89
+ hiddenColumnsModifiers: {},
90
+ columnSearch: {},
91
+ columnSearchModifiers: {}
92
+ }),
93
+ emits: [
94
+ "update:page",
95
+ "update:perPage",
96
+ "update:search",
97
+ "update:expanded",
98
+ "update:selection",
99
+ "update:filters",
100
+ "update:sorting",
101
+ "update:hiddenColumns",
102
+ "update:columnSearch"
103
+ ],
104
+ setup(m) {
105
+ let g = m, P = he(), F = e(), I = T(m, "page"), Se = T(m, "perPage"), L = T(m, "search"), Ce = T(m, "expanded"), we = T(m, "selection"), Te = T(m, "filters"), Ee = T(m, "sorting"), De = T(m, "hiddenColumns"), Oe = T(m, "columnSearch"), { merged: R, rowViews: ke, rootBind: Ae, emptyBind: je, showEmpty: z, frameBind: Me, tableProps: Ne, footerBind: Pe, loadingBar: B, showSearch: V, getHeadBind: Fe, headerViews: Ie, loadingBind: Le, onToggleRow: Re, toolbarBind: ze, getCellBind: H, columnCount: U, showPerPage: Be, showToolbar: Ve, getHeadAlign: He, getCellAlign: W, onTogglePage: Ue, summaryCells: G, expandEnabled: We, loadingBarBind: Ge, paginationBind: Ke, selectAllState: K, showPagination: qe, onChangeSearch: Je, onToggleExpand: Ye, visibilityItems: Xe, perPageSlotProps: q, resolvedPageCount: J, selectionMultiple: Y, visibilityEnabled: Ze, paginationSlotProps: X, onCommitColumnFilter: Qe, onHiddenColumnsChange: $e } = r(g, {
106
+ size: "md",
107
+ full: !0,
108
+ rounded: "lg",
109
+ loading: !1,
110
+ striped: !1,
111
+ variant: "plain",
112
+ hoverable: !1,
113
+ stickyHeader: !1,
114
+ filterOverlay: "auto",
115
+ columnsOverlay: "auto",
116
+ selectionMode: "multiple",
117
+ loadingVariant: "overlay"
118
+ }, {
119
+ page: I,
120
+ search: L,
121
+ perPage: Se,
122
+ filters: Te,
123
+ sorting: Ee,
124
+ expanded: Ce,
125
+ selection: we,
126
+ columnSearch: Oe,
127
+ hiddenColumns: De
128
+ }), Z = c(() => R.value.size === "lg" ? "md" : "sm");
129
+ function et(e, t) {
130
+ let n = P[`item.${t.id}`] ?? P.item;
131
+ return n ? n({
132
+ id: t.id,
133
+ row: e.original,
134
+ value: t.value
135
+ }) : t.content;
136
+ }
137
+ let Q = c({
138
+ get: () => I.value ?? 1,
139
+ set: (e) => {
140
+ I.value = e;
141
+ }
142
+ }), tt = c(() => q.value.options.map((e) => ({
143
+ value: e,
144
+ label: String(e)
145
+ }))), nt = c(() => {
146
+ let e = R.value.customProps?.perPage?.customProps;
147
+ return {
148
+ ...e,
149
+ listbox: {
150
+ showCheckmark: !1,
151
+ ...e?.listbox,
152
+ customProps: {
153
+ ...e?.listbox?.customProps,
154
+ menu: {
155
+ matchWidth: !0,
156
+ ...e?.listbox?.customProps?.menu
157
+ }
158
+ }
159
+ }
160
+ };
161
+ }), rt = me(), $ = (e) => e.node ?? null;
162
+ return (e, r) => (b(), d("div", y(h(w(Ae))), [w(Ve) ? (b(), d("div", y(_({ key: 0 }, w(ze))), [f("div", ge, [S(e.$slots, "toolbar")]), f("div", _e, [
163
+ w(Ze) ? (b(), d("div", ve, [p(ie, {
164
+ items: w(Xe),
165
+ overlay: w(R).columnsOverlay,
166
+ onChange: w($e),
167
+ "show-footer": w(R).columnsShowFooter
168
+ }, null, 8, [
169
+ "items",
170
+ "overlay",
171
+ "onChange",
172
+ "show-footer"
173
+ ])])) : u("", !0),
174
+ S(e.$slots, "toolbarActions"),
175
+ w(V) ? S(e.$slots, "search", {}, () => [p(oe, {
176
+ "model-value": L.value ?? "",
177
+ "onUpdate:modelValue": w(Je),
178
+ "field-props": w(R).customProps?.search
179
+ }, null, 8, [
180
+ "model-value",
181
+ "onUpdate:modelValue",
182
+ "field-props"
183
+ ])], void 0, 1) : u("", !0)
184
+ ])], 16)) : u("", !0), f("div", y(h(w(Me))), [
185
+ f("div", ye, [p(w(ce), y(h(w(Ne))), {
186
+ default: E(() => [
187
+ p(w(fe), y(h(w(R).customProps?.header)), {
188
+ default: E(() => [p(w(o), y(h(w(R).customProps?.row)), {
189
+ default: E(() => [(b(!0), d(s, null, x(w(Ie), (e) => (b(), l(w(de), _({
190
+ key: e.id,
191
+ align: w(He)(e)
192
+ }, { ref_for: !0 }, w(Fe)(e)), {
193
+ default: E(() => [e.isSelection && w(Y) ? (b(), l(i, {
194
+ key: 0,
195
+ kind: "page",
196
+ size: Z.value,
197
+ onChange: w(Ue),
198
+ checked: w(K).checked,
199
+ indeterminate: w(K).indeterminate,
200
+ "checkbox-props": w(R).customProps?.checkbox
201
+ }, null, 8, [
202
+ "size",
203
+ "onChange",
204
+ "checked",
205
+ "indeterminate",
206
+ "checkbox-props"
207
+ ])) : !e.isSelection && !e.isExpand ? (b(), d("div", be, [e.sortable ? (b(), l(se, {
208
+ key: 0,
209
+ sort: e.ariaSort
210
+ }, {
211
+ default: E(() => [p($, { node: e.header }, null, 8, ["node"])]),
212
+ _: 2
213
+ }, 1032, ["sort"])) : (b(), l($, {
214
+ key: 1,
215
+ node: e.header
216
+ }, null, 8, ["node"])), e.filterable ? (b(), l(ae, {
217
+ key: 2,
218
+ "column-id": e.id,
219
+ active: e.filterActive,
220
+ values: e.filterValues,
221
+ overlay: w(R).filterOverlay,
222
+ options: e.filterOptions,
223
+ searchable: e.searchable,
224
+ multiple: e.filterMultiple,
225
+ "search-value": e.searchQuery,
226
+ onApply: (t, n) => w(Qe)(e.id, t, n)
227
+ }, null, 8, [
228
+ "column-id",
229
+ "active",
230
+ "values",
231
+ "overlay",
232
+ "options",
233
+ "searchable",
234
+ "multiple",
235
+ "search-value",
236
+ "onApply"
237
+ ])) : u("", !0)])) : u("", !0)]),
238
+ _: 2
239
+ }, 1040, ["align"]))), 128))]),
240
+ _: 1
241
+ }, 16), w(R).loading && w(B) ? (b(), l(w(o), {
242
+ key: 0,
243
+ classes: { root: "h-0" }
244
+ }, {
245
+ default: E(() => [p(w(a), {
246
+ colspan: w(U),
247
+ classes: { root: "relative h-0 border-0 p-0 after:hidden" }
248
+ }, {
249
+ default: E(() => [f("div", y(h(w(Ge))), [S(e.$slots, "loading", {}, () => [p(w(ee), _({
250
+ size: "xs",
251
+ rounded: "none"
252
+ }, w(R).customProps?.progress), null, 16)])], 16)]),
253
+ _: 3
254
+ }, 8, ["colspan"])]),
255
+ _: 3
256
+ })) : u("", !0)]),
257
+ _: 3
258
+ }, 16),
259
+ p(w(le), y(h(w(R).customProps?.body)), {
260
+ default: E(() => [w(z) ? (b(), l(w(o), { key: 0 }, {
261
+ default: E(() => [p(w(a), {
262
+ align: "center",
263
+ colspan: w(U)
264
+ }, {
265
+ default: E(() => [f("div", y(h(w(je))), [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)]),
266
+ _: 3
267
+ }, 8, ["colspan"])]),
268
+ _: 3
269
+ })) : u("", !0), w(z) ? u("", !0) : (b(!0), d(s, { key: 1 }, x(w(ke), (t) => (b(), d(s, { key: t.id }, [p(w(o), _({ ref_for: !0 }, w(R).customProps?.row), {
270
+ default: E(() => [(b(!0), d(s, null, x(t.cells, (e) => (b(), l(w(a), _({
271
+ key: e.id,
272
+ align: w(W)(e)
273
+ }, { ref_for: !0 }, w(H)(e)), {
274
+ default: E(() => [e.isSelection ? (b(), l(i, {
275
+ key: 0,
276
+ kind: "row",
277
+ value: t.id,
278
+ size: Z.value,
279
+ name: w(rt),
280
+ checked: t.selected,
281
+ multiple: w(Y),
282
+ "radio-props": w(R).customProps?.radio,
283
+ "checkbox-props": w(R).customProps?.checkbox,
284
+ onChange: (e) => w(Re)(t.id, e)
285
+ }, null, 8, [
286
+ "value",
287
+ "size",
288
+ "name",
289
+ "checked",
290
+ "multiple",
291
+ "radio-props",
292
+ "checkbox-props",
293
+ "onChange"
294
+ ])) : e.isExpand ? (b(), d("button", {
295
+ key: 1,
296
+ type: "button",
297
+ "aria-label": "Expand row",
298
+ "aria-expanded": t.expanded,
299
+ onClick: (e) => w(Ye)(t.id, !t.expanded),
300
+ 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"
301
+ }, [f("span", { class: v([{ "rotate-90": t.expanded }, "inline-flex transition-transform duration-200 motion-reduce:transition-none"]) }, [p(w(n), {
302
+ size: "sm",
303
+ icon: "chevronRight"
304
+ })], 2)], 8, O)) : (b(), l(re, {
305
+ key: 2,
306
+ tooltip: e.tooltip,
307
+ ellipsis: e.ellipsis
308
+ }, {
309
+ default: E(() => [p($, { node: et(t, e) }, null, 8, ["node"])]),
310
+ _: 2
311
+ }, 1032, ["tooltip", "ellipsis"]))]),
312
+ _: 2
313
+ }, 1040, ["align"]))), 128))]),
314
+ _: 2
315
+ }, 1040), w(We) ? (b(), l(w(o), { key: 0 }, {
316
+ default: E(() => [p(w(a), {
317
+ colspan: w(U),
318
+ classes: { root: w(D)({
319
+ "p-0": !0,
320
+ "border-0": !t.expanded
321
+ }) }
322
+ }, {
323
+ default: E(() => [f("div", {
324
+ "aria-hidden": !t.expanded,
325
+ class: v(w(D)({
326
+ "grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none": !0,
327
+ "grid-rows-[1fr]": t.expanded,
328
+ "grid-rows-[0fr]": !t.expanded
329
+ }))
330
+ }, [f("div", A, [f("div", j, [S(e.$slots, "expanded", { row: t.original })])])], 10, k)]),
331
+ _: 2
332
+ }, 1032, ["colspan", "classes"])]),
333
+ _: 2
334
+ }, 1024)) : u("", !0)], 64))), 128))]),
335
+ _: 3
336
+ }, 16),
337
+ w(G) ? (b(), l(w(ue), { key: 0 }, {
338
+ default: E(() => [p(w(o), y(h(w(R).customProps?.row)), {
339
+ default: E(() => [(b(!0), d(s, null, x(w(G), (e) => (b(), l(w(a), _({
340
+ key: e.id,
341
+ align: w(W)(e)
342
+ }, { ref_for: !0 }, w(H)(e)), {
343
+ default: E(() => [p($, { node: e.content }, null, 8, ["node"])]),
344
+ _: 2
345
+ }, 1040, ["align"]))), 128))]),
346
+ _: 1
347
+ }, 16)]),
348
+ _: 1
349
+ })) : u("", !0)
350
+ ]),
351
+ _: 3
352
+ }, 16), w(R).loading ? (b(), d("div", _({ key: 0 }, w(Le), { "aria-hidden": w(B) || void 0 }), [w(B) ? u("", !0) : S(e.$slots, "loading", {}, () => [r[3] ||= f("span", {
353
+ role: "status",
354
+ "aria-label": "Loading",
355
+ class: "relative inline-block size-5 animate-spin motion-reduce:animate-none"
356
+ }, [
357
+ f("span", { class: "absolute inset-s-0 top-0 size-2 rounded-full bg-primary-500 opacity-30 dark:bg-primary-400" }),
358
+ f("span", { class: "absolute inset-e-0 top-0 size-2 rounded-full bg-primary-500 opacity-50 dark:bg-primary-400" }),
359
+ f("span", { class: "absolute inset-e-0 bottom-0 size-2 rounded-full bg-primary-500 dark:bg-primary-400" }),
360
+ f("span", { class: "absolute inset-s-0 bottom-0 size-2 rounded-full bg-primary-500 opacity-70 dark:bg-primary-400" })
361
+ ], -1)], void 0, 0)], 16, M)) : u("", !0)]),
362
+ w(t)(w(P), "footer") ? (b(), d("div", y(_({ key: 0 }, w(Pe))), [S(e.$slots, "footer")], 16)) : u("", !0),
363
+ w(qe) ? (b(), d("div", y(_({ key: 1 }, w(Ke))), [w(Be) ? 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(R).customProps?.perPage, {
364
+ overlay: "menu",
365
+ clearable: !1,
366
+ "hide-error-message": "",
367
+ "aria-label": "Per page",
368
+ options: tt.value,
369
+ "custom-props": nt.value,
370
+ "model-value": w(q).perPage,
371
+ "onUpdate:modelValue": r[0] ||= (e) => w(q).onPerPageChange(Number(e)),
372
+ classes: {
373
+ ...w(R).customProps?.perPage?.classes,
374
+ root: w(D)("w-20", w(R).customProps?.perPage?.classes?.root)
375
+ }
376
+ }), null, 16, [
377
+ "options",
378
+ "custom-props",
379
+ "model-value",
380
+ "classes"
381
+ ])])], void 0, 0) : u("", !0), S(e.$slots, "pagination", y(h(w(X))), () => [w(J) === void 0 ? u("", !0) : (b(), l(w(te), _({
382
+ key: 0,
383
+ modelValue: Q.value,
384
+ "onUpdate:modelValue": r[1] ||= (e) => Q.value = e,
385
+ count: w(J),
386
+ variant: w(X).variant
387
+ }, w(R).customProps?.pagination), null, 16, [
388
+ "modelValue",
389
+ "count",
390
+ "variant"
391
+ ]))])], 16)) : u("", !0)
392
+ ], 16)], 16));
393
+ }
394
+ });
395
+ //#endregion
396
+ 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,17 @@
1
+ import { FieldOverlayMode } from '@bridge-ui/core/Domain';
2
+ import { DataTableVisibilityItem } from './composables/useDataTable';
3
+ type __VLS_Props = {
4
+ items: DataTableVisibilityItem[];
5
+ overlay?: FieldOverlayMode;
6
+ showFooter?: boolean;
7
+ };
8
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
+ change: (hiddenIds: string[]) => any;
10
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onChange?: ((hiddenIds: string[]) => any) | undefined;
12
+ }>, {
13
+ overlay: FieldOverlayMode;
14
+ showFooter: boolean;
15
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
@@ -0,0 +1,92 @@
1
+ import { useResolveMessage as e } from "../../Adapters/I18n/useI18nAdapter.js";
2
+ import t from "../Button/Button.js";
3
+ import n from "../FieldOverlay/FieldOverlay.js";
4
+ import r from "../Checkbox/Checkbox.js";
5
+ import { useDataTableColumnsMenu as i } from "./composables/useDataTableColumnsMenu.js";
6
+ import a from "./DataTableToolbarButton.js";
7
+ import { Fragment as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, isRef as p, normalizeClass as m, openBlock as h, renderList as g, toDisplayString as _, unref as v, withCtx as y } from "vue";
8
+ import { cn as b } from "@bridge-ui/core/Utils";
9
+ //#region src/Components/DataTable/DataTableColumnsMenu.vue?vue&type=script&setup=true&lang.ts
10
+ var x = { class: "relative inline-flex items-center" }, S = ["aria-checked", "onClick"], C = {
11
+ key: 0,
12
+ class: "flex justify-end gap-2 border-t border-dark-200 px-2 pb-1 pt-1.5 dark:border-dark-700"
13
+ }, w = /*@__PURE__*/ f({
14
+ inheritAttrs: !1,
15
+ name: "DataTableColumnsMenu",
16
+ __name: "DataTableColumnsMenu",
17
+ props: {
18
+ items: {},
19
+ overlay: { default: "auto" },
20
+ showFooter: {
21
+ type: Boolean,
22
+ default: void 0
23
+ }
24
+ },
25
+ emits: ["change"],
26
+ setup(f, { emit: w }) {
27
+ let T = f, E = w, D = e(), { show: O, onApply: k, onReset: A, isHidden: j, triggerRef: M, controlSize: N, onToggleItem: P, onToggleShow: F, overlayCustomProps: I, showFooter: L } = i(T, (e) => {
28
+ E("change", e);
29
+ });
30
+ return (e, i) => (h(), c("span", x, [l("span", {
31
+ ref_key: "triggerRef",
32
+ ref: M,
33
+ class: "inline-flex"
34
+ }, [d(a, {
35
+ icon: "columns",
36
+ onClick: v(F),
37
+ label: v(D)("Columns")
38
+ }, null, 8, ["onClick", "label"])], 512), d(v(n), {
39
+ modelValue: v(O),
40
+ "onUpdate:modelValue": i[0] ||= (e) => p(O) ? O.value = e : null,
41
+ overlay: f.overlay,
42
+ "custom-props": v(I)
43
+ }, {
44
+ default: y(() => [l("div", { class: m(v(b)({
45
+ "min-w-52 overflow-hidden rounded-md bg-white shadow-lg ring-1 ring-black/5 dark:bg-dark-800 dark:ring-white/10": !0,
46
+ "p-1": !v(L),
47
+ "px-1 pb-0.5 pt-1": v(L)
48
+ })) }, [l("div", { class: m(v(b)({
49
+ "flex max-h-60 flex-col overflow-y-auto overscroll-contain bridge-soft-scrollbar": !0,
50
+ "pb-2": v(L)
51
+ })) }, [(h(!0), c(o, null, g(f.items, (e) => (h(), c("div", {
52
+ key: e.id,
53
+ role: "menuitemcheckbox",
54
+ "aria-checked": !v(j)(e),
55
+ onClick: (t) => v(P)(e),
56
+ 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"
57
+ }, [d(v(r), {
58
+ "hide-error-message": "",
59
+ size: v(N),
60
+ "end-label": e.label,
61
+ disabled: !e.hideable,
62
+ "model-value": !v(j)(e),
63
+ classes: { root: "pointer-events-none" }
64
+ }, null, 8, [
65
+ "size",
66
+ "end-label",
67
+ "disabled",
68
+ "model-value"
69
+ ])], 8, S))), 128))], 2), v(L) ? (h(), c("div", C, [d(v(t), {
70
+ size: "sm",
71
+ variant: "outline",
72
+ onClick: v(A)
73
+ }, {
74
+ default: y(() => [u(_(v(D)("Reset")), 1)]),
75
+ _: 1
76
+ }, 8, ["onClick"]), d(v(t), {
77
+ size: "sm",
78
+ onClick: v(k)
79
+ }, {
80
+ default: y(() => [u(_(v(D)("OK")), 1)]),
81
+ _: 1
82
+ }, 8, ["onClick"])])) : s("", !0)], 2)]),
83
+ _: 1
84
+ }, 8, [
85
+ "modelValue",
86
+ "overlay",
87
+ "custom-props"
88
+ ])]));
89
+ }
90
+ });
91
+ //#endregion
92
+ export { w 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,20 @@
1
+ import { DataTableFilterOption, FieldOverlayMode } from '@bridge-ui/core/Domain';
2
+ type __VLS_Props = {
3
+ active: boolean;
4
+ columnId: string;
5
+ multiple: boolean;
6
+ options: DataTableFilterOption[];
7
+ overlay?: FieldOverlayMode;
8
+ searchable: boolean;
9
+ searchValue: string;
10
+ values: string[];
11
+ };
12
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
13
+ apply: (values: string[], query: string) => any;
14
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ onApply?: ((values: string[], query: string) => any) | undefined;
16
+ }>, {
17
+ overlay: FieldOverlayMode;
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;