@bridge-ui/vue 0.3.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 (69) hide show
  1. package/dist/Components/Autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +40 -45
  2. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +1 -0
  3. package/dist/Components/ColorField/ColorField.vue_vue_type_script_setup_true_lang.js +39 -44
  4. package/dist/Components/ColorField/composables/useColorField.d.ts +1 -0
  5. package/dist/Components/DataTable/DataTable.vue.d.ts +3 -3
  6. package/dist/Components/DataTable/DataTable.vue_vue_type_script_setup_true_lang.js +86 -72
  7. package/dist/Components/DataTable/DataTableColumnsMenu.vue.d.ts +9 -3
  8. package/dist/Components/DataTable/DataTableColumnsMenu.vue_vue_type_script_setup_true_lang.js +71 -26
  9. package/dist/Components/DataTable/DataTableFilterMenu.vue.d.ts +5 -2
  10. package/dist/Components/DataTable/DataTableFilterMenu.vue_vue_type_script_setup_true_lang.js +94 -75
  11. package/dist/Components/DataTable/DataTableFilterOptions.vue.d.ts +4 -1
  12. package/dist/Components/DataTable/DataTableFilterOptions.vue_vue_type_script_setup_true_lang.js +12 -4
  13. package/dist/Components/DataTable/DataTableSelection.vue_vue_type_script_setup_true_lang.js +22 -21
  14. package/dist/Components/DataTable/DataTableToolbarButton.vue.d.ts +2 -1
  15. package/dist/Components/DataTable/composables/useDataTable.d.ts +12 -4
  16. package/dist/Components/DataTable/composables/useDataTable.js +254 -222
  17. package/dist/Components/DataTable/composables/useDataTableColumnsMenu.d.ts +27 -0
  18. package/dist/Components/DataTable/composables/useDataTableColumnsMenu.js +54 -0
  19. package/dist/Components/DataTable/dataTable.types.d.ts +26 -9
  20. package/dist/Components/DataTable/index.d.ts +1 -1
  21. package/dist/Components/DateField/DateField.vue_vue_type_script_setup_true_lang.js +52 -57
  22. package/dist/Components/DateField/composables/useDateField.d.ts +1 -0
  23. package/dist/Components/DateRangeField/DateRangeField.vue_vue_type_script_setup_true_lang.js +50 -55
  24. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +1 -0
  25. package/dist/Components/DateTimeField/DateTimeField.vue_vue_type_script_setup_true_lang.js +56 -61
  26. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +1 -0
  27. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue_vue_type_script_setup_true_lang.js +56 -61
  28. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +1 -0
  29. package/dist/Components/FormField/composables/useFormField.d.ts +1 -0
  30. package/dist/Components/FormField/composables/useFormField.js +80 -75
  31. package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +53 -43
  32. package/dist/Components/NumberField/composables/useNumberField.d.ts +8 -1
  33. package/dist/Components/NumberField/composables/useNumberField.js +49 -36
  34. package/dist/Components/NumberField/index.d.ts +1 -1
  35. package/dist/Components/NumberField/numberField.types.d.ts +13 -1
  36. package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +28 -33
  37. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +1 -0
  38. package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +42 -47
  39. package/dist/Components/Select/composables/useSelect.d.ts +1 -0
  40. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +43 -48
  41. package/dist/Components/Slider/composables/useSlider.d.ts +1 -1
  42. package/dist/Components/Table/Table.vue_vue_type_script_setup_true_lang.js +2 -2
  43. package/dist/Components/Table/composables/useTable.d.ts +3 -0
  44. package/dist/Components/Table/composables/useTable.js +1 -0
  45. package/dist/Components/Table/table.types.d.ts +2 -1
  46. package/dist/Components/TextField/TextField.vue_vue_type_script_setup_true_lang.js +11 -16
  47. package/dist/Components/TextField/composables/useTextField.d.ts +1 -0
  48. package/dist/Components/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +15 -20
  49. package/dist/Components/Textarea/composables/useTextarea.d.ts +1 -0
  50. package/dist/Components/TimeField/TimeField.vue_vue_type_script_setup_true_lang.js +45 -50
  51. package/dist/Components/TimeField/composables/useTimeField.d.ts +1 -0
  52. package/dist/Components/TimeRangeField/TimeRangeField.vue_vue_type_script_setup_true_lang.js +45 -50
  53. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +1 -0
  54. package/dist/Utils/index.d.ts +1 -0
  55. package/dist/Utils/index.js +28 -27
  56. package/dist/Utils/useOptionalModel.d.ts +6 -0
  57. package/dist/Utils/useOptionalModel.js +13 -0
  58. package/dist/augments.d.ts +1 -1
  59. package/dist/index.d.ts +1 -1
  60. package/dist/theme.css +46 -42
  61. package/docs/components/DataTable.md +42 -16
  62. package/docs/components/NumberField.md +17 -6
  63. package/docs/examples/i18n-dictionary.ts +6 -0
  64. package/docs/examples/icon-fontawesome.ts +4 -0
  65. package/docs/examples/icon-heroicons.ts +4 -0
  66. package/docs/examples/icon-lucide.ts +4 -0
  67. package/docs/examples/icon-phosphor.ts +4 -0
  68. package/docs/examples/icon-tabler.ts +4 -0
  69. package/package.json +2 -2
