@vuetify/nightly 3.8.10-master.2025-06-19 → 3.8.11-master.2025-06-24

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 (46) hide show
  1. package/CHANGELOG.md +3 -11
  2. package/dist/json/attributes.json +3215 -3215
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +132 -132
  5. package/dist/json/web-types.json +5554 -5554
  6. package/dist/vuetify-labs.cjs +30 -30
  7. package/dist/vuetify-labs.css +6330 -6336
  8. package/dist/vuetify-labs.d.ts +47 -47
  9. package/dist/vuetify-labs.esm.js +30 -30
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +30 -30
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +30 -30
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3867 -3873
  16. package/dist/vuetify.d.ts +47 -47
  17. package/dist/vuetify.esm.js +30 -30
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +30 -30
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +33 -33
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VCarousel/VCarousel.css +0 -1
  25. package/lib/components/VCarousel/VCarousel.js +1 -0
  26. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  27. package/lib/components/VCarousel/VCarousel.sass +0 -1
  28. package/lib/components/VDatePicker/VDatePickerMonth.css +3 -8
  29. package/lib/components/VDatePicker/VDatePickerMonth.js +8 -3
  30. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  31. package/lib/components/VDatePicker/VDatePickerMonth.sass +3 -8
  32. package/lib/components/VField/VField.js +2 -10
  33. package/lib/components/VField/VField.js.map +1 -1
  34. package/lib/components/VList/VList.js +1 -1
  35. package/lib/components/VList/VList.js.map +1 -1
  36. package/lib/components/VNumberInput/VNumberInput.js +4 -10
  37. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  38. package/lib/components/VNumberInput/hold.js +4 -0
  39. package/lib/components/VNumberInput/hold.js.map +1 -1
  40. package/lib/composables/calendar.d.ts +1 -0
  41. package/lib/composables/calendar.js +7 -3
  42. package/lib/composables/calendar.js.map +1 -1
  43. package/lib/entry-bundler.js +1 -1
  44. package/lib/framework.d.ts +47 -47
  45. package/lib/framework.js +1 -1
  46. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VNumberInput.js","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useHold","useForm","forwardRefs","useProxiedModel","computed","nextTick","onMounted","ref","shallowRef","toRef","watch","watchEffect","clamp","extractNumber","genericComponent","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","precision","VNumberInput","name","props","emits","val","setup","_ref","slots","vTextFieldRef","holdStart","holdStop","toggleUpDown","form","controlsDisabled","isDisabled","value","isReadonly","isFocused","focused","correctPrecision","arguments","length","undefined","fixed","toFixed","toString","model","_inputText","isNaN","inputText","get","set","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","onClick","onControlClick","onPointerup","onControlMouseup","onPointerdown","onUpControlMousedown","onPointercancel","onControlPointerCancel","decrementSlotProps","onDownControlMousedown","formatInputValue","clampModel","inferPrecision","str","idx","indexOf","increment","inferredPrecision","Math","onBeforeinput","e","data","inputElement","target","existingTxt","selectionStart","selectionEnd","potentialNewInputVal","slice","potentialNewNumber","test","preventDefault","split","includes","onKeydown","key","ctrlKey","stopPropagation","el","currentTarget","releasePointerCapture","pointerId","setPointerCapture","actualText","trimDecimalZeros","onFocus","onBlur","_","textFieldProps","filterProps","incrementControlNode","_createVNode","disabled","flat","height","size","icon","decrementControlNode","decrement","controlNode","_createElementVNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/components/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useHold } from './hold'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, toRef, watch, watchEffect } from 'vue'\nimport { clamp, extractNumber, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n props: Record<string, unknown>\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split' | 'hidden'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n modelValue: {\n type: Number as PropType<number | null>,\n default: null,\n },\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n step: {\n type: Number,\n default: 1,\n },\n precision: {\n type: Number as PropType<number | null>,\n default: 0,\n },\n\n ...omit(makeVTextFieldProps(), ['modelValue', 'validationValue']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { slots }) {\n const vTextFieldRef = ref<VTextField>()\n\n const { holdStart, holdStop } = useHold({ toggleUpDown })\n const form = useForm(props)\n const controlsDisabled = computed(() => (\n form.isDisabled.value || form.isReadonly.value\n ))\n\n const isFocused = shallowRef(props.focused)\n\n function correctPrecision (val: number, precision = props.precision) {\n const fixed = precision == null\n ? String(val)\n : val.toFixed(precision)\n return isFocused.value\n ? Number(fixed).toString() // trim zeros\n : fixed\n }\n\n const model = useProxiedModel(props, 'modelValue', null,\n val => val ?? null,\n val => val == null\n ? val ?? null\n : clamp(Number(val), props.min, props.max)\n )\n\n const _inputText = shallowRef<string | null>(null)\n watchEffect(() => {\n if (isFocused.value && !controlsDisabled.value) {\n // ignore external changes\n } else if (model.value == null) {\n _inputText.value = null\n } else if (!isNaN(model.value)) {\n _inputText.value = correctPrecision(model.value)\n }\n })\n const inputText = computed<string | null>({\n get: () => _inputText.value,\n set (val) {\n if (val === null || val === '') {\n model.value = null\n _inputText.value = null\n } else if (!isNaN(Number(val)) && Number(val) <= props.max && Number(val) >= props.min) {\n model.value = Number(val)\n _inputText.value = val\n }\n },\n })\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number - props.step >= props.min\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = toRef(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = toRef(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = toRef(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = {\n props: {\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onUpControlMousedown,\n onPointercancel: onControlPointerCancel,\n },\n }\n const decrementSlotProps = {\n props: {\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onDownControlMousedown,\n onPointercancel: onControlPointerCancel,\n },\n }\n\n watch(() => props.precision, () => formatInputValue())\n\n onMounted(() => {\n clampModel()\n })\n\n function inferPrecision (value: number | null) {\n if (value == null) return 0\n const str = value.toString()\n const idx = str.indexOf('.')\n return ~idx ? str.length - idx : 0\n }\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n inputText.value = correctPrecision(clamp(0, props.min, props.max))\n return\n }\n\n let inferredPrecision = Math.max(inferPrecision(model.value), inferPrecision(props.step))\n if (props.precision != null) inferredPrecision = Math.max(inferredPrecision, props.precision)\n if (increment) {\n if (canIncrease.value) inputText.value = correctPrecision(model.value + props.step, inferredPrecision)\n } else {\n if (canDecrease.value) inputText.value = correctPrecision(model.value - props.step, inferredPrecision)\n }\n }\n\n function onBeforeinput (e: InputEvent) {\n if (!e.data) return\n const inputElement = e.target as HTMLInputElement\n const { value: existingTxt, selectionStart, selectionEnd } = inputElement ?? {}\n\n const potentialNewInputVal =\n existingTxt\n ? existingTxt.slice(0, selectionStart as number | undefined) + e.data + existingTxt.slice(selectionEnd as number | undefined)\n : e.data\n\n const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision)\n\n // Only numbers, \"-\", \".\" are allowed\n // AND \"-\", \".\" are allowed only once\n // AND \"-\" is only allowed at the start\n if (!/^-?(\\d+(\\.\\d*)?|(\\.\\d+)|\\d*|\\.)$/.test(potentialNewInputVal)) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n }\n\n if (props.precision == null) return\n\n // Ignore decimal digits above precision limit\n if (potentialNewInputVal.split('.')[1]?.length > props.precision) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n }\n // Ignore decimal separator when precision = 0\n if (props.precision === 0 && potentialNewInputVal.includes('.')) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n }\n }\n\n async function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n clampModel()\n // _model is controlled, so need to wait until props['modelValue'] is updated\n await nextTick()\n if (e.key === 'ArrowDown') {\n toggleUpDown(false)\n } else {\n toggleUpDown()\n }\n }\n }\n\n function onControlClick (e: MouseEvent) {\n e.stopPropagation()\n }\n\n function onControlMouseup (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStop()\n }\n\n function onUpControlMousedown (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStart('up')\n }\n\n function onDownControlMousedown (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStart('down')\n }\n\n function onControlPointerCancel (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n holdStop()\n }\n\n function clampModel () {\n if (controlsDisabled.value) return\n if (!vTextFieldRef.value) return\n const actualText = vTextFieldRef.value.value\n if (actualText && !isNaN(Number(actualText))) {\n inputText.value = correctPrecision(clamp(Number(actualText), props.min, props.max))\n } else {\n inputText.value = null\n }\n }\n\n function formatInputValue () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = props.precision == null\n ? String(model.value)\n : model.value.toFixed(props.precision)\n }\n\n function trimDecimalZeros () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = model.value.toString()\n }\n\n function onFocus () {\n trimDecimalZeros()\n }\n\n function onBlur () {\n clampModel()\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n aria-hidden=\"true\"\n data-testid=\"increment\"\n disabled={ !canIncrease.value }\n flat\n height={ controlNodeDefaultHeight.value }\n icon={ incrementIcon.value }\n key=\"increment-btn\"\n onClick={ onControlClick }\n onPointerdown={ onUpControlMousedown }\n onPointerup={ onControlMouseup }\n onPointercancel={ onControlPointerCancel }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n aria-hidden=\"true\"\n data-testid=\"decrement\"\n disabled={ !canDecrease.value }\n flat\n height={ controlNodeDefaultHeight.value }\n icon={ decrementIcon.value }\n key=\"decrement-btn\"\n onClick={ onControlClick }\n onPointerdown={ onDownControlMousedown }\n onPointerup={ onControlMouseup }\n onPointercancel={ onControlPointerCancel }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n { incrementControlNode() }\n </div>\n ) : (props.reverse || controlVariant.value === 'hidden'\n ? undefined\n : <>{ dividerNode() }{ controlNode() }</>)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider vertical />\n </div>\n ) : (props.reverse && controlVariant.value !== 'hidden'\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n v-model={ inputText.value }\n v-model:focused={ isFocused.value }\n validationValue={ model.value }\n onBeforeinput={ onBeforeinput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VNumberInput.js","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useHold","useForm","forwardRefs","useProxiedModel","computed","nextTick","onMounted","ref","shallowRef","toRef","watch","watchEffect","clamp","extractNumber","genericComponent","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","precision","VNumberInput","name","props","emits","val","setup","_ref","slots","vTextFieldRef","holdStart","holdStop","toggleUpDown","form","controlsDisabled","isDisabled","value","isReadonly","isFocused","focused","correctPrecision","arguments","length","undefined","fixed","toFixed","toString","model","_inputText","isNaN","inputText","get","set","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","onClick","onControlClick","onPointerup","onControlMouseup","onPointerdown","onUpControlMousedown","onPointercancel","decrementSlotProps","onDownControlMousedown","formatInputValue","clampModel","inferPrecision","str","idx","indexOf","increment","inferredPrecision","Math","onBeforeinput","e","data","inputElement","target","existingTxt","selectionStart","selectionEnd","potentialNewInputVal","slice","potentialNewNumber","test","preventDefault","split","includes","onKeydown","key","ctrlKey","stopPropagation","el","currentTarget","releasePointerCapture","pointerId","setPointerCapture","actualText","trimDecimalZeros","onFocus","onBlur","_","textFieldProps","filterProps","incrementControlNode","_createVNode","disabled","flat","height","size","icon","decrementControlNode","decrement","controlNode","_createElementVNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/components/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useHold } from './hold'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, toRef, watch, watchEffect } from 'vue'\nimport { clamp, extractNumber, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n props: Record<string, unknown>\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split' | 'hidden'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n modelValue: {\n type: Number as PropType<number | null>,\n default: null,\n },\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n step: {\n type: Number,\n default: 1,\n },\n precision: {\n type: Number as PropType<number | null>,\n default: 0,\n },\n\n ...omit(makeVTextFieldProps(), ['modelValue', 'validationValue']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { slots }) {\n const vTextFieldRef = ref<VTextField>()\n\n const { holdStart, holdStop } = useHold({ toggleUpDown })\n const form = useForm(props)\n const controlsDisabled = computed(() => (\n form.isDisabled.value || form.isReadonly.value\n ))\n\n const isFocused = shallowRef(props.focused)\n\n function correctPrecision (val: number, precision = props.precision) {\n const fixed = precision == null\n ? String(val)\n : val.toFixed(precision)\n return isFocused.value\n ? Number(fixed).toString() // trim zeros\n : fixed\n }\n\n const model = useProxiedModel(props, 'modelValue', null,\n val => val ?? null,\n val => val == null\n ? val ?? null\n : clamp(Number(val), props.min, props.max)\n )\n\n const _inputText = shallowRef<string | null>(null)\n watchEffect(() => {\n if (isFocused.value && !controlsDisabled.value) {\n // ignore external changes\n } else if (model.value == null) {\n _inputText.value = null\n } else if (!isNaN(model.value)) {\n _inputText.value = correctPrecision(model.value)\n }\n })\n const inputText = computed<string | null>({\n get: () => _inputText.value,\n set (val) {\n if (val === null || val === '') {\n model.value = null\n _inputText.value = null\n } else if (!isNaN(Number(val)) && Number(val) <= props.max && Number(val) >= props.min) {\n model.value = Number(val)\n _inputText.value = val\n }\n },\n })\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number - props.step >= props.min\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = toRef(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = toRef(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = toRef(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = {\n props: {\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onUpControlMousedown,\n onPointercancel: onControlMouseup,\n },\n }\n const decrementSlotProps = {\n props: {\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onDownControlMousedown,\n onPointercancel: onControlMouseup,\n },\n }\n\n watch(() => props.precision, () => formatInputValue())\n\n onMounted(() => {\n clampModel()\n })\n\n function inferPrecision (value: number | null) {\n if (value == null) return 0\n const str = value.toString()\n const idx = str.indexOf('.')\n return ~idx ? str.length - idx : 0\n }\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n inputText.value = correctPrecision(clamp(0, props.min, props.max))\n return\n }\n\n let inferredPrecision = Math.max(inferPrecision(model.value), inferPrecision(props.step))\n if (props.precision != null) inferredPrecision = Math.max(inferredPrecision, props.precision)\n if (increment) {\n if (canIncrease.value) inputText.value = correctPrecision(model.value + props.step, inferredPrecision)\n } else {\n if (canDecrease.value) inputText.value = correctPrecision(model.value - props.step, inferredPrecision)\n }\n }\n\n function onBeforeinput (e: InputEvent) {\n if (!e.data) return\n const inputElement = e.target as HTMLInputElement\n const { value: existingTxt, selectionStart, selectionEnd } = inputElement ?? {}\n\n const potentialNewInputVal =\n existingTxt\n ? existingTxt.slice(0, selectionStart as number | undefined) + e.data + existingTxt.slice(selectionEnd as number | undefined)\n : e.data\n\n const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision)\n\n // Only numbers, \"-\", \".\" are allowed\n // AND \"-\", \".\" are allowed only once\n // AND \"-\" is only allowed at the start\n if (!/^-?(\\d+(\\.\\d*)?|(\\.\\d+)|\\d*|\\.)$/.test(potentialNewInputVal)) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n }\n\n if (props.precision == null) return\n\n // Ignore decimal digits above precision limit\n if (potentialNewInputVal.split('.')[1]?.length > props.precision) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n }\n // Ignore decimal separator when precision = 0\n if (props.precision === 0 && potentialNewInputVal.includes('.')) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n }\n }\n\n async function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n clampModel()\n // _model is controlled, so need to wait until props['modelValue'] is updated\n await nextTick()\n if (e.key === 'ArrowDown') {\n toggleUpDown(false)\n } else {\n toggleUpDown()\n }\n }\n }\n\n function onControlClick (e: MouseEvent) {\n e.stopPropagation()\n }\n\n function onControlMouseup (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n e.preventDefault()\n holdStop()\n }\n\n function onUpControlMousedown (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStart('up')\n }\n\n function onDownControlMousedown (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStart('down')\n }\n\n function clampModel () {\n if (controlsDisabled.value) return\n if (!vTextFieldRef.value) return\n const actualText = vTextFieldRef.value.value\n if (actualText && !isNaN(Number(actualText))) {\n inputText.value = correctPrecision(clamp(Number(actualText), props.min, props.max))\n } else {\n inputText.value = null\n }\n }\n\n function formatInputValue () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = props.precision == null\n ? String(model.value)\n : model.value.toFixed(props.precision)\n }\n\n function trimDecimalZeros () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = model.value.toString()\n }\n\n function onFocus () {\n trimDecimalZeros()\n }\n\n function onBlur () {\n clampModel()\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n aria-hidden=\"true\"\n data-testid=\"increment\"\n disabled={ !canIncrease.value }\n flat\n height={ controlNodeDefaultHeight.value }\n icon={ incrementIcon.value }\n key=\"increment-btn\"\n onClick={ onControlClick }\n onPointerdown={ onUpControlMousedown }\n onPointerup={ onControlMouseup }\n onPointercancel={ onControlMouseup }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n aria-hidden=\"true\"\n data-testid=\"decrement\"\n disabled={ !canDecrease.value }\n flat\n height={ controlNodeDefaultHeight.value }\n icon={ decrementIcon.value }\n key=\"decrement-btn\"\n onClick={ onControlClick }\n onPointerdown={ onDownControlMousedown }\n onPointerup={ onControlMouseup }\n onPointercancel={ onControlMouseup }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n { incrementControlNode() }\n </div>\n ) : (props.reverse || controlVariant.value === 'hidden'\n ? undefined\n : <>{ dividerNode() }{ controlNode() }</>)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider vertical />\n </div>\n ) : (props.reverse && controlVariant.value !== 'hidden'\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n v-model={ inputText.value }\n v-model:focused={ isFocused.value }\n validationValue={ model.value }\n onBeforeinput={ onBeforeinput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,8 @@ export function useHold(_ref) {
12
12
  function holdStart(value) {
13
13
  holdStop();
14
14
  tick(value);
15
+ window.addEventListener('pointerup', holdStop);
16
+ document.addEventListener('blur', holdStop);
15
17
  timeout = window.setTimeout(() => {
16
18
  interval = window.setInterval(() => tick(value), HOLD_REPEAT);
17
19
  }, HOLD_DELAY);
@@ -19,6 +21,8 @@ export function useHold(_ref) {
19
21
  function holdStop() {
20
22
  window.clearTimeout(timeout);
21
23
  window.clearInterval(interval);
24
+ window.removeEventListener('pointerup', holdStop);
25
+ document.removeEventListener('blur', holdStop);
22
26
  }
23
27
  function tick(value) {
24
28
  toggleUpDown(value === 'up');
@@ -1 +1 @@
1
- {"version":3,"file":"hold.js","names":["onScopeDispose","HOLD_REPEAT","HOLD_DELAY","useHold","_ref","toggleUpDown","timeout","interval","holdStop","holdStart","value","tick","window","setTimeout","setInterval","clearTimeout","clearInterval"],"sources":["../../../src/components/VNumberInput/hold.ts"],"sourcesContent":["// Utilities\nimport { onScopeDispose } from 'vue'\n\nconst HOLD_REPEAT = 50\nconst HOLD_DELAY = 500\n\nexport function useHold ({ toggleUpDown }: { toggleUpDown: (increment: boolean) => void }) {\n let timeout = -1\n let interval = -1\n\n onScopeDispose(holdStop)\n\n function holdStart (value: 'up' | 'down') {\n holdStop()\n tick(value)\n timeout = window.setTimeout(() => {\n interval = window.setInterval(() => tick(value), HOLD_REPEAT)\n }, HOLD_DELAY)\n }\n\n function holdStop () {\n window.clearTimeout(timeout)\n window.clearInterval(interval)\n }\n\n function tick (value: 'up' | 'down') {\n toggleUpDown(value === 'up')\n }\n\n return { holdStart, holdStop }\n}\n"],"mappings":"AAAA;AACA,SAASA,cAAc,QAAQ,KAAK;AAEpC,MAAMC,WAAW,GAAG,EAAE;AACtB,MAAMC,UAAU,GAAG,GAAG;AAEtB,OAAO,SAASC,OAAOA,CAAAC,IAAA,EAAoE;EAAA,IAAlE;IAAEC;EAA6D,CAAC,GAAAD,IAAA;EACvF,IAAIE,OAAO,GAAG,CAAC,CAAC;EAChB,IAAIC,QAAQ,GAAG,CAAC,CAAC;EAEjBP,cAAc,CAACQ,QAAQ,CAAC;EAExB,SAASC,SAASA,CAAEC,KAAoB,EAAE;IACxCF,QAAQ,CAAC,CAAC;IACVG,IAAI,CAACD,KAAK,CAAC;IACXJ,OAAO,GAAGM,MAAM,CAACC,UAAU,CAAC,MAAM;MAChCN,QAAQ,GAAGK,MAAM,CAACE,WAAW,CAAC,MAAMH,IAAI,CAACD,KAAK,CAAC,EAAET,WAAW,CAAC;IAC/D,CAAC,EAAEC,UAAU,CAAC;EAChB;EAEA,SAASM,QAAQA,CAAA,EAAI;IACnBI,MAAM,CAACG,YAAY,CAACT,OAAO,CAAC;IAC5BM,MAAM,CAACI,aAAa,CAACT,QAAQ,CAAC;EAChC;EAEA,SAASI,IAAIA,CAAED,KAAoB,EAAE;IACnCL,YAAY,CAACK,KAAK,KAAK,IAAI,CAAC;EAC9B;EAEA,OAAO;IAAED,SAAS;IAAED;EAAS,CAAC;AAChC","ignoreList":[]}
1
+ {"version":3,"file":"hold.js","names":["onScopeDispose","HOLD_REPEAT","HOLD_DELAY","useHold","_ref","toggleUpDown","timeout","interval","holdStop","holdStart","value","tick","window","addEventListener","document","setTimeout","setInterval","clearTimeout","clearInterval","removeEventListener"],"sources":["../../../src/components/VNumberInput/hold.ts"],"sourcesContent":["// Utilities\nimport { onScopeDispose } from 'vue'\n\nconst HOLD_REPEAT = 50\nconst HOLD_DELAY = 500\n\nexport function useHold ({ toggleUpDown }: { toggleUpDown: (increment: boolean) => void }) {\n let timeout = -1\n let interval = -1\n\n onScopeDispose(holdStop)\n\n function holdStart (value: 'up' | 'down') {\n holdStop()\n tick(value)\n window.addEventListener('pointerup', holdStop)\n document.addEventListener('blur', holdStop)\n timeout = window.setTimeout(() => {\n interval = window.setInterval(() => tick(value), HOLD_REPEAT)\n }, HOLD_DELAY)\n }\n\n function holdStop () {\n window.clearTimeout(timeout)\n window.clearInterval(interval)\n window.removeEventListener('pointerup', holdStop)\n document.removeEventListener('blur', holdStop)\n }\n\n function tick (value: 'up' | 'down') {\n toggleUpDown(value === 'up')\n }\n\n return { holdStart, holdStop }\n}\n"],"mappings":"AAAA;AACA,SAASA,cAAc,QAAQ,KAAK;AAEpC,MAAMC,WAAW,GAAG,EAAE;AACtB,MAAMC,UAAU,GAAG,GAAG;AAEtB,OAAO,SAASC,OAAOA,CAAAC,IAAA,EAAoE;EAAA,IAAlE;IAAEC;EAA6D,CAAC,GAAAD,IAAA;EACvF,IAAIE,OAAO,GAAG,CAAC,CAAC;EAChB,IAAIC,QAAQ,GAAG,CAAC,CAAC;EAEjBP,cAAc,CAACQ,QAAQ,CAAC;EAExB,SAASC,SAASA,CAAEC,KAAoB,EAAE;IACxCF,QAAQ,CAAC,CAAC;IACVG,IAAI,CAACD,KAAK,CAAC;IACXE,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEL,QAAQ,CAAC;IAC9CM,QAAQ,CAACD,gBAAgB,CAAC,MAAM,EAAEL,QAAQ,CAAC;IAC3CF,OAAO,GAAGM,MAAM,CAACG,UAAU,CAAC,MAAM;MAChCR,QAAQ,GAAGK,MAAM,CAACI,WAAW,CAAC,MAAML,IAAI,CAACD,KAAK,CAAC,EAAET,WAAW,CAAC;IAC/D,CAAC,EAAEC,UAAU,CAAC;EAChB;EAEA,SAASM,QAAQA,CAAA,EAAI;IACnBI,MAAM,CAACK,YAAY,CAACX,OAAO,CAAC;IAC5BM,MAAM,CAACM,aAAa,CAACX,QAAQ,CAAC;IAC9BK,MAAM,CAACO,mBAAmB,CAAC,WAAW,EAAEX,QAAQ,CAAC;IACjDM,QAAQ,CAACK,mBAAmB,CAAC,MAAM,EAAEX,QAAQ,CAAC;EAChD;EAEA,SAASG,IAAIA,CAAED,KAAoB,EAAE;IACnCL,YAAY,CAACK,KAAK,KAAK,IAAI,CAAC;EAC9B;EAEA,OAAO;IAAED,SAAS;IAAED;EAAS,CAAC;AAChC","ignoreList":[]}
@@ -132,5 +132,6 @@ export declare function useCalendar(props: CalendarProps): {
132
132
  };
133
133
  weeksInMonth: import("vue").ComputedRef<unknown[][]>;
134
134
  weekDays: import("vue").ComputedRef<number[]>;
135
+ weekdayLabels: import("vue").ComputedRef<string[]>;
135
136
  weekNumbers: import("vue").ComputedRef<(number | null)[]>;
136
137
  };
@@ -52,8 +52,11 @@ export function useCalendar(props) {
52
52
  }, v => adapter.getMonth(v));
53
53
  const weekDays = computed(() => {
54
54
  const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
55
- // Always generate all days, regardless of props.weekdays
56
- return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
55
+ return props.weekdays.map(day => (day + firstDayOfWeek) % 7);
56
+ });
57
+ const weekdayLabels = computed(() => {
58
+ const labels = adapter.getWeekdays(props.firstDayOfWeek);
59
+ return weekDays.value.map(day => labels[day]);
57
60
  });
58
61
  const weeksInMonth = computed(() => {
59
62
  const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
@@ -134,7 +137,7 @@ export function useCalendar(props) {
134
137
  if (typeof props.allowedDates === 'function') {
135
138
  return !props.allowedDates(date);
136
139
  }
137
- return !props.weekdays.includes(adapter.toJsDate(date).getDay());
140
+ return false;
138
141
  }
139
142
  return {
140
143
  displayValue,
@@ -144,6 +147,7 @@ export function useCalendar(props) {
144
147
  model,
145
148
  weeksInMonth,
146
149
  weekDays,
150
+ weekdayLabels,
147
151
  weekNumbers
148
152
  };
149
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","names":["useDate","useProxiedModel","computed","propsFactory","wrapInArray","makeCalendarProps","allowedDates","Array","Function","disabled","type","Boolean","default","displayValue","modelValue","month","Number","String","max","min","showAdjacentMonths","year","weekdays","weeksInMonth","firstDayOfWeek","undefined","useCalendar","props","adapter","model","v","map","i","date","value","length","isArray","getYear","startOfYear","setYear","getMonth","startOfMonth","setMonth","weekDays","toJsDate","startOfWeek","getDay","day","weeks","getWeekArray","days","flat","daysInMonth","lastDay","week","push","addDays","genDays","today","filter","includes","index","isoDate","toISO","isAdjacent","isSameMonth","isStart","isSameDay","isEnd","endOfMonth","isSame","formatted","format","isDisabled","isHidden","isSelected","some","isToday","isWeekEnd","isWeekStart","localized","daysInWeek","weekNumbers","getWeek","isAfter","d"],"sources":["../../src/composables/calendar.ts"],"sourcesContent":["// Composables\nimport { useDate } from '@/composables/date/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport interface CalendarProps {\n allowedDates: unknown[] | ((date: unknown) => boolean) | undefined\n disabled: boolean\n displayValue?: unknown\n modelValue: unknown[] | undefined\n max: unknown\n min: unknown\n showAdjacentMonths: boolean\n month: number | string | undefined\n weekdays: number[]\n year: number | string | undefined\n weeksInMonth: 'dynamic' | 'static'\n firstDayOfWeek: number | string | undefined\n\n 'onUpdate:modelValue': ((value: unknown[]) => void) | undefined\n 'onUpdate:month': ((value: number) => void) | undefined\n 'onUpdate:year': ((value: number) => void) | undefined\n}\n\nexport type CalendarDay = {\n date: Date\n formatted: string\n isAdjacent: boolean\n isDisabled: boolean\n isEnd: boolean\n isHidden: boolean\n isSame: boolean\n isSelected: boolean\n isStart: boolean\n isToday: boolean\n isWeekEnd: boolean\n isWeekStart: boolean\n isoDate: string\n localized: string\n month: number\n year: number\n}\n\nexport type CalendarWeekdays = 0 | 1 | 2 | 3 | 4 | 5 | 6\n\n// Composables\nexport const makeCalendarProps = propsFactory({\n allowedDates: [Array, Function] as PropType<unknown[] | ((date: unknown) => boolean)>,\n disabled: {\n type: Boolean,\n default: null,\n },\n displayValue: null as any as PropType<unknown>,\n modelValue: Array as PropType<unknown[]>,\n month: [Number, String],\n max: null as any as PropType<unknown>,\n min: null as any as PropType<unknown>,\n showAdjacentMonths: Boolean,\n year: [Number, String],\n weekdays: {\n type: Array as PropType<CalendarWeekdays[]>,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n },\n weeksInMonth: {\n type: String as PropType<'dynamic' | 'static'>,\n default: 'dynamic',\n },\n firstDayOfWeek: {\n type: [Number, String],\n default: undefined,\n },\n}, 'calendar')\n\nexport function useCalendar (props: CalendarProps) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => wrapInArray(v).map(i => adapter.date(i)),\n )\n const displayValue = computed(() => {\n if (props.displayValue) return adapter.date(props.displayValue)\n if (model.value.length > 0) return adapter.date(model.value[0])\n if (props.min) return adapter.date(props.min)\n if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0])\n\n return adapter.date()\n })\n\n const year = useProxiedModel(\n props,\n 'year',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getYear(displayValue.value)\n\n return adapter.startOfYear(adapter.setYear(adapter.date(), value))\n },\n v => adapter.getYear(v)\n )\n\n const month = useProxiedModel(\n props,\n 'month',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getMonth(displayValue.value)\n const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value))\n\n return adapter.setMonth(date, value)\n },\n v => adapter.getMonth(v)\n )\n\n const weekDays = computed(() => {\n const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay()\n // Always generate all days, regardless of props.weekdays\n return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7)\n })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // if weeksInMonth is 'static'\n const daysInMonth = 6 * 7\n if (props.weeksInMonth === 'static' && days.length < daysInMonth) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n function genDays (days: Date[], today: Date): CalendarDay[] {\n return days.filter(date => {\n return weekDays.value.includes(adapter.toJsDate(date).getDay())\n }).map((date, index) => {\n const isoDate = adapter.toISO(date)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value))\n const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value))\n const isSame = adapter.isSameDay(date, month.value)\n\n return {\n date,\n formatted: adapter.format(date, 'keyboardDate'),\n isAdjacent,\n isDisabled: isDisabled(date),\n isEnd,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n isSame,\n isSelected: model.value.some(value => adapter.isSameDay(date, value)),\n isStart,\n isToday: adapter.isSameDay(date, today),\n isWeekEnd: index % 7 === 6,\n isWeekStart: index % 7 === 0,\n isoDate,\n localized: adapter.format(date, 'dayOfMonth'),\n month: adapter.getMonth(date),\n year: adapter.getYear(date),\n }\n })\n }\n\n const daysInWeek = computed(() => {\n const lastDay = adapter.startOfWeek(displayValue.value, props.firstDayOfWeek)\n const week: Date[] = []\n for (let day = 0; day <= 6; day++) {\n week.push(adapter.addDays(lastDay, day) as Date)\n }\n\n const today = adapter.date() as Date\n\n return genDays(week as Date[], today as Date)\n })\n\n const daysInMonth = computed(() => {\n const days = weeksInMonth.value.flat() as Date[]\n const today = adapter.date() as Date\n\n return genDays(days as Date[], today)\n })\n\n const weekNumbers = computed(() => {\n return weeksInMonth.value.map(week => {\n return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null\n })\n })\n\n function isDisabled (value: unknown) {\n if (props.disabled) return true\n\n const date = adapter.date(value)\n\n if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true\n if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date))\n }\n\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date)\n }\n\n return !props.weekdays.includes(adapter.toJsDate(date).getDay())\n }\n\n return {\n displayValue,\n daysInMonth,\n daysInWeek,\n genDays,\n model,\n weeksInMonth,\n weekDays,\n weekNumbers,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"calendar.js","names":["useDate","useProxiedModel","computed","propsFactory","wrapInArray","makeCalendarProps","allowedDates","Array","Function","disabled","type","Boolean","default","displayValue","modelValue","month","Number","String","max","min","showAdjacentMonths","year","weekdays","weeksInMonth","firstDayOfWeek","undefined","useCalendar","props","adapter","model","v","map","i","date","value","length","isArray","getYear","startOfYear","setYear","getMonth","startOfMonth","setMonth","weekDays","toJsDate","startOfWeek","getDay","day","weekdayLabels","labels","getWeekdays","weeks","getWeekArray","days","flat","daysInMonth","lastDay","week","push","addDays","genDays","today","filter","includes","index","isoDate","toISO","isAdjacent","isSameMonth","isStart","isSameDay","isEnd","endOfMonth","isSame","formatted","format","isDisabled","isHidden","isSelected","some","isToday","isWeekEnd","isWeekStart","localized","daysInWeek","weekNumbers","getWeek","isAfter","d"],"sources":["../../src/composables/calendar.ts"],"sourcesContent":["// Composables\nimport { useDate } from '@/composables/date/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport interface CalendarProps {\n allowedDates: unknown[] | ((date: unknown) => boolean) | undefined\n disabled: boolean\n displayValue?: unknown\n modelValue: unknown[] | undefined\n max: unknown\n min: unknown\n showAdjacentMonths: boolean\n month: number | string | undefined\n weekdays: number[]\n year: number | string | undefined\n weeksInMonth: 'dynamic' | 'static'\n firstDayOfWeek: number | string | undefined\n\n 'onUpdate:modelValue': ((value: unknown[]) => void) | undefined\n 'onUpdate:month': ((value: number) => void) | undefined\n 'onUpdate:year': ((value: number) => void) | undefined\n}\n\nexport type CalendarDay = {\n date: Date\n formatted: string\n isAdjacent: boolean\n isDisabled: boolean\n isEnd: boolean\n isHidden: boolean\n isSame: boolean\n isSelected: boolean\n isStart: boolean\n isToday: boolean\n isWeekEnd: boolean\n isWeekStart: boolean\n isoDate: string\n localized: string\n month: number\n year: number\n}\n\nexport type CalendarWeekdays = 0 | 1 | 2 | 3 | 4 | 5 | 6\n\n// Composables\nexport const makeCalendarProps = propsFactory({\n allowedDates: [Array, Function] as PropType<unknown[] | ((date: unknown) => boolean)>,\n disabled: {\n type: Boolean,\n default: null,\n },\n displayValue: null as any as PropType<unknown>,\n modelValue: Array as PropType<unknown[]>,\n month: [Number, String],\n max: null as any as PropType<unknown>,\n min: null as any as PropType<unknown>,\n showAdjacentMonths: Boolean,\n year: [Number, String],\n weekdays: {\n type: Array as PropType<CalendarWeekdays[]>,\n default: () => [0, 1, 2, 3, 4, 5, 6],\n },\n weeksInMonth: {\n type: String as PropType<'dynamic' | 'static'>,\n default: 'dynamic',\n },\n firstDayOfWeek: {\n type: [Number, String],\n default: undefined,\n },\n}, 'calendar')\n\nexport function useCalendar (props: CalendarProps) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => wrapInArray(v).map(i => adapter.date(i)),\n )\n const displayValue = computed(() => {\n if (props.displayValue) return adapter.date(props.displayValue)\n if (model.value.length > 0) return adapter.date(model.value[0])\n if (props.min) return adapter.date(props.min)\n if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0])\n\n return adapter.date()\n })\n\n const year = useProxiedModel(\n props,\n 'year',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getYear(displayValue.value)\n\n return adapter.startOfYear(adapter.setYear(adapter.date(), value))\n },\n v => adapter.getYear(v)\n )\n\n const month = useProxiedModel(\n props,\n 'month',\n undefined,\n v => {\n const value = v != null ? Number(v) : adapter.getMonth(displayValue.value)\n const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value))\n\n return adapter.setMonth(date, value)\n },\n v => adapter.getMonth(v)\n )\n\n const weekDays = computed(() => {\n const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay()\n return props.weekdays.map(day => (day + firstDayOfWeek) % 7)\n })\n\n const weekdayLabels = computed(() => {\n const labels = adapter.getWeekdays(props.firstDayOfWeek)\n\n return weekDays.value.map(day => labels[day])\n })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // if weeksInMonth is 'static'\n const daysInMonth = 6 * 7\n if (props.weeksInMonth === 'static' && days.length < daysInMonth) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n function genDays (days: Date[], today: Date): CalendarDay[] {\n return days.filter(date => {\n return weekDays.value.includes(adapter.toJsDate(date).getDay())\n }).map((date, index) => {\n const isoDate = adapter.toISO(date)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value))\n const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value))\n const isSame = adapter.isSameDay(date, month.value)\n\n return {\n date,\n formatted: adapter.format(date, 'keyboardDate'),\n isAdjacent,\n isDisabled: isDisabled(date),\n isEnd,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n isSame,\n isSelected: model.value.some(value => adapter.isSameDay(date, value)),\n isStart,\n isToday: adapter.isSameDay(date, today),\n isWeekEnd: index % 7 === 6,\n isWeekStart: index % 7 === 0,\n isoDate,\n localized: adapter.format(date, 'dayOfMonth'),\n month: adapter.getMonth(date),\n year: adapter.getYear(date),\n }\n })\n }\n\n const daysInWeek = computed(() => {\n const lastDay = adapter.startOfWeek(displayValue.value, props.firstDayOfWeek)\n const week: Date[] = []\n for (let day = 0; day <= 6; day++) {\n week.push(adapter.addDays(lastDay, day) as Date)\n }\n\n const today = adapter.date() as Date\n\n return genDays(week as Date[], today as Date)\n })\n\n const daysInMonth = computed(() => {\n const days = weeksInMonth.value.flat() as Date[]\n const today = adapter.date() as Date\n\n return genDays(days as Date[], today)\n })\n\n const weekNumbers = computed(() => {\n return weeksInMonth.value.map(week => {\n return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null\n })\n })\n\n function isDisabled (value: unknown) {\n if (props.disabled) return true\n\n const date = adapter.date(value)\n\n if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true\n if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date))\n }\n\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date)\n }\n\n return false\n }\n\n return {\n displayValue,\n daysInMonth,\n daysInWeek,\n genDays,\n model,\n weeksInMonth,\n weekDays,\n weekdayLabels,\n weekNumbers,\n }\n}\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.8.10-master.2025-06-19";
19
+ export const version = "3.8.11-master.2025-06-24";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -2545,24 +2545,22 @@ declare module 'vue' {
2545
2545
  $children?: VNodeChild
2546
2546
  }
2547
2547
  export interface GlobalComponents {
2548
- VAlert: typeof import('vuetify/components')['VAlert']
2549
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2550
2548
  VApp: typeof import('vuetify/components')['VApp']
2551
2549
  VAppBar: typeof import('vuetify/components')['VAppBar']
2552
2550
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2553
2551
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2554
2552
  VAvatar: typeof import('vuetify/components')['VAvatar']
2555
- VBadge: typeof import('vuetify/components')['VBadge']
2553
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2554
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2556
2555
  VBanner: typeof import('vuetify/components')['VBanner']
2557
2556
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2558
2557
  VBannerText: typeof import('vuetify/components')['VBannerText']
2559
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2560
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2558
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2559
+ VBadge: typeof import('vuetify/components')['VBadge']
2560
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2561
2561
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2562
2562
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2563
2563
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2564
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2565
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2566
2564
  VBtn: typeof import('vuetify/components')['VBtn']
2567
2565
  VCard: typeof import('vuetify/components')['VCard']
2568
2566
  VCardActions: typeof import('vuetify/components')['VCardActions']
@@ -2570,23 +2568,18 @@ declare module 'vue' {
2570
2568
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2571
2569
  VCardText: typeof import('vuetify/components')['VCardText']
2572
2570
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2573
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2574
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
2575
- VCarousel: typeof import('vuetify/components')['VCarousel']
2576
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2571
+ VAlert: typeof import('vuetify/components')['VAlert']
2572
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2577
2573
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
2578
2574
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2579
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
2580
2575
  VChip: typeof import('vuetify/components')['VChip']
2576
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2577
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
2581
2578
  VCode: typeof import('vuetify/components')['VCode']
2582
- VCombobox: typeof import('vuetify/components')['VCombobox']
2583
2579
  VCounter: typeof import('vuetify/components')['VCounter']
2584
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
2585
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2586
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2587
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2588
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2589
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2580
+ VCarousel: typeof import('vuetify/components')['VCarousel']
2581
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2582
+ VCombobox: typeof import('vuetify/components')['VCombobox']
2590
2583
  VDataTable: typeof import('vuetify/components')['VDataTable']
2591
2584
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
2592
2585
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -2594,30 +2587,37 @@ declare module 'vue' {
2594
2587
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2595
2588
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2596
2589
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2590
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
2591
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
2592
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2593
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2594
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2595
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2596
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2597
2597
  VDialog: typeof import('vuetify/components')['VDialog']
2598
+ VEmptyState: typeof import('vuetify/components')['VEmptyState']
2598
2599
  VDivider: typeof import('vuetify/components')['VDivider']
2600
+ VFooter: typeof import('vuetify/components')['VFooter']
2599
2601
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2600
2602
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2601
2603
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2602
2604
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2605
+ VFab: typeof import('vuetify/components')['VFab']
2603
2606
  VField: typeof import('vuetify/components')['VField']
2604
2607
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2605
- VFab: typeof import('vuetify/components')['VFab']
2606
- VFileInput: typeof import('vuetify/components')['VFileInput']
2607
- VEmptyState: typeof import('vuetify/components')['VEmptyState']
2608
- VFooter: typeof import('vuetify/components')['VFooter']
2609
- VImg: typeof import('vuetify/components')['VImg']
2610
2608
  VIcon: typeof import('vuetify/components')['VIcon']
2611
2609
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2612
2610
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2613
2611
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2614
2612
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2615
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2616
- VKbd: typeof import('vuetify/components')['VKbd']
2617
- VLabel: typeof import('vuetify/components')['VLabel']
2613
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2614
+ VImg: typeof import('vuetify/components')['VImg']
2618
2615
  VInput: typeof import('vuetify/components')['VInput']
2619
2616
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2620
2617
  VItem: typeof import('vuetify/components')['VItem']
2618
+ VKbd: typeof import('vuetify/components')['VKbd']
2619
+ VLabel: typeof import('vuetify/components')['VLabel']
2620
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2621
2621
  VList: typeof import('vuetify/components')['VList']
2622
2622
  VListGroup: typeof import('vuetify/components')['VListGroup']
2623
2623
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2627,26 +2627,25 @@ declare module 'vue' {
2627
2627
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2628
2628
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2629
2629
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2630
- VMain: typeof import('vuetify/components')['VMain']
2631
2630
  VMenu: typeof import('vuetify/components')['VMenu']
2631
+ VMain: typeof import('vuetify/components')['VMain']
2632
2632
  VMessages: typeof import('vuetify/components')['VMessages']
2633
2633
  VNumberInput: typeof import('vuetify/components')['VNumberInput']
2634
2634
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2635
2635
  VPagination: typeof import('vuetify/components')['VPagination']
2636
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2636
2637
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
2637
2638
  VOverlay: typeof import('vuetify/components')['VOverlay']
2638
2639
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2639
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2640
- VRating: typeof import('vuetify/components')['VRating']
2641
2640
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2642
2641
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2643
2642
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2644
- VSelect: typeof import('vuetify/components')['VSelect']
2643
+ VRating: typeof import('vuetify/components')['VRating']
2645
2644
  VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2646
- VSheet: typeof import('vuetify/components')['VSheet']
2647
2645
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2648
2646
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2649
- VSlider: typeof import('vuetify/components')['VSlider']
2647
+ VSelect: typeof import('vuetify/components')['VSelect']
2648
+ VSheet: typeof import('vuetify/components')['VSheet']
2650
2649
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
2651
2650
  VStepper: typeof import('vuetify/components')['VStepper']
2652
2651
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
@@ -2654,6 +2653,7 @@ declare module 'vue' {
2654
2653
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
2655
2654
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
2656
2655
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
2656
+ VSlider: typeof import('vuetify/components')['VSlider']
2657
2657
  VSwitch: typeof import('vuetify/components')['VSwitch']
2658
2658
  VTab: typeof import('vuetify/components')['VTab']
2659
2659
  VTabs: typeof import('vuetify/components')['VTabs']
@@ -2661,24 +2661,22 @@ declare module 'vue' {
2661
2661
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2662
2662
  VTable: typeof import('vuetify/components')['VTable']
2663
2663
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
2664
- VTextarea: typeof import('vuetify/components')['VTextarea']
2665
- VToolbar: typeof import('vuetify/components')['VToolbar']
2666
- VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2667
- VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2668
- VTextField: typeof import('vuetify/components')['VTextField']
2669
2664
  VTimeline: typeof import('vuetify/components')['VTimeline']
2670
2665
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2671
2666
  VTooltip: typeof import('vuetify/components')['VTooltip']
2667
+ VToolbar: typeof import('vuetify/components')['VToolbar']
2668
+ VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2669
+ VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2672
2670
  VWindow: typeof import('vuetify/components')['VWindow']
2673
2671
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2674
- VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2675
2672
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
2676
2673
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2677
- VForm: typeof import('vuetify/components')['VForm']
2674
+ VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2678
2675
  VContainer: typeof import('vuetify/components')['VContainer']
2679
2676
  VCol: typeof import('vuetify/components')['VCol']
2680
2677
  VRow: typeof import('vuetify/components')['VRow']
2681
2678
  VSpacer: typeof import('vuetify/components')['VSpacer']
2679
+ VForm: typeof import('vuetify/components')['VForm']
2682
2680
  VHover: typeof import('vuetify/components')['VHover']
2683
2681
  VLayout: typeof import('vuetify/components')['VLayout']
2684
2682
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
@@ -2695,6 +2693,8 @@ declare module 'vue' {
2695
2693
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
2696
2694
  VValidation: typeof import('vuetify/components')['VValidation']
2697
2695
  VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2696
+ VTextField: typeof import('vuetify/components')['VTextField']
2697
+ VTextarea: typeof import('vuetify/components')['VTextarea']
2698
2698
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
2699
2699
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
2700
2700
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -2711,27 +2711,27 @@ declare module 'vue' {
2711
2711
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
2712
2712
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2713
2713
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2714
- VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2715
- VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2714
+ VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2716
2715
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
2717
2716
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
2718
2717
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
2719
2718
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
2720
2719
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
2721
2720
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
2722
- VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2721
+ VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2722
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2723
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2724
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2723
2725
  VPicker: typeof import('vuetify/labs/components')['VPicker']
2724
2726
  VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2725
- VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2726
2727
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
2727
2728
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
2728
2729
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
2730
+ VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2731
+ VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2729
2732
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
2730
2733
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
2731
2734
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
2732
- VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2733
- VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2734
- VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2735
2735
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2736
2736
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
2737
2737
  }
package/lib/framework.js CHANGED
@@ -109,7 +109,7 @@ export function createVuetify() {
109
109
  };
110
110
  });
111
111
  }
112
- export const version = "3.8.10-master.2025-06-19";
112
+ export const version = "3.8.11-master.2025-06-24";
113
113
  createVuetify.version = version;
114
114
 
115
115
  // 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.8.10-master.2025-06-19",
4
+ "version": "3.8.11-master.2025-06-24",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"