@bridge-ui/vue 0.0.11 → 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 (195) 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 +1 -2
  4. package/dist/Components/Autocomplete/composables/useAutocomplete.js +112 -114
  5. package/dist/Components/BaseField/baseField.types.d.ts +1 -8
  6. package/dist/Components/BaseField/composables/useBaseField.js +79 -83
  7. package/dist/Components/Calendar/Calendar.vue_vue_type_script_setup_true_lang.js +2 -1
  8. package/dist/Components/Calendar/calendar.types.d.ts +14 -21
  9. package/dist/Components/Calendar/composables/useCalendar.d.ts +2 -2
  10. package/dist/Components/Calendar/composables/useCalendar.js +101 -98
  11. package/dist/Components/Calendar/index.d.ts +1 -1
  12. package/dist/Components/CalendarDate/CalendarDate.vue_vue_type_script_setup_true_lang.js +1 -1
  13. package/dist/Components/CalendarDate/calendarDate.types.d.ts +7 -21
  14. package/dist/Components/CalendarDate/composables/useCalendarDate.d.ts +1 -1
  15. package/dist/Components/CalendarDate/composables/useCalendarDate.js +81 -73
  16. package/dist/Components/CalendarDate/index.d.ts +1 -1
  17. package/dist/Components/CalendarMonth/CalendarMonth.vue_vue_type_script_setup_true_lang.js +1 -1
  18. package/dist/Components/CalendarMonth/calendarMonth.types.d.ts +7 -17
  19. package/dist/Components/CalendarMonth/composables/useCalendarMonth.d.ts +1 -1
  20. package/dist/Components/CalendarMonth/composables/useCalendarMonth.js +58 -50
  21. package/dist/Components/CalendarMonth/index.d.ts +1 -1
  22. package/dist/Components/CalendarRange/CalendarRange.vue_vue_type_script_setup_true_lang.js +4 -3
  23. package/dist/Components/CalendarRange/calendarRange.types.d.ts +14 -21
  24. package/dist/Components/CalendarRange/composables/useCalendarRange.d.ts +3 -3
  25. package/dist/Components/CalendarRange/composables/useCalendarRange.js +121 -120
  26. package/dist/Components/CalendarRange/index.d.ts +1 -1
  27. package/dist/Components/CalendarYear/CalendarYear.vue_vue_type_script_setup_true_lang.js +1 -1
  28. package/dist/Components/CalendarYear/calendarYear.types.d.ts +7 -17
  29. package/dist/Components/CalendarYear/composables/useCalendarYear.d.ts +1 -1
  30. package/dist/Components/CalendarYear/composables/useCalendarYear.js +60 -52
  31. package/dist/Components/CalendarYear/index.d.ts +1 -1
  32. package/dist/Components/Checkbox/composables/useCheckbox.js +23 -19
  33. package/dist/Components/ColorField/ColorField.js +5 -0
  34. package/dist/Components/ColorField/ColorField.vue.d.ts +38 -0
  35. package/dist/Components/ColorField/ColorField.vue_vue_type_script_setup_true_lang.js +149 -0
  36. package/dist/Components/ColorField/colorField.types.d.ts +179 -0
  37. package/dist/Components/ColorField/composables/useColorField.d.ts +748 -0
  38. package/dist/Components/ColorField/composables/useColorField.js +182 -0
  39. package/dist/Components/ColorField/index.d.ts +3 -0
  40. package/dist/Components/ColorField/index.js +3 -0
  41. package/dist/Components/ColorPicker/ColorPicker.js +5 -0
  42. package/dist/Components/ColorPicker/ColorPicker.vue.d.ts +21 -0
  43. package/dist/Components/ColorPicker/ColorPicker.vue_vue_type_script_setup_true_lang.js +91 -0
  44. package/dist/Components/ColorPicker/colorPicker.types.d.ts +200 -0
  45. package/dist/Components/ColorPicker/composables/useColorPicker.d.ts +111 -0
  46. package/dist/Components/ColorPicker/composables/useColorPicker.js +253 -0
  47. package/dist/Components/ColorPicker/index.d.ts +3 -0
  48. package/dist/Components/ColorPicker/index.js +3 -0
  49. package/dist/Components/DateField/DateField.vue.d.ts +1 -0
  50. package/dist/Components/DateField/DateField.vue_vue_type_script_setup_true_lang.js +13 -31
  51. package/dist/Components/DateField/composables/useDateField.d.ts +3 -4
  52. package/dist/Components/DateField/composables/useDateField.js +95 -107
  53. package/dist/Components/DateField/dateField.types.d.ts +16 -0
  54. package/dist/Components/DatePicker/DatePicker.vue_vue_type_script_setup_true_lang.js +10 -7
  55. package/dist/Components/DatePicker/composables/useDatePicker.d.ts +1 -6
  56. package/dist/Components/DatePicker/composables/useDatePicker.js +8 -10
  57. package/dist/Components/DatePicker/datePicker.types.d.ts +14 -29
  58. package/dist/Components/DatePicker/index.d.ts +1 -1
  59. package/dist/Components/DateRangeField/DateRangeField.vue.d.ts +1 -0
  60. package/dist/Components/DateRangeField/DateRangeField.vue_vue_type_script_setup_true_lang.js +39 -30
  61. package/dist/Components/DateRangeField/composables/useDateRangeField.d.ts +4 -3
  62. package/dist/Components/DateRangeField/composables/useDateRangeField.js +55 -48
  63. package/dist/Components/DateRangeField/dateRangeField.types.d.ts +16 -0
  64. package/dist/Components/DateRangePicker/DateRangePicker.vue_vue_type_script_setup_true_lang.js +10 -7
  65. package/dist/Components/DateRangePicker/composables/useDateRangePicker.d.ts +1 -6
  66. package/dist/Components/DateRangePicker/composables/useDateRangePicker.js +8 -10
  67. package/dist/Components/DateRangePicker/dateRangePicker.types.d.ts +14 -29
  68. package/dist/Components/DateRangePicker/index.d.ts +1 -1
  69. package/dist/Components/DateTimeField/DateTimeField.vue.d.ts +1 -0
  70. package/dist/Components/DateTimeField/DateTimeField.vue_vue_type_script_setup_true_lang.js +13 -6
  71. package/dist/Components/DateTimeField/composables/useDateTimeField.d.ts +4 -3
  72. package/dist/Components/DateTimeField/composables/useDateTimeField.js +64 -84
  73. package/dist/Components/DateTimeField/dateTimeField.types.d.ts +16 -0
  74. package/dist/Components/DateTimePicker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +26 -21
  75. package/dist/Components/DateTimePicker/composables/useDateTimePicker.d.ts +1 -10
  76. package/dist/Components/DateTimePicker/composables/useDateTimePicker.js +33 -40
  77. package/dist/Components/DateTimePicker/dateTimePicker.types.d.ts +14 -36
  78. package/dist/Components/DateTimePicker/index.d.ts +1 -1
  79. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue.d.ts +1 -0
  80. package/dist/Components/DateTimeRangeField/DateTimeRangeField.vue_vue_type_script_setup_true_lang.js +44 -37
  81. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.d.ts +4 -3
  82. package/dist/Components/DateTimeRangeField/composables/useDateTimeRangeField.js +46 -66
  83. package/dist/Components/DateTimeRangeField/dateTimeRangeField.types.d.ts +16 -0
  84. package/dist/Components/DateTimeRangePicker/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +34 -27
  85. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.d.ts +1 -10
  86. package/dist/Components/DateTimeRangePicker/composables/useDateTimeRangePicker.js +39 -45
  87. package/dist/Components/DateTimeRangePicker/dateTimeRangePicker.types.d.ts +14 -36
  88. package/dist/Components/DateTimeRangePicker/index.d.ts +1 -1
  89. package/dist/Components/Drawer/Drawer.vue_vue_type_script_setup_true_lang.js +4 -3
  90. package/dist/Components/FieldOverlay/composables/useFieldOverlay.js +20 -12
  91. package/dist/Components/FieldOverlay/fieldOverlay.types.d.ts +3 -0
  92. package/dist/Components/FormControl/composables/useFormControl.js +61 -65
  93. package/dist/Components/FormControl/formControl.types.d.ts +1 -7
  94. package/dist/Components/FormField/composables/useFormField.d.ts +1 -1
  95. package/dist/Components/FormField/composables/useFormField.js +115 -116
  96. package/dist/Components/FormField/formField.types.d.ts +1 -7
  97. package/dist/Components/Label/composables/useLabel.js +28 -28
  98. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +2 -3
  99. package/dist/Components/Listbox/composables/useListbox.d.ts +5 -14
  100. package/dist/Components/Listbox/composables/useListbox.js +57 -54
  101. package/dist/Components/Listbox/index.d.ts +0 -1
  102. package/dist/Components/Listbox/listbox.types.d.ts +6 -12
  103. package/dist/Components/Menu/Menu.vue_vue_type_script_setup_true_lang.js +3 -5
  104. package/dist/Components/Modal/Modal.vue_vue_type_script_setup_true_lang.js +4 -3
  105. package/dist/Components/OtpField/composables/useOtpField.js +95 -94
  106. package/dist/Components/OtpField/otpField.types.d.ts +2 -9
  107. package/dist/Components/Radio/composables/useRadio.js +24 -20
  108. package/dist/Components/Select/composables/useSelect.d.ts +1 -2
  109. package/dist/Components/Select/composables/useSelect.js +21 -23
  110. package/dist/Components/Slider/composables/useSlider.js +167 -163
  111. package/dist/Components/Slider/slider.types.d.ts +2 -9
  112. package/dist/Components/Snackbar/Snackbar.vue_vue_type_script_setup_true_lang.js +3 -2
  113. package/dist/Components/Step/Step.js +5 -0
  114. package/dist/Components/Step/Step.vue.d.ts +11 -0
  115. package/dist/Components/Step/Step.vue_vue_type_script_setup_true_lang.js +32 -0
  116. package/dist/Components/Step/composables/useStep.d.ts +56 -0
  117. package/dist/Components/Step/composables/useStep.js +162 -0
  118. package/dist/Components/Step/index.d.ts +3 -0
  119. package/dist/Components/Step/index.js +3 -0
  120. package/dist/Components/Step/step.types.d.ts +160 -0
  121. package/dist/Components/Stepper/Stepper.js +5 -0
  122. package/dist/Components/Stepper/Stepper.vue.d.ts +24 -0
  123. package/dist/Components/Stepper/Stepper.vue_vue_type_script_setup_true_lang.js +33 -0
  124. package/dist/Components/Stepper/composables/useStepper.d.ts +18 -0
  125. package/dist/Components/Stepper/composables/useStepper.js +91 -0
  126. package/dist/Components/Stepper/index.d.ts +4 -0
  127. package/dist/Components/Stepper/index.js +4 -0
  128. package/dist/Components/Stepper/stepper.types.d.ts +93 -0
  129. package/dist/Components/Stepper/stepperInjectionKey.d.ts +77 -0
  130. package/dist/Components/Stepper/stepperInjectionKey.js +4 -0
  131. package/dist/Components/Switch/composables/useSwitch.js +28 -24
  132. package/dist/Components/TimeField/TimeField.vue.d.ts +1 -0
  133. package/dist/Components/TimeField/TimeField.vue_vue_type_script_setup_true_lang.js +34 -25
  134. package/dist/Components/TimeField/composables/useTimeField.d.ts +4 -3
  135. package/dist/Components/TimeField/composables/useTimeField.js +67 -60
  136. package/dist/Components/TimeField/timeField.types.d.ts +16 -0
  137. package/dist/Components/TimePanel/TimePanel.vue_vue_type_script_setup_true_lang.js +2 -1
  138. package/dist/Components/TimePanel/composables/useTimePanel.d.ts +1 -1
  139. package/dist/Components/TimePanel/composables/useTimePanel.js +65 -54
  140. package/dist/Components/TimePanel/index.d.ts +1 -1
  141. package/dist/Components/TimePanel/timePanel.types.d.ts +14 -17
  142. package/dist/Components/TimePicker/TimePicker.vue_vue_type_script_setup_true_lang.js +16 -13
  143. package/dist/Components/TimePicker/composables/useTimePicker.d.ts +1 -5
  144. package/dist/Components/TimePicker/composables/useTimePicker.js +17 -18
  145. package/dist/Components/TimePicker/index.d.ts +1 -1
  146. package/dist/Components/TimePicker/timePicker.types.d.ts +14 -24
  147. package/dist/Components/TimeRangeField/TimeRangeField.vue.d.ts +1 -0
  148. package/dist/Components/TimeRangeField/TimeRangeField.vue_vue_type_script_setup_true_lang.js +34 -25
  149. package/dist/Components/TimeRangeField/composables/useTimeRangeField.d.ts +4 -3
  150. package/dist/Components/TimeRangeField/composables/useTimeRangeField.js +88 -81
  151. package/dist/Components/TimeRangeField/timeRangeField.types.d.ts +16 -0
  152. package/dist/Components/TimeRangePicker/TimeRangePicker.vue_vue_type_script_setup_true_lang.js +23 -18
  153. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.d.ts +1 -5
  154. package/dist/Components/TimeRangePicker/composables/useTimeRangePicker.js +32 -33
  155. package/dist/Components/TimeRangePicker/index.d.ts +1 -1
  156. package/dist/Components/TimeRangePicker/timeRangePicker.types.d.ts +14 -24
  157. package/dist/Components/Tooltip/Tooltip.vue_vue_type_script_setup_true_lang.js +4 -6
  158. package/dist/Utils/index.d.ts +9 -0
  159. package/dist/Utils/index.js +23 -12
  160. package/dist/index.d.ts +20 -12
  161. package/dist/index.js +88 -80
  162. package/docs/README.md +3 -0
  163. package/docs/components/Autocomplete.md +1 -1
  164. package/docs/components/BaseField.md +1 -1
  165. package/docs/components/BridgeUIProvider.md +12 -14
  166. package/docs/components/Calendar.md +4 -1
  167. package/docs/components/CalendarDate.md +3 -1
  168. package/docs/components/CalendarMonth.md +3 -1
  169. package/docs/components/CalendarRange.md +4 -1
  170. package/docs/components/CalendarYear.md +18 -16
  171. package/docs/components/ColorField.md +93 -0
  172. package/docs/components/ColorPicker.md +78 -0
  173. package/docs/components/DateField.md +9 -0
  174. package/docs/components/DatePicker.md +4 -1
  175. package/docs/components/DateRangeField.md +30 -22
  176. package/docs/components/DateRangePicker.md +4 -1
  177. package/docs/components/DateTimeField.md +35 -28
  178. package/docs/components/DateTimePicker.md +4 -1
  179. package/docs/components/DateTimeRangeField.md +36 -28
  180. package/docs/components/DateTimeRangePicker.md +4 -1
  181. package/docs/components/FieldOverlay.md +5 -4
  182. package/docs/components/FormControl.md +1 -1
  183. package/docs/components/Select.md +1 -1
  184. package/docs/components/Stepper.md +60 -0
  185. package/docs/components/TimeField.md +24 -17
  186. package/docs/components/TimePanel.md +4 -1
  187. package/docs/components/TimePicker.md +4 -1
  188. package/docs/components/TimeRangeField.md +25 -17
  189. package/docs/components/TimeRangePicker.md +4 -1
  190. package/docs/examples/icon-fontawesome.ts +2 -0
  191. package/docs/examples/icon-heroicons.ts +2 -0
  192. package/docs/examples/icon-lucide.ts +2 -0
  193. package/docs/examples/icon-phosphor.ts +2 -0
  194. package/docs/examples/icon-tabler.ts +2 -0
  195. package/package.json +2 -2