@@ -33,7 +33,13 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
33
33
  props: /*@__PURE__*/ g({
34
34
  classes: {},
35
35
  columns: {},
36
+ columnsOverlay: { default: "auto" },
37
+ columnsShowFooter: {
38
+ type: Boolean,
39
+ default: void 0
40
+ },
36
41
  customProps: {},
42
+ filterOverlay: { default: "auto" },
37
43
  full: {
38
44
  type: Boolean,
39
45
  default: !0
@@ -49,7 +55,6 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
49
55
  },
50
56
  loadingVariant: { default: "overlay" },
51
57
  pageCount: {},
52
- paginationAlign: { default: "end" },
53
58
  perPageOptions: {},
54
59
  rounded: {},
55
60
  rows: {},
@@ -70,6 +75,8 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
70
75
  pageModifiers: {},
71
76
  perPage: {},
72
77
  perPageModifiers: {},
78
+ search: {},
79
+ searchModifiers: {},
73
80
  expanded: {},
74
81
  expandedModifiers: {},
75
82
  selection: {},
@@ -81,23 +88,21 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
81
88
  hiddenColumns: {},
82
89
  hiddenColumnsModifiers: {},
83
90
  columnSearch: {},
84
- columnSearchModifiers: {},
85
- search: {},
86
- searchModifiers: {}
91
+ columnSearchModifiers: {}
87
92
  }),
88
93
  emits: [
89
94
  "update:page",
90
95
  "update:perPage",
96
+ "update:search",
91
97
  "update:expanded",
92
98
  "update:selection",
93
99
  "update:filters",
94
100
  "update:sorting",
95
101
  "update:hiddenColumns",
96
- "update:columnSearch",
97
- "update:search"
102
+ "update:columnSearch"
98
103
  ],
