vuetify 3.3.11 → 3.3.13

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 (199) hide show
  1. package/dist/json/attributes.json +49 -5
  2. package/dist/json/importMap.json +12 -12
  3. package/dist/json/tags.json +11 -0
  4. package/dist/json/web-types.json +168 -11
  5. package/dist/vuetify-labs.css +423 -358
  6. package/dist/vuetify-labs.d.ts +233 -91
  7. package/dist/vuetify-labs.esm.js +189 -104
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +189 -104
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +130 -65
  12. package/dist/vuetify.d.ts +172 -38
  13. package/dist/vuetify.esm.js +100 -59
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +100 -59
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +152 -152
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/md3.mjs +2 -1
  21. package/lib/blueprints/md3.mjs.map +1 -1
  22. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  23. package/lib/components/VAppBar/index.d.mts +6 -6
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -2
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.mts +42 -0
  27. package/lib/components/VBanner/VBanner.css +2 -0
  28. package/lib/components/VBanner/VBanner.sass +2 -0
  29. package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -0
  30. package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -0
  31. package/lib/components/VBtn/VBtn.css +6 -0
  32. package/lib/components/VBtn/VBtn.sass +5 -0
  33. package/lib/components/VCheckbox/index.d.mts +3 -1
  34. package/lib/components/VChip/VChip.mjs +1 -0
  35. package/lib/components/VChip/VChip.mjs.map +1 -1
  36. package/lib/components/VCombobox/VCombobox.mjs +6 -2
  37. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  38. package/lib/components/VCombobox/index.d.mts +42 -0
  39. package/lib/components/VDialog/VDialog.css +15 -6
  40. package/lib/components/VDialog/VDialog.sass +41 -35
  41. package/lib/components/VField/VField.css +7 -2
  42. package/lib/components/VField/VField.mjs +5 -3
  43. package/lib/components/VField/VField.mjs.map +1 -1
  44. package/lib/components/VField/VField.sass +7 -2
  45. package/lib/components/VFileInput/VFileInput.css +4 -0
  46. package/lib/components/VFileInput/VFileInput.sass +5 -1
  47. package/lib/components/VFileInput/_variables.scss +2 -1
  48. package/lib/components/VGrid/VGrid.css +4 -0
  49. package/lib/components/VGrid/VGrid.sass +4 -1
  50. package/lib/components/VGrid/VSpacer.mjs +1 -1
  51. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  52. package/lib/components/VList/VList.css +1 -1
  53. package/lib/components/VList/VList.sass +1 -1
  54. package/lib/components/VList/VListItem.css +20 -9
  55. package/lib/components/VList/VListItem.mjs +6 -2
  56. package/lib/components/VList/VListItem.mjs.map +1 -1
  57. package/lib/components/VList/VListItem.sass +19 -8
  58. package/lib/components/VMenu/VMenu.mjs +4 -3
  59. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  60. package/lib/components/VMenu/index.d.mts +5 -5
  61. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +0 -1
  62. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
  63. package/lib/components/VNavigationDrawer/_variables.scss +0 -1
  64. package/lib/components/VRadio/index.d.mts +3 -1
  65. package/lib/components/VRadioGroup/VRadioGroup.css +6 -1
  66. package/lib/components/VRadioGroup/VRadioGroup.sass +5 -0
  67. package/lib/components/VRadioGroup/_variables.scss +3 -1
  68. package/lib/components/VRadioGroup/index.d.mts +3 -1
  69. package/lib/components/VSelect/VSelect.mjs +14 -2
  70. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  71. package/lib/components/VSelect/index.d.mts +42 -0
  72. package/lib/components/VSelectionControl/VSelectionControl.mjs +22 -19
  73. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  74. package/lib/components/VSelectionControl/index.d.mts +27 -25
  75. package/lib/components/VSwitch/VSwitch.css +24 -17
  76. package/lib/components/VSwitch/VSwitch.mjs +28 -19
  77. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  78. package/lib/components/VSwitch/VSwitch.sass +20 -11
  79. package/lib/components/VSwitch/_variables.scss +18 -6
  80. package/lib/components/VSwitch/index.d.mts +3 -1
  81. package/lib/components/VTextField/VTextField.css +9 -2
  82. package/lib/components/VTextField/VTextField.mjs +6 -3
  83. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  84. package/lib/components/VTextField/VTextField.sass +10 -3
  85. package/lib/components/VTextField/index.d.mts +6 -0
  86. package/lib/components/VTextarea/VTextarea.mjs +1 -2
  87. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  88. package/lib/components/VTimeline/VTimeline.css +6 -1
  89. package/lib/components/VTimeline/VTimeline.sass +6 -1
  90. package/lib/components/VTooltip/VTooltip.css +1 -1
  91. package/lib/components/VTooltip/_variables.scss +1 -1
  92. package/lib/components/index.d.mts +169 -35
  93. package/lib/entry-bundler.mjs +1 -1
  94. package/lib/framework.mjs +1 -1
  95. package/lib/index.d.mts +3 -3
  96. package/lib/labs/VDateInput/composables.mjs +11 -1
  97. package/lib/labs/VDateInput/composables.mjs.map +1 -1
  98. package/lib/labs/VDateInput/index.d.mts +6 -0
  99. package/lib/labs/VDatePicker/VDatePicker.mjs +34 -14
  100. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  101. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +1 -1
  102. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  103. package/lib/labs/VDatePicker/composables.mjs +4 -2
  104. package/lib/labs/VDatePicker/composables.mjs.map +1 -1
  105. package/lib/labs/VDatePicker/index.d.mts +14 -0
  106. package/lib/labs/VOtpInput/VOtpInput.mjs +31 -22
  107. package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -1
  108. package/lib/labs/VStepper/VStepper.mjs +12 -9
  109. package/lib/labs/VStepper/VStepper.mjs.map +1 -1
  110. package/lib/labs/VStepper/index.d.mts +50 -56
  111. package/lib/labs/components.d.mts +64 -56
  112. package/lib/labs/date/adapters/vuetify.mjs +1 -1
  113. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  114. package/lib/locale/af.mjs +1 -0
  115. package/lib/locale/af.mjs.map +1 -1
  116. package/lib/locale/ar.mjs +1 -0
  117. package/lib/locale/ar.mjs.map +1 -1
  118. package/lib/locale/az.mjs +1 -0
  119. package/lib/locale/az.mjs.map +1 -1
  120. package/lib/locale/bg.mjs +1 -0
  121. package/lib/locale/bg.mjs.map +1 -1
  122. package/lib/locale/ca.mjs +1 -0
  123. package/lib/locale/ca.mjs.map +1 -1
  124. package/lib/locale/ckb.mjs +1 -0
  125. package/lib/locale/ckb.mjs.map +1 -1
  126. package/lib/locale/cs.mjs +1 -0
  127. package/lib/locale/cs.mjs.map +1 -1
  128. package/lib/locale/da.mjs +1 -0
  129. package/lib/locale/da.mjs.map +1 -1
  130. package/lib/locale/de.mjs +1 -0
  131. package/lib/locale/de.mjs.map +1 -1
  132. package/lib/locale/el.mjs +1 -0
  133. package/lib/locale/el.mjs.map +1 -1
  134. package/lib/locale/en.mjs +1 -0
  135. package/lib/locale/en.mjs.map +1 -1
  136. package/lib/locale/es.mjs +1 -0
  137. package/lib/locale/es.mjs.map +1 -1
  138. package/lib/locale/et.mjs +1 -0
  139. package/lib/locale/et.mjs.map +1 -1
  140. package/lib/locale/fa.mjs +1 -0
  141. package/lib/locale/fa.mjs.map +1 -1
  142. package/lib/locale/fi.mjs +1 -0
  143. package/lib/locale/fi.mjs.map +1 -1
  144. package/lib/locale/fr.mjs +1 -0
  145. package/lib/locale/fr.mjs.map +1 -1
  146. package/lib/locale/he.mjs +1 -0
  147. package/lib/locale/he.mjs.map +1 -1
  148. package/lib/locale/hr.mjs +1 -0
  149. package/lib/locale/hr.mjs.map +1 -1
  150. package/lib/locale/hu.mjs +1 -0
  151. package/lib/locale/hu.mjs.map +1 -1
  152. package/lib/locale/id.mjs +1 -0
  153. package/lib/locale/id.mjs.map +1 -1
  154. package/lib/locale/index.d.mts +42 -0
  155. package/lib/locale/it.mjs +1 -0
  156. package/lib/locale/it.mjs.map +1 -1
  157. package/lib/locale/ja.mjs +1 -0
  158. package/lib/locale/ja.mjs.map +1 -1
  159. package/lib/locale/ko.mjs +1 -0
  160. package/lib/locale/ko.mjs.map +1 -1
  161. package/lib/locale/lt.mjs +1 -0
  162. package/lib/locale/lt.mjs.map +1 -1
  163. package/lib/locale/lv.mjs +1 -0
  164. package/lib/locale/lv.mjs.map +1 -1
  165. package/lib/locale/nl.mjs +1 -0
  166. package/lib/locale/nl.mjs.map +1 -1
  167. package/lib/locale/no.mjs +16 -15
  168. package/lib/locale/no.mjs.map +1 -1
  169. package/lib/locale/pl.mjs +1 -0
  170. package/lib/locale/pl.mjs.map +1 -1
  171. package/lib/locale/pt.mjs +1 -0
  172. package/lib/locale/pt.mjs.map +1 -1
  173. package/lib/locale/ro.mjs +1 -0
  174. package/lib/locale/ro.mjs.map +1 -1
  175. package/lib/locale/ru.mjs +1 -0
  176. package/lib/locale/ru.mjs.map +1 -1
  177. package/lib/locale/sk.mjs +1 -0
  178. package/lib/locale/sk.mjs.map +1 -1
  179. package/lib/locale/sl.mjs +1 -0
  180. package/lib/locale/sl.mjs.map +1 -1
  181. package/lib/locale/sr-Cyrl.mjs +1 -0
  182. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  183. package/lib/locale/sr-Latn.mjs +1 -0
  184. package/lib/locale/sr-Latn.mjs.map +1 -1
  185. package/lib/locale/sv.mjs +1 -0
  186. package/lib/locale/sv.mjs.map +1 -1
  187. package/lib/locale/th.mjs +1 -0
  188. package/lib/locale/th.mjs.map +1 -1
  189. package/lib/locale/tr.mjs +1 -0
  190. package/lib/locale/tr.mjs.map +1 -1
  191. package/lib/locale/uk.mjs +1 -0
  192. package/lib/locale/uk.mjs.map +1 -1
  193. package/lib/locale/vi.mjs +1 -0
  194. package/lib/locale/vi.mjs.map +1 -1
  195. package/lib/locale/zh-Hans.mjs +1 -0
  196. package/lib/locale/zh-Hans.mjs.map +1 -1
  197. package/lib/locale/zh-Hant.mjs +1 -0
  198. package/lib/locale/zh-Hant.mjs.map +1 -1
  199. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, Fragment as _Fragment } from "vue";