@@ -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 };
@@ -0,0 +1,160 @@
1
+ import { ButtonHTMLAttributes, HTMLAttributes, Slot } from 'vue';
2
+ import { MergeHtmlProps } from '@bridge-ui/core/Utils';
3
+ import { IconSource } from '../../Adapters/Icon';
4
+ import { IconProps } from '../Icon';
5
+ export interface StepClasses {
6
+ /**
7
+ * Classes merged onto the connector line.
8
+ */
9
+ connector?: string;
10
+ /**
11
+ * Classes merged onto optional vertical body content.
12
+ */
13
+ content?: string;
14
+ /**
15
+ * Classes merged onto the description.
16
+ */
17
+ description?: string;
18
+ /**
19
+ * Classes merged onto the indicator icon.
20
+ */
21
+ icon?: string;
22
+ /**
23
+ * Classes merged onto the circle / number indicator.
24
+ */
25
+ indicator?: string;
26
+ /**
27
+ * Classes merged onto the step title.
28
+ */
29
+ label?: string;
30
+ /**
31
+ * Classes merged onto the list item.
32
+ */
33
+ root?: string;
34
+ /**
35
+ * Classes merged onto the step trigger.
36
+ */
37
+ trigger?: string;
38
+ }
39
+ export interface StepCustomProps {
40
+ /**
41
+ * Props forwarded to the connector line.
42
+ *
43
+ * @default undefined
44
+ */
45
+ connector?: HTMLAttributes;
46
+ /**
47
+ * Props forwarded to optional vertical body content.
48
+ *
49
+ * @default undefined
50
+ */
51
+ content?: HTMLAttributes;
52
+ /**
53
+ * Props forwarded to the description.
54
+ *
55
+ * @default undefined
56
+ */
57
+ description?: HTMLAttributes;
58
+ /**
59
+ * Props forwarded to the indicator `Icon`.
60
+ *
61
+ * @default undefined
62
+ */
63
+ icon?: Partial<Omit<IconProps, "icon">>;
64
+ /**
65
+ * Props forwarded to the circle / number indicator.
66
+ *
67
+ * @default undefined
68
+ */
69
+ indicator?: HTMLAttributes;
70
+ /**
71
+ * Props forwarded to the step title.
72
+ *
73
+ * @default undefined
74
+ */
75
+ label?: HTMLAttributes;
76
+ /**
77
+ * Props forwarded to the list item.
78
+ *
79
+ * @default undefined
80
+ */
81
+ root?: HTMLAttributes;
82
+ /**
83
+ * Props forwarded to the step trigger.
84
+ *
85
+ * @default undefined
86
+ */
87
+ trigger?: ButtonHTMLAttributes;
88
+ }
89
+ /**
90
+ * One step in a `Stepper`. Must be used inside `Stepper`.
91
+ */
92
+ export interface StepOwnProps {
93
+ /**
94
+ * Classes for step parts.
95
+ *
96
+ * @default undefined
97
+ */
98
+ classes?: StepClasses;
99
+ /**
100
+ * Force completed state (else derived from index vs `activeStep`).
101
+ *
102
+ * @default undefined
103
+ */
104
+ completed?: boolean;
105
+ /**
106
+ * Extra props for internal parts.
107
+ *
108
+ * @default undefined
109
+ */
110
+ customProps?: StepCustomProps;
111
+ /**
112
+ * Secondary text under the label.
113
+ *
114
+ * @default undefined
115
+ */
116
+ description?: string;
117
+ /**
118
+ * Non-interactive step.
119
+ *
120
+ * @default false
121
+ */
122
+ disabled?: boolean;
123
+ /**
124
+ * Error styling on the indicator.
125
+ *
126
+ * @default false
127
+ */
128
+ error?: boolean;
129
+ /**
130
+ * Override the default numeric / check indicator.
131
+ *
132
+ * @default undefined
133
+ */
134
+ icon?: IconSource;
135
+ /**
136
+ * Step title (prefer `#label` slot when set).
137
+ *
138
+ * @default undefined
139
+ */
140
+ label?: string;
141
+ }
142
+ export interface StepSlots {
143
+ /**
144
+ * Optional body shown under the step when `orientation="vertical"` and active.
145
+ */
146
+ default?: Slot<undefined>;
147
+ /**
148
+ * Custom description (overrides `description` when set).
149
+ */
150
+ description?: Slot<undefined>;
151
+ /**
152
+ * Custom indicator content (overrides number / check / `icon`).
153
+ */
154
+ icon?: Slot<undefined>;
155
+ /**
156
+ * Custom title (overrides `label` when set).
157
+ */
158
+ label?: Slot<undefined>;
159
+ }
160
+ export type StepProps = MergeHtmlProps<StepOwnProps, HTMLAttributes>;
@@ -0,0 +1,5 @@
1
+ import e from "./Stepper.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/Components/Stepper/Stepper.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,24 @@
1
+ import { StepperOwnProps, StepperSlots } from './stepper.types';
2
+ type __VLS_Slots = StepperSlots;
3
+ type __VLS_Props = StepperOwnProps;
4
+ type __VLS_ModelProps = {
5
+ modelValue?: number;
6
+ };
7
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
8
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
+ change: (step: number) => any;
10
+ "update:modelValue": (...args: unknown[]) => any;
11
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
12
+ onChange?: ((step: number) => any) | undefined;
13
+ "onUpdate:modelValue"?: ((...args: unknown[]) => any) | undefined;
14
+ }>, {
15
+ linear: boolean;
16
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
17
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
20
+ type __VLS_WithSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -0,0 +1,33 @@
1
+ import { useStepper as e } from "./composables/useStepper.js";
2
+ import { createElementBlock as t, createElementVNode as n, defineComponent as r, guardReactiveProps as i, mergeModels as a, normalizeProps as o, openBlock as s, renderSlot as c, unref as l, useModel as u } from "vue";
3
+ //#region src/Components/Stepper/Stepper.vue?vue&type=script&setup=true&lang.ts
4
+ var d = /*@__PURE__*/ r({
5
+ inheritAttrs: !1,
6
+ __name: "Stepper",
7
+ props: /*@__PURE__*/ a({
8
+ classes: {},
9
+ color: {},
10
+ customProps: {},
11
+ linear: {
12
+ type: Boolean,
13
+ default: !0
14
+ },
15
+ orientation: {},
16
+ size: {}
17
+ }, {
18
+ modelValue: { default: 0 },
19
+ modelModifiers: {}
20
+ }),
21
+ emits: /*@__PURE__*/ a(["change", "update:modelValue"], ["update:modelValue"]),
22
+ setup(r, { emit: a }) {
23
+ let d = a, f = r, p = u(r, "modelValue"), { listBind: m, rootBind: h } = e(f, {
24
+ size: "md",
25
+ linear: !0,
26
+ color: "primary",
27
+ orientation: "horizontal"
28
+ }, p, d);
29
+ return (e, r) => (s(), t("nav", o(i(l(h))), [n("ol", o(i(l(m))), [c(e.$slots, "default")], 16)], 16));
30
+ }
31
+ });
32
+ //#endregion
33
+ export { d as default };
@@ -0,0 +1,18 @@
1
+ import { Ref, SetupContext } from 'vue';
2
+ import { LibDefaultsShape, MergeLibDefaults } from '@bridge-ui/core/Utils';
3
+ import { StepperEmits, StepperOwnProps, StepperProps } from '../stepper.types';
4
+ import { StepperContextValue } from '../stepperInjectionKey';
5
+ type StepperLibDefaults = LibDefaultsShape<StepperOwnProps, "size" | "color" | "linear" | "orientation">;
6
+ type StepperMerged = MergeLibDefaults<StepperOwnProps, StepperLibDefaults>;
7
+ export declare function useStepper(props: StepperOwnProps, libDefaults: StepperLibDefaults, model: Ref<number | undefined>, emit: SetupContext<StepperEmits>["emit"]): {
8
+ merged: import('vue').ComputedRef<StepperMerged>;
9
+ listBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
10
+ class: string;
11
+ }, "class", import('vue').OlHTMLAttributes | undefined, {}>>;
12
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core/Utils').MergePartBind<{
13
+ "aria-label": string;
14
+ class: string;
15
+ }, "class", import('vue').HTMLAttributes | undefined, Omit<StepperProps, "color" | "orientation" | "size" | "classes" | "customProps" | "linear">>>;
16
+ contextValue: import('vue').ComputedRef<StepperContextValue>;
17
+ };
18
+ export {};
@@ -0,0 +1,91 @@
1
+ import { mergePartBind as e, useBridgeUIComponent as t, useBridgeUIMergedRegistryClasses as n } from "../../../Utils/index.js";
2
+ import { STEPPER_INJECTION_KEY as r } from "../stepperInjectionKey.js";
3
+ import { computed as i, provide as a, ref as o, useAttrs as s, useId as c } from "vue";
4
+ import { get as l } from "es-toolkit/compat";
5
+ import { getAdjacentStepperIndex as u, getStepperStepId as d } from "@bridge-ui/core/Domain";
6
+ import { stepperChromeProps as f, stepperColorProps as p, stepperOrientationProps as m, stepperSizeProps as h } from "@bridge-ui/core/Tokens";
7
+ import { cn as g, mergeBridgeUILayeredClasses as _, splitComponentProps as v } from "@bridge-ui/core/Utils";
8
+ //#region src/Components/Stepper/composables/useStepper.ts
9
+ var y = [
10
+ "size",
11
+ "color",
12
+ "linear",
13
+ "classes",
14
+ "customProps",
15
+ "orientation"
16
+ ];
17
+ function b(b, x, S, C) {
18
+ let w = c(), T = s(), E = `bridge-stepper${w}`, D = o([]), O = /* @__PURE__ */ new Map(), k = i(() => v({
19
+ props: {
20
+ ...T,
21
+ ...b
22
+ },
23
+ bridgeKeys: y
24
+ })), { merged: A, entry: j } = t({
25
+ libDefaults: x,
26
+ componentName: "Stepper",
27
+ props: () => k.value.componentProps
28
+ }), M = i(() => S.value ?? 0);
29
+ function N(e) {
30
+ return D.value.includes(e) || (D.value = [...D.value, e]), () => {
31
+ D.value = D.value.filter((t) => t !== e);
32
+ };
33
+ }
34
+ function P(e, t) {
35
+ O.set(e, t);
36
+ }
37
+ function F(e) {
38
+ let t = O.get(e);
39
+ t?.disabled || t?.clickable === !1 || (S.value = e, C("update:modelValue", e), C("change", e));
40
+ }
41
+ function I(e) {
42
+ document.getElementById(d(E, e))?.focus();
43
+ }
44
+ function L(e, t) {
45
+ let n = /* @__PURE__ */ new Set();
46
+ return O.forEach((e, t) => {
47
+ (e.disabled || !e.clickable) && n.add(t);
48
+ }), u(D.value.length, e, t, n);
49
+ }
50
+ function R(e) {
51
+ return D.value.indexOf(e);
52
+ }
53
+ let z = n({
54
+ entry: j,
55
+ props: () => k.value.componentProps
56
+ }), B = i(() => _(h, j.value?.tokens?.size)), V = i(() => _(p, j.value?.tokens?.color)), H = i(() => _(m, j.value?.tokens?.orientation)), U = i(() => l(B.value, A.value.size)), W = i(() => l(V.value, A.value.color)), G = i(() => l(V.value, "error")), K = i(() => l(H.value, A.value.orientation)), q = i(() => ({
57
+ getIndex: R,
58
+ focusStep: I,
59
+ selectStep: F,
60
+ registerStep: N,
61
+ id: E,
62
+ getAdjacentIndex: L,
63
+ registerStepMeta: P,
64
+ sizeItem: U.value,
65
+ colorItem: W.value,
66
+ activeStep: M.value,
67
+ errorColorItem: G.value,
68
+ linear: A.value.linear === !0,
69
+ orientationItem: K.value,
70
+ orientation: String(A.value.orientation)
71
+ }));
72
+ a(r, q);
73
+ let J = i(() => e(A.value.customProps?.root, k.value.inheritedAttrs, {
74
+ "aria-label": "Progress",
75
+ class: g({ [l(z.value, "root") ?? ""]: !0 })
76
+ }));
77
+ return {
78
+ merged: A,
79
+ listBind: i(() => e(A.value.customProps?.list, {}, { class: g({
80
+ [f.list]: !0,
81
+ [l(U.value, "track") ?? ""]: !0,
82
+ [l(K.value, "list") ?? ""]: !0,
83
+ [l(z.value, "list") ?? ""]: !0,
84
+ "[&>li:last-child_[data-part=connector]]:hidden": !0
85
+ }) })),
86
+ rootBind: J,
87
+ contextValue: q
88
+ };
89
+ }
90
+ //#endregion
91
+ export { b as useStepper };
@@ -0,0 +1,4 @@
1
+ export { useStepper } from './composables/useStepper';
2
+ export type { StepperClasses, StepperColorOverrides, StepperCustomProps, StepperEmits, StepperOrientationOverrides, StepperOwnProps, StepperProps, StepperSizeOverrides, StepperSlots, } from './stepper.types';
3
+ export { default as Stepper } from './Stepper.vue';
4
+ export { STEPPER_INJECTION_KEY, type StepperContextValue, type StepperStepMeta, } from './stepperInjectionKey';
@@ -0,0 +1,4 @@
1
+ import { STEPPER_INJECTION_KEY as e } from "./stepperInjectionKey.js";
2
+ import { useStepper as t } from "./composables/useStepper.js";
3
+ import n from "./Stepper.js";
4
+ export { e as STEPPER_INJECTION_KEY, n as Stepper, t as useStepper };
@@ -0,0 +1,93 @@
1
+ import { HTMLAttributes, OlHTMLAttributes, Slot } from 'vue';
2
+ import { StepperColor, StepperOrientation, StepperSize } from '@bridge-ui/core/Tokens';
3
+ import { MergeHtmlProps, MergeProps } from '@bridge-ui/core/Utils';
4
+ export interface StepperSizeOverrides {}
5
+ export interface StepperColorOverrides {}
6
+ export interface StepperOrientationOverrides {}
7
+ export interface StepperClasses {
8
+ /**
9
+ * Classes merged onto the ordered list.
10
+ */
11
+ list?: string;
12
+ /**
13
+ * Classes merged onto the nav root.
14
+ */
15
+ root?: string;
16
+ }
17
+ export interface StepperCustomProps {
18
+ /**
19
+ * Props forwarded to the ordered list.
20
+ *
21
+ * @default undefined
22
+ */
23
+ list?: OlHTMLAttributes;
24
+ /**
25
+ * Props forwarded to the nav root.
26
+ *
27
+ * @default undefined
28
+ */
29
+ root?: HTMLAttributes;
30
+ }
31
+ export interface StepperEmits {
32
+ /**
33
+ * Emitted when the active index changes.
34
+ */
35
+ change: [step: number];
36
+ /**
37
+ * Emitted when `v-model` should update.
38
+ */
39
+ "update:modelValue": [step: number];
40
+ }
41
+ /**
42
+ * Multi-step flow indicator. Compose with `Step`.
43
+ */
44
+ export interface StepperOwnProps {
45
+ /**
46
+ * Classes for stepper parts.
47
+ *
48
+ * @default undefined
49
+ */
50
+ classes?: StepperClasses;
51
+ /**
52
+ * Accent color for active / completed steps.
53
+ *
54
+ * @default "primary"
55
+ */
56
+ color?: MergeProps<StepperColor, StepperColorOverrides>;
57
+ /**
58
+ * Extra props for internal parts.
59
+ *
60
+ * @default undefined
61
+ */
62
+ customProps?: StepperCustomProps;
63
+ /**
64
+ * Block jumping ahead of incomplete steps.
65
+ *
66
+ * @default true
67
+ */
68
+ linear?: boolean;
69
+ /**
70
+ * Layout direction.
71
+ *
72
+ * @default "horizontal"
73
+ */
74
+ orientation?: MergeProps<StepperOrientation, StepperOrientationOverrides>;
75
+ /**
76
+ * Indicator and label scale.
77
+ *
78
+ * @default "md"
79
+ */
80
+ size?: MergeProps<StepperSize, StepperSizeOverrides>;
81
+ }
82
+ export interface StepperSlots {
83
+ /**
84
+ * The children to render (`Step`, etc.).
85
+ */
86
+ default?: Slot<undefined>;
87
+ }
88
+ export type StepperProps = MergeHtmlProps<StepperOwnProps, HTMLAttributes> & {
89
+ /**
90
+ * Bound with `v-model` on the component (`defineModel` internally).
91
+ */
92
+ modelValue?: number;
93
+ };
@@ -0,0 +1,77 @@
1
+ import { ComputedRef, InjectionKey } from 'vue';
2
+ import { StepperColorItem, StepperOrientationItem, StepperSizeItem } from '@bridge-ui/core/Tokens';
3
+ /**
4
+ * Per-step flags registered for click / keyboard gating.
5
+ */
6
+ export type StepperStepMeta = {
7
+ /**
8
+ * Whether the step may be selected.
9
+ */
10
+ clickable: boolean;
11
+ /**
12
+ * Whether the step is disabled.
13
+ */
14
+ disabled: boolean;
15
+ };
16
+ /**
17
+ * Shared stepper state for `Step` descendants.
18
+ */
19
+ export type StepperContextValue = {
20
+ /**
21
+ * Bound 0-based active index.
22
+ */
23
+ activeStep: number;
24
+ /**
25
+ * Accent color item for the stepper `color` token.
26
+ */
27
+ colorItem: undefined | StepperColorItem;
28
+ /**
29
+ * Error palette (used when a step has `error`).
30
+ */
31
+ errorColorItem: undefined | StepperColorItem;
32
+ /**
33
+ * Focus a step trigger by index.
34
+ */
35
+ focusStep: (index: number) => void;
36
+ /**
37
+ * Next enabled, clickable index from `from`, wrapping around.
38
+ */
39
+ getAdjacentIndex: (from: number, direction: 1 | -1) => number;
40
+ /**
41
+ * Resolves a registered step's 0-based index.
42
+ */
43
+ getIndex: (id: string) => number;
44
+ /**
45
+ * Stable id prefix for step / content pairing.
46
+ */
47
+ id: string;
48
+ /**
49
+ * When true, block jumping ahead of incomplete steps.
50
+ */
51
+ linear: boolean;
52
+ /**
53
+ * Layout direction token key.
54
+ */
55
+ orientation: string;
56
+ /**
57
+ * Orientation class map.
58
+ */
59
+ orientationItem: undefined | StepperOrientationItem;
60
+ /**
61
+ * Registers a step id and returns unregister.
62
+ */
63
+ registerStep: (id: string) => () => void;
64
+ /**
65
+ * Records clickable / disabled for an index.
66
+ */
67
+ registerStepMeta: (index: number, meta: StepperStepMeta) => void;
68
+ /**
69
+ * Selects a step when clickable.
70
+ */
71
+ selectStep: (index: number) => void;
72
+ /**
73
+ * Size class map.
74
+ */
75
+ sizeItem: undefined | StepperSizeItem;
76
+ };
77
+ export declare const STEPPER_INJECTION_KEY: InjectionKey<ComputedRef<StepperContextValue>>;