99
104
  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, {
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, {
101
106
  size: "md",
102
107
  full: !0,
103
108
  rounded: "lg",
@@ -106,21 +111,22 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
106
111
  variant: "plain",
107
112
  hoverable: !1,
108
113
  stickyHeader: !1,
109
- paginationAlign: "end",
114
+ filterOverlay: "auto",
115
+ columnsOverlay: "auto",
110
116
  selectionMode: "multiple",
111
117
  loadingVariant: "overlay"
112
118
  }, {
113
119
  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) {
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) {
124
130
  let n = P[`item.${t.id}`] ?? P.item;
125
131
  return n ? n({
126
132
  id: t.id,
@@ -133,11 +139,11 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
133
139
  set: (e) => {
134
140
  I.value = e;
135
141
  }
136
- }), et = c(() => q.value.options.map((e) => ({
142
+ }), tt = c(() => q.value.options.map((e) => ({
137
143
  value: e,
138
144
  label: String(e)
139
- }))), tt = c(() => {
140
- let e = z.value.customProps?.perPage?.customProps;
145
+ }))), nt = c(() => {
146
+ let e = R.value.customProps?.perPage?.customProps;
141
147
  return {
142
148
  ...e,
143
149
  listbox: {
@@ -152,40 +158,46 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
152
158
  }
153
159
  }
154
160
  };
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))), {
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))), {
174
186
  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), _({
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), _({
178
190
  key: e.id,
179
- align: w(Ve)(e)
180
- }, { ref_for: !0 }, w(Pe)(e)), {
191
+ align: w(He)(e)
192
+ }, { ref_for: !0 }, w(Fe)(e)), {
181
193
  default: E(() => [e.isSelection && w(Y) ? (b(), l(i, {
182
194
  key: 0,
183
195
  kind: "page",
184
196
  size: Z.value,
185
- onChange: w(He),
197
+ onChange: w(Ue),
186
198
  checked: w(K).checked,
187
199
  indeterminate: w(K).indeterminate,
188
- "checkbox-props": w(z).customProps?.checkbox
200
+ "checkbox-props": w(R).customProps?.checkbox
189
201
  }, null, 8, [
190
202
  "size",
191
203
  "onChange",
@@ -206,15 +218,17 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
206
218
  "column-id": e.id,
207
219
  active: e.filterActive,
208
220
  values: e.filterValues,
221
+ overlay: w(R).filterOverlay,
209
222
  options: e.filterOptions,
210
223
  searchable: e.searchable,
211
224
  multiple: e.filterMultiple,
212
225
  "search-value": e.searchQuery,
213
- onApply: (t, n) => w(Ze)(e.id, t, n)
226
+ onApply: (t, n) => w(Qe)(e.id, t, n)
214
227
  }, null, 8, [
215
228
  "column-id",
216
229
  "active",
217
230
  "values",
231
+ "overlay",
218
232
  "options",
219
233
  "searchable",
220
234
  "multiple",
@@ -224,7 +238,7 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
224
238
  _: 2
225
239
  }, 1040, ["align"]))), 128))]),
226
240
  _: 1
227
- }, 16), w(z).loading && w(V) ? (b(), l(w(o), {
241
+ }, 16), w(R).loading && w(B) ? (b(), l(w(o), {
228
242
  key: 0,
229
243
  classes: { root: "h-0" }
230
244
  }, {
@@ -232,27 +246,27 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
232
246
  colspan: w(U),
233
247
  classes: { root: "relative h-0 border-0 p-0 after:hidden" }
234
248
  }, {
235
- default: E(() => [f("div", y(h(w(We))), [S(e.$slots, "loading", {}, () => [p(w(ee), _({
249
+ default: E(() => [f("div", y(h(w(Ge))), [S(e.$slots, "loading", {}, () => [p(w(ee), _({
236
250
  size: "xs",
237
251
  rounded: "none"
238
- }, w(z).customProps?.progress), null, 16)])], 16)]),
252
+ }, w(R).customProps?.progress), null, 16)])], 16)]),
239
253
  _: 3
240
254
  }, 8, ["colspan"])]),
241
255
  _: 3
242
256
  })) : u("", !0)]),
243
257
  _: 3
244
258
  }, 16),
