@vuetify/nightly 3.10.6-dev.2025-10-22 → 3.10.7-dev.2025-10-23

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 (44) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/dist/json/attributes.json +3418 -3418
  3. package/dist/json/importMap-labs.json +32 -32
  4. package/dist/json/importMap.json +156 -156
  5. package/dist/json/web-types.json +6633 -6633
  6. package/dist/vuetify-labs.cjs +28 -26
  7. package/dist/vuetify-labs.css +4200 -4200
  8. package/dist/vuetify-labs.d.ts +59 -59
  9. package/dist/vuetify-labs.esm.js +28 -26
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +28 -26
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +28 -26
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3573 -3573
  16. package/dist/vuetify.d.ts +59 -59
  17. package/dist/vuetify.esm.js +28 -26
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +28 -26
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +19 -19
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.js +2 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  26. package/lib/components/VCombobox/VCombobox.js +3 -2
  27. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  28. package/lib/components/VFileInput/VFileInput.js +3 -2
  29. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  30. package/lib/components/VMenu/VMenu.js +1 -1
  31. package/lib/components/VMenu/VMenu.js.map +1 -1
  32. package/lib/components/VSelect/VSelect.js +2 -1
  33. package/lib/components/VSelect/VSelect.js.map +1 -1
  34. package/lib/components/VTextField/VTextField.js +3 -2
  35. package/lib/components/VTextField/VTextField.js.map +1 -1
  36. package/lib/components/VTextarea/VTextarea.d.ts +3 -3
  37. package/lib/components/VTextarea/VTextarea.js +3 -2
  38. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  39. package/lib/components/VWindow/VWindow.js +8 -12
  40. package/lib/components/VWindow/VWindow.js.map +1 -1
  41. package/lib/entry-bundler.js +1 -1
  42. package/lib/framework.d.ts +56 -56
  43. package/lib/framework.js +1 -1
  44. package/package.json +1 -1
@@ -245,12 +245,13 @@ export const VTextarea = genericComponent()({
245
245
  props: {
246
246
  class: fieldClass,
247
247
  ...slotProps
248
- }
248
+ },
249
+ controlRef
249
250
  } = _ref3;
