vuetify 3.3.10 → 3.3.12

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 (232) hide show
  1. package/dist/_component-variables-labs.sass +3 -1
  2. package/dist/json/attributes.json +225 -33
  3. package/dist/json/importMap-labs.json +28 -0
  4. package/dist/json/tags.json +80 -0
  5. package/dist/json/web-types.json +703 -34
  6. package/dist/vuetify-labs.css +1092 -899
  7. package/dist/vuetify-labs.d.ts +2810 -304
  8. package/dist/vuetify-labs.esm.js +784 -87
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +784 -87
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +349 -316
  13. package/dist/vuetify.d.ts +64 -29
  14. package/dist/vuetify.esm.js +141 -63
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +141 -63
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +954 -947
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/blueprints/md1.mjs +5 -0
  22. package/lib/blueprints/md1.mjs.map +1 -1
  23. package/lib/blueprints/md2.mjs +5 -0
  24. package/lib/blueprints/md2.mjs.map +1 -1
  25. package/lib/blueprints/md3.mjs +7 -1
  26. package/lib/blueprints/md3.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs +13 -10
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  29. package/lib/components/VAutocomplete/index.d.mts +6 -0
  30. package/lib/components/VBanner/VBanner.css +2 -0
  31. package/lib/components/VBanner/VBanner.sass +2 -0
  32. package/lib/components/VBtn/VBtn.css +3 -0
  33. package/lib/components/VBtn/VBtn.sass +2 -0
  34. package/lib/components/VCarousel/index.d.mts +12 -10
  35. package/lib/components/VChip/VChip.mjs +4 -3
  36. package/lib/components/VChip/VChip.mjs.map +1 -1
  37. package/lib/components/VCombobox/VCombobox.mjs +10 -4
  38. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  39. package/lib/components/VCombobox/index.d.mts +6 -0
  40. package/lib/components/VDialog/VDialog.css +15 -6
  41. package/lib/components/VDialog/VDialog.sass +41 -35
  42. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +8 -3
  43. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  44. package/lib/components/VField/VField.css +6 -2
  45. package/lib/components/VField/VField.sass +6 -2
  46. package/lib/components/VGrid/VGrid.css +4 -0
  47. package/lib/components/VGrid/VGrid.sass +4 -1
  48. package/lib/components/VGrid/VSpacer.mjs +1 -1
  49. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  50. package/lib/components/VList/VListItem.css +7 -1
  51. package/lib/components/VList/VListItem.mjs +1 -0
  52. package/lib/components/VList/VListItem.mjs.map +1 -1
  53. package/lib/components/VList/VListItem.sass +4 -0
  54. package/lib/components/VMenu/VMenu.mjs +29 -4
  55. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  56. package/lib/components/VOverlay/useActivator.mjs +2 -2
  57. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  58. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  59. package/lib/components/VRangeSlider/index.d.mts +8 -8
  60. package/lib/components/VRating/VRating.mjs +4 -2
  61. package/lib/components/VRating/VRating.mjs.map +1 -1
  62. package/lib/components/VSelect/VSelect.mjs +11 -4
  63. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  64. package/lib/components/VSelect/index.d.mts +6 -0
  65. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -2
  66. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  67. package/lib/components/VSlider/VSlider.mjs +2 -3
  68. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  69. package/lib/components/VSlider/slider.mjs +1 -0
  70. package/lib/components/VSlider/slider.mjs.map +1 -1
  71. package/lib/components/VSwitch/VSwitch.css +3 -0
  72. package/lib/components/VSwitch/VSwitch.sass +3 -0
  73. package/lib/components/VSwitch/_variables.scss +1 -0
  74. package/lib/components/VTable/VTable.css +2 -0
  75. package/lib/components/VTable/VTable.sass +2 -0
  76. package/lib/components/VTimeline/VTimeline.css +2 -2
  77. package/lib/components/VTimeline/VTimeline.sass +2 -2
  78. package/lib/components/VTooltip/VTooltip.css +1 -1
  79. package/lib/components/VTooltip/_variables.scss +1 -1
  80. package/lib/components/VWindow/VWindow.mjs +1 -0
  81. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  82. package/lib/components/VWindow/VWindowItem.mjs +3 -1
  83. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  84. package/lib/components/VWindow/index.d.mts +29 -11
  85. package/lib/components/index.d.mts +57 -29
  86. package/lib/composables/group.mjs +1 -1
  87. package/lib/composables/group.mjs.map +1 -1
  88. package/lib/composables/theme.mjs +12 -6
  89. package/lib/composables/theme.mjs.map +1 -1
  90. package/lib/entry-bundler.mjs +1 -1
  91. package/lib/framework.mjs +1 -1
  92. package/lib/index.d.mts +7 -0
  93. package/lib/labs/VDateInput/composables.mjs +11 -1
  94. package/lib/labs/VDateInput/composables.mjs.map +1 -1
  95. package/lib/labs/VDatePicker/VDatePicker.css +6 -5
  96. package/lib/labs/VDatePicker/VDatePicker.mjs +36 -16
  97. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  98. package/lib/labs/VDatePicker/VDatePicker.sass +8 -9
  99. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +1 -1
  100. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  101. package/lib/labs/VDatePicker/composables.mjs +4 -2
  102. package/lib/labs/VDatePicker/composables.mjs.map +1 -1
  103. package/lib/labs/VDatePicker/index.d.mts +14 -0
  104. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +2 -2
  105. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -1
  106. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +4 -5
  107. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  108. package/lib/labs/VOtpInput/VOtpInput.css +53 -0
  109. package/lib/labs/VOtpInput/VOtpInput.mjs +222 -0
  110. package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -0
  111. package/lib/labs/VOtpInput/VOtpInput.sass +55 -0
  112. package/lib/labs/VOtpInput/_variables.scss +2 -0
  113. package/lib/labs/VOtpInput/index.d.mts +459 -0
  114. package/lib/labs/VOtpInput/index.mjs +2 -0
  115. package/lib/labs/VOtpInput/index.mjs.map +1 -0
  116. package/lib/labs/VPicker/VPicker.mjs +1 -1
  117. package/lib/labs/VPicker/VPicker.mjs.map +1 -1
  118. package/lib/labs/VStepper/VStepper.css +42 -0
  119. package/lib/labs/VStepper/VStepper.mjs +150 -0
  120. package/lib/labs/VStepper/VStepper.mjs.map +1 -0
  121. package/lib/labs/VStepper/VStepper.sass +44 -0
  122. package/lib/labs/VStepper/VStepperActions.mjs +61 -0
  123. package/lib/labs/VStepper/VStepperActions.mjs.map +1 -0
  124. package/lib/labs/VStepper/VStepperHeader.mjs +4 -0
  125. package/lib/labs/VStepper/VStepperHeader.mjs.map +1 -0
  126. package/lib/labs/VStepper/VStepperItem.css +67 -0
  127. package/lib/labs/VStepper/VStepperItem.mjs +114 -0
  128. package/lib/labs/VStepper/VStepperItem.mjs.map +1 -0
  129. package/lib/labs/VStepper/VStepperItem.sass +71 -0
  130. package/lib/labs/VStepper/VStepperWindow.mjs +50 -0
  131. package/lib/labs/VStepper/VStepperWindow.mjs.map +1 -0
  132. package/lib/labs/VStepper/VStepperWindowItem.mjs +24 -0
  133. package/lib/labs/VStepper/VStepperWindowItem.mjs.map +1 -0
  134. package/lib/labs/VStepper/_variables.scss +4 -0
  135. package/lib/labs/VStepper/index.d.mts +2045 -0
  136. package/lib/labs/VStepper/index.mjs +7 -0
  137. package/lib/labs/VStepper/index.mjs.map +1 -0
  138. package/lib/labs/components.d.mts +2759 -267
  139. package/lib/labs/components.mjs +2 -0
  140. package/lib/labs/components.mjs.map +1 -1
  141. package/lib/labs/date/adapters/vuetify.mjs +7 -8
  142. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  143. package/lib/locale/af.mjs +6 -1
  144. package/lib/locale/af.mjs.map +1 -1
  145. package/lib/locale/ar.mjs +6 -1
  146. package/lib/locale/ar.mjs.map +1 -1
  147. package/lib/locale/az.mjs +6 -1
  148. package/lib/locale/az.mjs.map +1 -1
  149. package/lib/locale/bg.mjs +6 -1
  150. package/lib/locale/bg.mjs.map +1 -1
  151. package/lib/locale/ca.mjs +6 -1
  152. package/lib/locale/ca.mjs.map +1 -1
  153. package/lib/locale/ckb.mjs +6 -1
  154. package/lib/locale/ckb.mjs.map +1 -1
  155. package/lib/locale/cs.mjs +6 -1
  156. package/lib/locale/cs.mjs.map +1 -1
  157. package/lib/locale/da.mjs +6 -1
  158. package/lib/locale/da.mjs.map +1 -1
  159. package/lib/locale/de.mjs +6 -1
  160. package/lib/locale/de.mjs.map +1 -1
  161. package/lib/locale/el.mjs +6 -1
  162. package/lib/locale/el.mjs.map +1 -1
  163. package/lib/locale/en.mjs +6 -1
  164. package/lib/locale/en.mjs.map +1 -1
  165. package/lib/locale/es.mjs +6 -1
  166. package/lib/locale/es.mjs.map +1 -1
  167. package/lib/locale/et.mjs +6 -1
  168. package/lib/locale/et.mjs.map +1 -1
  169. package/lib/locale/fa.mjs +6 -1
  170. package/lib/locale/fa.mjs.map +1 -1
  171. package/lib/locale/fi.mjs +6 -1
  172. package/lib/locale/fi.mjs.map +1 -1
  173. package/lib/locale/fr.mjs +6 -1
  174. package/lib/locale/fr.mjs.map +1 -1
  175. package/lib/locale/he.mjs +6 -1
  176. package/lib/locale/he.mjs.map +1 -1
  177. package/lib/locale/hr.mjs +6 -1
  178. package/lib/locale/hr.mjs.map +1 -1
  179. package/lib/locale/hu.mjs +6 -1
  180. package/lib/locale/hu.mjs.map +1 -1
  181. package/lib/locale/id.mjs +6 -1
  182. package/lib/locale/id.mjs.map +1 -1
  183. package/lib/locale/index.d.mts +210 -0
  184. package/lib/locale/it.mjs +6 -1
  185. package/lib/locale/it.mjs.map +1 -1
  186. package/lib/locale/ja.mjs +6 -1
  187. package/lib/locale/ja.mjs.map +1 -1
  188. package/lib/locale/ko.mjs +6 -1
  189. package/lib/locale/ko.mjs.map +1 -1
  190. package/lib/locale/lt.mjs +6 -1
  191. package/lib/locale/lt.mjs.map +1 -1
  192. package/lib/locale/lv.mjs +6 -1
  193. package/lib/locale/lv.mjs.map +1 -1
  194. package/lib/locale/nl.mjs +6 -1
  195. package/lib/locale/nl.mjs.map +1 -1
  196. package/lib/locale/no.mjs +19 -14
  197. package/lib/locale/no.mjs.map +1 -1
  198. package/lib/locale/pl.mjs +6 -1
  199. package/lib/locale/pl.mjs.map +1 -1
  200. package/lib/locale/pt.mjs +6 -1
  201. package/lib/locale/pt.mjs.map +1 -1
  202. package/lib/locale/ro.mjs +23 -18
  203. package/lib/locale/ro.mjs.map +1 -1
  204. package/lib/locale/ru.mjs +6 -1
  205. package/lib/locale/ru.mjs.map +1 -1
  206. package/lib/locale/sk.mjs +6 -1
  207. package/lib/locale/sk.mjs.map +1 -1
  208. package/lib/locale/sl.mjs +6 -1
  209. package/lib/locale/sl.mjs.map +1 -1
  210. package/lib/locale/sr-Cyrl.mjs +6 -1
  211. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  212. package/lib/locale/sr-Latn.mjs +6 -1
  213. package/lib/locale/sr-Latn.mjs.map +1 -1
  214. package/lib/locale/sv.mjs +6 -1
  215. package/lib/locale/sv.mjs.map +1 -1
  216. package/lib/locale/th.mjs +6 -1
  217. package/lib/locale/th.mjs.map +1 -1
  218. package/lib/locale/tr.mjs +6 -1
  219. package/lib/locale/tr.mjs.map +1 -1
  220. package/lib/locale/uk.mjs +6 -1
  221. package/lib/locale/uk.mjs.map +1 -1
  222. package/lib/locale/vi.mjs +6 -1
  223. package/lib/locale/vi.mjs.map +1 -1
  224. package/lib/locale/zh-Hans.mjs +6 -1
  225. package/lib/locale/zh-Hans.mjs.map +1 -1
  226. package/lib/locale/zh-Hant.mjs +6 -1
  227. package/lib/locale/zh-Hant.mjs.map +1 -1
  228. package/lib/util/globals.mjs +0 -1
  229. package/lib/util/globals.mjs.map +1 -1
  230. package/lib/util/helpers.mjs +32 -12
  231. package/lib/util/helpers.mjs.map +1 -1
  232. package/package.json +3 -2