245
- p(w(le), y(h(w(z).customProps?.body)), {
246
- default: E(() => [w(B) ? (b(), l(w(o), { key: 0 }, {
259
+ p(w(le), y(h(w(R).customProps?.body)), {
260
+ default: E(() => [w(z) ? (b(), l(w(o), { key: 0 }, {
247
261
  default: E(() => [p(w(a), {
248
262
  align: "center",
249
263
  colspan: w(U)
250
264
  }, {
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)]),
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)]),
252
266
  _: 3
253
267
  }, 8, ["colspan"])]),
254
268
  _: 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), {
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), {
256
270
  default: E(() => [(b(!0), d(s, null, x(t.cells, (e) => (b(), l(w(a), _({
257
271
  key: e.id,
258
272
  align: w(W)(e)
@@ -262,12 +276,12 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
262
276
  kind: "row",
263
277
  value: t.id,
264
278
  size: Z.value,
265
- name: w(nt),
279
+ name: w(rt),
266
280
  checked: t.selected,
267
281
  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)
282
+ "radio-props": w(R).customProps?.radio,
283
+ "checkbox-props": w(R).customProps?.checkbox,
284
+ onChange: (e) => w(Re)(t.id, e)
271
285
  }, null, 8, [
272
286
  "value",
273
287
  "size",
@@ -282,7 +296,7 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
282
296
  type: "button",
283
297
  "aria-label": "Expand row",
284
298
  "aria-expanded": t.expanded,
285
- onClick: (e) => w(Je)(t.id, !t.expanded),
299
+ onClick: (e) => w(Ye)(t.id, !t.expanded),
286
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"
287
301
  }, [f("span", { class: v([{ "rotate-90": t.expanded }, "inline-flex transition-transform duration-200 motion-reduce:transition-none"]) }, [p(w(n), {
288
302
  size: "sm",
@@ -292,13 +306,13 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
292
306
  tooltip: e.tooltip,
293
307
  ellipsis: e.ellipsis
294
308
  }, {
295
- default: E(() => [p($, { node: $e(t, e) }, null, 8, ["node"])]),
309
+ default: E(() => [p($, { node: et(t, e) }, null, 8, ["node"])]),
296
310
  _: 2
297
311
  }, 1032, ["tooltip", "ellipsis"]))]),
298
312
  _: 2
299
313
  }, 1040, ["align"]))), 128))]),
300
314
  _: 2
301
- }, 1040), w(Ue) ? (b(), l(w(o), { key: 0 }, {
315
+ }, 1040), w(We) ? (b(), l(w(o), { key: 0 }, {
302
316
  default: E(() => [p(w(a), {
303
317
  colspan: w(U),
304
318
  classes: { root: w(D)({
@@ -321,7 +335,7 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
321
335
  _: 3
322
336
  }, 16),
323
337
  w(G) ? (b(), l(w(ue), { key: 0 }, {
324
- default: E(() => [p(w(o), y(h(w(z).customProps?.row)), {
338
+ default: E(() => [p(w(o), y(h(w(R).customProps?.row)), {
325
339
  default: E(() => [(b(!0), d(s, null, x(w(G), (e) => (b(), l(w(a), _({
326
340
  key: e.id,
327
341
  align: w(W)(e)
@@ -335,7 +349,7 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
335
349
  })) : u("", !0)
336
350
  ]),
337
351
  _: 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", {
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", {
339
353
  role: "status",
340
354
  "aria-label": "Loading",
341
355
  class: "relative inline-block size-5 animate-spin motion-reduce:animate-none"
@@ -345,19 +359,19 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
345
359
  f("span", { class: "absolute inset-e-0 bottom-0 size-2 rounded-full bg-primary-500 dark:bg-primary-400" }),
346
360
  f("span", { class: "absolute inset-s-0 bottom-0 size-2 rounded-full bg-primary-500 opacity-70 dark:bg-primary-400" })
347
361
  ], -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, {
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, {
350
364
  overlay: "menu",
351
365
  clearable: !1,
352
366
  "hide-error-message": "",
353
367
  "aria-label": "Per page",
354
- options: et.value,
355
- "custom-props": tt.value,
368
+ options: tt.value,
369
+ "custom-props": nt.value,
356
370
  "model-value": w(q).perPage,
357
371
  "onUpdate:modelValue": r[0] ||= (e) => w(q).onPerPageChange(Number(e)),
358
372
  classes: {
359
- ...w(z).customProps?.perPage?.classes,
360
- root: w(D)("w-20", w(z).customProps?.perPage?.classes?.root)
373
+ ...w(R).customProps?.perPage?.classes,
374
+ root: w(D)("w-20", w(R).customProps?.perPage?.classes?.root)
361
375
  }
362
376
  }), null, 16, [
363
377
  "options",
@@ -370,12 +384,12 @@ var ge = { class: "min-w-0 flex-1" }, _e = { class: "flex shrink-0 items-center
370
384
  "onUpdate:modelValue": r[1] ||= (e) => Q.value = e,
371
385
  count: w(J),
372
386
  variant: w(X).variant
373
- }, w(z).customProps?.pagination), null, 16, [
387
+ }, w(R).customProps?.pagination), null, 16, [
374
388
  "modelValue",
375
389
  "count",
376
390
  "variant"
377
391
  ]))])], 16)) : u("", !0)
378
- ], 16));
392
+ ], 16)], 16));
379
393
  }
380
394
  });
381
395
  //#endregion
@@ -1,11 +1,17 @@
1
+ import { FieldOverlayMode } from '@bridge-ui/core/Domain';
1
2
  import { DataTableVisibilityItem } from './composables/useDataTable';
2
3
  type __VLS_Props = {
3
4
  items: DataTableVisibilityItem[];
5
+ overlay?: FieldOverlayMode;
6
+ showFooter?: boolean;
4
7
  };
5
8
  declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
6
- toggle: (columnId: string, hide: boolean) => any;
9
+ change: (hiddenIds: string[]) => any;
7
10
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
8
- onToggle?: ((columnId: string, hide: boolean) => any) | undefined;
9
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ onChange?: ((hiddenIds: string[]) => any) | undefined;
12
+ }>, {
13
+ overlay: FieldOverlayMode;
14
+ showFooter: boolean;
15
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
10
16
  declare const _default: typeof __VLS_export;
11
17
  export default _default;
@@ -1,47 +1,92 @@
1
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";
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";
6
9
  //#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({
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({
8
14
  inheritAttrs: !1,
9
15
  name: "DataTableColumnsMenu",
10
16
  __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"
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)
19
43
  }, {
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", {
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", {
25
52
  key: e.id,
26
53
  role: "menuitemcheckbox",
27
- "aria-checked": !e.hidden,
28
- onClick: (t) => e.hideable && v("toggle", e.id, !e.hidden),
54
+ "aria-checked": !v(j)(e),
55
+ onClick: (t) => v(P)(e),
29
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"
30
- }, [c(p(n), {
31
- size: "sm",
57
+ }, [d(v(r), {
32
58
  "hide-error-message": "",
59
+ size: v(N),
33
60
  "end-label": e.label,
34
61
  disabled: !e.hideable,
35
- "model-value": !e.hidden,
62
+ "model-value": !v(j)(e),
36
63
  classes: { root: "pointer-events-none" }
37
64
  }, null, 8, [
65
+ "size",
38
66
  "end-label",
39
67
  "disabled",
40
68
  "model-value"
41
- ])], 8, g))), 128))])]),
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)]),
42
83
  _: 1
43
- }, 8, ["modelValue"]));
84
+ }, 8, [
85
+ "modelValue",
86
+ "overlay",
87
+ "custom-props"
88
+ ])]));
44
89
  }
45
90
  });
46
91
  //#endregion
47
- export { _ as default };
92
+ export { w as default };
@@ -1,9 +1,10 @@
1
- import { DataTableFilterOption } from '@bridge-ui/core/Domain';
1
+ import { DataTableFilterOption, FieldOverlayMode } from '@bridge-ui/core/Domain';
2
2
  type __VLS_Props = {
3
3
  active: boolean;
4
4
  columnId: string;
5
5
  multiple: boolean;
6
6
  options: DataTableFilterOption[];
7
+ overlay?: FieldOverlayMode;
7
8
  searchable: boolean;
8
9
  searchValue: string;
9
10
  values: string[];
@@ -12,6 +13,8 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {
12
13
  apply: (values: string[], query: string) => any;
13
14
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
14
15
  onApply?: ((values: string[], query: string) => any) | undefined;
15
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
+ }>, {
17
+ overlay: FieldOverlayMode;
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
19
  declare const _default: typeof __VLS_export;
17
20
  export default _default;