1
+ import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
2
  // Styles
3
3
  import "./VOtpInput.css";
4
4
 
@@ -12,7 +12,7 @@ import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
12
12
  import { useLocale } from "../../composables/locale.mjs";
13
13
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
14
14
  import { computed, ref, watch } from 'vue';
15
- import { focusChild, genericComponent, IN_BROWSER, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
15
+ import { filterInputAttrs, focusChild, genericComponent, IN_BROWSER, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
16
16
  export const makeVOtpInputProps = propsFactory({
17
17
  autofocus: Boolean,
18
18
  divider: String,
@@ -50,6 +50,7 @@ export const VOtpInput = genericComponent()({
50
50
  },
51
51
  setup(props, _ref) {
52
52
  let {
53
+ attrs,
53
54
  emit,
54
55
  slots
55
56
  } = _ref;
@@ -75,34 +76,36 @@ export const VOtpInput = genericComponent()({
75
76
  const value = current.value.value;
76
77
  array[focusIndex.value] = value;
77
78
  model.value = array;
79
+ let target = null;
80
+ if (focusIndex.value > model.value.length) {
81
+ target = model.value.length + 1;
82
+ } else if (focusIndex.value + 1 !== Number(props.length)) {
83
+ target = 'next';
84
+ } else {
85
+ requestAnimationFrame(() => current.value?.blur());
86
+ }
87
+ if (target) focusChild(contentRef.value, target);
78
88
  }
79
89
  function onKeydown(e) {
80
90
  const array = model.value.slice();
81
91
  const index = focusIndex.value;
82
92
  let target = null;
93
+ if (!['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].includes(e.key)) return;
94
+ e.preventDefault();
83
95
  if (e.key === 'ArrowLeft') {
84
96
  target = 'prev';
85
97
  } else if (e.key === 'ArrowRight') {
86
98
  target = 'next';
87
- } else if (e.key === 'Backspace') {
88
- if (focusIndex.value > 0) {
89
- target = 'prev';
90
- }
91
- } else if (e.key === 'Delete') {
99
+ } else if (['Backspace', 'Delete'].includes(e.key)) {
92
100
  array[focusIndex.value] = '';
93
101
  model.value = array;
94
- requestAnimationFrame(() => {
95
- inputRef.value[index].select();
96
- });
97
- } else if (props.type === 'number' && isNaN(parseInt(e.key))) {
98
- return;
99
- } else if (focusIndex.value > model.value.length) {
100
- target = model.value.length + 1;
101
- } else if (focusIndex.value + 1 !== Number(props.length)) {
102
- target = 'next';
103
- } else {
104
- requestAnimationFrame(() => current.value?.blur());
105
- return;
102
+ if (focusIndex.value > 0 && e.key === 'Backspace') {
103
+ target = 'prev';
104
+ } else {
105
+ requestAnimationFrame(() => {
106
+ inputRef.value[index].select();
107
+ });
108
+ }
106
109
  }
107
110
  requestAnimationFrame(() => {
108
111
  if (target != null) {
@@ -148,12 +151,13 @@ export const VOtpInput = genericComponent()({
148
151
  });
149
152
  });
150
153
  useRender(() => {
151
- return _createVNode("div", {
154
+ const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
155
+ return _createVNode("div", _mergeProps({
152
156
  "class": ['v-otp-input', {
153
157
  'v-otp-input--divided': !!props.divider
154
158
  }, props.class],
155
159
  "style": [props.style]
156
- }, [_createVNode("div", {
160
+ }, rootAttrs), [_createVNode("div", {
157
161
  "ref": contentRef,
158
162
  "class": "v-otp-input__content",
159
163
  "style": [dimensionStyles.value]
@@ -184,7 +188,12 @@ export const VOtpInput = genericComponent()({
184
188
  "onPaste": event => onPaste(i, event)
185
189
  }, null);
186
190
  }
187
- })])), _createVNode(VOverlay, {
191
+ })])), _createVNode("input", _mergeProps({
192
+ "class": "v-otp-input-input",
193
+ "type": "hidden"
194
+ }, inputAttrs, {
195
+ "value": model.value.join('')
196
+ }), null), _createVNode(VOverlay, {
188
197
  "contained": true,
189
198
  "content-class": "v-otp-input__loader",
190
199
  "model-value": !!props.loading,
@@ -1 +1 @@
1
- {"version":3,"file":"VOtpInput.mjs","names":["makeVFieldProps","VField","VOverlay","VProgressCircular","provideDefaults","makeDimensionProps","useDimension","makeFocusProps","useFocus","useLocale","useProxiedModel","computed","ref","watch","focusChild","genericComponent","IN_BROWSER","only","propsFactory","useRender","makeVOtpInputProps","autofocus","Boolean","divider","String","focusAll","label","type","default","length","Number","modelValue","undefined","placeholder","variant","VOtpInput","name","props","emits","finish","val","setup","_ref","emit","slots","dimensionStyles","isFocused","focus","blur","model","split","join","t","fields","Array","fill","focusIndex","contentRef","inputRef","current","value","onInput","array","slice","onKeydown","e","index","target","key","requestAnimationFrame","select","isNaN","parseInt","onPaste","preventDefault","stopPropagation","clipboardData","getData","reset","onFocus","onBlur","disabled","error","scoped","deep","window","_createVNode","class","style","map","_","i","_Fragment","event","loading","loader","some","input"],"sources":["../../../src/labs/VOtpInput/VOtpInput.tsx"],"sourcesContent":["// Styles\nimport './VOtpInput.sass'\n\n// Components\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { VProgressCircular } from '@/components/VProgressCircular/VProgressCircular'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { focusChild, genericComponent, IN_BROWSER, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VOtpInputSlots = {\n default: never\n loader: never\n}\n\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp',\n },\n length: {\n type: [Number, String],\n default: 6,\n },\n modelValue: {\n type: [Number, String],\n default: undefined,\n },\n placeholder: String,\n type: {\n type: String as PropType<'text' | 'password' | 'number'>,\n default: 'text',\n },\n\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...only(makeVFieldProps({\n variant: 'outlined' as const,\n }), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n}, 'VOtpInput')\n\nexport const VOtpInput = genericComponent<VOtpInputSlots>()({\n name: 'VOtpInput',\n\n props: makeVOtpInputProps(),\n\n emits: {\n finish: (val: string) => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { emit, slots }) {\n const { dimensionStyles } = useDimension(props)\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n '',\n val => String(val).split(''),\n val => val.join('')\n )\n const { t } = useLocale()\n\n const fields = computed(() => Array(Number(props.length)).fill(0))\n const focusIndex = ref(-1)\n const contentRef = ref<HTMLElement>()\n const inputRef = ref<HTMLInputElement[]>([])\n const current = computed(() => inputRef.value[focusIndex.value])\n\n function onInput () {\n const array = model.value.slice()\n const value = current.value.value\n\n array[focusIndex.value] = value\n\n model.value = array\n }\n\n function onKeydown (e: KeyboardEvent) {\n const array = model.value.slice()\n const index = focusIndex.value\n let target: 'next' | 'prev' | 'first' | 'last' | number | null = null\n\n if (e.key === 'ArrowLeft') {\n target = 'prev'\n } else if (e.key === 'ArrowRight') {\n target = 'next'\n } else if (e.key === 'Backspace') {\n if (focusIndex.value > 0) {\n target = 'prev'\n }\n } else if (e.key === 'Delete') {\n array[focusIndex.value] = ''\n\n model.value = array\n\n requestAnimationFrame(() => {\n inputRef.value[index].select()\n })\n } else if (props.type === 'number' && isNaN(parseInt(e.key))) {\n return\n } else if (focusIndex.value > model.value.length) {\n target = model.value.length + 1\n } else if (focusIndex.value + 1 !== Number(props.length)) {\n target = 'next'\n } else {\n requestAnimationFrame(() => current.value?.blur())\n\n return\n }\n\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value!, target)\n }\n })\n }\n\n function onPaste (index: number, e: ClipboardEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n model.value = (e?.clipboardData?.getData('Text') ?? '').split('')\n\n inputRef.value?.[index].blur()\n }\n\n function reset () {\n model.value = []\n }\n\n function onFocus (e: FocusEvent, index: number) {\n focus()\n\n focusIndex.value = index\n }\n\n function onBlur () {\n blur()\n\n focusIndex.value = -1\n }\n\n provideDefaults({\n VField: {\n disabled: computed(() => props.disabled),\n error: computed(() => props.error),\n variant: computed(() => props.variant),\n },\n }, { scoped: true })\n\n watch(model, val => {\n if (val.length === props.length) emit('finish', val.join(''))\n }, { deep: true })\n\n watch(focusIndex, val => {\n if (val < 0) return\n\n IN_BROWSER && window.requestAnimationFrame(() => {\n inputRef.value[val].select()\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-otp-input',\n {\n 'v-otp-input--divided': !!props.divider,\n },\n props.class,\n ]}\n style={[\n props.style,\n ]}\n >\n <div\n ref={ contentRef }\n class=\"v-otp-input__content\"\n style={[\n dimensionStyles.value,\n ]}\n >\n { fields.value.map((_, i) => (\n <>\n { props.divider && i !== 0 && (\n <span class=\"v-otp-input__divider\">{ props.divider }</span>\n )}\n\n <VField\n focused={ (isFocused.value && props.focusAll) || focusIndex.value === i }\n key={ i }\n >\n {{\n ...slots,\n default: () => {\n return (\n <input\n ref={ val => inputRef.value[i] = val as HTMLInputElement }\n aria-label={ t(props.label, i + 1) }\n autofocus={ i === 0 && props.autofocus }\n autocomplete=\"one-time-code\"\n class={[\n 'v-otp-input__field',\n ]}\n inputmode=\"text\"\n min={ props.type === 'number' ? 0 : undefined }\n maxlength=\"1\"\n placeholder={ props.placeholder }\n type={ props.type }\n value={ model.value[i] }\n onInput={ onInput }\n onFocus={ e => onFocus(e, i) }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onPaste={ event => onPaste(i, event) }\n />\n )\n },\n }}\n </VField>\n </>\n ))}\n\n <VOverlay\n contained\n content-class=\"v-otp-input__loader\"\n model-value={ !!props.loading }\n persistent\n >\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"24\"\n width=\"2\"\n />\n )}\n </VOverlay>\n\n { slots.default?.() }\n </div>\n </div>\n )\n })\n\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur())\n },\n focus: () => {\n inputRef.value?.[0].focus()\n },\n reset,\n isFocused,\n }\n },\n})\n\nexport type VOtpInput = InstanceType<typeof VOtpInput>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VOtpInput.mjs","names":["makeVFieldProps","VField","VOverlay","VProgressCircular","provideDefaults","makeDimensionProps","useDimension","makeFocusProps","useFocus","useLocale","useProxiedModel","computed","ref","watch","filterInputAttrs","focusChild","genericComponent","IN_BROWSER","only","propsFactory","useRender","makeVOtpInputProps","autofocus","Boolean","divider","String","focusAll","label","type","default","length","Number","modelValue","undefined","placeholder","variant","VOtpInput","name","props","emits","finish","val","setup","_ref","attrs","emit","slots","dimensionStyles","isFocused","focus","blur","model","split","join","t","fields","Array","fill","focusIndex","contentRef","inputRef","current","value","onInput","array","slice","target","requestAnimationFrame","onKeydown","e","index","includes","key","preventDefault","select","onPaste","stopPropagation","clipboardData","getData","reset","onFocus","onBlur","disabled","error","scoped","deep","window","rootAttrs","inputAttrs","_createVNode","_mergeProps","class","style","map","_","i","_Fragment","event","loading","loader","some","input"],"sources":["../../../src/labs/VOtpInput/VOtpInput.tsx"],"sourcesContent":["// Styles\nimport './VOtpInput.sass'\n\n// Components\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { VProgressCircular } from '@/components/VProgressCircular/VProgressCircular'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { filterInputAttrs, focusChild, genericComponent, IN_BROWSER, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VOtpInputSlots = {\n default: never\n loader: never\n}\n\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp',\n },\n length: {\n type: [Number, String],\n default: 6,\n },\n modelValue: {\n type: [Number, String],\n default: undefined,\n },\n placeholder: String,\n type: {\n type: String as PropType<'text' | 'password' | 'number'>,\n default: 'text',\n },\n\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...only(makeVFieldProps({\n variant: 'outlined' as const,\n }), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n}, 'VOtpInput')\n\nexport const VOtpInput = genericComponent<VOtpInputSlots>()({\n name: 'VOtpInput',\n\n props: makeVOtpInputProps(),\n\n emits: {\n finish: (val: string) => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { dimensionStyles } = useDimension(props)\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n '',\n val => String(val).split(''),\n val => val.join('')\n )\n const { t } = useLocale()\n\n const fields = computed(() => Array(Number(props.length)).fill(0))\n const focusIndex = ref(-1)\n const contentRef = ref<HTMLElement>()\n const inputRef = ref<HTMLInputElement[]>([])\n const current = computed(() => inputRef.value[focusIndex.value])\n\n function onInput () {\n const array = model.value.slice()\n const value = current.value.value\n\n array[focusIndex.value] = value\n\n model.value = array\n\n let target: any = null\n\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1\n } else if (focusIndex.value + 1 !== Number(props.length)) {\n target = 'next'\n } else {\n requestAnimationFrame(() => current.value?.blur())\n }\n\n if (target) focusChild(contentRef.value!, target)\n }\n\n function onKeydown (e: KeyboardEvent) {\n const array = model.value.slice()\n const index = focusIndex.value\n let target: 'next' | 'prev' | 'first' | 'last' | number | null = null\n\n if (![\n 'ArrowLeft',\n 'ArrowRight',\n 'Backspace',\n 'Delete',\n ].includes(e.key)) return\n\n e.preventDefault()\n\n if (e.key === 'ArrowLeft') {\n target = 'prev'\n } else if (e.key === 'ArrowRight') {\n target = 'next'\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = ''\n\n model.value = array\n\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev'\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index].select()\n })\n }\n }\n\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value!, target)\n }\n })\n }\n\n function onPaste (index: number, e: ClipboardEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n model.value = (e?.clipboardData?.getData('Text') ?? '').split('')\n\n inputRef.value?.[index].blur()\n }\n\n function reset () {\n model.value = []\n }\n\n function onFocus (e: FocusEvent, index: number) {\n focus()\n\n focusIndex.value = index\n }\n\n function onBlur () {\n blur()\n\n focusIndex.value = -1\n }\n\n provideDefaults({\n VField: {\n disabled: computed(() => props.disabled),\n error: computed(() => props.error),\n variant: computed(() => props.variant),\n },\n }, { scoped: true })\n\n watch(model, val => {\n if (val.length === props.length) emit('finish', val.join(''))\n }, { deep: true })\n\n watch(focusIndex, val => {\n if (val < 0) return\n\n IN_BROWSER && window.requestAnimationFrame(() => {\n inputRef.value[val].select()\n })\n })\n\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n <div\n class={[\n 'v-otp-input',\n {\n 'v-otp-input--divided': !!props.divider,\n },\n props.class,\n ]}\n style={[\n props.style,\n ]}\n { ...rootAttrs }\n >\n <div\n ref={ contentRef }\n class=\"v-otp-input__content\"\n style={[\n dimensionStyles.value,\n ]}\n >\n { fields.value.map((_, i) => (\n <>\n { props.divider && i !== 0 && (\n <span class=\"v-otp-input__divider\">{ props.divider }</span>\n )}\n\n <VField\n focused={ (isFocused.value && props.focusAll) || focusIndex.value === i }\n key={ i }\n >\n {{\n ...slots,\n default: () => {\n return (\n <input\n ref={ val => inputRef.value[i] = val as HTMLInputElement }\n aria-label={ t(props.label, i + 1) }\n autofocus={ i === 0 && props.autofocus }\n autocomplete=\"one-time-code\"\n class={[\n 'v-otp-input__field',\n ]}\n inputmode=\"text\"\n min={ props.type === 'number' ? 0 : undefined }\n maxlength=\"1\"\n placeholder={ props.placeholder }\n type={ props.type }\n value={ model.value[i] }\n onInput={ onInput }\n onFocus={ e => onFocus(e, i) }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onPaste={ event => onPaste(i, event) }\n />\n )\n },\n }}\n </VField>\n </>\n ))}\n\n <input\n class=\"v-otp-input-input\"\n type=\"hidden\"\n { ...inputAttrs }\n value={ model.value.join('') }\n />\n\n <VOverlay\n contained\n content-class=\"v-otp-input__loader\"\n model-value={ !!props.loading }\n persistent\n >\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"24\"\n width=\"2\"\n />\n )}\n </VOverlay>\n\n { slots.default?.() }\n </div>\n </div>\n )\n })\n\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur())\n },\n focus: () => {\n inputRef.value?.[0].focus()\n },\n reset,\n isFocused,\n }\n },\n})\n\nexport type VOtpInput = InstanceType<typeof VOtpInput>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,eAAe,EAAEC,MAAM;AAAA,SACvBC,QAAQ;AAAA,SACRC,iBAAiB,oEAE1B;AAAA,SACSC,eAAe;AAAA,SACfC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,SAAS;AAAA,SACTC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACjCC,gBAAgB,EAAEC,UAAU,EAAEC,gBAAgB,EAAEC,UAAU,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAElG;AASA,OAAO,MAAMC,kBAAkB,GAAGF,YAAY,CAAC;EAC7CG,SAAS,EAAEC,OAAO;EAClBC,OAAO,EAAEC,MAAM;EACfC,QAAQ,EAAEH,OAAO;EACjBI,KAAK,EAAE;IACLC,IAAI,EAAEH,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDC,MAAM,EAAE;IACNF,IAAI,EAAE,CAACG,MAAM,EAAEN,MAAM,CAAC;IACtBI,OAAO,EAAE;EACX,CAAC;EACDG,UAAU,EAAE;IACVJ,IAAI,EAAE,CAACG,MAAM,EAAEN,MAAM,CAAC;IACtBI,OAAO,EAAEI;EACX,CAAC;EACDC,WAAW,EAAET,MAAM;EACnBG,IAAI,EAAE;IACJA,IAAI,EAAEH,MAAkD;IACxDI,OAAO,EAAE;EACX,CAAC;EAED,GAAGxB,kBAAkB,EAAE;EACvB,GAAGE,cAAc,EAAE;EACnB,GAAGW,IAAI,CAAClB,eAAe,CAAC;IACtBmC,OAAO,EAAE;EACX,CAAC,CAAC,EAAE,CACF,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,EACP,OAAO,EACP,SAAS,CACV;AACH,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMC,SAAS,GAAGpB,gBAAgB,EAAkB,CAAC;EAC1DqB,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEjB,kBAAkB,EAAE;EAE3BkB,KAAK,EAAE;IACLC,MAAM,EAAGC,GAAW,IAAK,IAAI;IAC7B,gBAAgB,EAAGA,GAAY,IAAK,IAAI;IACxC,mBAAmB,EAAGA,GAAW,IAAK;EACxC,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAClC,MAAM;MAAEI;IAAgB,CAAC,GAAGzC,YAAY,CAACgC,KAAK,CAAC;IAC/C,MAAM;MAAEU,SAAS;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAG1C,QAAQ,CAAC8B,KAAK,CAAC;IAClD,MAAMa,KAAK,GAAGzC,eAAe,CAC3B4B,KAAK,EACL,YAAY,EACZ,EAAE,EACFG,GAAG,IAAIhB,MAAM,CAACgB,GAAG,CAAC,CAACW,KAAK,CAAC,EAAE,CAAC,EAC5BX,GAAG,IAAIA,GAAG,CAACY,IAAI,CAAC,EAAE,CAAC,CACpB;IACD,MAAM;MAAEC;IAAE,CAAC,GAAG7C,SAAS,EAAE;IAEzB,MAAM8C,MAAM,GAAG5C,QAAQ,CAAC,MAAM6C,KAAK,CAACzB,MAAM,CAACO,KAAK,CAACR,MAAM,CAAC,CAAC,CAAC2B,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,MAAMC,UAAU,GAAG9C,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM+C,UAAU,GAAG/C,GAAG,EAAe;IACrC,MAAMgD,QAAQ,GAAGhD,GAAG,CAAqB,EAAE,CAAC;IAC5C,MAAMiD,OAAO,GAAGlD,QAAQ,CAAC,MAAMiD,QAAQ,CAACE,KAAK,CAACJ,UAAU,CAACI,KAAK,CAAC,CAAC;IAEhE,SAASC,OAAOA,CAAA,EAAI;MAClB,MAAMC,KAAK,GAAGb,KAAK,CAACW,KAAK,CAACG,KAAK,EAAE;MACjC,MAAMH,KAAK,GAAGD,OAAO,CAACC,KAAK,CAACA,KAAK;MAEjCE,KAAK,CAACN,UAAU,CAACI,KAAK,CAAC,GAAGA,KAAK;MAE/BX,KAAK,CAACW,KAAK,GAAGE,KAAK;MAEnB,IAAIE,MAAW,GAAG,IAAI;MAEtB,IAAIR,UAAU,CAACI,KAAK,GAAGX,KAAK,CAACW,KAAK,CAAChC,MAAM,EAAE;QACzCoC,MAAM,GAAGf,KAAK,CAACW,KAAK,CAAChC,MAAM,GAAG,CAAC;MACjC,CAAC,MAAM,IAAI4B,UAAU,CAACI,KAAK,GAAG,CAAC,KAAK/B,MAAM,CAACO,KAAK,CAACR,MAAM,CAAC,EAAE;QACxDoC,MAAM,GAAG,MAAM;MACjB,CAAC,MAAM;QACLC,qBAAqB,CAAC,MAAMN,OAAO,CAACC,KAAK,EAAEZ,IAAI,EAAE,CAAC;MACpD;MAEA,IAAIgB,MAAM,EAAEnD,UAAU,CAAC4C,UAAU,CAACG,KAAK,EAAGI,MAAM,CAAC;IACnD;IAEA,SAASE,SAASA,CAAEC,CAAgB,EAAE;MACpC,MAAML,KAAK,GAAGb,KAAK,CAACW,KAAK,CAACG,KAAK,EAAE;MACjC,MAAMK,KAAK,GAAGZ,UAAU,CAACI,KAAK;MAC9B,IAAII,MAA0D,GAAG,IAAI;MAErE,IAAI,CAAC,CACH,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,CACT,CAACK,QAAQ,CAACF,CAAC,CAACG,GAAG,CAAC,EAAE;MAEnBH,CAAC,CAACI,cAAc,EAAE;MAElB,IAAIJ,CAAC,CAACG,GAAG,KAAK,WAAW,EAAE;QACzBN,MAAM,GAAG,MAAM;MACjB,CAAC,MAAM,IAAIG,CAAC,CAACG,GAAG,KAAK,YAAY,EAAE;QACjCN,MAAM,GAAG,MAAM;MACjB,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAACK,QAAQ,CAACF,CAAC,CAACG,GAAG,CAAC,EAAE;QAClDR,KAAK,CAACN,UAAU,CAACI,KAAK,CAAC,GAAG,EAAE;QAE5BX,KAAK,CAACW,KAAK,GAAGE,KAAK;QAEnB,IAAIN,UAAU,CAACI,KAAK,GAAG,CAAC,IAAIO,CAAC,CAACG,GAAG,KAAK,WAAW,EAAE;UACjDN,MAAM,GAAG,MAAM;QACjB,CAAC,MAAM;UACLC,qBAAqB,CAAC,MAAM;YAC1BP,QAAQ,CAACE,KAAK,CAACQ,KAAK,CAAC,CAACI,MAAM,EAAE;UAChC,CAAC,CAAC;QACJ;MACF;MAEAP,qBAAqB,CAAC,MAAM;QAC1B,IAAID,MAAM,IAAI,IAAI,EAAE;UAClBnD,UAAU,CAAC4C,UAAU,CAACG,KAAK,EAAGI,MAAM,CAAC;QACvC;MACF,CAAC,CAAC;IACJ;IAEA,SAASS,OAAOA,CAAEL,KAAa,EAAED,CAAiB,EAAE;MAClDA,CAAC,CAACI,cAAc,EAAE;MAClBJ,CAAC,CAACO,eAAe,EAAE;MAEnBzB,KAAK,CAACW,KAAK,GAAG,CAACO,CAAC,EAAEQ,aAAa,EAAEC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE1B,KAAK,CAAC,EAAE,CAAC;MAEjEQ,QAAQ,CAACE,KAAK,GAAGQ,KAAK,CAAC,CAACpB,IAAI,EAAE;IAChC;IAEA,SAAS6B,KAAKA,CAAA,EAAI;MAChB5B,KAAK,CAACW,KAAK,GAAG,EAAE;IAClB;IAEA,SAASkB,OAAOA,CAAEX,CAAa,EAAEC,KAAa,EAAE;MAC9CrB,KAAK,EAAE;MAEPS,UAAU,CAACI,KAAK,GAAGQ,KAAK;IAC1B;IAEA,SAASW,MAAMA,CAAA,EAAI;MACjB/B,IAAI,EAAE;MAENQ,UAAU,CAACI,KAAK,GAAG,CAAC,CAAC;IACvB;IAEA1D,eAAe,CAAC;MACdH,MAAM,EAAE;QACNiF,QAAQ,EAAEvE,QAAQ,CAAC,MAAM2B,KAAK,CAAC4C,QAAQ,CAAC;QACxCC,KAAK,EAAExE,QAAQ,CAAC,MAAM2B,KAAK,CAAC6C,KAAK,CAAC;QAClChD,OAAO,EAAExB,QAAQ,CAAC,MAAM2B,KAAK,CAACH,OAAO;MACvC;IACF,CAAC,EAAE;MAAEiD,MAAM,EAAE;IAAK,CAAC,CAAC;IAEpBvE,KAAK,CAACsC,KAAK,EAAEV,GAAG,IAAI;MAClB,IAAIA,GAAG,CAACX,MAAM,KAAKQ,KAAK,CAACR,MAAM,EAAEe,IAAI,CAAC,QAAQ,EAAEJ,GAAG,CAACY,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC,EAAE;MAAEgC,IAAI,EAAE;IAAK,CAAC,CAAC;IAElBxE,KAAK,CAAC6C,UAAU,EAAEjB,GAAG,IAAI;MACvB,IAAIA,GAAG,GAAG,CAAC,EAAE;MAEbxB,UAAU,IAAIqE,MAAM,CAACnB,qBAAqB,CAAC,MAAM;QAC/CP,QAAQ,CAACE,KAAK,CAACrB,GAAG,CAAC,CAACiC,MAAM,EAAE;MAC9B,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFtD,SAAS,CAAC,MAAM;MACd,MAAM,CAACmE,SAAS,EAAEC,UAAU,CAAC,GAAG1E,gBAAgB,CAAC8B,KAAK,CAAC;MAEvD,OAAA6C,YAAA,QAAAC,WAAA;QAAA,SAEW,CACL,aAAa,EACb;UACE,sBAAsB,EAAE,CAAC,CAACpD,KAAK,CAACd;QAClC,CAAC,EACDc,KAAK,CAACqD,KAAK,CACZ;QAAA,SACM,CACLrD,KAAK,CAACsD,KAAK;MACZ,GACIL,SAAS,IAAAE,YAAA;QAAA,OAGN9B,UAAU;QAAA,SACV,sBAAsB;QAAA,SACrB,CACLZ,eAAe,CAACe,KAAK;MACtB,IAECP,MAAM,CAACO,KAAK,CAAC+B,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAAN,YAAA,CAAAO,SAAA,SAElB1D,KAAK,CAACd,OAAO,IAAIuE,CAAC,KAAK,CAAC,IAAAN,YAAA;QAAA,SACZ;MAAsB,IAAGnD,KAAK,CAACd,OAAO,EACnD,EAAAiE,YAAA,CAAAxF,MAAA;QAAA,WAGY+C,SAAS,CAACc,KAAK,IAAIxB,KAAK,CAACZ,QAAQ,IAAKgC,UAAU,CAACI,KAAK,KAAKiC,CAAC;QAAA,OACjEA;MAAC;QAGL,GAAGjD,KAAK;QACRjB,OAAO,EAAEA,CAAA,KAAM;UACb,OAAA4D,YAAA;YAAA,OAEUhD,GAAG,IAAImB,QAAQ,CAACE,KAAK,CAACiC,CAAC,CAAC,GAAGtD,GAAuB;YAAA,cAC3Ca,CAAC,CAAChB,KAAK,CAACX,KAAK,EAAEoE,CAAC,GAAG,CAAC,CAAC;YAAA,aACtBA,CAAC,KAAK,CAAC,IAAIzD,KAAK,CAAChB,SAAS;YAAA,gBACzB,eAAe;YAAA,SACrB,CACL,oBAAoB,CACrB;YAAA,aACS,MAAM;YAAA,OACVgB,KAAK,CAACV,IAAI,KAAK,QAAQ,GAAG,CAAC,GAAGK,SAAS;YAAA,aACnC,GAAG;YAAA,eACCK,KAAK,CAACJ,WAAW;YAAA,QACxBI,KAAK,CAACV,IAAI;YAAA,SACTuB,KAAK,CAACW,KAAK,CAACiC,CAAC,CAAC;YAAA,WACZhC,OAAO;YAAA,WACPM,CAAC,IAAIW,OAAO,CAACX,CAAC,EAAE0B,CAAC,CAAC;YAAA,UACnBd,MAAM;YAAA,aACHb,SAAS;YAAA,WACX6B,KAAK,IAAItB,OAAO,CAACoB,CAAC,EAAEE,KAAK;UAAC;QAG1C;MAAC,IAIR,CAAC,EAAAR,YAAA,UAAAC,WAAA;QAAA,SAGM,mBAAmB;QAAA,QACpB;MAAQ,GACRF,UAAU;QAAA,SACPrC,KAAK,CAACW,KAAK,CAACT,IAAI,CAAC,EAAE;MAAC,WAAAoC,YAAA,CAAAvF,QAAA;QAAA;QAAA,iBAKd,qBAAqB;QAAA,eACrB,CAAC,CAACoC,KAAK,CAAC4D,OAAO;QAAA;MAAA;QAAArE,OAAA,EAAAA,CAAA,MAG3BiB,KAAK,CAACqD,MAAM,IAAI,IAAAV,YAAA,CAAAtF,iBAAA;UAAA,SAEN,OAAOmC,KAAK,CAAC4D,OAAO,KAAK,SAAS,GAAGjE,SAAS,GAAGK,KAAK,CAAC4D,OAAO;UAAA;UAAA,QAEjE,IAAI;UAAA,SACH;QAAG,QAEZ;MAAA,IAGDpD,KAAK,CAACjB,OAAO,IAAI;IAI3B,CAAC,CAAC;IAEF,OAAO;MACLqB,IAAI,EAAEA,CAAA,KAAM;QACVU,QAAQ,CAACE,KAAK,EAAEsC,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACnD,IAAI,EAAE,CAAC;MAC7C,CAAC;MACDD,KAAK,EAAEA,CAAA,KAAM;QACXW,QAAQ,CAACE,KAAK,GAAG,CAAC,CAAC,CAACb,KAAK,EAAE;MAC7B,CAAC;MACD8B,KAAK;MACL/B;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
@@ -13,7 +13,7 @@ import { makeVSheetProps, VSheet } from "../../components/VSheet/VSheet.mjs"; //
13
13
  import { provideDefaults } from "../../composables/defaults.mjs";
14
14
  import { makeGroupProps, useGroup } from "../../composables/group.mjs"; // Utilities
15
15
  import { computed, toRefs } from 'vue';
16
- import { genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
16
+ import { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
17
17
  export const VStepperSymbol = Symbol.for('vuetify:v-stepper');
18
18
  export const makeVStepperProps = propsFactory({
19
19
  altLabels: Boolean,
@@ -39,8 +39,8 @@ export const makeVStepperProps = propsFactory({
39
39
  mandatory: 'force',
40
40
  selectedClass: 'v-stepper-item--selected'
41
41
  }),
42
- ...omit(makeVSheetProps(), ['color']),
43
- ...makeVStepperActionsProps()
42
+ ...makeVSheetProps(),
43
+ ...only(makeVStepperActionsProps(), ['prevText', 'nextText'])
44
44
  }, 'VStepper');
45
45
  export const VStepper = genericComponent()({
46
46
  name: 'VStepper',
@@ -60,6 +60,7 @@ export const VStepper = genericComponent()({
60
60
  selected
61
61
  } = useGroup(props, VStepperSymbol);
62
62
  const {
63
+ color,
63
64
  editable,
64
65
  prevText,
65
66
  nextText
@@ -89,16 +90,19 @@ export const VStepper = genericComponent()({
89
90
  nextText
90
91
  },
91
92
  VStepperActions: {
92
- disabled
93
+ color,
94
+ disabled,
95
+ prevText,
96
+ nextText
93
97
  }
94
98
  });
95
99
  useRender(() => {
96
100
  const [sheetProps] = VSheet.filterProps(props);
97
- const [stepperActionProps] = VStepperActions.filterProps(props);
98
101
  const hasHeader = !!(slots.header || props.items.length);
99
102
  const hasWindow = props.items.length > 0;
100
103
  const hasActions = !props.hideActions && !!(hasWindow || slots.actions);
101
104
  return _createVNode(VSheet, _mergeProps(sheetProps, {
105
+ "color": props.bgColor,
102
106
  "class": ['v-stepper', {
103
107
  'v-stepper--alt-labels': props.altLabels,
104
108
  'v-stepper--flat': props.flat,
@@ -130,12 +134,11 @@ export const VStepper = genericComponent()({
130
134
  }), hasActions && (slots.actions?.({
131
135
  next,
132
136
  prev
133
- }) ?? _createVNode(VStepperActions, _mergeProps({
134
- "key": "stepper-actions"
135
- }, stepperActionProps, {
137
+ }) ?? _createVNode(VStepperActions, {
138
+ "key": "stepper-actions",
136
139
  "onClick:prev": prev,
137
140
  "onClick:next": next
138
- }), null))]
141
+ }, null))]
139
142
  });
140
143
  });
141
144
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"VStepper.mjs","names":["makeVStepperActionsProps","VStepperActions","VStepperHeader","VStepperItem","VStepperWindow","VStepperWindowItem","VDivider","makeVSheetProps","VSheet","provideDefaults","makeGroupProps","useGroup","computed","toRefs","genericComponent","getPropertyFromItem","omit","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","prevText","nextText","map","item","index","title","value","raw","activeIndex","findIndex","includes","id","disabled","length","sheetProps","filterProps","stepperActionProps","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, omit, 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 ...omit(makeVSheetProps(), ['color']),\n ...makeVStepperActionsProps(),\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 { 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 disabled,\n },\n })\n\n useRender(() => {\n const [sheetProps] = VSheet.filterProps(props)\n const [stepperActionProps] = VStepperActions.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 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 { ...stepperActionProps }\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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"}
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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"}
@@ -419,7 +419,7 @@ declare const VStepper: {
419
419
  [x: `v-slot:header-item.${string}`]: false | ((arg: StepperItemSlot) => vue.VNodeChild) | undefined;
420
420
  flat?: boolean | undefined;
421
421
  style?: vue.StyleValue | undefined;
422
- disabled?: boolean | "next" | "prev" | undefined;
422
+ disabled?: boolean | undefined;
423
423
  multiple?: boolean | undefined;
424
424
  tag?: string | undefined;
425
425
  mandatory?: NonNullable<boolean | "force"> | undefined;
@@ -572,7 +572,7 @@ declare const VStepper: {
572
572
  $options: vue.ComponentOptionsBase<{
573
573
  flat: boolean;
574
574
  style: vue.StyleValue;
575
- disabled: boolean | "next" | "prev";
575
+ disabled: boolean;
576
576
  multiple: boolean;
577
577
  tag: string;
578
578
  mandatory: NonNullable<boolean | "force">;
@@ -651,7 +651,7 @@ declare const VStepper: {
651
651
  }, string, {
652
652
  flat: boolean;
653
653
  style: vue.StyleValue;
654
- disabled: boolean | "next" | "prev";
654
+ disabled: boolean;
655
655
  multiple: boolean;
656
656
  tag: string;
657
657
  mandatory: NonNullable<boolean | "force">;
@@ -722,7 +722,7 @@ declare const VStepper: {
722
722
  } & {
723
723
  flat: boolean;
724
724
  style: vue.StyleValue;
725
- disabled: boolean | "next" | "prev";
725
+ disabled: boolean;
726
726
  multiple: boolean;
727
727
  tag: string;
728
728
  mandatory: NonNullable<boolean | "force">;
@@ -803,7 +803,7 @@ declare const VStepper: {
803
803
  } & vue.ComponentOptionsBase<{
804
804
  flat: boolean;
805
805
  style: vue.StyleValue;
806
- disabled: boolean | "next" | "prev";
806
+ disabled: boolean;
807
807
  multiple: boolean;
808
808
  tag: string;
809
809
  mandatory: NonNullable<boolean | "force">;
@@ -882,7 +882,7 @@ declare const VStepper: {
882
882
  }, string, {
883
883
  flat: boolean;
884
884
  style: vue.StyleValue;
885
- disabled: boolean | "next" | "prev";
885
+ disabled: boolean;
886
886
  multiple: boolean;
887
887
  tag: string;
888
888
  mandatory: NonNullable<boolean | "force">;
@@ -931,11 +931,6 @@ declare const VStepper: {
931
931
  [key: string]: any;
932
932
  }>[];
933
933
  }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
934
- color: StringConstructor;
935
- disabled: {
936
- type: PropType<boolean | "next" | "prev">;
937
- default: boolean;
938
- };
939
934
  prevText: {
940
935
  type: StringConstructor;
941
936
  default: string;
@@ -944,36 +939,37 @@ declare const VStepper: {
944
939
  type: StringConstructor;
945
940
  default: string;
946
941
  };
942
+ theme: StringConstructor;
943
+ tag: {
944
+ type: StringConstructor;
945
+ default: string;
946
+ };
947
+ rounded: {
948
+ type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
949
+ default: undefined;
950
+ };
951
+ position: {
952
+ type: PropType<"fixed" | "absolute" | "static" | "relative" | "sticky">;
953
+ validator: (v: any) => boolean;
954
+ };
947
955
  location: PropType<Anchor>;
956
+ elevation: {
957
+ type: (StringConstructor | NumberConstructor)[];
958
+ validator(v: any): boolean;
959
+ };
948
960
  height: (StringConstructor | NumberConstructor)[];
949
- width: (StringConstructor | NumberConstructor)[];
950
- border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
951
961
  maxHeight: (StringConstructor | NumberConstructor)[];
952
962
  maxWidth: (StringConstructor | NumberConstructor)[];
953
963
  minHeight: (StringConstructor | NumberConstructor)[];
954
964
  minWidth: (StringConstructor | NumberConstructor)[];
955
- position: {
956
- type: PropType<"fixed" | "absolute" | "static" | "relative" | "sticky">;
957
- validator: (v: any) => boolean;
958
- };
965
+ width: (StringConstructor | NumberConstructor)[];
966
+ class: PropType<any>;
959
967
  style: {
960
968
  type: PropType<vue.StyleValue>;
961
969
  default: null;
962
970
  };
963
- class: PropType<any>;
964
- tag: {
965
- type: StringConstructor;
966
- default: string;
967
- };
968
- elevation: {
969
- type: (StringConstructor | NumberConstructor)[];
970
- validator(v: any): boolean;
971
- };
972
- theme: StringConstructor;
973
- rounded: {
974
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
975
- default: undefined;
976
- };
971
+ border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
972
+ color: StringConstructor;
977
973
  modelValue: {
978
974
  type: null;
979
975
  default: undefined;
@@ -988,6 +984,7 @@ declare const VStepper: {
988
984
  type: PropType<string>;
989
985
  default: string;
990
986
  };
987
+ disabled: BooleanConstructor;
991
988
  altLabels: BooleanConstructor;
992
989
  bgColor: StringConstructor;
993
990
  editable: BooleanConstructor;
@@ -1008,11 +1005,6 @@ declare const VStepper: {
1008
1005
  nonLinear: BooleanConstructor;
1009
1006
  flat: BooleanConstructor;
1010
1007
  }, vue.ExtractPropTypes<{
1011
- color: StringConstructor;
1012
- disabled: {
1013
- type: PropType<boolean | "next" | "prev">;
1014
- default: boolean;
1015
- };
1016
1008
  prevText: {
1017
1009
  type: StringConstructor;
1018
1010
  default: string;
@@ -1021,36 +1013,37 @@ declare const VStepper: {
1021
1013
  type: StringConstructor;
1022
1014
  default: string;
1023
1015
  };
1016
+ theme: StringConstructor;
1017
+ tag: {
1018
+ type: StringConstructor;
1019
+ default: string;
1020
+ };
1021
+ rounded: {
1022
+ type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
1023
+ default: undefined;
1024
+ };
1025
+ position: {
1026
+ type: PropType<"fixed" | "absolute" | "static" | "relative" | "sticky">;
1027
+ validator: (v: any) => boolean;
1028
+ };
1024
1029
  location: PropType<Anchor>;
1030
+ elevation: {
1031
+ type: (StringConstructor | NumberConstructor)[];
1032
+ validator(v: any): boolean;
1033
+ };
1025
1034
  height: (StringConstructor | NumberConstructor)[];
1026
- width: (StringConstructor | NumberConstructor)[];
1027
- border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
1028
1035
  maxHeight: (StringConstructor | NumberConstructor)[];
1029
1036
  maxWidth: (StringConstructor | NumberConstructor)[];
1030
1037
  minHeight: (StringConstructor | NumberConstructor)[];
1031
1038
  minWidth: (StringConstructor | NumberConstructor)[];
1032
- position: {
1033
- type: PropType<"fixed" | "absolute" | "static" | "relative" | "sticky">;
1034
- validator: (v: any) => boolean;
1035
- };
1039
+ width: (StringConstructor | NumberConstructor)[];
1040
+ class: PropType<any>;
1036
1041
  style: {
1037
1042
  type: PropType<vue.StyleValue>;
1038
1043
  default: null;
1039
1044
  };
1040
- class: PropType<any>;
1041
- tag: {
1042
- type: StringConstructor;
1043
- default: string;
1044
- };
1045
- elevation: {
1046
- type: (StringConstructor | NumberConstructor)[];
1047
- validator(v: any): boolean;
1048
- };
1049
- theme: StringConstructor;
1050
- rounded: {
1051
- type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
1052
- default: undefined;
1053
- };
1045
+ border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
1046
+ color: StringConstructor;
1054
1047
  modelValue: {
1055
1048
  type: null;
1056
1049
  default: undefined;
@@ -1065,6 +1058,7 @@ declare const VStepper: {
1065
1058
  type: PropType<string>;
1066
1059
  default: string;
1067
1060
  };
1061
+ disabled: BooleanConstructor;
1068
1062
  altLabels: BooleanConstructor;
1069
1063
  bgColor: StringConstructor;
1070
1064
  editable: BooleanConstructor;