@bridge-ui/vue 0.1.1 → 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 (136) hide show
  1. package/ai/skills/bridge-ui-components/SKILL.md +4 -1
  2. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +1 -1
  3. package/dist/Components/CalendarRange/CalendarRange.vue_vue_type_script_setup_true_lang.js +135 -109
  4. package/dist/Components/CalendarRange/calendarRange.types.d.ts +17 -5
  5. package/dist/Components/CalendarRange/composables/useCalendarRange.d.ts +4 -2
  6. package/dist/Components/CalendarRange/composables/useCalendarRange.js +85 -86
  7. package/dist/Components/ColorField/composables/useColorField.d.ts +2 -1
  8. package/dist/Components/DataTable/DataTable.js +5 -0
  9. package/dist/Components/DataTable/DataTable.vue.d.ts +43 -0
  10. package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +382 -0
  11. package/dist/Components/DataTable/DataTableCellContent.js +5 -0
  12. package/dist/Components/DataTable/DataTableCellContent.vue.d.ts +23 -0
  13. package/dist/Components/DataTable/DataTableCellContent.vue_vue_type_script_setup_true_lang.js +38 -0
  14. package/dist/Components/DataTable/DataTableColumnsMenu.js +5 -0
  15. package/dist/Components/DataTable/DataTableColumnsMenu.vue.d.ts +11 -0
  16. package/dist/Components/DataTable/DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js +47 -0
  17. package/dist/Components/DataTable/DataTableFilterMenu.js +5 -0
  18. package/dist/Components/DataTable/DataTableFilterMenu.vue.d.ts +17 -0
  19. package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +132 -0
  20. package/dist/Components/DataTable/DataTableFilterOptions.js +5 -0
  21. package/dist/Components/DataTable/DataTableFilterOptions.vue.d.ts +14 -0
  22. package/dist/Components/DataTable/DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js +73 -0
  23. package/dist/Components/DataTable/DataTableSearch.js +5 -0
  24. package/dist/Components/DataTable/DataTableSearch.vue.d.ts +12 -0
  25. package/dist/Components/DataTable/DataTableSearch.vue_vue_type_script_setup_true_lang.js +39 -0
  26. package/dist/Components/DataTable/DataTableSelection.js +5 -0
  27. package/dist/Components/DataTable/DataTableSelection.vue.d.ts +20 -0
  28. package/dist/Components/DataTable/DataTableSelection.vue_vue_type_script_setup_true_lang.js +55 -0
  29. package/dist/Components/DataTable/DataTableSortButton.js +5 -0
  30. package/dist/Components/DataTable/DataTableSortButton.vue.d.ts +17 -0
  31. package/dist/Components/DataTable/DataTableSortButton.vue_vue_type_script_setup_true_lang.js +43 -0
  32. package/dist/Components/DataTable/DataTableToolbarButton.js +5 -0
  33. package/dist/Components/DataTable/DataTableToolbarButton.vue.d.ts +13 -0
  34. package/dist/Components/DataTable/DataTableToolbarButton.vue_vue_type_script_setup_true_lang.js +31 -0
  35. package/dist/Components/DataTable/composables/useDataTable.d.ts +557 -0
  36. package/dist/Components/DataTable/composables/useDataTable.js +479 -0
  37. package/dist/Components/DataTable/dataTable.types.d.ts +480 -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/composables/useDateField.d.ts +2 -1
  41. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +2 -1
  42. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +2 -1
  43. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +2 -1
  44. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +1 -6
  45. package/dist/Components/Drawer/composables/useDrawer.js +1 -1
  46. package/dist/Components/FieldOverlay/FieldOverlay.vue_vue_type_script_setup_true_lang.js +35 -35
  47. package/dist/Components/FieldOverlay/composables/useFieldOverlay.d.ts +1 -0
  48. package/dist/Components/FieldOverlay/composables/useFieldOverlay.js +21 -19
  49. package/dist/Components/FieldOverlay/fieldOverlay.types.d.ts +11 -3
  50. package/dist/Components/FormField/composables/useFormField.d.ts +1 -1
  51. package/dist/Components/Listbox/composables/useListbox.js +1 -1
  52. package/dist/Components/Menu/Menu.vue_vue_type_script_setup_true_lang.js +1 -0
  53. package/dist/Components/Menu/composables/useMenu.d.ts +1 -1
  54. package/dist/Components/Menu/composables/useMenu.js +7 -3
  55. package/dist/Components/Menu/menu.types.d.ts +6 -0
  56. package/dist/Components/Modal/composables/useModal.js +1 -1
  57. package/dist/Components/NumberField/composables/useNumberField.d.ts +1 -1
  58. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +1 -1
  59. package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +9 -9
  60. package/dist/Components/Radio/composables/useRadio.js +57 -54
  61. package/dist/Components/Select/composables/useSelect.d.ts +1 -1
  62. package/dist/Components/Slider/composables/useSlider.d.ts +2 -2
  63. package/dist/Components/Snackbar/composables/useSnackbar.d.ts +1 -1
  64. package/dist/Components/Table/Table.js +5 -0
  65. package/dist/Components/Table/Table.vue.d.ts +16 -0
  66. package/dist/Components/Table/Table.vue_vue_type_script_setup_true_lang.js +44 -0
  67. package/dist/Components/Table/TableBody.js +5 -0
  68. package/dist/Components/Table/TableBody.vue.d.ts +11 -0
  69. package/dist/Components/Table/TableBody.vue_vue_type_script_setup_true_lang.js +17 -0
  70. package/dist/Components/Table/TableCaption.js +5 -0
  71. package/dist/Components/Table/TableCaption.vue.d.ts +11 -0
  72. package/dist/Components/Table/TableCaption.vue_vue_type_script_setup_true_lang.js +17 -0
  73. package/dist/Components/Table/TableCell.js +5 -0
  74. package/dist/Components/Table/TableCell.vue.d.ts +11 -0
  75. package/dist/Components/Table/TableCell.vue_vue_type_script_setup_true_lang.js +19 -0
  76. package/dist/Components/Table/TableFooter.js +5 -0
  77. package/dist/Components/Table/TableFooter.vue.d.ts +11 -0
  78. package/dist/Components/Table/TableFooter.vue_vue_type_script_setup_true_lang.js +17 -0
  79. package/dist/Components/Table/TableHead.js +5 -0
  80. package/dist/Components/Table/TableHead.vue.d.ts +11 -0
  81. package/dist/Components/Table/TableHead.vue_vue_type_script_setup_true_lang.js +19 -0
  82. package/dist/Components/Table/TableHeader.js +5 -0
  83. package/dist/Components/Table/TableHeader.vue.d.ts +11 -0
  84. package/dist/Components/Table/TableHeader.vue_vue_type_script_setup_true_lang.js +17 -0
  85. package/dist/Components/Table/TableRow.js +5 -0
  86. package/dist/Components/Table/TableRow.vue.d.ts +11 -0
  87. package/dist/Components/Table/TableRow.vue_vue_type_script_setup_true_lang.js +17 -0
  88. package/dist/Components/Table/composables/useTable.d.ts +16 -0
  89. package/dist/Components/Table/composables/useTable.js +88 -0
  90. package/dist/Components/Table/composables/useTableCell.d.ts +12 -0
  91. package/dist/Components/Table/composables/useTableCell.js +40 -0
  92. package/dist/Components/Table/composables/useTablePart.d.ts +12 -0
  93. package/dist/Components/Table/composables/useTablePart.js +32 -0
  94. package/dist/Components/Table/composables/useTableRow.d.ts +6 -0
  95. package/dist/Components/Table/composables/useTableRow.js +29 -0
  96. package/dist/Components/Table/index.d.ts +14 -0
  97. package/dist/Components/Table/index.js +14 -0
  98. package/dist/Components/Table/table.types.d.ts +416 -0
  99. package/dist/Components/Table/tableInjectionKey.d.ts +114 -0
  100. package/dist/Components/Table/tableInjectionKey.js +4 -0
  101. package/dist/Components/TextField/composables/useTextField.d.ts +1 -1
  102. package/dist/Components/Textarea/composables/useTextarea.d.ts +1 -1
  103. package/dist/Components/TimeField/composables/useTimeField.d.ts +2 -1
  104. package/dist/Components/TimePanel/composables/useTimePanel.d.ts +4 -0
  105. package/dist/Components/TimePanel/composables/useTimePanel.js +13 -12
  106. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +2 -1
  107. package/dist/Components/TimeRangePicker/TimeRangePicker.vue_vue_type_script_setup_true_lang.js +103 -89
  108. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.d.ts +4 -2
  109. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.js +55 -54
  110. package/dist/Components/TimeRangePicker/timeRangePicker.types.d.ts +1 -7
  111. package/dist/index.js +32 -32
  112. package/dist/theme.css +2 -0
  113. package/docs/README.md +6 -0
  114. package/docs/ScrollUtilities.md +89 -0
  115. package/docs/components/Autocomplete.md +2 -0
  116. package/docs/components/CalendarDate.md +1 -1
  117. package/docs/components/CalendarRange.md +4 -3
  118. package/docs/components/DataTable.md +345 -0
  119. package/docs/components/DateField.md +2 -2
  120. package/docs/components/DatePicker.md +3 -3
  121. package/docs/components/DateRangePicker.md +4 -3
  122. package/docs/components/Drawer.md +21 -21
  123. package/docs/components/FieldOverlay.md +19 -8
  124. package/docs/components/Modal.md +19 -19
  125. package/docs/components/Pagination.md +2 -2
  126. package/docs/components/Select.md +2 -0
  127. package/docs/components/Table.md +122 -0
  128. package/docs/components/TimePanel.md +2 -0
  129. package/docs/components/TimeRangePicker.md +0 -1
  130. package/docs/examples/i18n-dictionary.ts +4 -0
  131. package/docs/examples/icon-fontawesome.ts +8 -0
  132. package/docs/examples/icon-heroicons.ts +8 -0
  133. package/docs/examples/icon-lucide.ts +8 -0
  134. package/docs/examples/icon-phosphor.ts +8 -0
  135. package/docs/examples/icon-tabler.ts +8 -0
  136. package/package.json +9 -2
