@bridge-ui/vue 0.1.0 → 0.2.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 (144) hide show
  1. package/ai/skills/bridge-ui-components/SKILL.md +6 -3
  2. package/ai/skills/bridge-ui-forms/SKILL.md +4 -2
  3. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +0 -1
  4. package/dist/Components/Autocomplete/composables/useAutocomplete.js +0 -1
  5. package/dist/Components/Calendar/Calendar.vue_vue_type_script_setup_true_lang.js +0 -1
  6. package/dist/Components/Calendar/calendar.types.d.ts +1 -21
  7. package/dist/Components/Calendar/composables/useCalendar.d.ts +1 -2
  8. package/dist/Components/Calendar/composables/useCalendar.js +97 -97
  9. package/dist/Components/Calendar/index.d.ts +1 -1
  10. package/dist/Components/CalendarDate/CalendarDate.vue_vue_type_script_setup_true_lang.js +0 -1
  11. package/dist/Components/CalendarDate/calendarDate.types.d.ts +1 -21
  12. package/dist/Components/CalendarDate/composables/useCalendarDate.d.ts +1 -1
  13. package/dist/Components/CalendarDate/composables/useCalendarDate.js +73 -73
  14. package/dist/Components/CalendarDate/index.d.ts +1 -1
  15. package/dist/Components/CalendarMonth/CalendarMonth.vue_vue_type_script_setup_true_lang.js +0 -1
  16. package/dist/Components/CalendarMonth/calendarMonth.types.d.ts +1 -17
  17. package/dist/Components/CalendarMonth/composables/useCalendarMonth.d.ts +1 -1
  18. package/dist/Components/CalendarMonth/composables/useCalendarMonth.js +25 -25
  19. package/dist/Components/CalendarMonth/index.d.ts +1 -1
  20. package/dist/Components/CalendarRange/CalendarRange.vue_vue_type_script_setup_true_lang.js +135 -110
  21. package/dist/Components/CalendarRange/calendarRange.types.d.ts +18 -26
  22. package/dist/Components/CalendarRange/composables/useCalendarRange.d.ts +5 -4
  23. package/dist/Components/CalendarRange/composables/useCalendarRange.js +127 -129
  24. package/dist/Components/CalendarRange/index.d.ts +1 -1
  25. package/dist/Components/CalendarYear/CalendarYear.vue_vue_type_script_setup_true_lang.js +0 -1
  26. package/dist/Components/CalendarYear/calendarYear.types.d.ts +1 -17
  27. package/dist/Components/CalendarYear/composables/useCalendarYear.d.ts +1 -1
  28. package/dist/Components/CalendarYear/composables/useCalendarYear.js +27 -27
  29. package/dist/Components/CalendarYear/index.d.ts +1 -1
  30. package/dist/Components/ColorField/ColorField.js +5 -0
  31. package/dist/Components/ColorField/ColorField.vue.d.ts +38 -0
  32. package/dist/Components/ColorField/ColorField.vue_vue_type_script_setup_true_lang.js +149 -0
  33. package/dist/Components/ColorField/colorField.types.d.ts +179 -0
  34. package/dist/Components/ColorField/composables/useColorField.d.ts +748 -0
  35. package/dist/Components/ColorField/composables/useColorField.js +182 -0
  36. package/dist/Components/ColorField/index.d.ts +3 -0
  37. package/dist/Components/ColorField/index.js +3 -0
  38. package/dist/Components/ColorPicker/ColorPicker.js +5 -0
  39. package/dist/Components/ColorPicker/ColorPicker.vue.d.ts +21 -0
  40. package/dist/Components/ColorPicker/ColorPicker.vue_vue_type_script_setup_true_lang.js +91 -0
  41. package/dist/Components/ColorPicker/colorPicker.types.d.ts +200 -0
  42. package/dist/Components/ColorPicker/composables/useColorPicker.d.ts +111 -0
  43. package/dist/Components/ColorPicker/composables/useColorPicker.js +253 -0
  44. package/dist/Components/ColorPicker/index.d.ts +3 -0
  45. package/dist/Components/ColorPicker/index.js +3 -0
  46. package/dist/Components/DatePicker/DatePicker.vue_vue_type_script_setup_true_lang.js +4 -7
  47. package/dist/Components/DatePicker/composables/useDatePicker.d.ts +1 -6
  48. package/dist/Components/DatePicker/composables/useDatePicker.js +30 -9
  49. package/dist/Components/DatePicker/datePicker.types.d.ts +1 -29
  50. package/dist/Components/DatePicker/index.d.ts +1 -1
  51. package/dist/Components/DateRangePicker/DateRangePicker.vue_vue_type_script_setup_true_lang.js +4 -7
  52. package/dist/Components/DateRangePicker/composables/useDateRangePicker.d.ts +1 -6
  53. package/dist/Components/DateRangePicker/composables/useDateRangePicker.js +3 -9
  54. package/dist/Components/DateRangePicker/dateRangePicker.types.d.ts +1 -29
  55. package/dist/Components/DateRangePicker/index.d.ts +1 -1
  56. package/dist/Components/DateTimePicker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +16 -21
  57. package/dist/Components/DateTimePicker/composables/useDateTimePicker.d.ts +1 -10
  58. package/dist/Components/DateTimePicker/composables/useDateTimePicker.js +30 -39
  59. package/dist/Components/DateTimePicker/dateTimePicker.types.d.ts +1 -36
  60. package/dist/Components/DateTimePicker/index.d.ts +1 -1
  61. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +21 -33
  62. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.d.ts +1 -10
  63. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.js +34 -43
  64. package/dist/Components/DateTimeRangePicker/dateTimeRangePicker.types.d.ts +1 -36
  65. package/dist/Components/DateTimeRangePicker/index.d.ts +1 -1
  66. package/dist/Components/Drawer/composables/useDrawer.js +1 -1
  67. package/dist/Components/FieldOverlay/FieldOverlay.vue_vue_type_script_setup_true_lang.js +35 -35
  68. package/dist/Components/FieldOverlay/composables/useFieldOverlay.d.ts +1 -0
  69. package/dist/Components/FieldOverlay/composables/useFieldOverlay.js +30 -21
  70. package/dist/Components/FieldOverlay/fieldOverlay.types.d.ts +14 -3
  71. package/dist/Components/FormField/composables/useFormField.d.ts +1 -1
  72. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +1 -2
  73. package/dist/Components/Listbox/composables/useListbox.d.ts +1 -10
  74. package/dist/Components/Listbox/composables/useListbox.js +51 -52
  75. package/dist/Components/Listbox/index.d.ts +0 -1
  76. package/dist/Components/Listbox/listbox.types.d.ts +0 -6
  77. package/dist/Components/Modal/composables/useModal.js +1 -1
  78. package/dist/Components/Select/composables/useSelect.d.ts +0 -1
  79. package/dist/Components/Select/composables/useSelect.js +0 -1
  80. package/dist/Components/Step/Step.js +5 -0
  81. package/dist/Components/Step/Step.vue.d.ts +11 -0
  82. package/dist/Components/Step/Step.vue_vue_type_script_setup_true_lang.js +32 -0
  83. package/dist/Components/Step/composables/useStep.d.ts +56 -0
  84. package/dist/Components/Step/composables/useStep.js +162 -0
  85. package/dist/Components/Step/index.d.ts +3 -0
  86. package/dist/Components/Step/index.js +3 -0
  87. package/dist/Components/Step/step.types.d.ts +160 -0
  88. package/dist/Components/Stepper/Stepper.js +5 -0
  89. package/dist/Components/Stepper/Stepper.vue.d.ts +24 -0
  90. package/dist/Components/Stepper/Stepper.vue_vue_type_script_setup_true_lang.js +33 -0
  91. package/dist/Components/Stepper/composables/useStepper.d.ts +18 -0
  92. package/dist/Components/Stepper/composables/useStepper.js +91 -0
  93. package/dist/Components/Stepper/index.d.ts +4 -0
  94. package/dist/Components/Stepper/index.js +4 -0
  95. package/dist/Components/Stepper/stepper.types.d.ts +93 -0
  96. package/dist/Components/Stepper/stepperInjectionKey.d.ts +77 -0
  97. package/dist/Components/Stepper/stepperInjectionKey.js +4 -0
  98. package/dist/Components/TimePanel/TimePanel.vue_vue_type_script_setup_true_lang.js +0 -1
  99. package/dist/Components/TimePanel/composables/useTimePanel.d.ts +5 -1
  100. package/dist/Components/TimePanel/composables/useTimePanel.js +82 -81
  101. package/dist/Components/TimePanel/index.d.ts +1 -1
  102. package/dist/Components/TimePanel/timePanel.types.d.ts +1 -17
  103. package/dist/Components/TimePicker/TimePicker.vue_vue_type_script_setup_true_lang.js +10 -13
  104. package/dist/Components/TimePicker/composables/useTimePicker.d.ts +1 -5
  105. package/dist/Components/TimePicker/composables/useTimePicker.js +12 -17
  106. package/dist/Components/TimePicker/index.d.ts +1 -1
  107. package/dist/Components/TimePicker/timePicker.types.d.ts +1 -24
  108. package/dist/Components/TimeRangePicker/TimeRangePicker.vue_vue_type_script_setup_true_lang.js +103 -94
  109. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.d.ts +4 -6
  110. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.js +61 -65
  111. package/dist/Components/TimeRangePicker/index.d.ts +1 -1
  112. package/dist/Components/TimeRangePicker/timeRangePicker.types.d.ts +2 -31
  113. package/dist/index.d.ts +20 -12
  114. package/dist/index.js +95 -87
  115. package/dist/theme.css +2 -0
  116. package/docs/README.md +7 -0
  117. package/docs/ScrollUtilities.md +89 -0
  118. package/docs/components/Autocomplete.md +3 -1
  119. package/docs/components/BridgeUIProvider.md +9 -11
  120. package/docs/components/Calendar.md +2 -1
  121. package/docs/components/CalendarDate.md +2 -1
  122. package/docs/components/CalendarMonth.md +2 -1
  123. package/docs/components/CalendarRange.md +6 -4
  124. package/docs/components/CalendarYear.md +2 -1
  125. package/docs/components/ColorField.md +93 -0
  126. package/docs/components/ColorPicker.md +78 -0
  127. package/docs/components/DatePicker.md +2 -1
  128. package/docs/components/DateRangePicker.md +5 -3
  129. package/docs/components/DateTimePicker.md +2 -1
  130. package/docs/components/DateTimeRangePicker.md +2 -1
  131. package/docs/components/Drawer.md +21 -21
  132. package/docs/components/FieldOverlay.md +20 -9
  133. package/docs/components/Modal.md +19 -19
  134. package/docs/components/Select.md +3 -1
  135. package/docs/components/Stepper.md +60 -0
  136. package/docs/components/TimePanel.md +4 -1
  137. package/docs/components/TimePicker.md +2 -1
  138. package/docs/components/TimeRangePicker.md +2 -2
  139. package/docs/examples/icon-fontawesome.ts +2 -0
  140. package/docs/examples/icon-heroicons.ts +2 -0
  141. package/docs/examples/icon-lucide.ts +2 -0
  142. package/docs/examples/icon-phosphor.ts +2 -0
  143. package/docs/examples/icon-tabler.ts +2 -0
  144. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { HTMLAttributes, Slot } from 'vue';
2
2
  import { DateRangeValue, DisableDatesInput, DisableTimesInput, FieldOverlayFooterSlotProps, StartOfWeek } from '@bridge-ui/core/Domain';
3
- import { CalendarColor, CalendarColorItem, CalendarDay, CalendarRounded, TimeColorItem } from '@bridge-ui/core/Tokens';
3
+ import { CalendarColor, CalendarRounded } from '@bridge-ui/core/Tokens';
4
4
  import { MergeHtmlProps, MergeProps } from '@bridge-ui/core/Utils';
5
5
  import { ButtonProps } from '../Button/button.types';
6
6
  import { CalendarDateDayCell } from '../CalendarDate/calendarDate.types';
@@ -242,12 +242,6 @@ export interface DateTimeRangePickerOwnProps {
242
242
  * @default undefined
243
243
  */
244
244
  timeZone?: string;
245
- /**
246
- * Token overrides.
247
- *
248
- * @default undefined
249
- */
250
- tokens?: DateTimeRangePickerTokens;
251
245
  /**
252
246
  * Controlled value.
253
247
  *
@@ -270,33 +264,4 @@ export interface DateTimeRangePickerSlots {
270
264
  */
271
265
  footer?: Slot<FieldOverlayFooterSlotProps>;
272
266
  }
273
- export interface DateTimeRangePickerTokens {
274
- /**
275
- * Nested calendar token overrides.
276
- */
277
- calendar?: {
278
- color?: Record<string, Partial<CalendarColorItem>>;
279
- day?: Partial<CalendarDay>;
280
- rounded?: Record<string, string>;
281
- };
282
- /**
283
- * Color token map overrides for the calendar (and time when `time` is unset).
284
- */
285
- color?: Record<string, Partial<CalendarColorItem>>;
286
- /**
287
- * Day chrome overrides.
288
- */
289
- day?: Partial<CalendarDay>;
290
- /**
291
- * Border radius token map overrides.
292
- */
293
- rounded?: Record<string, string>;
294
- /**
295
- * Nested time panel token overrides.
296
- */
297
- time?: {
298
- color?: Record<string, Partial<TimeColorItem>>;
299
- rounded?: Record<string, string>;
300
- };
301
- }
302
267
  export type DateTimeRangePickerProps = MergeHtmlProps<DateTimeRangePickerOwnProps, HTMLAttributes>;
@@ -1,3 +1,3 @@
1
1
  export { useDateTimeRangePicker } from './composables/useDateTimeRangePicker';
2
- export type { DateTimeRangePickerClasses, DateTimeRangePickerColorOverrides, DateTimeRangePickerCustomProps, DateTimeRangePickerEmits, DateTimeRangePickerOwnProps, DateTimeRangePickerProps, DateTimeRangePickerRoundedOverrides, DateTimeRangePickerSlots, DateTimeRangePickerTokens, } from './dateTimeRangePicker.types';
2
+ export type { DateTimeRangePickerClasses, DateTimeRangePickerColorOverrides, DateTimeRangePickerCustomProps, DateTimeRangePickerEmits, DateTimeRangePickerOwnProps, DateTimeRangePickerProps, DateTimeRangePickerRoundedOverrides, DateTimeRangePickerSlots, } from './dateTimeRangePicker.types';
3
3
  export { default as DateTimeRangePicker } from './DateTimeRangePicker.vue';
@@ -91,7 +91,7 @@ function h(h, g, _ = {}) {
91
91
  "relative rounded-none": !0,
92
92
  [be.value ?? ""]: !0,
93
93
  [Se.value ?? ""]: !0,
94
- "overflow-y-auto": B.value === "paper",
94
+ "overflow-y-auto bridge-scroll-fade-y bridge-hide-scrollbar": B.value === "paper",
95
95
  [we.value]: z.value,
96
96
  [s(L.value, "panel") ?? ""]: !0
97
97
  })
@@ -3,12 +3,12 @@ import t from "../Drawer/Drawer.js";
3
3
  import { FIELD_OVERLAY_INJECTION_KEY as n } from "./fieldOverlayInjectionKey.js";
4
4
  import r from "../Menu/Menu.js";
5
5
  import i from "../Modal/Modal.js";
6
- import { createBlock as a, defineComponent as o, mergeModels as s, mergeProps as c, openBlock as l, provide as u, renderSlot as d, unref as f, useModel as p, withCtx as m } from "vue";
6
+ import { createBlock as a, createElementVNode as o, defineComponent as s, guardReactiveProps as c, mergeModels as l, mergeProps as u, normalizeProps as d, openBlock as f, provide as p, renderSlot as m, unref as h, useModel as g, withCtx as _ } from "vue";
7
7
  //#region src/Components/FieldOverlay/FieldOverlay.vue?vue&type=script&setup=true&lang.ts