250
251
  return _createElementVNode(_Fragment, null, [props.prefix && _createElementVNode("span", {
251
252
  "class": "v-text-field__prefix"
252
253
  }, [props.prefix]), _withDirectives(_createElementVNode("textarea", _mergeProps({
253
- "ref": textareaRef,
254
+ "ref": val => textareaRef.value = controlRef.value = val,
254
255
  "class": fieldClass,
255
256
  "value": model.value,
256
257
  "onInput": onInput,
@@ -1 +1 @@
1
- {"version":3,"file":"VTextarea.js","names":["VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useDisplay","makeAutocompleteProps","useAutocomplete","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","computed","nextTick","onBeforeUnmount","onMounted","ref","shallowRef","watch","watchEffect","callEvent","clamp","convertToUnit","filterInputAttrs","genericComponent","propsFactory","useRender","makeVTextareaProps","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","modelModifiers","Object","VTextarea","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","vInputRef","vFieldRef","controlHeight","textareaRef","scrollbarWidth","platform","autocomplete","isActive","active","onFocus","isSuppressing","update","document","activeElement","onControlClick","onControlMousedown","onClear","stopPropagation","onInput","el","target","trim","caretPosition","selectionStart","selectionEnd","sizerRef","isPlainOrUnderlined","includes","variant","calculateInputHeight","firefox","offsetWidth","clientWidth","Math","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","maxHeight","Infinity","newHeight","floor","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","_createElementVNode","_Fragment","_withDirectives","fieldName","fieldAutocomplete","handler","once","_normalizeClass","_vModelText","disabled"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useDisplay } from '@/composables'\nimport { makeAutocompleteProps, useAutocomplete } from '@/composables/autocomplete'\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeAutocompleteProps(),\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextarea')\n\ntype VTextareaSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n counter: VCounterSlot\n}\n\nexport const VTextarea = genericComponent<VTextareaSlots>()({\n name: 'VTextarea',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextareaProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n 'update:rows': (rows: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as string | number\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const controlHeight = shallowRef('')\n const textareaRef = ref<HTMLInputElement>()\n const scrollbarWidth = ref(0)\n const { platform } = useDisplay()\n const autocomplete = useAutocomplete(props)\n const isActive = computed(() => (\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n\n function onFocus () {\n if (autocomplete.isSuppressing.value) {\n autocomplete.update()\n }\n\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n const rows = ref(Number(props.rows))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n watchEffect(() => {\n if (!props.autoGrow) rows.value = Number(props.rows)\n })\n function calculateInputHeight () {\n nextTick(() => {\n if (!textareaRef.value) return\n if (platform.value.firefox) {\n scrollbarWidth.value = 12\n return\n }\n const { offsetWidth, clientWidth } = textareaRef.value\n scrollbarWidth.value = Math.max(0, offsetWidth - clientWidth)\n })\n\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n const newHeight = clamp(height ?? 0, minHeight, maxHeight)\n rows.value = Math.floor((newHeight - padding) / lineHeight)\n\n controlHeight.value = convertToUnit(newHeight)\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n watch(rows, val => {\n emit('update:rows', val)\n })\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = {\n ...VField.filterProps(props),\n 'onClick:clear': onClear,\n }\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={[\n {\n '--v-textarea-scroll-bar-width': convertToUnit(scrollbarWidth.value),\n },\n props.style,\n ]}\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ rows.value === 1 && !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick={ onControlClick }\n onMousedown={ onControlMousedown }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n centerAffix={ rows.value === 1 && !isPlainOrUnderlined.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n details={ hasDetails.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n )}\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ autocomplete.fieldName.value }\n autocomplete={ autocomplete.fieldAutocomplete.value }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n id={ `${slotProps.id}-sizer` }\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n )}\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTextarea.js","names":["VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useDisplay","makeAutocompleteProps","useAutocomplete","useAutofocus","useFocus","forwardRefs","useProxiedModel","vIntersect","computed","nextTick","onBeforeUnmount","onMounted","ref","shallowRef","watch","watchEffect","callEvent","clamp","convertToUnit","filterInputAttrs","genericComponent","propsFactory","useRender","makeVTextareaProps","autoGrow","Boolean","autofocus","counter","Number","String","counterValue","Function","prefix","placeholder","persistentPlaceholder","persistentCounter","noResize","rows","type","default","validator","v","isNaN","parseFloat","maxRows","suffix","modelModifiers","Object","VTextarea","name","directives","inheritAttrs","props","emits","e","focused","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","onIntersect","value","toString","length","max","maxlength","undefined","vInputRef","vFieldRef","controlHeight","textareaRef","scrollbarWidth","platform","autocomplete","isActive","active","onFocus","isSuppressing","update","document","activeElement","onControlClick","onControlMousedown","onClear","stopPropagation","onInput","el","target","trim","caretPosition","selectionStart","selectionEnd","sizerRef","isPlainOrUnderlined","includes","variant","calculateInputHeight","firefox","offsetWidth","clientWidth","Math","style","getComputedStyle","fieldStyle","$el","padding","getPropertyValue","height","scrollHeight","lineHeight","minHeight","maxHeight","Infinity","newHeight","floor","density","observer","ResizeObserver","observe","disconnect","hasCounter","hasDetails","details","rootAttrs","inputAttrs","modelValue","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","$event","class","_ref2","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref3","fieldClass","slotProps","controlRef","_createElementVNode","_Fragment","_withDirectives","fieldName","fieldAutocomplete","handler","once","_normalizeClass","_vModelText","disabled"],"sources":["../../../src/components/VTextarea/VTextarea.tsx"],"sourcesContent":["// Styles\nimport './VTextarea.sass'\nimport '../VTextField/VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useDisplay } from '@/composables'\nimport { makeAutocompleteProps, useAutocomplete } from '@/composables/autocomplete'\nimport { useAutofocus } from '@/composables/autofocus'\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { callEvent, clamp, convertToUnit, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport const makeVTextareaProps = propsFactory({\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n modelModifiers: Object as PropType<Record<string, boolean>>,\n\n ...makeAutocompleteProps(),\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextarea')\n\ntype VTextareaSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n counter: VCounterSlot\n}\n\nexport const VTextarea = genericComponent<VTextareaSlots>()({\n name: 'VTextarea',\n\n directives: { vIntersect },\n\n inheritAttrs: false,\n\n props: makeVTextareaProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n 'update:rows': (rows: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const { onIntersect } = useAutofocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as string | number\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const controlHeight = shallowRef('')\n const textareaRef = ref<HTMLTextAreaElement>()\n const scrollbarWidth = ref(0)\n const { platform } = useDisplay()\n const autocomplete = useAutocomplete(props)\n const isActive = computed(() => (\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n\n function onFocus () {\n if (autocomplete.isSuppressing.value) {\n autocomplete.update()\n }\n\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLTextAreaElement\n model.value = el.value\n if (props.modelModifiers?.trim) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n const rows = ref(Number(props.rows))\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n watchEffect(() => {\n if (!props.autoGrow) rows.value = Number(props.rows)\n })\n function calculateInputHeight () {\n nextTick(() => {\n if (!textareaRef.value) return\n if (platform.value.firefox) {\n scrollbarWidth.value = 12\n return\n }\n const { offsetWidth, clientWidth } = textareaRef.value\n scrollbarWidth.value = Math.max(0, offsetWidth - clientWidth)\n })\n\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value || !vFieldRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n const fieldStyle = getComputedStyle(vFieldRef.value.$el)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-input-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = Math.max(\n parseFloat(props.rows) * lineHeight + padding,\n parseFloat(fieldStyle.getPropertyValue('--v-input-control-height'))\n )\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n const newHeight = clamp(height ?? 0, minHeight, maxHeight)\n rows.value = Math.floor((newHeight - padding) / lineHeight)\n\n controlHeight.value = convertToUnit(newHeight)\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n watch(() => props.density, calculateInputHeight)\n watch(rows, val => {\n emit('update:rows', val)\n })\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = {\n ...VField.filterProps(props),\n 'onClick:clear': onClear,\n }\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-textarea v-text-field',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={[\n {\n '--v-textarea-scroll-bar-width': convertToUnit(scrollbarWidth.value),\n },\n props.style,\n ]}\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ rows.value === 1 && !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n }) => (\n <VField\n ref={ vFieldRef }\n style={{\n '--v-textarea-control-height': controlHeight.value,\n }}\n onClick={ onControlClick }\n onMousedown={ onControlMousedown }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n centerAffix={ rows.value === 1 && !isPlainOrUnderlined.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n details={ hasDetails.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n controlRef,\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n )}\n\n <textarea\n ref={ val => textareaRef.value = controlRef.value = val as HTMLTextAreaElement }\n class={ fieldClass }\n value={ model.value }\n onInput={ onInput }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ autocomplete.fieldName.value }\n autocomplete={ autocomplete.fieldAutocomplete.value }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n id={ `${slotProps.id}-sizer` }\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n )}\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n"],"mappings":"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","ignoreList":[]}
@@ -101,15 +101,13 @@ export const VWindow = genericComponent()({
101
101
  watch(activeIndex, (newVal, oldVal) => {
102
102
  let scrollableParent;
103
103
  const savedScrollPosition = {
104
- x: 0,
105
- y: 0
104
+ left: 0,
105
+ top: 0
106
106
  };
107
107
  if (IN_BROWSER && oldVal >= 0) {
108
108
  scrollableParent = getScrollParent(rootRef.value);
109
-
110
- // Save current scroll position
111
- savedScrollPosition.x = scrollableParent.scrollLeft;
112
- savedScrollPosition.y = scrollableParent.scrollTop;
109
+ savedScrollPosition.left = scrollableParent?.scrollLeft;
110
+ savedScrollPosition.top = scrollableParent?.scrollTop;
113
111
  }
114
112
  const itemsLength = group.items.value.length;
115
113
  const lastIndex = itemsLength - 1;
@@ -125,20 +123,18 @@ export const VWindow = genericComponent()({
125
123
  nextTick(() => {
126
124
  if (!IN_BROWSER || !scrollableParent) return;
127
125
  const currentScrollY = scrollableParent.scrollTop;
128
- if (currentScrollY !== savedScrollPosition.y) {
126
+ if (currentScrollY !== savedScrollPosition.top) {
129
127
  scrollableParent.scrollTo({
130
- left: savedScrollPosition.x,
131
- top: savedScrollPosition.y,
128
+ ...savedScrollPosition,
132
129
  behavior: 'instant'
133
130
  });
134
131
  }
135
132
  requestAnimationFrame(() => {
136
133
  if (!scrollableParent) return;
137
134
  const rafScrollY = scrollableParent.scrollTop;
138
- if (rafScrollY !== savedScrollPosition.y) {
135
+ if (rafScrollY !== savedScrollPosition.top) {
139
136
  scrollableParent.scrollTo({
140
- left: savedScrollPosition.x,
141
- top: savedScrollPosition.y,
137
+ ...savedScrollPosition,
142
138
  behavior: 'instant'
143
139
  });
144
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VWindow.js","names":["VBtn","makeComponentProps","useGroup","useLocale","useRtl","makeTagProps","makeThemeProps","provideTheme","vTouch","computed","nextTick","provide","ref","shallowRef","toRef","watch","convertToUnit","genericComponent","IN_BROWSER","PREFERS_REDUCED_MOTION","propsFactory","useRender","getScrollParent","VWindowSymbol","Symbol","for","VWindowGroupSymbol","makeVWindowProps","continuous","Boolean","nextIcon","type","String","Function","Object","default","prevIcon","reverse","showArrows","validator","v","verticalArrows","touch","undefined","direction","modelValue","disabled","selectedClass","mandatory","crossfade","transitionDuration","Number","VWindow","name","directives","props","emits","value","setup","_ref","slots","themeClasses","isRtl","t","group","rootRef","isRtlReverse","isReversed","transition","axis","transitionCount","transitionHeight","activeIndex","items","findIndex","item","selected","includes","id","newVal","oldVal","scrollableParent","savedScrollPosition","x","y","scrollLeft","scrollTop","itemsLength","length","lastIndex","currentScrollY","scrollTo","left","top","behavior","requestAnimationFrame","rafScrollY","flush","canMoveBack","canMoveForward","prev","next","arrows","prevProps","icon","class","onClick","push","_createVNode","_createElementVNode","nextProps","touchOptions","options","right","start","_ref2","originalEvent","stopPropagation","_withDirectives","tag","_normalizeClass","_normalizeStyle","style","height","additional"],"sources":["../../../src/components/VWindow/VWindow.tsx"],"sourcesContent":["// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useGroup } from '@/composables/group'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Directives\nimport vTouch from '@/directives/touch'\n\n// Utilities\nimport { computed, nextTick, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { convertToUnit, genericComponent, IN_BROWSER, PREFERS_REDUCED_MOTION, propsFactory, useRender } from '@/util'\nimport { getScrollParent } from '@/util/getScrollParent'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { IconValue } from '@/composables/icons'\nimport type { TouchHandlers } from '@/directives/touch'\nimport type { GenericProps } from '@/util'\n\nexport type VWindowSlots = {\n default: { group: GroupProvide }\n additional: { group: GroupProvide }\n prev: { props: ControlProps }\n next: { props: ControlProps }\n}\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: IconValue\n class: string\n onClick: () => void\n 'aria-label': string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n verticalArrows: [Boolean, String] as PropType<boolean | 'left' | 'right'>,\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n type: [Boolean, String] as PropType<boolean | 'force'>,\n default: 'force' as const,\n },\n crossfade: Boolean,\n transitionDuration: Number,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VWindow')\n\nexport const VWindow = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VWindowSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VWindow',\n\n directives: { vTouch },\n\n props: makeVWindowProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = shallowRef(false)\n const transition = computed(() => {\n if (props.crossfade) {\n return 'v-window-crossfade-transition'\n }\n\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = shallowRef(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n // Fix for https://github.com/vuetifyjs/vuetify/issues/18447\n watch(activeIndex, (newVal, oldVal) => {\n let scrollableParent: HTMLElement | undefined\n const savedScrollPosition = { x: 0, y: 0 }\n\n if (IN_BROWSER && oldVal >= 0) {\n scrollableParent = getScrollParent(rootRef.value)\n\n // Save current scroll position\n savedScrollPosition.x = scrollableParent.scrollLeft\n savedScrollPosition.y = scrollableParent.scrollTop\n }\n\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n\n nextTick(() => {\n if (!IN_BROWSER || !scrollableParent) return\n\n const currentScrollY = scrollableParent.scrollTop\n\n if (currentScrollY !== savedScrollPosition.y) {\n scrollableParent.scrollTo({ left: savedScrollPosition.x, top: savedScrollPosition.y, behavior: 'instant' })\n }\n\n requestAnimationFrame(() => {\n if (!scrollableParent) return\n\n const rafScrollY = scrollableParent.scrollTop\n\n if (rafScrollY !== savedScrollPosition.y) {\n scrollableParent.scrollTo({ left: savedScrollPosition.x, top: savedScrollPosition.y, behavior: 'instant' })\n }\n })\n })\n }, { flush: 'sync' }) // Run synchronously before DOM updates\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = toRef(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = toRef(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n 'aria-label': t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n 'aria-label': t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n 'v-window--vertical-arrows': !!props.verticalArrows,\n 'v-window--crossfade': !!props.crossfade,\n },\n themeClasses.value,\n props.class,\n ]}\n style={[\n props.style,\n props.transitionDuration && !PREFERS_REDUCED_MOTION\n ? { '--v-window-transition-duration': convertToUnit(props.transitionDuration, 'ms') }\n : undefined,\n ]}\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div\n class={[\n 'v-window__controls',\n { 'v-window__controls--left': props.verticalArrows === 'left' || props.verticalArrows === true },\n { 'v-window__controls--right': props.verticalArrows === 'right' },\n ]}\n >\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VWindow.js","names":["VBtn","makeComponentProps","useGroup","useLocale","useRtl","makeTagProps","makeThemeProps","provideTheme","vTouch","computed","nextTick","provide","ref","shallowRef","toRef","watch","convertToUnit","genericComponent","IN_BROWSER","PREFERS_REDUCED_MOTION","propsFactory","useRender","getScrollParent","VWindowSymbol","Symbol","for","VWindowGroupSymbol","makeVWindowProps","continuous","Boolean","nextIcon","type","String","Function","Object","default","prevIcon","reverse","showArrows","validator","v","verticalArrows","touch","undefined","direction","modelValue","disabled","selectedClass","mandatory","crossfade","transitionDuration","Number","VWindow","name","directives","props","emits","value","setup","_ref","slots","themeClasses","isRtl","t","group","rootRef","isRtlReverse","isReversed","transition","axis","transitionCount","transitionHeight","activeIndex","items","findIndex","item","selected","includes","id","newVal","oldVal","scrollableParent","savedScrollPosition","left","top","scrollLeft","scrollTop","itemsLength","length","lastIndex","currentScrollY","scrollTo","behavior","requestAnimationFrame","rafScrollY","flush","canMoveBack","canMoveForward","prev","next","arrows","prevProps","icon","class","onClick","push","_createVNode","_createElementVNode","nextProps","touchOptions","options","right","start","_ref2","originalEvent","stopPropagation","_withDirectives","tag","_normalizeClass","_normalizeStyle","style","height","additional"],"sources":["../../../src/components/VWindow/VWindow.tsx"],"sourcesContent":["// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useGroup } from '@/composables/group'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Directives\nimport vTouch from '@/directives/touch'\n\n// Utilities\nimport { computed, nextTick, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { convertToUnit, genericComponent, IN_BROWSER, PREFERS_REDUCED_MOTION, propsFactory, useRender } from '@/util'\nimport { getScrollParent } from '@/util/getScrollParent'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { IconValue } from '@/composables/icons'\nimport type { TouchHandlers } from '@/directives/touch'\nimport type { GenericProps } from '@/util'\n\nexport type VWindowSlots = {\n default: { group: GroupProvide }\n additional: { group: GroupProvide }\n prev: { props: ControlProps }\n next: { props: ControlProps }\n}\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: IconValue\n class: string\n onClick: () => void\n 'aria-label': string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n verticalArrows: [Boolean, String] as PropType<boolean | 'left' | 'right'>,\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n type: [Boolean, String] as PropType<boolean | 'force'>,\n default: 'force' as const,\n },\n crossfade: Boolean,\n transitionDuration: Number,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VWindow')\n\nexport const VWindow = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VWindowSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VWindow',\n\n directives: { vTouch },\n\n props: makeVWindowProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = shallowRef(false)\n const transition = computed(() => {\n if (props.crossfade) {\n return 'v-window-crossfade-transition'\n }\n\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = shallowRef(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n // Fix for https://github.com/vuetifyjs/vuetify/issues/18447\n watch(activeIndex, (newVal, oldVal) => {\n let scrollableParent: HTMLElement | undefined\n const savedScrollPosition = { left: 0, top: 0 }\n\n if (IN_BROWSER && oldVal >= 0) {\n scrollableParent = getScrollParent(rootRef.value)\n\n savedScrollPosition.left = scrollableParent?.scrollLeft\n savedScrollPosition.top = scrollableParent?.scrollTop\n }\n\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n\n nextTick(() => {\n if (!IN_BROWSER || !scrollableParent) return\n\n const currentScrollY = scrollableParent.scrollTop\n\n if (currentScrollY !== savedScrollPosition.top) {\n scrollableParent.scrollTo({ ...savedScrollPosition, behavior: 'instant' })\n }\n\n requestAnimationFrame(() => {\n if (!scrollableParent) return\n\n const rafScrollY = scrollableParent.scrollTop\n\n if (rafScrollY !== savedScrollPosition.top) {\n scrollableParent.scrollTo({ ...savedScrollPosition, behavior: 'instant' })\n }\n })\n })\n }, { flush: 'sync' }) // Run synchronously before DOM updates\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = toRef(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = toRef(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n 'aria-label': t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n 'aria-label': t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n 'v-window--vertical-arrows': !!props.verticalArrows,\n 'v-window--crossfade': !!props.crossfade,\n },\n themeClasses.value,\n props.class,\n ]}\n style={[\n props.style,\n props.transitionDuration && !PREFERS_REDUCED_MOTION\n ? { '--v-window-transition-duration': convertToUnit(props.transitionDuration, 'ms') }\n : undefined,\n ]}\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div\n class={[\n 'v-window__controls',\n { 'v-window__controls--left': props.verticalArrows === 'left' || props.verticalArrows === true },\n { 'v-window__controls--right': props.verticalArrows === 'right' },\n ]}\n >\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.10.6-dev.2025-10-22";
19
+ export const version = "3.10.7-dev.2025-10-23";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -2712,26 +2712,25 @@ declare module 'vue' {
2712
2712
  $children?: VNodeChild
2713
2713
  }
2714
2714
  export interface GlobalComponents {
2715
- VAlert: typeof import('vuetify/components')['VAlert']
2716
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2717
2715
  VApp: typeof import('vuetify/components')['VApp']
2718
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2719
2716
  VAppBar: typeof import('vuetify/components')['VAppBar']
2720
2717
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2721
2718
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2722
- VBadge: typeof import('vuetify/components')['VBadge']
2723
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2724
- VAvatar: typeof import('vuetify/components')['VAvatar']
2725
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2719
+ VAlert: typeof import('vuetify/components')['VAlert']
2720
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2726
2721
  VBanner: typeof import('vuetify/components')['VBanner']
2727
2722
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2728
2723
  VBannerText: typeof import('vuetify/components')['VBannerText']
2729
- VBtn: typeof import('vuetify/components')['VBtn']
2724
+ VAvatar: typeof import('vuetify/components')['VAvatar']
2725
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2726
+ VBadge: typeof import('vuetify/components')['VBadge']
2727
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2728
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2730
2729
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2731
2730
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2732
2731
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2733
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2734
2732
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2733
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2735
2734
  VCarousel: typeof import('vuetify/components')['VCarousel']
2736
2735
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2737
2736
  VCard: typeof import('vuetify/components')['VCard']
@@ -2740,12 +2739,21 @@ declare module 'vue' {
2740
2739
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2741
2740
  VCardText: typeof import('vuetify/components')['VCardText']
2742
2741
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2742
+ VBtn: typeof import('vuetify/components')['VBtn']
2743
+ VCombobox: typeof import('vuetify/components')['VCombobox']
2744
+ VChip: typeof import('vuetify/components')['VChip']
2743
2745
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
2744
2746
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2745
2747
  VCode: typeof import('vuetify/components')['VCode']
2746
2748
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
2747
- VChip: typeof import('vuetify/components')['VChip']
2748
2749
  VCounter: typeof import('vuetify/components')['VCounter']
2750
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
2751
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2752
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2753
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2754
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2755
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2756
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
2749
2757
  VDataTable: typeof import('vuetify/components')['VDataTable']
2750
2758
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
2751
2759
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -2753,39 +2761,30 @@ declare module 'vue' {
2753
2761
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2754
2762
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2755
2763
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2756
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
2757
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
2758
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2759
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2760
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2761
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2762
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2763
- VCombobox: typeof import('vuetify/components')['VCombobox']
2764
- VDialog: typeof import('vuetify/components')['VDialog']
2765
2764
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
2766
2765
  VDivider: typeof import('vuetify/components')['VDivider']
2767
- VFileInput: typeof import('vuetify/components')['VFileInput']
2766
+ VDialog: typeof import('vuetify/components')['VDialog']
2768
2767
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2769
2768
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2770
2769
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2771
2770
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2772
- VFooter: typeof import('vuetify/components')['VFooter']
2773
- VFab: typeof import('vuetify/components')['VFab']
2771
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2774
2772
  VField: typeof import('vuetify/components')['VField']
2775
2773
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2774
+ VFab: typeof import('vuetify/components')['VFab']
2775
+ VImg: typeof import('vuetify/components')['VImg']
2776
+ VFooter: typeof import('vuetify/components')['VFooter']
2777
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2776
2778
  VIcon: typeof import('vuetify/components')['VIcon']
2777
2779
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2778
2780
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2779
2781
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2780
2782
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2781
2783
  VInput: typeof import('vuetify/components')['VInput']
2782
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2784
+ VLabel: typeof import('vuetify/components')['VLabel']
2785
+ VKbd: typeof import('vuetify/components')['VKbd']
2783
2786
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2784
2787
  VItem: typeof import('vuetify/components')['VItem']
2785
- VImg: typeof import('vuetify/components')['VImg']
2786
- VKbd: typeof import('vuetify/components')['VKbd']
2787
- VLabel: typeof import('vuetify/components')['VLabel']
2788
- VMain: typeof import('vuetify/components')['VMain']
2789
2788
  VList: typeof import('vuetify/components')['VList']
2790
2789
  VListGroup: typeof import('vuetify/components')['VListGroup']
2791
2790
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2795,41 +2794,45 @@ declare module 'vue' {
2795
2794
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2796
2795
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2797
2796
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2798
- VOverlay: typeof import('vuetify/components')['VOverlay']
2799
- VMessages: typeof import('vuetify/components')['VMessages']
2800
- VNumberInput: typeof import('vuetify/components')['VNumberInput']
2797
+ VMain: typeof import('vuetify/components')['VMain']
2798
+ VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2801
2799
  VMenu: typeof import('vuetify/components')['VMenu']
2802
2800
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
2803
- VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2804
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2801
+ VMessages: typeof import('vuetify/components')['VMessages']
2802
+ VNumberInput: typeof import('vuetify/components')['VNumberInput']
2805
2803
  VPagination: typeof import('vuetify/components')['VPagination']
2806
- VRating: typeof import('vuetify/components')['VRating']
2807
2804
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2805
+ VOverlay: typeof import('vuetify/components')['VOverlay']
2806
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2807
+ VRating: typeof import('vuetify/components')['VRating']
2808
2808
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2809
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2809
2810
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2810
2811
  VSelect: typeof import('vuetify/components')['VSelect']
2811
- VSlider: typeof import('vuetify/components')['VSlider']
2812
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2813
- VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2814
- VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2815
2812
  VSheet: typeof import('vuetify/components')['VSheet']
2816
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2813
+ VSlider: typeof import('vuetify/components')['VSlider']
2817
2814
  VStepper: typeof import('vuetify/components')['VStepper']
2818
2815
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
2819
2816
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
2820
2817
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
2821
2818
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
2822
2819
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
2823
- VSwitch: typeof import('vuetify/components')['VSwitch']
2820
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2824
2821
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
2825
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
2826
- VTable: typeof import('vuetify/components')['VTable']
2822
+ VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2823
+ VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2824
+ VSwitch: typeof import('vuetify/components')['VSwitch']
2827
2825
  VTextarea: typeof import('vuetify/components')['VTextarea']
2828
- VTextField: typeof import('vuetify/components')['VTextField']
2829
2826
  VTab: typeof import('vuetify/components')['VTab']
2830
2827
  VTabs: typeof import('vuetify/components')['VTabs']
2831
2828
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2832
2829
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2830
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
2831
+ VTable: typeof import('vuetify/components')['VTable']
2832
+ VTextField: typeof import('vuetify/components')['VTextField']
2833
+ VToolbar: typeof import('vuetify/components')['VToolbar']
2834
+ VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2835
+ VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2833
2836
  VTimeline: typeof import('vuetify/components')['VTimeline']
2834
2837
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2835
2838
  VTreeview: typeof import('vuetify/components')['VTreeview']
@@ -2839,9 +2842,6 @@ declare module 'vue' {
2839
2842
  VTimePicker: typeof import('vuetify/components')['VTimePicker']
2840
2843
  VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
2841
2844
  VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
2842
- VToolbar: typeof import('vuetify/components')['VToolbar']
2843
- VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2844
- VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2845
2845
  VWindow: typeof import('vuetify/components')['VWindow']
2846
2846
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2847
2847
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
@@ -2851,15 +2851,15 @@ declare module 'vue' {
2851
2851
  VCol: typeof import('vuetify/components')['VCol']
2852
2852
  VRow: typeof import('vuetify/components')['VRow']
2853
2853
  VSpacer: typeof import('vuetify/components')['VSpacer']
2854
- VForm: typeof import('vuetify/components')['VForm']
2855
2854
  VHover: typeof import('vuetify/components')['VHover']
2855
+ VForm: typeof import('vuetify/components')['VForm']
2856
+ VLazy: typeof import('vuetify/components')['VLazy']
2856
2857
  VLayout: typeof import('vuetify/components')['VLayout']
2857
2858
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
2858
- VLazy: typeof import('vuetify/components')['VLazy']
2859
2859
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2860
2860
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
2861
- VParallax: typeof import('vuetify/components')['VParallax']
2862
2861
  VRadio: typeof import('vuetify/components')['VRadio']
2862
+ VParallax: typeof import('vuetify/components')['VParallax']
2863
2863
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2864
2864
  VResponsive: typeof import('vuetify/components')['VResponsive']
2865
2865
  VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
@@ -2884,26 +2884,26 @@ declare module 'vue' {
2884
2884
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
2885
2885
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2886
2886
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2887
- VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2888
- VPicker: typeof import('vuetify/labs/components')['VPicker']
2889
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2890
2887
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
2888
+ VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2891
2889
  VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2892
2890
  VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2893
- VPie: typeof import('vuetify/labs/components')['VPie']
2894
- VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
2895
- VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
2896
- VHotkey: typeof import('vuetify/labs/components')['VHotkey']
2897
2891
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2898
2892
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2899
2893
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2900
2894
  VVideo: typeof import('vuetify/labs/components')['VVideo']
2901
2895
  VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
2902
2896
  VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
2897
+ VPie: typeof import('vuetify/labs/components')['VPie']
2898
+ VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
2899
+ VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
2900
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
2901
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2902
+ VHotkey: typeof import('vuetify/labs/components')['VHotkey']
2903
2903
  VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2904
- VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
2905
2904
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2906
2905
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
2906
+ VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
2907
2907
  }
2908
2908
  export interface GlobalDirectives {
2909
2909
  vClickOutside: typeof import('vuetify/directives')['ClickOutside']
package/lib/framework.js CHANGED
@@ -110,7 +110,7 @@ export function createVuetify() {
110
110
  };
111
111
  });
112
112
  }
113
- export const version = "3.10.6-dev.2025-10-22";
113
+ export const version = "3.10.7-dev.2025-10-23";
114
114
  createVuetify.version = version;
115
115
 
116
116
  // Vue's inject() can only be used in setup
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetify/nightly",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.10.6-dev.2025-10-22",
4
+ "version": "3.10.7-dev.2025-10-23",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"