@@ -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;
@@ -0,0 +1,132 @@
1
+ import { useResolveMessage as e } from "../../Adapters/I18n/useI18nAdapter.js";
2
+ import t from "../Icon/Icon.js";
3
+ import n from "../Button/Button.js";
4
+ import r from "../Menu/Menu.js";
5
+ import i from "../Checkbox/Checkbox.js";
6
+ import a from "../TextField/TextField.js";
7
+ import o from "./DataTableFilterOptions.js";
8
+ import { computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, createVNode as p, defineComponent as m, normalizeClass as h, openBlock as g, ref as _, unref as v, watch as y, withCtx as b } from "vue";
9
+ import { flattenDataTableFilterOptionValues as x, setDataTableFilterDraftAll as S, toggleDataTableFilterDraft as C } from "@bridge-ui/core/Domain";
10
+ import { cn as w } from "@bridge-ui/core/Utils";
11
+ //#region src/Components/DataTable/DataTableFilterMenu.vue?vue&type=script&setup=true&lang.ts
12
+ var T = ["aria-pressed"], E = { class: "min-w-52 px-1 pb-0.5 pt-2.5" }, D = {
13
+ key: 0,
14
+ class: "px-1 pb-1.5"
15
+ }, O = {
16
+ key: 1,
17
+ class: "flex max-h-60 flex-col gap-0.5 overflow-y-auto pb-2"
18
+ }, k = ["aria-checked"], A = { class: "flex justify-end gap-2 border-t border-dark-200 px-2 pb-1 pt-1.5 dark:border-dark-700" }, j = /*@__PURE__*/ m({
19
+ inheritAttrs: !1,
20
+ name: "DataTableFilterMenu",
21
+ __name: "DataTableFilterMenu",
22
+ props: {
23
+ active: { type: Boolean },
24
+ columnId: {},
25
+ multiple: { type: Boolean },
26
+ options: {},
27
+ searchable: { type: Boolean },
28
+ searchValue: {},
29
+ values: {}
30
+ },
31
+ emits: ["apply"],
32
+ setup(m, { emit: j }) {
33
+ let M = m, N = j, P = _(!1), F = _([]), I = _(""), L = e(), R = s(() => L("Search")), z = s(() => x(M.options)), B = s(() => z.value.length > 0 && z.value.every((e) => F.value.includes(e))), V = s(() => {
34
+ let e = z.value.filter((e) => F.value.includes(e)).length;
35
+ return e > 0 && e < z.value.length;
36
+ });
37
+ y(P, (e) => {
38
+ e && (I.value = M.searchValue, F.value = [...M.values]);
39
+ });
40
+ function H(e, t) {
41
+ F.value = C(F.value, e, t, M.multiple);
42
+ }
43
+ function U() {
44
+ F.value = S(F.value, z.value, !B.value);
45
+ }
46
+ function W() {
47
+ F.value = [], I.value = "";
48
+ }
49
+ function G() {
50
+ N("apply", F.value, I.value), P.value = !1;
51
+ }
52
+ return (e, s) => (g(), c(v(r), {
53
+ modelValue: P.value,
54
+ "onUpdate:modelValue": s[1] ||= (e) => P.value = e,
55
+ placement: "bottom",
56
+ "custom-props": {
57
+ root: { class: "relative z-[2] inline-flex items-center leading-none" },
58
+ trigger: { class: "inline-flex items-center leading-none" }
59
+ }
60
+ }, {
61
+ trigger: b(() => [d("button", {
62
+ type: "button",
63
+ "aria-pressed": m.active,
64
+ "aria-label": "Filter column",
65
+ class: h(v(w)({
66
+ "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": !0,
67
+ "text-primary-600": m.active
68
+ }))
69
+ }, [p(v(t), {
70
+ size: "sm",
71
+ icon: "filter"
72
+ })], 10, T)]),
73
+ default: b(() => [d("div", E, [
74
+ m.searchable ? (g(), u("div", D, [p(v(a), {
75
+ size: "sm",
76
+ "hide-error-message": "",
77
+ "start-icon": "search",
78
+ modelValue: I.value,
79
+ "onUpdate:modelValue": s[0] ||= (e) => I.value = e,
80
+ "aria-label": R.value,
81
+ placeholder: R.value
82
+ }, null, 8, [
83
+ "modelValue",
84
+ "aria-label",
85
+ "placeholder"
86
+ ])])) : l("", !0),
87
+ m.options.length > 0 ? (g(), u("div", O, [m.multiple && z.value.length > 0 ? (g(), u("div", {
88
+ key: 0,
89
+ role: "menuitemcheckbox",
90
+ "aria-checked": B.value,
91
+ onClick: U,
92
+ 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"
93
+ }, [p(v(i), {
94
+ size: "sm",
95
+ "hide-error-message": "",
96
+ "model-value": B.value,
97
+ "end-label": "Select all items",
98
+ indeterminate: V.value,
99
+ classes: { root: "pointer-events-none" }
100
+ }, null, 8, ["model-value", "indeterminate"])], 8, k)) : l("", !0), p(o, {
101
+ options: m.options,
102
+ draft: F.value,
103
+ multiple: m.multiple,
104
+ onToggle: H,
105
+ name: `filter-${m.columnId}`
106
+ }, null, 8, [
107
+ "options",
108
+ "draft",
109
+ "multiple",
110
+ "name"
111
+ ])])) : l("", !0),
112
+ d("div", A, [p(v(n), {
113
+ size: "sm",
114
+ variant: "outline",
115
+ onClick: W
116
+ }, {
117
+ default: b(() => [...s[2] ||= [f(" Reset ", -1)]]),
118
+ _: 1
119
+ }), p(v(n), {
120
+ size: "sm",
121
+ onClick: G
122
+ }, {
123
+ default: b(() => [...s[3] ||= [f("OK", -1)]]),
124
+ _: 1
125
+ })])
126
+ ])]),
127
+ _: 1
128
+ }, 8, ["modelValue"]));
129
+ }
130
+ });
131
+ //#endregion
132
+ export { j as default };
@@ -0,0 +1,5 @@
1
+ import e from "./DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/Components/DataTable/DataTableFilterOptions.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };