@bridge-ui/vue 0.1.0 → 0.1.1

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 +5 -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 +0 -1
  21. package/dist/Components/CalendarRange/calendarRange.types.d.ts +1 -21
  22. package/dist/Components/CalendarRange/composables/useCalendarRange.d.ts +1 -2
  23. package/dist/Components/CalendarRange/composables/useCalendarRange.js +111 -112
  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 +20 -27
  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/FieldOverlay/composables/useFieldOverlay.js +17 -10
  67. package/dist/Components/FieldOverlay/fieldOverlay.types.d.ts +3 -0
  68. package/dist/Components/FormField/composables/useFormField.d.ts +1 -1
  69. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +1 -2
  70. package/dist/Components/Listbox/composables/useListbox.d.ts +1 -10
  71. package/dist/Components/Listbox/composables/useListbox.js +50 -51
  72. package/dist/Components/Listbox/index.d.ts +0 -1
  73. package/dist/Components/Listbox/listbox.types.d.ts +0 -6
  74. package/dist/Components/Select/composables/useSelect.d.ts +0 -1
  75. package/dist/Components/Select/composables/useSelect.js +0 -1
  76. package/dist/Components/Step/Step.js +5 -0
  77. package/dist/Components/Step/Step.vue.d.ts +11 -0
  78. package/dist/Components/Step/Step.vue_vue_type_script_setup_true_lang.js +32 -0
  79. package/dist/Components/Step/composables/useStep.d.ts +56 -0
  80. package/dist/Components/Step/composables/useStep.js +162 -0
  81. package/dist/Components/Step/index.d.ts +3 -0
  82. package/dist/Components/Step/index.js +3 -0
  83. package/dist/Components/Step/step.types.d.ts +160 -0
  84. package/dist/Components/Stepper/Stepper.js +5 -0
  85. package/dist/Components/Stepper/Stepper.vue.d.ts +24 -0
  86. package/dist/Components/Stepper/Stepper.vue_vue_type_script_setup_true_lang.js +33 -0
  87. package/dist/Components/Stepper/composables/useStepper.d.ts +18 -0
  88. package/dist/Components/Stepper/composables/useStepper.js +91 -0
  89. package/dist/Components/Stepper/index.d.ts +4 -0
  90. package/dist/Components/Stepper/index.js +4 -0
  91. package/dist/Components/Stepper/stepper.types.d.ts +93 -0
  92. package/dist/Components/Stepper/stepperInjectionKey.d.ts +77 -0
  93. package/dist/Components/Stepper/stepperInjectionKey.js +4 -0
  94. package/dist/Components/TimePanel/TimePanel.vue_vue_type_script_setup_true_lang.js +0 -1
  95. package/dist/Components/TimePanel/composables/useTimePanel.d.ts +1 -1
  96. package/dist/Components/TimePanel/composables/useTimePanel.js +75 -75
  97. package/dist/Components/TimePanel/index.d.ts +1 -1
  98. package/dist/Components/TimePanel/timePanel.types.d.ts +1 -17
  99. package/dist/Components/TimePicker/TimePicker.vue_vue_type_script_setup_true_lang.js +10 -13
  100. package/dist/Components/TimePicker/composables/useTimePicker.d.ts +1 -5
  101. package/dist/Components/TimePicker/composables/useTimePicker.js +12 -17
  102. package/dist/Components/TimePicker/index.d.ts +1 -1
  103. package/dist/Components/TimePicker/timePicker.types.d.ts +1 -24
  104. package/dist/Components/TimeRangePicker/TimeRangePicker.vue_vue_type_script_setup_true_lang.js +13 -18
  105. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.d.ts +1 -5
  106. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.js +27 -32
  107. package/dist/Components/TimeRangePicker/index.d.ts +1 -1
  108. package/dist/Components/TimeRangePicker/timeRangePicker.types.d.ts +1 -24
  109. package/dist/index.d.ts +20 -12
  110. package/dist/index.js +88 -80
  111. package/docs/README.md +3 -0
  112. package/docs/components/Autocomplete.md +1 -1
  113. package/docs/components/BridgeUIProvider.md +9 -11
  114. package/docs/components/Calendar.md +2 -1
  115. package/docs/components/CalendarDate.md +2 -1
  116. package/docs/components/CalendarMonth.md +2 -1
  117. package/docs/components/CalendarRange.md +2 -1
  118. package/docs/components/CalendarYear.md +2 -1
  119. package/docs/components/ColorField.md +93 -0
  120. package/docs/components/ColorPicker.md +78 -0
  121. package/docs/components/DatePicker.md +2 -1
  122. package/docs/components/DateRangePicker.md +2 -1
  123. package/docs/components/DateTimePicker.md +2 -1
  124. package/docs/components/DateTimeRangePicker.md +2 -1
  125. package/docs/components/FieldOverlay.md +1 -1
  126. package/docs/components/Select.md +1 -1
  127. package/docs/components/Stepper.md +60 -0
  128. package/docs/components/TimePanel.md +2 -1
  129. package/docs/components/TimePicker.md +2 -1
  130. package/docs/components/TimeRangePicker.md +2 -1
  131. package/docs/examples/icon-fontawesome.ts +2 -0
  132. package/docs/examples/icon-heroicons.ts +2 -0
  133. package/docs/examples/icon-lucide.ts +2 -0
  134. package/docs/examples/icon-phosphor.ts +2 -0
  135. package/docs/examples/icon-tabler.ts +2 -0
  136. 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';
@@ -11,21 +11,28 @@ function a(e, t) {
11
11
  class: r(t, n?.class)
12
12
  } } });
13
13
  }
14
- function o(r) {
15
- let i = e(), o = t(() => n(r.overlay, i.mobile));
14
+ function o(i) {
15
+ let o = e(), s = t(() => n(i.overlay, o.mobile));
16
16
  return {
17
- menuBind: t(() => ({
18
- closeOnClickAway: !0,
19
- placement: "bottom-start",
20
- ...r.customProps?.menu
21
- })),
17
+ menuBind: t(() => {
18
+ let e = i.customProps?.menu;
19
+ return {
20
+ closeOnClickAway: !0,
21
+ placement: "bottom-start",
22
+ ...e,
23
+ classes: {
24
+ ...e?.classes,
25
+ content: r(e?.classes?.content, "overflow-visible rounded-none bg-transparent shadow-none ring-0 dark:bg-transparent")
26
+ }
27
+ };
28
+ }),
22
29
  modalBind: t(() => a({
23
30
  size: "md",
24
31
  scroll: "paper",
25
32
  closeOnOverlay: !0,
26
33
  align: "middle-center",
27
34
  disableRestoreFocus: !0,
28
- ...r.customProps?.modal
35
+ ...i.customProps?.modal
29
36
  }, "flex w-fit max-w-full sm:max-w-full flex-col items-stretch p-0")),
30
37
  drawerBind: t(() => a({
31
38
  size: "md",
@@ -33,9 +40,9 @@ function o(r) {
33
40
  placement: "bottom",
34
41
  closeOnOverlay: !0,
35
42
  disableRestoreFocus: !0,
36
- ...r.customProps?.drawer
43
+ ...i.customProps?.drawer
37
44
  }, "flex h-auto max-h-[90dvh] w-full flex-col items-stretch overflow-x-auto p-0")),
38
- resolvedOverlay: o
45
+ resolvedOverlay: s
39
46
  };
40
47
  }
41
48
  //#endregion
@@ -38,6 +38,9 @@ export interface FieldOverlayEmits {
38
38
  * Renders field picker / listbox content in a `Menu`, `Modal`, or `Drawer`.
39
39
  * Visibility is controlled with `v-model`. Shell-specific options go through
40
40
  * `customProps.menu` / `.modal` / `.drawer`.
41
+ *
42
+ * Menu chrome (fill, radius, shadow, ring) is stripped so the nested picker
43
+ * or listbox paints the visible surface, matching modal / drawer panels.
41
44
  */
42
45
  export interface FieldOverlayOwnProps {
43
46
  /**
@@ -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({
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
54
  "min-h-0 overflow-y-auto overscroll-contain": !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`,
@@ -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
+ };
@@ -0,0 +1,162 @@
1
+ import { mergePartBind as e, useBridgeUIComponent as t, useBridgeUIMergedRegistryClasses as n } from "../../../Utils/index.js";
2
+ import { STEPPER_INJECTION_KEY as r } from "../../Stepper/stepperInjectionKey.js";
3
+ import { computed as i, inject as a, onBeforeUnmount as o, useAttrs as s, useId as c, useSlots as l, watchEffect as u } from "vue";
4
+ import { get as d } from "es-toolkit/compat";
5
+ import { formatStepperStepNumber as f, getStepperStepContentId as p, getStepperStepId as m, isStepperStepClickable as h, resolveStepperStepStatus as g } from "@bridge-ui/core/Domain";
6
+ import { stepperChromeProps as _ } from "@bridge-ui/core/Tokens";
7
+ import { cn as v, splitComponentProps as y } from "@bridge-ui/core/Utils";
8
+ //#region src/Components/Step/composables/useStep.ts
9
+ var b = [
10
+ "icon",
11
+ "error",
12
+ "label",
13
+ "classes",
14
+ "disabled",
15
+ "completed",
16
+ "customProps",
17
+ "description"
18
+ ];
19
+ function x(x) {
20
+ let S = s(), C = l(), w = c(), T = a(r, null);
21
+ if (!T) throw Error("Step must be used within a Stepper provider");
22
+ let E = T, D = null;
23
+ D = E.value.registerStep(w), o(() => {
24
+ D?.(), D = null;
25
+ });
26
+ let O = i(() => y({
27
+ bridgeKeys: b,
28
+ props: {
29
+ ...S,
30
+ ...x
31
+ }
32
+ })), { merged: k, entry: A } = t({
33
+ componentName: "Step",
34
+ props: () => O.value.componentProps
35
+ }), j = i(() => E.value.getIndex(w)), M = i(() => k.value.disabled === !0), N = i(() => g({
36
+ index: j.value,
37
+ error: k.value.error,
38
+ completed: k.value.completed,
39
+ activeStep: E.value.activeStep
40
+ })), P = i(() => h({
41
+ index: j.value,
42
+ disabled: M.value,
43
+ completed: k.value.completed,
44
+ linear: E.value.linear,
45
+ activeStep: E.value.activeStep
46
+ }));
47
+ u(() => {
48
+ j.value < 0 || E.value.registerStepMeta(j.value, {
49
+ disabled: M.value,
50
+ clickable: P.value
51
+ });
52
+ });
53
+ let F = i(() => N.value === "error" ? E.value.errorColorItem : E.value.colorItem), I = i(() => N.value === "active"), L = i(() => N.value === "completed"), R = i(() => N.value === "upcoming"), z = i(() => N.value === "error"), B = i(() => I.value || z.value), V = i(() => E.value.orientation === "vertical"), H = i(() => V.value && I.value), U = i(() => m(E.value.id, j.value)), W = i(() => p(E.value.id, j.value)), G = i(() => f(Math.max(j.value, 0))), K = i(() => d(E.value.sizeItem, "icon") ?? "md"), q = i(() => {
54
+ if (k.value.icon) return k.value.icon;
55
+ if (L.value) return "check";
56
+ if (z.value) return "clear";
57
+ }), J = n({
58
+ entry: A,
59
+ props: () => O.value.componentProps
60
+ });
61
+ function Y(e) {
62
+ P.value && (E.value.selectStep(j.value), (k.value.customProps?.trigger)?.onClick?.(e));
63
+ }
64
+ function X(e) {
65
+ let t = E.value;
66
+ (e.key === "ArrowDown" || e.key === "ArrowRight") && (e.preventDefault(), t.focusStep(t.getAdjacentIndex(j.value, 1))), (e.key === "ArrowUp" || e.key === "ArrowLeft") && (e.preventDefault(), t.focusStep(t.getAdjacentIndex(j.value, -1))), e.key === "Home" && (e.preventDefault(), t.focusStep(t.getAdjacentIndex(-1, 1))), e.key === "End" && (e.preventDefault(), t.focusStep(t.getAdjacentIndex(0, -1))), (k.value.customProps?.trigger)?.onKeydown?.(e);
67
+ }
68
+ let Z = i(() => e(k.value.customProps?.root, O.value.inheritedAttrs, { class: v({
69
+ [_.item]: !0,
70
+ [d(E.value.orientationItem, "item") ?? ""]: !0,
71
+ [d(J.value, "root") ?? ""]: !0
72
+ }) })), Q = i(() => e(k.value.customProps?.connector, {}, {
73
+ "aria-hidden": !0,
74
+ "data-part": "connector",
75
+ class: v({
76
+ [_.connector]: !0,
77
+ [d(E.value.orientationItem, "connector") ?? ""]: !0,
78
+ [d(E.value.sizeItem, "connector") ?? ""]: E.value.orientation !== "vertical",
79
+ [d(F.value, "connector") ?? ""]: L.value,
80
+ [d(J.value, "connector") ?? ""]: !0
81
+ })
82
+ })), $ = i(() => e(k.value.customProps?.trigger, {}, {
83
+ id: U.value,
84
+ type: "button",
85
+ disabled: M.value || void 0,
86
+ tabindex: P.value ? void 0 : -1,
87
+ "aria-invalid": z.value ? !0 : void 0,
88
+ onClick: P.value ? Y : void 0,
89
+ onKeydown: P.value ? X : void 0,
90
+ "aria-current": I.value ? "step" : void 0,
91
+ "aria-controls": H.value ? W.value : void 0,
92
+ class: v({
93
+ [_.trigger]: !0,
94
+ [d(E.value.orientationItem, "trigger") ?? ""]: !0,
95
+ "cursor-pointer": P.value && !M.value,
96
+ "cursor-default": !P.value,
97
+ "pointer-events-none opacity-50": M.value,
98
+ [d(J.value, "trigger") ?? ""]: !0
99
+ })
100
+ })), ee = i(() => e(k.value.customProps?.indicator, {}, { class: v({
101
+ [d(E.value.sizeItem, "indicator") ?? ""]: !0,
102
+ [_.indicator]: !0,
103
+ [_.upcoming]: R.value,
104
+ [d(F.value, "indicator") ?? ""]: B.value,
105
+ [d(F.value, "completed") ?? ""]: L.value,
106
+ [d(F.value, "completedHover") ?? ""]: L.value && P.value,
107
+ [d(J.value, "indicator") ?? ""]: !0
108
+ }) })), te = i(() => e(k.value.customProps?.icon, {}, {
109
+ size: K.value,
110
+ class: v({
111
+ "size-5 shrink-0": !0,
112
+ [d(J.value, "icon") ?? ""]: !0
113
+ })
114
+ })), ne = i(() => ({ class: v({
115
+ "flex min-w-0 flex-col": !0,
116
+ "ml-4": V.value
117
+ }) })), re = i(() => e(k.value.customProps?.label, {}, v({
118
+ [d(E.value.sizeItem, "label") ?? ""]: !0,
119
+ [_.label]: !0,
120
+ [_.labelCompleted]: L.value,
121
+ [d(F.value, "label") ?? ""]: B.value,
122
+ [d(J.value, "label") ?? ""]: !0
123
+ }))), ie = i(() => e(k.value.customProps?.description, {}, v({
124
+ [d(E.value.sizeItem, "description") ?? ""]: !0,
125
+ [_.description]: !0,
126
+ [d(J.value, "description") ?? ""]: !0
127
+ })));
128
+ return {
129
+ slots: C,
130
+ index: j,
131
+ status: N,
132
+ merged: k,
133
+ isError: z,
134
+ iconSize: K,
135
+ rootBind: Z,
136
+ textBind: ne,
137
+ iconBind: te,
138
+ clickable: P,
139
+ labelBind: re,
140
+ stepNumber: G,
141
+ isVertical: V,
142
+ showContent: H,
143
+ isCompleted: L,
144
+ contentBind: i(() => e(k.value.customProps?.content, {}, {
145
+ role: "region",
146
+ id: W.value,
147
+ "aria-labelledby": U.value,
148
+ class: v({
149
+ [d(E.value.sizeItem, "content") ?? ""]: !0,
150
+ [d(E.value.orientationItem, "content") ?? ""]: !0,
151
+ [d(J.value, "content") ?? ""]: !0
152
+ })
153
+ })),
154
+ triggerBind: $,
155
+ resolvedIcon: q,
156
+ indicatorBind: ee,
157
+ connectorBind: Q,
158
+ descriptionBind: ie
159
+ };
160
+ }
161
+ //#endregion
162
+ export { x as useStep };
@@ -0,0 +1,3 @@
1
+ export { useStep } from './composables/useStep';
2
+ export type { StepClasses, StepCustomProps, StepOwnProps, StepProps, StepSlots, } from './step.types';
3
+ export { default as Step } from './Step.vue';
@@ -0,0 +1,3 @@
1
+ import { useStep as e } from "./composables/useStep.js";
2
+ import t from "./Step.js";
3
+ export { t as Step, e as useStep };