8
- var h = /*@__PURE__*/ o({
8
+ var v = /*@__PURE__*/ s({
9
9
  inheritAttrs: !1,
10
10
  __name: "FieldOverlay",
11
- props: /*@__PURE__*/ s({
11
+ props: /*@__PURE__*/ l({
12
12
  customProps: {},
13
13
  overlay: { default: "auto" }
14
14
  }, {
@@ -18,55 +18,55 @@ var h = /*@__PURE__*/ o({
18
18
  },
19
19
  modelModifiers: {}
20
20
  }),
21
- emits: /*@__PURE__*/ s(["close", "show-change"], ["update:modelValue"]),
22
- setup(o, { emit: s }) {
23
- let h = s, g = o, _ = p(o, "modelValue"), { menuBind: v, modalBind: y, drawerBind: b, resolvedOverlay: x } = e(g);
24
- u(n, {
21
+ emits: /*@__PURE__*/ l(["close", "show-change"], ["update:modelValue"]),
22
+ setup(s, { emit: l }) {
23
+ let v = l, y = s, b = g(s, "modelValue"), { menuBind: x, modalBind: S, drawerBind: C, resolvedOverlay: w, drawerScrollerBind: T } = e(y);
24
+ p(n, {
25
25
  apply: () => {
26
- _.value = !1;
26
+ b.value = !1;
27
27
  },
28
28
  cancel: () => {
29
- _.value = !1;
29
+ b.value = !1;
30
30
  }
31
31
  });
32
- function S(e) {
33
- h("show-change", e);
32
+ function E(e) {
33
+ v("show-change", e);
34
34
  }
35
- function C() {
36
- h("close");
35
+ function D() {
36
+ v("close");
37
37
  }
38
- return (e, n) => f(x) === "menu" ? (l(), a(f(r), c({
38
+ return (e, n) => h(w) === "menu" ? (f(), a(h(r), u({
39
39
  key: 0,
40
- modelValue: _.value,
41
- "onUpdate:modelValue": n[0] ||= (e) => _.value = e
42
- }, f(v), {
43
- onClose: C,
44
- "onUpdate:modelValue": S
40
+ modelValue: b.value,
41
+ "onUpdate:modelValue": n[0] ||= (e) => b.value = e
42
+ }, h(x), {
43
+ onClose: D,
44
+ "onUpdate:modelValue": E
45
45
  }), {
46
- default: m(() => [d(e.$slots, "default")]),
46
+ default: _(() => [m(e.$slots, "default")]),
47
47
  _: 3
48
- }, 16, ["modelValue"])) : f(x) === "modal" ? (l(), a(f(i), c({
48
+ }, 16, ["modelValue"])) : h(w) === "modal" ? (f(), a(h(i), u({
49
49
  key: 1,
50
- modelValue: _.value,
51
- "onUpdate:modelValue": n[1] ||= (e) => _.value = e
52
- }, f(y), {
53
- onClose: C,
54
- onShowChange: S
50
+ modelValue: b.value,
51
+ "onUpdate:modelValue": n[1] ||= (e) => b.value = e
52
+ }, h(S), {
53
+ onClose: D,
54
+ onShowChange: E
55
55
  }), {
56
- default: m(() => [d(e.$slots, "default")]),
56
+ default: _(() => [m(e.$slots, "default")]),
57
57
  _: 3
58
- }, 16, ["modelValue"])) : (l(), a(f(t), c({
58
+ }, 16, ["modelValue"])) : (f(), a(h(t), u({
59
59
  key: 2,
60
- modelValue: _.value,
61
- "onUpdate:modelValue": n[2] ||= (e) => _.value = e
62
- }, f(b), {
63
- onClose: C,
64
- onShowChange: S
60
+ modelValue: b.value,
61
+ "onUpdate:modelValue": n[2] ||= (e) => b.value = e
62
+ }, h(C), {
63
+ onClose: D,
64
+ onShowChange: E
65
65
  }), {
66
- default: m(() => [d(e.$slots, "default")]),
66
+ default: _(() => [o("div", d(c(h(T))), [m(e.$slots, "default")], 16)]),
67
67
  _: 3
68
68
  }, 16, ["modelValue"]));
69
69
  }
70
70
  });
71
71
  //#endregion
72
- export { h as default };
72
+ export { v as default };
@@ -11,5 +11,6 @@ export declare function useFieldOverlay(props: FieldOverlayOwnProps): {
11
11
  modalBind: import('vue').ComputedRef<ModalOwnProps>;
12
12
  drawerBind: import('vue').ComputedRef<DrawerOwnProps>;
13
13
  resolvedOverlay: import('vue').ComputedRef<ResolvedFieldOverlay>;
14
+ drawerScrollerBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
14
15
  };
15
16
  export type FieldOverlayOptions = FieldOverlayOwnProps;
@@ -1,42 +1,51 @@
1
1
  import { useBreakpoint as e } from "../../../Utils/useBreakpoint.js";
2
- import { computed as t } from "vue";
3
- import { resolveFieldOverlay as n } from "@bridge-ui/core/Domain";
4
- import { cn as r } from "@bridge-ui/core/Utils";
5
- import { toMerged as i } from "es-toolkit/object";
2
+ import { mergePartBind as t } from "../../../Utils/index.js";
3
+ import { computed as n } from "vue";
4
+ import { resolveFieldOverlay as r } from "@bridge-ui/core/Domain";
5
+ import { cn as i } from "@bridge-ui/core/Utils";
6
+ import { toMerged as a } from "es-toolkit/object";
6
7
  //#region src/Components/FieldOverlay/composables/useFieldOverlay.ts
7
- function a(e, t) {
8
+ function o(e, t) {
8
9
  let n = e.customProps?.panel;
9
- return i(e, { customProps: { panel: {
10
+ return a(e, { customProps: { panel: {
10
11
  ...n,
11
- class: r(t, n?.class)
12
+ class: i(t, n?.class)
12
13
  } } });
13
14
  }
14
- function o(r) {
15
- let i = e(), o = t(() => n(r.overlay, i.mobile));
15
+ function s(a) {
16
+ let s = e(), c = n(() => r(a.overlay, s.mobile));
16
17
  return {
17
- menuBind: t(() => ({
18
- closeOnClickAway: !0,
19
- placement: "bottom-start",
20
- ...r.customProps?.menu
21
- })),
22
- modalBind: t(() => a({
18
+ menuBind: n(() => {
19
+ let e = a.customProps?.menu;
20
+ return {
21
+ closeOnClickAway: !0,
22
+ placement: "bottom-start",
23
+ ...e,
24
+ classes: {
25
+ ...e?.classes,
26
+ content: i(e?.classes?.content, "overflow-visible rounded-none bg-transparent shadow-none ring-0 dark:bg-transparent")
27
+ }
28
+ };
29
+ }),
30
+ modalBind: n(() => o({
23
31
  size: "md",
24
32
  scroll: "paper",
25
33
  closeOnOverlay: !0,
26
34
  align: "middle-center",
27
35
  disableRestoreFocus: !0,
28
- ...r.customProps?.modal
36
+ ...a.customProps?.modal
29
37
  }, "flex w-fit max-w-full sm:max-w-full flex-col items-stretch p-0")),
30
- drawerBind: t(() => a({
38
+ drawerBind: n(() => o({
31
39
  size: "md",
32
40
  scroll: "paper",
33
41
  placement: "bottom",
34
42
  closeOnOverlay: !0,
35
43
  disableRestoreFocus: !0,
36
- ...r.customProps?.drawer
37
- }, "flex h-auto max-h-[90dvh] w-full flex-col items-stretch overflow-x-auto p-0")),
38
- resolvedOverlay: o
44
+ ...a.customProps?.drawer
45
+ }, "flex h-auto max-h-[90dvh] w-full flex-col items-stretch p-0")),
46
+ resolvedOverlay: c,
47
+ drawerScrollerBind: n(() => t(a.customProps?.drawerScroller, {}, i({ "flex min-w-0 w-full flex-col overflow-x-auto overflow-y-hidden bridge-scroll-fade-x bridge-hide-scrollbar": !0 })))
39
48
  };
40
49
  }
41
50
  //#endregion
42
- export { o as useFieldOverlay };
51
+ export { s as useFieldOverlay };
@@ -1,4 +1,4 @@
1
- import { Slot } from 'vue';
1
+ import { HTMLAttributes, Slot } from 'vue';
2
2
  import { FieldOverlayMode } from '@bridge-ui/core/Domain';
3
3
  import { DrawerOwnProps } from '../Drawer/drawer.types';
4
4
  import { MenuOwnProps } from '../Menu/menu.types';
@@ -10,6 +10,12 @@ export interface FieldOverlayCustomProps {
10
10
  * @default undefined
11
11
  */
12
12
  drawer?: Partial<DrawerOwnProps>;
13
+ /**
14
+ * Props forwarded to the inner horizontal scroller in the `drawer` shell.
15
+ *
16
+ * @default undefined
17
+ */
18
+ drawerScroller?: HTMLAttributes;
13
19
  /**
14
20
  * Props forwarded to the nested `Menu` when that shell is active.
15
21
  *
@@ -37,11 +43,16 @@ export interface FieldOverlayEmits {
37
43
  /**
38
44
  * Renders field picker / listbox content in a `Menu`, `Modal`, or `Drawer`.
39
45
  * Visibility is controlled with `v-model`. Shell-specific options go through
40
- * `customProps.menu` / `.modal` / `.drawer`.
46
+ * `customProps.menu` / `.modal` / `.drawer`. The drawer inner scroller
47
+ * accepts `customProps.drawerScroller`.
48
+ *
49
+ * Menu chrome (fill, radius, shadow, ring) is stripped so the nested picker
50
+ * or listbox paints the visible surface, matching modal / drawer panels.
41
51
  */
42
52
  export interface FieldOverlayOwnProps {
43
53
  /**
44
- * Extra props for the nested shells (`menu`, `modal`, `drawer`).
54
+ * Extra props for the nested shells (`menu`, `modal`, `drawer`) and the
55
+ * drawer horizontal scroller (`drawerScroller`).
45
56
  *
46
57
  * @default undefined
47
58
  */
@@ -7,7 +7,7 @@ export type FormFieldOptions = {
7
7
  /**
8
8
  * Public registry key that owns FormField chrome defaults/tokens.
9
9
  */
10
- componentName?: "Select" | "Textarea" | "DateField" | "TextField" | "TimeField" | "NumberField" | "Autocomplete" | "DateTimeField" | "PasswordField" | "DateRangeField" | "TimeRangeField" | "DateTimeRangeField";
10
+ componentName?: "Select" | "Textarea" | "DateField" | "TextField" | "TimeField" | "ColorField" | "NumberField" | "Autocomplete" | "DateTimeField" | "PasswordField" | "DateRangeField" | "TimeRangeField" | "DateTimeRangeField";
11
11
  /**
12
12
  * Native control rendered by the field composable (`<input>` vs `<textarea>`).
13
13
  *
@@ -20,7 +20,6 @@ var A = { key: 1 }, j = /*@__PURE__*/ h({
20
20
  anchorEl: {},
21
21
  classes: {},
22
22
  color: { default: "primary" },
23
- componentName: {},
24
23
  customProps: {},
25
24
  disableAutoFocus: {
26
25
  type: Boolean,
@@ -83,7 +82,7 @@ var A = { key: 1 }, j = /*@__PURE__*/ h({
83
82
  let P = h, F = e(), I = s(() => P.emptyMessage ?? F("No options")), L = s(() => P.loadingMessage ?? F("Loading...")), { merged: R, checkClass: z, scrollBind: B, footerBind: V, showFooter: H, applyLabel: fe, cancelLabel: pe, messageBind: U, surfaceBind: me, sizeClasses: he, mergedClasses: W, applyButtonProps: ge, optionHoverClass: _e, cancelButtonProps: ve, optionSelectedClass: ye, optionHighlightedClass: be } = ee(P, {
84
83
  size: "md",
85
84
  color: "primary"
86
- }, { componentName: P.componentName }), xe = s(() => P.options ?? []), G = s(() => P.entries ? P.entries : le(xe.value)), K = s(() => ue(G.value)), q = s(() => t(j, "default")), J = s(() => !P.loading && !q.value && K.value.length === 0 && P.hideEmptyMessage !== !0), Se = s(() => k(z.value, W.value.check)), Y = C([]);
85
+ }), xe = s(() => P.options ?? []), G = s(() => P.entries ? P.entries : le(xe.value)), K = s(() => ue(G.value)), q = s(() => t(j, "default")), J = s(() => !P.loading && !q.value && K.value.length === 0 && P.hideEmptyMessage !== !0), Se = s(() => k(z.value, W.value.check)), Y = C([]);
87
86
  function X(e) {
88
87
  return P.isSelected?.(e) ?? !1;
89
88
  }
@@ -3,16 +3,7 @@ import { ListboxClasses, ListboxOwnProps } from '../listbox.types';
3
3
  export declare const listboxBridgeKeys: readonly ["size", "color", "error", "classes", "maxHeight", "showFooter", "customProps", "disableMaxHeight"];
4
4
  type ListboxLibDefaults = LibDefaultsShape<ListboxOwnProps, "size" | "color">;
5
5
  type ListboxMerged = MergeLibDefaults<ListboxOwnProps, ListboxLibDefaults>;
6
- /**
7
- * Options for {@link useListbox}.
8
- */
9
- export type ListboxOptions = {
10
- /**
11
- * Public registry key that owns nested `tokens.listbox` defaults.
12
- */
13
- componentName?: "Select" | "Autocomplete";
14
- };
15
- export declare function useListbox(props: ListboxOwnProps, libDefaults: ListboxLibDefaults, options?: ListboxOptions): {
6
+ export declare function useListbox(props: ListboxOwnProps, libDefaults: ListboxLibDefaults): {
16
7
  merged: import('vue').ComputedRef<ListboxMerged>;
17
8
  checkClass: import('vue').ComputedRef<string>;
18
9
  scrollBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
@@ -17,78 +17,77 @@ var v = [
17
17
  "customProps",
18
18
  "disableMaxHeight"
19
19
  ];
20
- function y(y, b, x = {}) {
21
- let S = s(), C = t(), w = e(), T = o(() => _({
20
+ function y(y, b) {
21
+ let x = s(), S = t(), C = e(), w = o(() => _({
22
22
  props: {
23
- ...S,
23
+ ...x,
24
24
  ...y
25
25
  },
26
26
  bridgeKeys: v
27
- })), { merged: E, entry: D } = r({
27
+ })), { merged: T, entry: E } = r({
28
28
  libDefaults: b,
29
- componentName: x.componentName,
30
- props: () => T.value.componentProps
31
- }), O = i({
32
- entry: D,
33
- props: () => T.value.componentProps
34
- }), k = o(() => E.value.customProps), A = o(() => u(y.overlay, C.mobile)), j = o(() => l(A.value)), M = o(() => A.value === "drawer"), N = a({
35
- overlay: A,
36
- componentName: x.componentName,
37
- showFooter: () => E.value.showFooter
38
- }), P = o(() => c(D.value, ["tokens", "listbox"])), F = o(() => {
39
- let e = g(d, P.value?.color);
29
+ componentName: "Listbox",
30
+ props: () => w.value.componentProps
31
+ }), D = i({
32
+ entry: E,
33
+ props: () => w.value.componentProps
34
+ }), O = o(() => T.value.customProps), k = o(() => u(y.overlay, S.mobile)), A = o(() => l(k.value)), j = o(() => k.value === "drawer"), M = a({
35
+ overlay: k,
36
+ componentName: "Listbox",
37
+ showFooter: () => T.value.showFooter
38
+ }), N = o(() => {
39
+ let e = g(d, E.value?.tokens?.color);
40
40
  return h({
41
41
  tokens: e,
42
- color: E.value.color,
43
- invalid: E.value.error
42
+ color: T.value.color,
43
+ invalid: T.value.error
44
44
  });
45
- }), I = o(() => {
46
- let e = g(f, P.value?.rounded);
45
+ }), P = o(() => {
46
+ let e = g(f, E.value?.tokens?.rounded);
47
47
  return c(e, y.rounded ?? "md");
48
- }), L = o(() => {
49
- let e = g(p, P.value?.size), t = c(e, E.value.size ?? "md"), n = j.value ? "panel" : "menu";
48
+ }), F = o(() => {
49
+ let e = g(p, E.value?.tokens?.size), t = c(e, T.value.size ?? "md"), n = A.value ? "panel" : "menu";
50
50
  return c(t, n);
51
- }), R = o(() => F.value?.selected), z = o(() => F.value?.highlighted), B = o(() => F.value?.hover), V = o(() => m(L.value?.check, F.value?.check)), H = o(() => {
52
- let e = E.value.maxHeight ?? (j.value ? "max-h-[min(60dvh,28rem)]" : "max-h-60"), t = E.value.disableMaxHeight === !0;
53
- return n(E.value.customProps?.scroll, {}, m({
54
- "min-h-0 overflow-y-auto overscroll-contain": !t,
51
+ }), I = o(() => N.value?.selected), L = o(() => N.value?.highlighted), R = o(() => N.value?.hover), z = o(() => m(F.value?.check, N.value?.check)), B = o(() => {
52
+ let e = T.value.maxHeight ?? (A.value ? "max-h-[min(60dvh,28rem)]" : "max-h-60"), t = T.value.disableMaxHeight === !0;
53
+ return n(T.value.customProps?.scroll, {}, m({
54
+ "min-h-0 overflow-y-auto overscroll-contain bridge-soft-scrollbar": !t,
55
55
  [e]: !t,
56
- [O.value.scroll ?? ""]: !0
56
+ [D.value.scroll ?? ""]: !0
57
57
  }));
58
- }), U = o(() => n({}, {}, m({
58
+ }), V = o(() => n({}, {}, m({
59
59
  "text-dark-500": !0,
60
- [L.value?.message ?? ""]: !0
61
- }))), W = o(() => {
62
- if (!j.value) return;
63
- let e = I.value;
60
+ [F.value?.message ?? ""]: !0
61
+ }))), H = o(() => {
62
+ let e = P.value;
64
63
  if (e) return m({
65
64
  [e]: !0,
66
- "rounded-b-none": M.value
65
+ "rounded-b-none": j.value
67
66
  });
68
- }), G = o(() => m({
69
- "flex w-full flex-col overflow-hidden bg-white text-dark-900 shadow-lg outline-hidden ring-1 ring-black/5 dark:bg-dark-800 dark:text-dark-100 dark:ring-white/10": j.value,
70
- [String(W.value ?? "")]: !!W.value
67
+ }), U = o(() => m({
68
+ "flex w-full flex-col overflow-hidden bg-white text-dark-900 shadow-lg outline-hidden ring-1 ring-black/5 dark:bg-dark-800 dark:text-dark-100 dark:ring-white/10": !0,
69
+ [String(H.value ?? "")]: !!H.value
71
70
  }));
72
71
  return {
73
- merged: E,
74
- checkClass: V,
75
- scrollBind: H,
76
- footerBind: o(() => n(k.value?.footer, {}, m({
72
+ merged: T,
73
+ checkClass: z,
74
+ scrollBind: B,
75
+ footerBind: o(() => n(O.value?.footer, {}, m({
77
76
  "flex items-center justify-end gap-2 border-t border-dark-100 bg-dark-50 px-3 py-2 dark:border-dark-800 dark:bg-dark-950/40": !0,
78
- [O.value.footer ?? ""]: !0
77
+ [D.value.footer ?? ""]: !0
79
78
  }))),
80
- showFooter: N,
81
- applyLabel: o(() => w("Apply")),
82
- cancelLabel: o(() => w("Cancel")),
83
- messageBind: U,
84
- surfaceBind: G,
85
- sizeClasses: L,
86
- mergedClasses: O,
87
- applyButtonProps: o(() => k.value?.applyButton),
88
- optionHoverClass: B,
89
- cancelButtonProps: o(() => k.value?.cancelButton),
90
- optionSelectedClass: R,
91
- optionHighlightedClass: z
79
+ showFooter: M,
80
+ applyLabel: o(() => C("Apply")),
81
+ cancelLabel: o(() => C("Cancel")),
82
+ messageBind: V,
83
+ surfaceBind: U,
84
+ sizeClasses: F,
85
+ mergedClasses: D,
86
+ applyButtonProps: o(() => O.value?.applyButton),
87
+ optionHoverClass: R,
88
+ cancelButtonProps: o(() => O.value?.cancelButton),
89
+ optionSelectedClass: I,
90
+ optionHighlightedClass: L
92
91
  };
93
92
  }
94
93
  //#endregion
@@ -1,5 +1,4 @@
1
1
  export { useListbox } from './composables/useListbox';
2
- export type { ListboxOptions } from './composables/useListbox';
3
2
  export { findFirstEnabledOptionIndex, findLastEnabledOptionIndex, getListboxActiveDescendantId, getListboxOptionId, moveListboxHighlight, useListboxNavigation, } from './composables/useListboxNavigation';
4
3
  export type { ListboxClasses, ListboxColorOverrides, ListboxCustomProps, ListboxEmits, ListboxEntry, ListboxOption, ListboxOwnProps, ListboxProps, ListboxSlots, ListboxValue, } from './listbox.types';
5
4
  export { default as Listbox } from './Listbox.vue';
@@ -157,12 +157,6 @@ export interface ListboxOwnProps {
157
157
  * @default "primary"
158
158
  */
159
159
  color?: MergeProps<ListboxColor, ListboxColorOverrides>;
160
- /**
161
- * Public parent registry key for nested `tokens.listbox`.
162
- *
163
- * @internal
164
- */
165
- componentName?: "Select" | "Autocomplete";
166
160
  /**
167
161
  * Extra props for internal parts (`list`, `listItem`, `listSection`, `menu`,
168
162
  * `modal`, `drawer`, `progress`, `scroll`, `footer`, `applyButton`,
@@ -86,7 +86,7 @@ function v(v, y, b = {}) {
86
86
  class: d({
87
87
  "relative w-full": !0,
88
88
  [he.value ?? ""]: !0,
89
- "max-h-[calc(100dvh-2rem)] overflow-y-auto": U.value === "paper",
89
+ "max-h-[calc(100dvh-2rem)] overflow-y-auto bridge-scroll-fade-y bridge-hide-scrollbar": U.value === "paper",
90
90
  [_e.value]: H.value,
91
91
  [c(B.value, "panel") ?? ""]: !0
92
92
  })
@@ -729,7 +729,6 @@ export declare function useSelect(props: SelectOwnProps, model: Ref<null | undef
729
729
  anchorEl?: null | HTMLElement;
730
730
  classes?: import('../../Listbox').ListboxClasses;
731
731
  color: "info" | "error" | "success" | "warning" | "dark" | "primary" | "secondary";
732
- componentName: "Select" | "Autocomplete";
733
732
  customProps?: import('../../Listbox').ListboxCustomProps;
734
733
  disableAutoFocus: boolean;
735
734
  disableMaxHeight: boolean;
@@ -343,7 +343,6 @@ function p(p, m, h, g, Oe) {
343
343
  showFooter: z.value,
344
344
  entries: He.value,
345
345
  options: G.value,
346
- componentName: "Select",
347
346
  size: q.merged.value.size,
348
347
  error: q.invalidated.value,
349
348
  color: q.merged.value.color,
@@ -0,0 +1,5 @@
1
+ import e from "./Step.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/Components/Step/Step.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,11 @@
1
+ import { StepOwnProps, StepSlots } from './step.types';
2
+ type __VLS_Slots = StepSlots;
3
+ declare const __VLS_base: import('vue').DefineComponent<StepOwnProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<StepOwnProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
4
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
7
+ type __VLS_WithSlots<T, S> = T & {
8
+ new (): {
9
+ $slots: S;
10
+ };
11
+ };
@@ -0,0 +1,32 @@
1
+ import { hasNamedSlot as e, hasSlotOrProp as t, isPropPresent as n } from "../../Utils/slotOrProp.js";
2
+ import r from "../Icon/Icon.js";
3
+ import { useStep as i } from "./composables/useStep.js";
4
+ import { Fragment as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, defineComponent as d, guardReactiveProps as f, mergeProps as p, normalizeProps as m, openBlock as h, renderSlot as g, toDisplayString as _, unref as v } from "vue";
5
+ //#region src/Components/Step/Step.vue?vue&type=script&setup=true&lang.ts
6
+ var y = /*@__PURE__*/ d({
7
+ inheritAttrs: !1,
8
+ __name: "Step",
9
+ props: {
10
+ classes: {},
11
+ completed: { type: Boolean },
12
+ customProps: {},
13
+ description: {},
14
+ disabled: { type: Boolean },
15
+ error: { type: Boolean },
16
+ icon: {},
17
+ label: {}
18
+ },
19
+ setup(d) {
20
+ let { slots: y, merged: b, rootBind: x, textBind: S, iconBind: C, labelBind: w, stepNumber: T, showContent: E, contentBind: D, triggerBind: O, resolvedIcon: k, indicatorBind: A, connectorBind: j, descriptionBind: M } = i(d);
21
+ return (i, d) => (h(), c("li", m(f(v(x))), [
22
+ l("div", m(f(v(j))), null, 16),
23
+ l("button", m(f(v(O))), [l("span", m(f(v(A))), [v(e)(v(y), "icon") ? g(i.$slots, "icon", {}, void 0, void 0, 0) : v(k) ? (h(), o(v(r), p({
24
+ key: 1,
25
+ icon: v(k)
26
+ }, v(C)), null, 16, ["icon"])) : (h(), c(a, { key: 2 }, [u(_(v(T)), 1)], 64))], 16), v(t)(v(y), "label", v(b).label) || v(t)(v(y), "description", v(b).description) ? (h(), c("span", m(p({ key: 0 }, v(S))), [v(t)(v(y), "label", v(b).label) ? (h(), c("span", m(p({ key: 0 }, v(w))), [v(e)(v(y), "label") ? g(i.$slots, "label", {}, void 0, void 0, 0) : v(n)(v(b).label) ? (h(), c(a, { key: 1 }, [u(_(v(b).label), 1)], 64)) : s("", !0)], 16)) : s("", !0), v(t)(v(y), "description", v(b).description) ? (h(), c("span", m(p({ key: 1 }, v(M))), [v(e)(v(y), "description") ? g(i.$slots, "description", {}, void 0, void 0, 0) : v(n)(v(b).description) ? (h(), c(a, { key: 1 }, [u(_(v(b).description), 1)], 64)) : s("", !0)], 16)) : s("", !0)], 16)) : s("", !0)], 16),
27
+ v(E) ? (h(), c("div", m(p({ key: 0 }, v(D))), [g(i.$slots, "default")], 16)) : s("", !0)
28
+ ], 16));
29
+ }
30
+ });
31
+ //#endregion
32
+ export { y as default };
@@ -0,0 +1,56 @@
1
+ import { IconSize } from '@bridge-ui/core/Tokens';
2
+ import { StepOwnProps, StepProps } from '../step.types';
3
+ export declare function useStep(props: StepOwnProps): {
4
+ slots: Readonly<{
5
+ [name: string]: import('vue').Slot<any> | undefined;
6
+ }>;
7
+ index: import('vue').ComputedRef<number>;
8
+ status: import('vue').ComputedRef<import('@bridge-ui/core/Domain').StepperStepStatus>;
9
+ merged: import('vue').ComputedRef<StepOwnProps>;
10
+ isError: import('vue').ComputedRef<boolean>;
11
+ iconSize: import('vue').ComputedRef<keyof IconSize>;
12
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
13
+ class: string;
14
+ }, "class", import('vue').HTMLAttributes | undefined, Omit<StepProps, "error" | "icon" | "classes" | "customProps" | "label" | "disabled" | "description" | "completed">>>;
15
+ textBind: import('vue').ComputedRef<{
16
+ class: string;
17
+ }>;
18
+ iconBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
19
+ size: keyof IconSize;
20
+ class: string;
21
+ }, "class", Partial<Omit<import('../../Icon').IconProps, "icon">> | undefined, {}>>;
22
+ clickable: import('vue').ComputedRef<boolean>;
23
+ labelBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
24
+ stepNumber: import('vue').ComputedRef<string>;
25
+ isVertical: import('vue').ComputedRef<boolean>;
26
+ showContent: import('vue').ComputedRef<boolean>;
27
+ isCompleted: import('vue').ComputedRef<boolean>;
28
+ contentBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
29
+ role: string;
30
+ id: string;
31
+ "aria-labelledby": string;
32
+ class: string;
33
+ }, "class", import('vue').HTMLAttributes | undefined, {}>>;
34
+ triggerBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
35
+ id: string;
36
+ type: "button";
37
+ disabled: true | undefined;
38
+ tabindex: number | undefined;
39
+ "aria-invalid": boolean | undefined;
40
+ onClick: ((event: MouseEvent) => void) | undefined;
41
+ onKeydown: ((event: KeyboardEvent) => void) | undefined;
42
+ "aria-current": "step" | undefined;
43
+ "aria-controls": string | undefined;
44
+ class: string;
45
+ }, "class", import('vue').ButtonHTMLAttributes | undefined, {}>>;
46
+ resolvedIcon: import('vue').ComputedRef<import('../../..').IconSource | undefined>;
47
+ indicatorBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
48
+ class: string;
49
+ }, "class", import('vue').HTMLAttributes | undefined, {}>>;
50
+ connectorBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
51
+ "aria-hidden": boolean;
52
+ "data-part": string;
53
+ class: string;
54
+ }, "class", import('vue').HTMLAttributes | undefined, {}>>;
55
+ descriptionBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
56
+ };