@@ -0,0 +1,150 @@
1
+ import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
+ // Styles
3
+ import "./VStepper.css";
4
+
5
+ // Components
6
+ import { makeVStepperActionsProps, VStepperActions } from "./VStepperActions.mjs";
7
+ import { VStepperHeader } from "./VStepperHeader.mjs";
8
+ import { VStepperItem } from "./VStepperItem.mjs";
9
+ import { VStepperWindow } from "./VStepperWindow.mjs";
10
+ import { VStepperWindowItem } from "./VStepperWindowItem.mjs";
11
+ import { VDivider } from "../../components/VDivider/index.mjs";
12
+ import { makeVSheetProps, VSheet } from "../../components/VSheet/VSheet.mjs"; // Composables
13
+ import { provideDefaults } from "../../composables/defaults.mjs";
14
+ import { makeGroupProps, useGroup } from "../../composables/group.mjs"; // Utilities
15
+ import { computed, toRefs } from 'vue';
16
+ import { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
17
+ export const VStepperSymbol = Symbol.for('vuetify:v-stepper');
18
+ export const makeVStepperProps = propsFactory({
19
+ altLabels: Boolean,
20
+ bgColor: String,
21
+ editable: Boolean,
22
+ hideActions: Boolean,
23
+ items: {
24
+ type: Array,
25
+ default: () => []
26
+ },
27
+ itemTitle: {
28
+ type: String,
29
+ default: 'title'
30
+ },
31
+ itemValue: {
32
+ type: String,
33
+ default: 'value'
34
+ },
35
+ mobile: Boolean,
36
+ nonLinear: Boolean,
37
+ flat: Boolean,
38
+ ...makeGroupProps({
39
+ mandatory: 'force',
40
+ selectedClass: 'v-stepper-item--selected'
41
+ }),
42
+ ...makeVSheetProps(),
43
+ ...only(makeVStepperActionsProps(), ['prevText', 'nextText'])
44
+ }, 'VStepper');
45
+ export const VStepper = genericComponent()({
46
+ name: 'VStepper',
47
+ props: makeVStepperProps(),
48
+ emits: {
49
+ 'update:modelValue': v => true
50
+ },
51
+ setup(props, _ref) {
52
+ let {
53
+ slots
54
+ } = _ref;
55
+ // TODO: fix typing
56
+ const {
57
+ items: _items,
58
+ next,
59
+ prev,
60
+ selected
61
+ } = useGroup(props, VStepperSymbol);
62
+ const {
63
+ color,
64
+ editable,
65
+ prevText,
66
+ nextText
67
+ } = toRefs(props);
68
+ const items = computed(() => props.items.map((item, index) => {
69
+ const title = getPropertyFromItem(item, props.itemTitle, item);
70
+ const value = getPropertyFromItem(item, props.itemValue, index + 1);
71
+ return {
72
+ title,
73
+ value,
74
+ raw: item
75
+ };
76
+ }));
77
+ const activeIndex = computed(() => {
78
+ return _items.value.findIndex(item => selected.value.includes(item.id));
79
+ });
80
+ const disabled = computed(() => {
81
+ if (props.disabled) return props.disabled;
82
+ if (activeIndex.value === 0) return 'prev';
83
+ if (activeIndex.value === _items.value.length - 1) return 'next';
84
+ return false;
85
+ });
86
+ provideDefaults({
87
+ VStepperItem: {
88
+ editable,
89
+ prevText,
90
+ nextText
91
+ },
92
+ VStepperActions: {
93
+ color,
94
+ disabled,
95
+ prevText,
96
+ nextText
97
+ }
98
+ });
99
+ useRender(() => {
100
+ const [sheetProps] = VSheet.filterProps(props);
101
+ const hasHeader = !!(slots.header || props.items.length);
102
+ const hasWindow = props.items.length > 0;
103
+ const hasActions = !props.hideActions && !!(hasWindow || slots.actions);
104
+ return _createVNode(VSheet, _mergeProps(sheetProps, {
105
+ "color": props.bgColor,
106
+ "class": ['v-stepper', {
107
+ 'v-stepper--alt-labels': props.altLabels,
108
+ 'v-stepper--flat': props.flat,
109
+ 'v-stepper--non-linear': props.nonLinear,
110
+ 'v-stepper--mobile': props.mobile
111
+ }, props.class],
112
+ "style": props.style
113
+ }), {
114
+ default: () => [hasHeader && _createVNode(VStepperHeader, {
115
+ "key": "stepper-header"
116
+ }, {
117
+ default: () => [items.value.map((item, index) => _createVNode(_Fragment, null, [!!index && _createVNode(VDivider, null, null), _createVNode(VStepperItem, item, {
118
+ default: slots[`header-item.${item.value}`] ?? slots.header,
119
+ icon: slots.icon,
120
+ title: slots.title,
121
+ subtitle: slots.subtitle
122
+ })]))]
123
+ }), hasWindow && _createVNode(VStepperWindow, {
124
+ "key": "stepper-window"
125
+ }, {
126
+ default: () => [items.value.map(item => _createVNode(VStepperWindowItem, {
127
+ "value": item.value
128
+ }, {
129
+ default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item)
130
+ }))]
131
+ }), slots.default?.({
132
+ prev,
133
+ next
134
+ }), hasActions && (slots.actions?.({
135
+ next,
136
+ prev
137
+ }) ?? _createVNode(VStepperActions, {
138
+ "key": "stepper-actions",
139
+ "onClick:prev": prev,
140
+ "onClick:next": next
141
+ }, null))]
142
+ });
143
+ });
144
+ return {
145
+ prev,
146
+ next
147
+ };
148
+ }
149
+ });
150
+ //# sourceMappingURL=VStepper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStepper.mjs","names":["makeVStepperActionsProps","VStepperActions","VStepperHeader","VStepperItem","VStepperWindow","VStepperWindowItem","VDivider","makeVSheetProps","VSheet","provideDefaults","makeGroupProps","useGroup","computed","toRefs","genericComponent","getPropertyFromItem","only","propsFactory","useRender","VStepperSymbol","Symbol","for","makeVStepperProps","altLabels","Boolean","bgColor","String","editable","hideActions","items","type","Array","default","itemTitle","itemValue","mobile","nonLinear","flat","mandatory","selectedClass","VStepper","name","props","emits","v","setup","_ref","slots","_items","next","prev","selected","color","prevText","nextText","map","item","index","title","value","raw","activeIndex","findIndex","includes","id","disabled","length","sheetProps","filterProps","hasHeader","header","hasWindow","hasActions","actions","_createVNode","_mergeProps","class","style","_Fragment","icon","subtitle"],"sources":["../../../src/labs/VStepper/VStepper.tsx"],"sourcesContent":["// Styles\nimport './VStepper.sass'\n\n// Components\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { StepperItemSlot } from './VStepperItem'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-stepper')\n\nexport type StepperItem = string | Record<string, any>\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: StepperItem\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeVStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n editable: Boolean,\n hideActions: Boolean,\n items: {\n type: Array as PropType<readonly StepperItem[]>,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n mobile: Boolean,\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent<VStepperSlots>()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n // TODO: fix typing\n const { items: _items, next, prev, selected } = useGroup(props as any, VStepperSymbol)\n const { color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const [sheetProps] = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': props.mobile,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { hasHeader && (\n <VStepperHeader key=\"stepper-header\">\n { items.value.map((item, index) => (\n <>\n { !!index && (<VDivider />) }\n\n <VStepperItem\n { ...item }\n v-slots={{\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle,\n }}\n />\n </>\n ))}\n </VStepperHeader>\n )}\n\n { hasWindow && (\n <VStepperWindow key=\"stepper-window\">\n { items.value.map(item => (\n <VStepperWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n </VStepperWindow>\n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n <VStepperActions\n key=\"stepper-actions\"\n onClick:prev={ prev }\n onClick:next={ next }\n />\n )\n )}\n </VSheet>\n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ @use '../../styles/settings'
2
+ @use '../../styles/tools'
3
+ @use './variables' as *
4
+
5
+ .v-stepper.v-sheet
6
+ @include tools.elevation(2)
7
+ @include tools.rounded(4px)
8
+
9
+ overflow: hidden
10
+
11
+ .v-stepper-header
12
+ @include tools.elevation(2)
13
+
14
+ align-items: center
15
+ display: flex
16
+ position: relative
17
+ overflow-x: auto
18
+ justify-content: space-between
19
+ z-index: 1
20
+
21
+ .v-divider
22
+ margin: 0 -16px
23
+
24
+ .v-stepper--alt-labels &
25
+ height: auto
26
+
27
+ .v-divider
28
+ align-self: flex-start
29
+ margin: $stepper-alt-labels-header-divider
30
+
31
+ .v-stepper-window
32
+ margin: 1.5rem
33
+
34
+ .v-stepper-actions
35
+ display: flex
36
+ align-items: center
37
+ justify-content: space-between
38
+ padding: 1rem
39
+
40
+ .v-stepper &
41
+ padding: 0 1.5rem 1rem
42
+
43
+ .v-stepper-window-item &
44
+ padding: 1.5rem 0 0
@@ -0,0 +1,61 @@
1
+ import { createVNode as _createVNode } from "vue";
2
+ // Components
3
+ import { VBtn } from "../../components/VBtn/VBtn.mjs"; // Composables
4
+ import { useLocale } from "../../composables/locale.mjs"; // Utilities
5
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
6
+ export const makeVStepperActionsProps = propsFactory({
7
+ color: String,
8
+ disabled: {
9
+ type: [Boolean, String],
10
+ default: false
11
+ },
12
+ prevText: {
13
+ type: String,
14
+ default: '$vuetify.stepper.prev'
15
+ },
16
+ nextText: {
17
+ type: String,
18
+ default: '$vuetify.stepper.next'
19
+ }
20
+ }, 'VStepperActions');
21
+ export const VStepperActions = genericComponent()({
22
+ name: 'VStepperActions',
23
+ props: makeVStepperActionsProps(),
24
+ emits: {
25
+ 'click:prev': () => true,
26
+ 'click:next': () => true
27
+ },
28
+ setup(props, _ref) {
29
+ let {
30
+ emit,
31
+ slots
32
+ } = _ref;
33
+ const {
34
+ t
35
+ } = useLocale();
36
+ function onClickPrev() {
37
+ emit('click:prev');
38
+ }
39
+ function onClickNext() {
40
+ emit('click:next');
41
+ }
42
+ useRender(() => {
43
+ return _createVNode("div", {
44
+ "class": "v-stepper-actions"
45
+ }, [_createVNode(VBtn, {
46
+ "disabled": ['prev', true].includes(props.disabled),
47
+ "text": t(props.prevText),
48
+ "variant": "text",
49
+ "onClick": onClickPrev
50
+ }, null), _createVNode(VBtn, {
51
+ "disabled": ['next', true].includes(props.disabled),
52
+ "color": props.color,
53
+ "text": t(props.nextText),
54
+ "variant": "tonal",
55
+ "onClick": onClickNext
56
+ }, null)]);
57
+ });
58
+ return {};
59
+ }
60
+ });
61
+ //# sourceMappingURL=VStepperActions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStepperActions.mjs","names":["VBtn","useLocale","genericComponent","propsFactory","useRender","makeVStepperActionsProps","color","String","disabled","type","Boolean","default","prevText","nextText","VStepperActions","name","props","emits","click:prev","click:next","setup","_ref","emit","slots","t","onClickPrev","onClickNext","_createVNode","includes"],"sources":["../../../src/labs/VStepper/VStepperActions.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn/VBtn'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVStepperActionsProps = propsFactory({\n color: String,\n disabled: {\n type: [Boolean, String] as PropType<boolean | 'next' | 'prev'>,\n default: false,\n },\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev',\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next',\n },\n}, 'VStepperActions')\n\nexport const VStepperActions = genericComponent()({\n name: 'VStepperActions',\n\n props: makeVStepperActionsProps(),\n\n emits: {\n 'click:prev': () => true,\n 'click:next': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n useRender(() => {\n return (\n <div class=\"v-stepper-actions\">\n <VBtn\n disabled={['prev', true].includes(props.disabled)}\n text={ t(props.prevText) }\n variant=\"text\"\n onClick={ onClickPrev }\n />\n\n <VBtn\n disabled={['next', true].includes(props.disabled)}\n color={ props.color }\n text={ t(props.nextText) }\n variant=\"tonal\"\n onClick={ onClickNext }\n />\n </div>\n )\n })\n return {}\n },\n})\n"],"mappings":";AAAA;AAAA,SACSA,IAAI,0CAEb;AAAA,SACSC,SAAS,wCAElB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAGA,OAAO,MAAMC,wBAAwB,GAAGF,YAAY,CAAC;EACnDG,KAAK,EAAEC,MAAM;EACbC,QAAQ,EAAE;IACRC,IAAI,EAAE,CAACC,OAAO,EAAEH,MAAM,CAAwC;IAC9DI,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACRH,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDE,QAAQ,EAAE;IACRJ,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX;AACF,CAAC,EAAE,iBAAiB,CAAC;AAErB,OAAO,MAAMG,eAAe,GAAGZ,gBAAgB,EAAE,CAAC;EAChDa,IAAI,EAAE,iBAAiB;EAEvBC,KAAK,EAAEX,wBAAwB,EAAE;EAEjCY,KAAK,EAAE;IACL,YAAY,EAAEC,CAAA,KAAM,IAAI;IACxB,YAAY,EAAEC,CAAA,KAAM;EACtB,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAE,CAAC,GAAGvB,SAAS,EAAE;IACzB,SAASwB,WAAWA,CAAA,EAAI;MACtBH,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASI,WAAWA,CAAA,EAAI;MACtBJ,IAAI,CAAC,YAAY,CAAC;IACpB;IAEAlB,SAAS,CAAC,MAAM;MACd,OAAAuB,YAAA;QAAA,SACa;MAAmB,IAAAA,YAAA,CAAA3B,IAAA;QAAA,YAEhB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC4B,QAAQ,CAACZ,KAAK,CAACR,QAAQ,CAAC;QAAA,QAC1CgB,CAAC,CAACR,KAAK,CAACJ,QAAQ,CAAC;QAAA,WAChB,MAAM;QAAA,WACJa;MAAW,UAAAE,YAAA,CAAA3B,IAAA;QAAA,YAIX,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC4B,QAAQ,CAACZ,KAAK,CAACR,QAAQ,CAAC;QAAA,SACzCQ,KAAK,CAACV,KAAK;QAAA,QACZkB,CAAC,CAACR,KAAK,CAACH,QAAQ,CAAC;QAAA,WAChB,OAAO;QAAA,WACLa;MAAW;IAI7B,CAAC,CAAC;IACF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Utilities
2
+ import { createSimpleFunctional } from "../../util/index.mjs";
3
+ export const VStepperHeader = createSimpleFunctional('v-stepper-header');
4
+ //# sourceMappingURL=VStepperHeader.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStepperHeader.mjs","names":["createSimpleFunctional","VStepperHeader"],"sources":["../../../src/labs/VStepper/VStepperHeader.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VStepperHeader = createSimpleFunctional('v-stepper-header')\n\nexport type VStepperHeader = InstanceType<typeof VStepperHeader>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,cAAc,GAAGD,sBAAsB,CAAC,kBAAkB,CAAC"}
@@ -0,0 +1,67 @@
1
+ .v-stepper-item {
2
+ align-items: center;
3
+ align-self: stretch;
4
+ display: inline-flex;
5
+ flex: none;
6
+ opacity: var(--v-medium-emphasis-opacity);
7
+ padding: 1.5rem;
8
+ transition-duration: 0.2s;
9
+ transition-property: opacity;
10
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
11
+ }
12
+ .v-stepper-item--selected {
13
+ opacity: 1;
14
+ }
15
+ .v-stepper-item--error {
16
+ color: rgb(var(--v-theme-error));
17
+ }
18
+ .v-stepper-item--disabled {
19
+ opacity: var(--v-medium-emphasis-opacity);
20
+ pointer-events: none;
21
+ }
22
+ .v-stepper--alt-labels .v-stepper-item {
23
+ flex-direction: column;
24
+ justify-content: flex-start;
25
+ align-items: center;
26
+ flex-basis: 175px;
27
+ }
28
+
29
+ .v-stepper-item__avatar.v-avatar {
30
+ background: rgba(var(--v-theme-surface-variant), var(--v-medium-emphasis-opacity));
31
+ color: rgb(var(--v-theme-on-surface-variant));
32
+ font-size: 0.75rem;
33
+ margin-inline-end: 8px;
34
+ }
35
+ .v-stepper-item__avatar.v-avatar .v-icon {
36
+ font-size: 0.875rem;
37
+ }
38
+ .v-stepper-item--selected .v-stepper-item__avatar.v-avatar, .v-stepper-item--complete .v-stepper-item__avatar.v-avatar {
39
+ background: rgb(var(--v-theme-surface-variant));
40
+ }
41
+ .v-stepper-item--error .v-stepper-item__avatar.v-avatar {
42
+ background: rgb(var(--v-theme-error));
43
+ }
44
+ .v-stepper--alt-labels .v-stepper-item__avatar.v-avatar {
45
+ margin-bottom: 16px;
46
+ margin-inline-end: 0;
47
+ }
48
+
49
+ .v-stepper-item__title {
50
+ line-height: 1;
51
+ }
52
+ .v-stepper--mobile .v-stepper-item__title {
53
+ display: none;
54
+ }
55
+
56
+ .v-stepper-item__subtitle {
57
+ font-size: 0.75rem;
58
+ text-align: left;
59
+ line-height: 1;
60
+ opacity: var(--v-medium-emphasis-opacity);
61
+ }
62
+ .v-stepper--alt-labels .v-stepper-item__subtitle {
63
+ text-align: center;
64
+ }
65
+ .v-stepper--mobile .v-stepper-item__subtitle {
66
+ display: none;
67
+ }
@@ -0,0 +1,114 @@
1
+ import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
2
+ // Styles
3
+ import "./VStepperItem.css";
4
+
5
+ // Components
6
+ import { VAvatar } from "../../components/VAvatar/VAvatar.mjs";
7
+ import { VIcon } from "../../components/VIcon/VIcon.mjs"; // Composables
8
+ import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs"; // Directives
9
+ import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
10
+ import { computed } from 'vue';
11
+ import { VStepperSymbol } from "./VStepper.mjs";
12
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
13
+ export const makeVStepperItemProps = propsFactory({
14
+ color: String,
15
+ title: String,
16
+ subtitle: String,
17
+ complete: Boolean,
18
+ completeIcon: {
19
+ type: String,
20
+ default: '$complete'
21
+ },
22
+ editable: Boolean,
23
+ editIcon: {
24
+ type: String,
25
+ default: '$edit'
26
+ },
27
+ error: Boolean,
28
+ errorIcon: {
29
+ type: String,
30
+ default: '$error'
31
+ },
32
+ icon: String,
33
+ ripple: {
34
+ type: [Boolean, Object],
35
+ default: true
36
+ },
37
+ rules: {
38
+ type: Array,
39
+ default: () => []
40
+ },
41
+ ...makeGroupItemProps()
42
+ }, 'VStepperItem');
43
+ export const VStepperItem = genericComponent()({
44
+ name: 'VStepperItem',
45
+ directives: {
46
+ Ripple
47
+ },
48
+ props: makeVStepperItemProps(),
49
+ emits: {
50
+ 'group:selected': val => true
51
+ },
52
+ setup(props, _ref) {
53
+ let {
54
+ slots
55
+ } = _ref;
56
+ const group = useGroupItem(props, VStepperSymbol, true);
57
+ const step = computed(() => group?.value.value ?? props.value);
58
+ const isValid = computed(() => props.rules.every(handler => handler() === true));
59
+ const canEdit = computed(() => !props.disabled && props.editable);
60
+ const hasError = computed(() => props.error || !isValid.value);
61
+ const hasCompleted = computed(() => props.complete || props.rules.length > 0 && isValid.value);
62
+ const icon = computed(() => {
63
+ if (hasError.value) return props.errorIcon;
64
+ if (hasCompleted.value) return props.completeIcon;
65
+ if (props.editable) return props.editIcon;
66
+ return props.icon;
67
+ });
68
+ const slotProps = computed(() => ({
69
+ canEdit: canEdit.value,
70
+ hasError: hasError.value,
71
+ hasCompleted: hasCompleted.value,
72
+ title: props.title,
73
+ subtitle: props.subtitle,
74
+ step: step.value,
75
+ value: props.value
76
+ }));
77
+ useRender(() => {
78
+ const hasColor = (!group || group.isSelected.value || hasCompleted.value || canEdit.value) && !hasError.value && !props.disabled;
79
+ const hasTitle = !!(props.title || slots.title);
80
+ const hasSubtitle = !!(props.subtitle || slots.subtitle);
81
+ function onClick() {
82
+ group?.toggle();
83
+ }
84
+ return _withDirectives(_createVNode("button", {
85
+ "class": ['v-stepper-item', {
86
+ 'v-stepper-item--complete': hasCompleted.value,
87
+ 'v-stepper-item--disabled': props.disabled,
88
+ 'v-stepper-item--error': hasError.value
89
+ }, group?.selectedClass.value],
90
+ "disabled": !props.editable,
91
+ "onClick": onClick
92
+ }, [_createVNode(VAvatar, {
93
+ "key": "stepper-avatar",
94
+ "class": "v-stepper-item__avatar",
95
+ "color": hasColor ? props.color : undefined,
96
+ "size": 24
97
+ }, {
98
+ default: () => [slots.icon?.(slotProps.value) ?? (icon.value ? _createVNode(VIcon, {
99
+ "icon": icon.value
100
+ }, null) : step.value)]
101
+ }), _createVNode("div", {
102
+ "class": "v-stepper-item__content"
103
+ }, [hasTitle && _createVNode("div", {
104
+ "key": "title",
105
+ "class": "v-stepper-item__title"
106
+ }, [slots.title?.(slotProps.value) ?? props.title]), hasSubtitle && _createVNode("div", {
107
+ "key": "subtitle",
108
+ "class": "v-stepper-item__subtitle"
109
+ }, [slots.subtitle?.(slotProps.value) ?? props.subtitle]), slots.default?.(slotProps.value)])]), [[_resolveDirective("ripple"), props.ripple && props.editable, null]]);
110
+ });
111
+ return {};
112
+ }
113
+ });
114
+ //# sourceMappingURL=VStepperItem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStepperItem.mjs","names":["VAvatar","VIcon","makeGroupItemProps","useGroupItem","Ripple","computed","VStepperSymbol","genericComponent","propsFactory","useRender","makeVStepperItemProps","color","String","title","subtitle","complete","Boolean","completeIcon","type","default","editable","editIcon","error","errorIcon","icon","ripple","Object","rules","Array","VStepperItem","name","directives","props","emits","val","setup","_ref","slots","group","step","value","isValid","every","handler","canEdit","disabled","hasError","hasCompleted","length","slotProps","hasColor","isSelected","hasTitle","hasSubtitle","onClick","toggle","_withDirectives","_createVNode","selectedClass","undefined","_resolveDirective"],"sources":["../../../src/labs/VStepper/VStepperItem.tsx"],"sourcesContent":["// Styles\nimport './VStepperItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VIcon } from '@/components/VIcon/VIcon'\n\n// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { VStepperSymbol } from './VStepper'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type StepperItemSlot = {\n canEdit: boolean\n hasError: boolean\n hasCompleted: boolean\n title?: string\n subtitle?: string\n step: any\n}\n\nexport type VStepperItemSlots = {\n default: StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n}\n\nexport type ValidationRule = () => string | boolean\n\nexport const makeVStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n error: Boolean,\n errorIcon: {\n type: String,\n default: '$error',\n },\n icon: String,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => ([]),\n },\n\n ...makeGroupItemProps(),\n}, 'VStepperItem')\n\nexport const VStepperItem = genericComponent<VStepperItemSlots>()({\n name: 'VStepperItem',\n\n directives: { Ripple },\n\n props: makeVStepperItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const group = useGroupItem(props, VStepperSymbol, true)\n const step = computed(() => group?.value.value ?? props.value)\n const isValid = computed(() => props.rules.every(handler => handler() === true))\n const canEdit = computed(() => !props.disabled && props.editable)\n const hasError = computed(() => props.error || !isValid.value)\n const hasCompleted = computed(() => props.complete || (props.rules.length > 0 && isValid.value))\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon\n if (hasCompleted.value) return props.completeIcon\n if (props.editable) return props.editIcon\n\n return props.icon\n })\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value,\n }))\n\n useRender(() => {\n const hasColor = (\n !group ||\n group.isSelected.value ||\n hasCompleted.value ||\n canEdit.value\n ) && (\n !hasError.value &&\n !props.disabled\n )\n const hasTitle = !!(props.title || slots.title)\n const hasSubtitle = !!(props.subtitle || slots.subtitle)\n\n function onClick () {\n group?.toggle()\n }\n\n return (\n <button\n class={[\n 'v-stepper-item',\n {\n 'v-stepper-item--complete': hasCompleted.value,\n 'v-stepper-item--disabled': props.disabled,\n 'v-stepper-item--error': hasError.value,\n },\n group?.selectedClass.value,\n ]}\n disabled={ !props.editable }\n v-ripple={[\n props.ripple && props.editable,\n null,\n null,\n ]}\n onClick={ onClick }\n >\n <VAvatar\n key=\"stepper-avatar\"\n class=\"v-stepper-item__avatar\"\n color={ hasColor ? props.color : undefined }\n size={ 24 }\n >\n { slots.icon?.(slotProps.value) ?? (\n icon.value ? (\n <VIcon icon={ icon.value }></VIcon>\n ) : step.value\n )}\n </VAvatar>\n\n <div class=\"v-stepper-item__content\">\n { hasTitle && (\n <div\n key=\"title\"\n class=\"v-stepper-item__title\"\n >\n { slots.title?.(slotProps.value) ?? props.title }\n </div>\n )}\n\n { hasSubtitle && (\n <div\n key=\"subtitle\"\n class=\"v-stepper-item__subtitle\"\n >\n { slots.subtitle?.(slotProps.value) ?? props.subtitle }\n </div>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n </button>\n )\n })\n return {}\n },\n})\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,OAAO;AAAA,SACPC,KAAK,4CAEd;AAAA,SACSC,kBAAkB,EAAEC,YAAY,uCAEzC;AAAA,SACSC,MAAM,6CAEf;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,cAAc;AAAA,SACdC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAsBA,OAAO,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EAChDG,KAAK,EAAEC,MAAM;EACbC,KAAK,EAAED,MAAM;EACbE,QAAQ,EAAEF,MAAM;EAChBG,QAAQ,EAAEC,OAAO;EACjBC,YAAY,EAAE;IACZC,IAAI,EAAEN,MAAM;IACZO,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAEJ,OAAO;EACjBK,QAAQ,EAAE;IACRH,IAAI,EAAEN,MAAM;IACZO,OAAO,EAAE;EACX,CAAC;EACDG,KAAK,EAAEN,OAAO;EACdO,SAAS,EAAE;IACTL,IAAI,EAAEN,MAAM;IACZO,OAAO,EAAE;EACX,CAAC;EACDK,IAAI,EAAEZ,MAAM;EACZa,MAAM,EAAE;IACNP,IAAI,EAAE,CAACF,OAAO,EAAEU,MAAM,CAA8C;IACpEP,OAAO,EAAE;EACX,CAAC;EACDQ,KAAK,EAAE;IACLT,IAAI,EAAEU,KAA4C;IAClDT,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EAED,GAAGjB,kBAAkB;AACvB,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAM2B,YAAY,GAAGtB,gBAAgB,EAAqB,CAAC;EAChEuB,IAAI,EAAE,cAAc;EAEpBC,UAAU,EAAE;IAAE3B;EAAO,CAAC;EAEtB4B,KAAK,EAAEtB,qBAAqB,EAAE;EAE9BuB,KAAK,EAAE;IACL,gBAAgB,EAAGC,GAAuB,IAAK;EACjD,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGnC,YAAY,CAAC6B,KAAK,EAAE1B,cAAc,EAAE,IAAI,CAAC;IACvD,MAAMiC,IAAI,GAAGlC,QAAQ,CAAC,MAAMiC,KAAK,EAAEE,KAAK,CAACA,KAAK,IAAIR,KAAK,CAACQ,KAAK,CAAC;IAC9D,MAAMC,OAAO,GAAGpC,QAAQ,CAAC,MAAM2B,KAAK,CAACL,KAAK,CAACe,KAAK,CAACC,OAAO,IAAIA,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;IAChF,MAAMC,OAAO,GAAGvC,QAAQ,CAAC,MAAM,CAAC2B,KAAK,CAACa,QAAQ,IAAIb,KAAK,CAACZ,QAAQ,CAAC;IACjE,MAAM0B,QAAQ,GAAGzC,QAAQ,CAAC,MAAM2B,KAAK,CAACV,KAAK,IAAI,CAACmB,OAAO,CAACD,KAAK,CAAC;IAC9D,MAAMO,YAAY,GAAG1C,QAAQ,CAAC,MAAM2B,KAAK,CAACjB,QAAQ,IAAKiB,KAAK,CAACL,KAAK,CAACqB,MAAM,GAAG,CAAC,IAAIP,OAAO,CAACD,KAAM,CAAC;IAChG,MAAMhB,IAAI,GAAGnB,QAAQ,CAAC,MAAM;MAC1B,IAAIyC,QAAQ,CAACN,KAAK,EAAE,OAAOR,KAAK,CAACT,SAAS;MAC1C,IAAIwB,YAAY,CAACP,KAAK,EAAE,OAAOR,KAAK,CAACf,YAAY;MACjD,IAAIe,KAAK,CAACZ,QAAQ,EAAE,OAAOY,KAAK,CAACX,QAAQ;MAEzC,OAAOW,KAAK,CAACR,IAAI;IACnB,CAAC,CAAC;IACF,MAAMyB,SAAS,GAAG5C,QAAQ,CAAC,OAAO;MAChCuC,OAAO,EAAEA,OAAO,CAACJ,KAAK;MACtBM,QAAQ,EAAEA,QAAQ,CAACN,KAAK;MACxBO,YAAY,EAAEA,YAAY,CAACP,KAAK;MAChC3B,KAAK,EAAEmB,KAAK,CAACnB,KAAK;MAClBC,QAAQ,EAAEkB,KAAK,CAAClB,QAAQ;MACxByB,IAAI,EAAEA,IAAI,CAACC,KAAK;MAChBA,KAAK,EAAER,KAAK,CAACQ;IACf,CAAC,CAAC,CAAC;IAEH/B,SAAS,CAAC,MAAM;MACd,MAAMyC,QAAQ,GAAG,CACf,CAACZ,KAAK,IACNA,KAAK,CAACa,UAAU,CAACX,KAAK,IACtBO,YAAY,CAACP,KAAK,IAClBI,OAAO,CAACJ,KAAK,KAEb,CAACM,QAAQ,CAACN,KAAK,IACf,CAACR,KAAK,CAACa,QACR;MACD,MAAMO,QAAQ,GAAG,CAAC,EAAEpB,KAAK,CAACnB,KAAK,IAAIwB,KAAK,CAACxB,KAAK,CAAC;MAC/C,MAAMwC,WAAW,GAAG,CAAC,EAAErB,KAAK,CAAClB,QAAQ,IAAIuB,KAAK,CAACvB,QAAQ,CAAC;MAExD,SAASwC,OAAOA,CAAA,EAAI;QAClBhB,KAAK,EAAEiB,MAAM,EAAE;MACjB;MAEA,OAAAC,eAAA,CAAAC,YAAA;QAAA,SAEW,CACL,gBAAgB,EAChB;UACE,0BAA0B,EAAEV,YAAY,CAACP,KAAK;UAC9C,0BAA0B,EAAER,KAAK,CAACa,QAAQ;UAC1C,uBAAuB,EAAEC,QAAQ,CAACN;QACpC,CAAC,EACDF,KAAK,EAAEoB,aAAa,CAAClB,KAAK,CAC3B;QAAA,YACU,CAACR,KAAK,CAACZ,QAAQ;QAAA,WAMhBkC;MAAO,IAAAG,YAAA,CAAAzD,OAAA;QAAA,OAGX,gBAAgB;QAAA,SACd,wBAAwB;QAAA,SACtBkD,QAAQ,GAAGlB,KAAK,CAACrB,KAAK,GAAGgD,SAAS;QAAA,QACnC;MAAE;QAAAxC,OAAA,EAAAA,CAAA,MAEPkB,KAAK,CAACb,IAAI,GAAGyB,SAAS,CAACT,KAAK,CAAC,KAC7BhB,IAAI,CAACgB,KAAK,GAAAiB,YAAA,CAAAxD,KAAA;UAAA,QACMuB,IAAI,CAACgB;QAAK,WACtBD,IAAI,CAACC,KAAK,CACf;MAAA,IAAAiB,YAAA;QAAA,SAGQ;MAAyB,IAChCL,QAAQ,IAAAK,YAAA;QAAA,OAEF,OAAO;QAAA,SACL;MAAuB,IAE3BpB,KAAK,CAACxB,KAAK,GAAGoC,SAAS,CAACT,KAAK,CAAC,IAAIR,KAAK,CAACnB,KAAK,EAElD,EAECwC,WAAW,IAAAI,YAAA;QAAA,OAEL,UAAU;QAAA,SACR;MAA0B,IAE9BpB,KAAK,CAACvB,QAAQ,GAAGmC,SAAS,CAACT,KAAK,CAAC,IAAIR,KAAK,CAAClB,QAAQ,EAExD,EAECuB,KAAK,CAAClB,OAAO,GAAG8B,SAAS,CAACT,KAAK,CAAC,QAAAoB,iBAAA,YAtClC5B,KAAK,CAACP,MAAM,IAAIO,KAAK,CAACZ,QAAQ,EAC9B,IAAI;IAyCZ,CAAC,CAAC;IACF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -0,0 +1,71 @@
1
+ @use '../../styles/settings'
2
+ @use './variables' as *
3
+
4
+ .v-stepper-item
5
+ align-items: center
6
+ align-self: stretch
7
+ display: inline-flex
8
+ flex: none
9
+ opacity: var(--v-medium-emphasis-opacity)
10
+ padding: 1.5rem
11
+ transition-duration: .2s
12
+ transition-property: opacity
13
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
14
+
15
+ &--selected
16
+ opacity: 1
17
+
18
+ &--error
19
+ color: rgb(var(--v-theme-error))
20
+
21
+ &--disabled
22
+ opacity: var(--v-medium-emphasis-opacity)
23
+ pointer-events: none
24
+
25
+ .v-stepper--alt-labels &
26
+ flex-direction: column
27
+ justify-content: flex-start
28
+ align-items: center
29
+ flex-basis: $stepper-alt-labels-flex-basis
30
+
31
+ .v-stepper-item__avatar.v-avatar
32
+ background: rgba(var(--v-theme-surface-variant), var(--v-medium-emphasis-opacity))
33
+ color: rgb(var(--v-theme-on-surface-variant))
34
+ font-size: .75rem
35
+ margin-inline-end: 8px
36
+
37
+ .v-icon
38
+ font-size: .875rem
39
+
40
+ .v-stepper-item--selected &,
41
+ .v-stepper-item--complete &
42
+ background: rgb(var(--v-theme-surface-variant))
43
+
44
+ .v-stepper-item--error &
45
+ background: rgb(var(--v-theme-error))
46
+
47
+ .v-stepper--alt-labels &
48
+ margin-bottom: 16px
49
+ margin-inline-end: 0
50
+
51
+ .v-stepper-item__content
52
+ .v-stepper--alt-labels &
53
+ // min-height: 28px
54
+
55
+ .v-stepper-item__title
56
+ line-height: 1
57
+
58
+ .v-stepper--mobile &
59
+ display: none
60
+
61
+ .v-stepper-item__subtitle
62
+ font-size: .75rem
63
+ text-align: left
64
+ line-height: 1
65
+ opacity: var(--v-medium-emphasis-opacity)
66
+
67
+ .v-stepper--alt-labels &
68
+ text-align: center
69
+
70
+ .v-stepper--mobile &
71
+ display: none
@@ -0,0 +1,50 @@
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
2
+ // Components
3
+ import { makeVWindowProps, VWindow } from "../../components/VWindow/VWindow.mjs"; // Composables
4
+ import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
5
+ import { computed, inject } from 'vue';
6
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
7
+ export const VStepperSymbol = Symbol.for('vuetify:v-stepper');
8
+ export const makeVStepperWindowProps = propsFactory({
9
+ ...makeVWindowProps({
10
+ mandatory: false
11
+ })
12
+ }, 'VStepperWindow');
13
+ export const VStepperWindow = genericComponent()({
14
+ name: 'VStepperWindow',
15
+ props: makeVStepperWindowProps(),
16
+ emits: {
17
+ 'update:modelValue': v => true
18
+ },
19
+ setup(props, _ref) {
20
+ let {
21
+ slots
22
+ } = _ref;
23
+ const group = inject(VStepperSymbol, null);
24
+ const _model = useProxiedModel(props, 'modelValue');
25
+ const model = computed({
26
+ get() {
27
+ // Always return modelValue if defined
28
+ // or if not within a VStepper group
29
+ if (_model.value != null || !group) return _model.value;
30
+
31
+ // If inside of a VStepper, find the currently selected
32
+ // item by id. Item value may be assigned by its index
33
+ return group.items.value.find(item => group.selected.value.includes(item.id))?.value;
34
+ },
35
+ set(val) {
36
+ _model.value = val;
37
+ }
38
+ });
39
+ useRender(() => {
40
+ const [windowProps] = VWindow.filterProps(props);
41
+ return _createVNode(VWindow, _mergeProps(windowProps, {
42
+ "modelValue": model.value,
43
+ "onUpdate:modelValue": $event => model.value = $event,
44
+ "class": "v-stepper-window"
45
+ }), slots);
46
+ });
47
+ return {};
48
+ }
49
+ });
50
+ //# sourceMappingURL=VStepperWindow.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VStepperWindow.mjs","names":["makeVWindowProps","VWindow","useProxiedModel","computed","inject","genericComponent","propsFactory","useRender","VStepperSymbol","Symbol","for","makeVStepperWindowProps","mandatory","VStepperWindow","name","props","emits","v","setup","_ref","slots","group","_model","model","get","value","items","find","item","selected","includes","id","set","val","windowProps","filterProps","_createVNode","_mergeProps","$event"],"sources":["../../../src/labs/VStepper/VStepperWindow.tsx"],"sourcesContent":["// Components\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-stepper')\n\nexport const makeVStepperWindowProps = propsFactory({\n ...makeVWindowProps({\n mandatory: false as const,\n }),\n}, 'VStepperWindow')\n\nexport const VStepperWindow = genericComponent()({\n name: 'VStepperWindow',\n\n props: makeVStepperWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VStepperSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VStepper group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VStepper, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const [windowProps] = VWindow.filterProps(props)\n\n return (\n <VWindow\n { ...windowProps }\n v-model={ model.value }\n class=\"v-stepper-window\"\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindow = InstanceType<typeof VStepperWindow>\n"],"mappings":";AAAA;AAAA,SACSA,gBAAgB,EAAEC,OAAO,gDAElC;AAAA,SACSC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAIA,OAAO,MAAMC,cAA0C,GAAGC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAEzF,OAAO,MAAMC,uBAAuB,GAAGL,YAAY,CAAC;EAClD,GAAGN,gBAAgB,CAAC;IAClBY,SAAS,EAAE;EACb,CAAC;AACH,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMC,cAAc,GAAGR,gBAAgB,EAAE,CAAC;EAC/CS,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEJ,uBAAuB,EAAE;EAEhCK,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGjB,MAAM,CAACI,cAAc,EAAE,IAAI,CAAC;IAC1C,MAAMc,MAAM,GAAGpB,eAAe,CAACa,KAAK,EAAE,YAAY,CAAC;IAEnD,MAAMQ,KAAK,GAAGpB,QAAQ,CAAC;MACrBqB,GAAGA,CAAA,EAAI;QACL;QACA;QACA,IAAIF,MAAM,CAACG,KAAK,IAAI,IAAI,IAAI,CAACJ,KAAK,EAAE,OAAOC,MAAM,CAACG,KAAK;;QAEvD;QACA;QACA,OAAOJ,KAAK,CAACK,KAAK,CAACD,KAAK,CAACE,IAAI,CAACC,IAAI,IAAIP,KAAK,CAACQ,QAAQ,CAACJ,KAAK,CAACK,QAAQ,CAACF,IAAI,CAACG,EAAE,CAAC,CAAC,EAAEN,KAAK;MACtF,CAAC;MACDO,GAAGA,CAAEC,GAAG,EAAE;QACRX,MAAM,CAACG,KAAK,GAAGQ,GAAG;MACpB;IACF,CAAC,CAAC;IAEF1B,SAAS,CAAC,MAAM;MACd,MAAM,CAAC2B,WAAW,CAAC,GAAGjC,OAAO,CAACkC,WAAW,CAACpB,KAAK,CAAC;MAEhD,OAAAqB,YAAA,CAAAnC,OAAA,EAAAoC,WAAA,CAESH,WAAW;QAAA,cACNX,KAAK,CAACE,KAAK;QAAA,uBAAAa,MAAA,IAAXf,KAAK,CAACE,KAAK,GAAAa,MAAA;QAAA,SACf;MAAkB,IACdlB,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
2
+ // Components
3
+ import { makeVWindowItemProps, VWindowItem } from "../../components/VWindow/VWindowItem.mjs"; // Utilities
4
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
5
+ export const makeVStepperWindowItemProps = propsFactory({
6
+ ...makeVWindowItemProps()
7
+ }, 'VStepperWindowItem');
8
+ export const VStepperWindowItem = genericComponent()({
9
+ name: 'VStepperWindowItem',
10
+ props: makeVStepperWindowItemProps(),
11
+ setup(props, _ref) {
12
+ let {
13
+ slots
14
+ } = _ref;
15
+ useRender(() => {
16
+ const [windowItemProps] = VWindowItem.filterProps(props);
17
+ return _createVNode(VWindowItem, _mergeProps(windowItemProps, {
18
+ "class": "v-stepper-window-item"
19
+ }), slots);
20
+ });
21
+ return {};
22
+ }
23
+ });
24
+ //# sourceMappingURL=VStepperWindowItem.mjs.map