@vuetify/nightly 3.8.7-master.2025-05-29 → 3.8.7-master.2025-05-31

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.
@@ -86,14 +86,7 @@ export const VDatePickerMonth = genericComponent()({
86
86
  } else {
87
87
  rangeStop.value = adapter.endOfDay(_value);
88
88
  }
89
- const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');
90
- const datesInRange = [rangeStart.value];
91
- for (let i = 1; i < diff; i++) {
92
- const nextDate = adapter.addDays(rangeStart.value, i);
93
- datesInRange.push(nextDate);
94
- }
95
- datesInRange.push(rangeStop.value);
96
- model.value = datesInRange;
89
+ model.value = adapter.createDateRange(rangeStart.value, rangeStop.value);
97
90
  } else {
98
91
  rangeStart.value = value;
99
92
  rangeStop.value = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePickerMonth.js","names":["VBtn","makeCalendarProps","useCalendar","useDate","MaybeTransition","computed","ref","shallowRef","toRef","watch","genericComponent","omit","propsFactory","useRender","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","transition","type","default","reverseTransition","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","daysInMonth","model","weekNumbers","adapter","rangeStart","rangeStop","isReverse","value","length","atMax","max","includes","Infinity","val","oldVal","isBefore","onRangeClick","_value","startOfDay","undefined","isSameDay","endOfDay","diff","getDiff","datesInRange","i","nextDate","addDays","push","onMultipleClick","index","findIndex","selection","splice","onClick","_createElementVNode","_createTextVNode","map","week","_createVNode","toString","getWeekdays","firstDayOfWeek","weekDay","item","slotProps","class","isSelected","isToday","disabled","isDisabled","icon","ripple","text","localized","variant","_normalizeClass","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","day"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType<boolean | 'range' | number | (string & {})>,\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition',\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition',\n },\n\n ...omit(makeCalendarProps(), ['displayValue']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent<VDatePickerMonthSlots>()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n const isReverse = shallowRef(false)\n\n const transition = toRef(() => {\n return !isReverse.value ? props.transition : props.reverseTransition\n })\n\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0]\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1]\n }\n }\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return\n\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date)\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (model.value.length === 0) {\n rangeStart.value = undefined\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0]\n rangeStop.value = undefined\n }\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value)\n rangeStart.value = _value\n } else {\n rangeStop.value = adapter.endOfDay(_value)\n }\n\n const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days')\n const datesInRange = [rangeStart.value]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i)\n datesInRange.push(nextDate)\n }\n\n datesInRange.push(rangeStop.value)\n\n model.value = datesInRange\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\n }\n\n useRender(() => (\n <div class=\"v-date-picker-month\">\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\">&nbsp;</div>\n )}\n { weekNumbers.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <MaybeTransition name={ transition.value }>\n <div\n ref={ daysRef }\n key={ daysInMonth.value[0].date?.toString() }\n class=\"v-date-picker-month__days\"\n >\n { !props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n class: 'v-date-picker-month__day-btn',\n color: item.isSelected || item.isToday ? props.color : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n },\n ]}\n data-v-date={ !item.isDisabled ? item.isoDate : undefined }\n >\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n slots.day?.(slotProps) ?? (<VBtn { ...slotProps.props } />)\n )}\n </div>\n )\n })}\n </div>\n </MaybeTransition>\n </div>\n ))\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDatePickerMonth.js","names":["VBtn","makeCalendarProps","useCalendar","useDate","MaybeTransition","computed","ref","shallowRef","toRef","watch","genericComponent","omit","propsFactory","useRender","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","transition","type","default","reverseTransition","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","daysInMonth","model","weekNumbers","adapter","rangeStart","rangeStop","isReverse","value","length","atMax","max","includes","Infinity","val","oldVal","isBefore","onRangeClick","_value","startOfDay","undefined","isSameDay","endOfDay","createDateRange","onMultipleClick","index","findIndex","selection","splice","onClick","_createElementVNode","_createTextVNode","map","week","_createVNode","toString","getWeekdays","firstDayOfWeek","weekDay","item","i","slotProps","class","isSelected","isToday","disabled","isDisabled","icon","ripple","text","localized","variant","_normalizeClass","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","day"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType<boolean | 'range' | number | (string & {})>,\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition',\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition',\n },\n\n ...omit(makeCalendarProps(), ['displayValue']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent<VDatePickerMonthSlots>()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n const isReverse = shallowRef(false)\n\n const transition = toRef(() => {\n return !isReverse.value ? props.transition : props.reverseTransition\n })\n\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0]\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1]\n }\n }\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return\n\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date)\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (model.value.length === 0) {\n rangeStart.value = undefined\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0]\n rangeStop.value = undefined\n }\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value)\n rangeStart.value = _value\n } else {\n rangeStop.value = adapter.endOfDay(_value)\n }\n\n model.value = adapter.createDateRange(rangeStart.value, rangeStop.value)\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\n }\n\n useRender(() => (\n <div class=\"v-date-picker-month\">\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\">&nbsp;</div>\n )}\n { weekNumbers.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <MaybeTransition name={ transition.value }>\n <div\n ref={ daysRef }\n key={ daysInMonth.value[0].date?.toString() }\n class=\"v-date-picker-month__days\"\n >\n { !props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n class: 'v-date-picker-month__day-btn',\n color: item.isSelected || item.isToday ? props.color : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n },\n ]}\n data-v-date={ !item.isDisabled ? item.isoDate : undefined }\n >\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n slots.day?.(slotProps) ?? (<VBtn { ...slotProps.props } />)\n )}\n </div>\n )\n })}\n </div>\n </MaybeTransition>\n </div>\n ))\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@ import type { DateAdapter } from './DateAdapter.js';
3
3
  import type { LocaleInstance } from "../locale.js";
4
4
  export interface DateInstance extends DateModule.InternalAdapter {
5
5
  locale?: any;
6
+ createDateRange: (start: unknown, stop?: unknown) => unknown[];
6
7
  }
7
8
  /** Supports module augmentation to specify date adapter types */
8
9
  export declare namespace DateModule {
@@ -26,6 +27,7 @@ export declare function createDate(options: DateOptions | undefined, locale: Loc
26
27
  options: InternalDateOptions;
27
28
  instance: {
28
29
  locale?: any;
30
+ createDateRange: (start: unknown, stop?: unknown) => unknown[];
29
31
  date: (value?: any) => unknown;
30
32
  format: (date: unknown, formatString: string) => string;
31
33
  toJsDate: (value: unknown) => Date;
@@ -69,6 +71,8 @@ export declare function createDate(options: DateOptions | undefined, locale: Loc
69
71
  setHours: (date: unknown, hours: number) => unknown;
70
72
  getMinutes: (date: unknown) => number;
71
73
  setMinutes: (date: unknown, minutes: number) => unknown;
74
+ } & {
75
+ createDateRange(start: unknown, stop?: unknown): unknown[];
72
76
  };
73
77
  };
74
78
  export declare function useDate(): DateInstance;
@@ -70,7 +70,20 @@ function createInstance(options, locale) {
70
70
  watch(locale.current, value => {
71
71
  instance.locale = options.locale[value] ?? value ?? instance.locale;
72
72
  });
73
- return instance;
73
+ return Object.assign(instance, {
74
+ createDateRange(start, stop) {
75
+ const diff = instance.getDiff(stop ?? start, start, 'days');
76
+ const datesInRange = [start];
77
+ for (let i = 1; i < diff; i++) {
78
+ const nextDate = instance.addDays(start, i);
79
+ datesInRange.push(nextDate);
80
+ }
81
+ if (stop) {
82
+ datesInRange.push(instance.endOfDay(stop));
83
+ }
84
+ return datesInRange;
85
+ }
86
+ });
74
87
  }
75
88
  export function useDate() {
76
89
  const options = inject(DateOptionsSymbol);
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","names":["useLocale","inject","reactive","watch","mergeDeep","VuetifyDateAdapter","DateModule","DateOptionsSymbol","Symbol","for","DateAdapterSymbol","createDate","options","locale","_options","adapter","af","bg","ca","ckb","cs","de","el","en","et","fa","fi","hr","hu","he","id","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","instance","createInstance","current","value","formats","useDate","Error"],"sources":["../../../src/composables/date/date.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, reactive, watch } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { DateAdapter } from './DateAdapter'\nimport type { LocaleInstance } from '@/composables/locale'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\nexport interface DateInstance extends DateModule.InternalAdapter {\n locale?: any\n}\n\n/** Supports module augmentation to specify date adapter types */\nexport namespace DateModule {\n interface Adapter {}\n\n export type InternalAdapter = {} extends Adapter ? DateAdapter : Adapter\n}\n\nexport type InternalDateOptions = {\n adapter: (new (options: { locale: any, formats?: any }) => DateInstance) | DateInstance\n formats?: Record<string, any>\n locale: Record<string, any>\n}\n\nexport type DateOptions = Partial<InternalDateOptions>\n\nexport const DateOptionsSymbol: InjectionKey<InternalDateOptions> = Symbol.for('vuetify:date-options')\nexport const DateAdapterSymbol: InjectionKey<DateInstance> = Symbol.for('vuetify:date-adapter')\n\nexport function createDate (options: DateOptions | undefined, locale: LocaleInstance) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW',\n },\n }, options) as InternalDateOptions\n\n return {\n options: _options,\n instance: createInstance(_options, locale),\n }\n}\n\nfunction createInstance (options: InternalDateOptions, locale: LocaleInstance) {\n const instance = reactive(\n typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats,\n })\n : options.adapter\n )\n\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale\n })\n\n return instance\n}\n\nexport function useDate (): DateInstance {\n const options = inject(DateOptionsSymbol)\n\n if (!options) throw new Error('[Vuetify] Could not find injected date options')\n\n const locale = useLocale()\n\n return createInstance(options, locale)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"date.js","names":["useLocale","inject","reactive","watch","mergeDeep","VuetifyDateAdapter","DateModule","DateOptionsSymbol","Symbol","for","DateAdapterSymbol","createDate","options","locale","_options","adapter","af","bg","ca","ckb","cs","de","el","en","et","fa","fi","hr","hu","he","id","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","instance","createInstance","current","value","formats","Object","assign","createDateRange","start","stop","diff","getDiff","datesInRange","i","nextDate","addDays","push","endOfDay","useDate","Error"],"sources":["../../../src/composables/date/date.ts"],"sourcesContent":["// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, reactive, watch } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { DateAdapter } from './DateAdapter'\nimport type { LocaleInstance } from '@/composables/locale'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\nexport interface DateInstance extends DateModule.InternalAdapter {\n locale?: any\n createDateRange: (start: unknown, stop?: unknown) => unknown[]\n}\n\n/** Supports module augmentation to specify date adapter types */\nexport namespace DateModule {\n interface Adapter {}\n\n export type InternalAdapter = {} extends Adapter ? DateAdapter : Adapter\n}\n\nexport type InternalDateOptions = {\n adapter: (new (options: { locale: any, formats?: any }) => DateInstance) | DateInstance\n formats?: Record<string, any>\n locale: Record<string, any>\n}\n\nexport type DateOptions = Partial<InternalDateOptions>\n\nexport const DateOptionsSymbol: InjectionKey<InternalDateOptions> = Symbol.for('vuetify:date-options')\nexport const DateAdapterSymbol: InjectionKey<DateInstance> = Symbol.for('vuetify:date-adapter')\n\nexport function createDate (options: DateOptions | undefined, locale: LocaleInstance) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW',\n },\n }, options) as InternalDateOptions\n\n return {\n options: _options,\n instance: createInstance(_options, locale),\n }\n}\n\nfunction createInstance (options: InternalDateOptions, locale: LocaleInstance) {\n const instance = reactive(\n typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats,\n })\n : options.adapter\n )\n\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale\n })\n\n return Object.assign(instance, {\n createDateRange (start: unknown, stop?: unknown) {\n const diff = instance.getDiff(stop ?? start, start, 'days')\n const datesInRange = [start]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = instance.addDays(start, i)\n datesInRange.push(nextDate)\n }\n\n if (stop) {\n datesInRange.push(instance.endOfDay(stop))\n }\n\n return datesInRange\n },\n })\n}\n\nexport function useDate (): DateInstance {\n const options = inject(DateOptionsSymbol)\n\n if (!options) throw new Error('[Vuetify] Could not find injected date options')\n\n const locale = useLocale()\n\n return createInstance(options, locale)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -28,6 +28,7 @@ export declare const createVuetify: {
28
28
  options: import("./composables/date/date.js").InternalDateOptions;
29
29
  instance: {
30
30
  locale?: any;
31
+ createDateRange: (start: unknown, stop?: unknown) => unknown[];
31
32
  date: (value?: any) => unknown;
32
33
  format: (date: unknown, formatString: string) => string;
33
34
  toJsDate: (value: unknown) => Date;
@@ -71,6 +72,8 @@ export declare const createVuetify: {
71
72
  setHours: (date: unknown, hours: number) => unknown;
72
73
  getMinutes: (date: unknown) => number;
73
74
  setMinutes: (date: unknown, minutes: number) => unknown;
75
+ } & {
76
+ createDateRange(start: unknown, stop?: unknown): unknown[];
74
77
  };
75
78
  };
76
79
  goTo: import("./types.js").GoToInstance;
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.8.7-master.2025-05-29";
19
+ export const version = "3.8.7-master.2025-05-31";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -100,6 +100,7 @@ interface DateAdapter<T = unknown> {
100
100
 
101
101
  interface DateInstance extends DateModule.InternalAdapter {
102
102
  locale?: any;
103
+ createDateRange: (start: unknown, stop?: unknown) => unknown[];
103
104
  }
104
105
  /** Supports module augmentation to specify date adapter types */
105
106
  declare namespace DateModule {
@@ -2449,6 +2450,7 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
2449
2450
  options: InternalDateOptions;
2450
2451
  instance: {
2451
2452
  locale?: any;
2453
+ createDateRange: (start: unknown, stop?: unknown) => unknown[];
2452
2454
  date: (value?: any) => unknown;
2453
2455
  format: (date: unknown, formatString: string) => string;
2454
2456
  toJsDate: (value: unknown) => Date;
@@ -2492,6 +2494,8 @@ declare function createVuetify(vuetify?: VuetifyOptions): {
2492
2494
  setHours: (date: unknown, hours: number) => unknown;
2493
2495
  getMinutes: (date: unknown) => number;
2494
2496
  setMinutes: (date: unknown, minutes: number) => unknown;
2497
+ } & {
2498
+ createDateRange(start: unknown, stop?: unknown): unknown[];
2495
2499
  };
2496
2500
  };
2497
2501
  goTo: GoToInstance;
@@ -2539,37 +2543,44 @@ declare module 'vue' {
2539
2543
  $children?: VNodeChild
2540
2544
  }
2541
2545
  export interface GlobalComponents {
2546
+ VApp: typeof import('vuetify/components')['VApp']
2542
2547
  VAlert: typeof import('vuetify/components')['VAlert']
2543
2548
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2544
- VApp: typeof import('vuetify/components')['VApp']
2545
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2546
2549
  VAvatar: typeof import('vuetify/components')['VAvatar']
2550
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2547
2551
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2548
2552
  VBanner: typeof import('vuetify/components')['VBanner']
2549
2553
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2550
2554
  VBannerText: typeof import('vuetify/components')['VBannerText']
2555
+ VBadge: typeof import('vuetify/components')['VBadge']
2551
2556
  VBtn: typeof import('vuetify/components')['VBtn']
2552
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2557
+ VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2558
+ VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2559
+ VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2553
2560
  VCard: typeof import('vuetify/components')['VCard']
2554
2561
  VCardActions: typeof import('vuetify/components')['VCardActions']
2555
2562
  VCardItem: typeof import('vuetify/components')['VCardItem']
2556
2563
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2557
2564
  VCardText: typeof import('vuetify/components')['VCardText']
2558
2565
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2559
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2560
- VBadge: typeof import('vuetify/components')['VBadge']
2561
- VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2562
- VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2563
- VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2564
- VChip: typeof import('vuetify/components')['VChip']
2566
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2567
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2565
2568
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
2566
2569
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2570
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2571
+ VChip: typeof import('vuetify/components')['VChip']
2572
+ VCarousel: typeof import('vuetify/components')['VCarousel']
2573
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2574
+ VCode: typeof import('vuetify/components')['VCode']
2567
2575
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
2568
2576
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
2569
- VCode: typeof import('vuetify/components')['VCode']
2570
2577
  VCombobox: typeof import('vuetify/components')['VCombobox']
2571
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2572
- VCounter: typeof import('vuetify/components')['VCounter']
2578
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
2579
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2580
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2581
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2582
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2583
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2573
2584
  VDataTable: typeof import('vuetify/components')['VDataTable']
2574
2585
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
2575
2586
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -2577,54 +2588,62 @@ declare module 'vue' {
2577
2588
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2578
2589
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2579
2590
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2580
- VCarousel: typeof import('vuetify/components')['VCarousel']
2581
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2582
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
2583
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2584
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2585
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2586
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2587
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2591
+ VCounter: typeof import('vuetify/components')['VCounter']
2588
2592
  VDialog: typeof import('vuetify/components')['VDialog']
2589
2593
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
2590
- VField: typeof import('vuetify/components')['VField']
2591
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2594
+ VDivider: typeof import('vuetify/components')['VDivider']
2592
2595
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2593
2596
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2594
2597
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2595
2598
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2596
- VFileInput: typeof import('vuetify/components')['VFileInput']
2597
2599
  VFab: typeof import('vuetify/components')['VFab']
2598
- VFooter: typeof import('vuetify/components')['VFooter']
2599
- VDivider: typeof import('vuetify/components')['VDivider']
2600
- VImg: typeof import('vuetify/components')['VImg']
2600
+ VField: typeof import('vuetify/components')['VField']
2601
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2602
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2603
+ VIcon: typeof import('vuetify/components')['VIcon']
2604
+ VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2605
+ VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2606
+ VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2607
+ VClassIcon: typeof import('vuetify/components')['VClassIcon']
2601
2608
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2602
2609
  VItem: typeof import('vuetify/components')['VItem']
2603
2610
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2611
+ VFooter: typeof import('vuetify/components')['VFooter']
2612
+ VInput: typeof import('vuetify/components')['VInput']
2613
+ VImg: typeof import('vuetify/components')['VImg']
2604
2614
  VKbd: typeof import('vuetify/components')['VKbd']
2605
2615
  VLabel: typeof import('vuetify/components')['VLabel']
2606
- VInput: typeof import('vuetify/components')['VInput']
2607
- VMain: typeof import('vuetify/components')['VMain']
2616
+ VList: typeof import('vuetify/components')['VList']
2617
+ VListGroup: typeof import('vuetify/components')['VListGroup']
2618
+ VListImg: typeof import('vuetify/components')['VListImg']
2619
+ VListItem: typeof import('vuetify/components')['VListItem']
2620
+ VListItemAction: typeof import('vuetify/components')['VListItemAction']
2621
+ VListItemMedia: typeof import('vuetify/components')['VListItemMedia']
2622
+ VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2623
+ VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2624
+ VListSubheader: typeof import('vuetify/components')['VListSubheader']
2608
2625
  VMenu: typeof import('vuetify/components')['VMenu']
2626
+ VMessages: typeof import('vuetify/components')['VMessages']
2609
2627
  VNumberInput: typeof import('vuetify/components')['VNumberInput']
2628
+ VMain: typeof import('vuetify/components')['VMain']
2610
2629
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2611
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
2612
- VMessages: typeof import('vuetify/components')['VMessages']
2613
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2614
2630
  VOverlay: typeof import('vuetify/components')['VOverlay']
2615
- VPagination: typeof import('vuetify/components')['VPagination']
2631
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
2616
2632
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2617
- VRating: typeof import('vuetify/components')['VRating']
2618
2633
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2619
- VSelect: typeof import('vuetify/components')['VSelect']
2634
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2620
2635
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2621
- VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2622
- VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2623
- VSlider: typeof import('vuetify/components')['VSlider']
2636
+ VRating: typeof import('vuetify/components')['VRating']
2637
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2638
+ VPagination: typeof import('vuetify/components')['VPagination']
2624
2639
  VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2640
+ VSlider: typeof import('vuetify/components')['VSlider']
2625
2641
  VSheet: typeof import('vuetify/components')['VSheet']
2626
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2642
+ VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2643
+ VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2627
2644
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
2645
+ VSelect: typeof import('vuetify/components')['VSelect']
2646
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
2628
2647
  VSwitch: typeof import('vuetify/components')['VSwitch']
2629
2648
  VStepper: typeof import('vuetify/components')['VStepper']
2630
2649
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
@@ -2636,58 +2655,44 @@ declare module 'vue' {
2636
2655
  VTabs: typeof import('vuetify/components')['VTabs']
2637
2656
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2638
2657
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2639
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
2640
- VTable: typeof import('vuetify/components')['VTable']
2641
2658
  VTextarea: typeof import('vuetify/components')['VTextarea']
2659
+ VTextField: typeof import('vuetify/components')['VTextField']
2660
+ VTable: typeof import('vuetify/components')['VTable']
2642
2661
  VTooltip: typeof import('vuetify/components')['VTooltip']
2643
- VTimeline: typeof import('vuetify/components')['VTimeline']
2644
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2645
2662
  VToolbar: typeof import('vuetify/components')['VToolbar']
2646
2663
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2647
2664
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2648
- VTextField: typeof import('vuetify/components')['VTextField']
2665
+ VTimeline: typeof import('vuetify/components')['VTimeline']
2666
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2649
2667
  VWindow: typeof import('vuetify/components')['VWindow']
2650
2668
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2651
- VIcon: typeof import('vuetify/components')['VIcon']
2652
- VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2653
- VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2654
- VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2655
- VClassIcon: typeof import('vuetify/components')['VClassIcon']
2656
- VList: typeof import('vuetify/components')['VList']
2657
- VListGroup: typeof import('vuetify/components')['VListGroup']
2658
- VListImg: typeof import('vuetify/components')['VListImg']
2659
- VListItem: typeof import('vuetify/components')['VListItem']
2660
- VListItemAction: typeof import('vuetify/components')['VListItemAction']
2661
- VListItemMedia: typeof import('vuetify/components')['VListItemMedia']
2662
- VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2663
- VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2664
- VListSubheader: typeof import('vuetify/components')['VListSubheader']
2669
+ VAppBar: typeof import('vuetify/components')['VAppBar']
2670
+ VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2671
+ VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2672
+ VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2665
2673
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2674
+ VDataIterator: typeof import('vuetify/components')['VDataIterator']
2666
2675
  VForm: typeof import('vuetify/components')['VForm']
2667
2676
  VContainer: typeof import('vuetify/components')['VContainer']
2668
2677
  VCol: typeof import('vuetify/components')['VCol']
2669
2678
  VRow: typeof import('vuetify/components')['VRow']
2670
2679
  VSpacer: typeof import('vuetify/components')['VSpacer']
2671
2680
  VHover: typeof import('vuetify/components')['VHover']
2672
- VLazy: typeof import('vuetify/components')['VLazy']
2673
- VAppBar: typeof import('vuetify/components')['VAppBar']
2674
- VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2675
- VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2676
- VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2677
2681
  VLayout: typeof import('vuetify/components')['VLayout']
2678
2682
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
2683
+ VLazy: typeof import('vuetify/components')['VLazy']
2679
2684
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2680
- VNoSsr: typeof import('vuetify/components')['VNoSsr']
2681
2685
  VParallax: typeof import('vuetify/components')['VParallax']
2682
2686
  VRadio: typeof import('vuetify/components')['VRadio']
2687
+ VNoSsr: typeof import('vuetify/components')['VNoSsr']
2683
2688
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2684
2689
  VResponsive: typeof import('vuetify/components')['VResponsive']
2685
- VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2686
2690
  VSparkline: typeof import('vuetify/components')['VSparkline']
2691
+ VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2687
2692
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
2688
2693
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
2689
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2690
2694
  VValidation: typeof import('vuetify/components')['VValidation']
2695
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2691
2696
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
2692
2697
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
2693
2698
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -2704,28 +2709,27 @@ declare module 'vue' {
2704
2709
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
2705
2710
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2706
2711
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2707
- VDataIterator: typeof import('vuetify/components')['VDataIterator']
2712
+ VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2713
+ VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2714
+ VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2708
2715
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
2709
2716
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
2710
2717
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
2711
2718
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
2712
2719
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
2713
2720
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
2714
- VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2715
- VPicker: typeof import('vuetify/labs/components')['VPicker']
2716
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2717
2721
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2718
2722
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2719
2723
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2720
- VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2721
- VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2722
- VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2724
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
2725
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2723
2726
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
2724
2727
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
2725
2728
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
2726
2729
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
2727
2730
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
2728
2731
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
2732
+ VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2729
2733
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2730
2734
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
2731
2735
  }
package/lib/framework.js CHANGED
@@ -109,7 +109,7 @@ export function createVuetify() {
109
109
  };
110
110
  });
111
111
  }
112
- export const version = "3.8.7-master.2025-05-29";
112
+ export const version = "3.8.7-master.2025-05-31";
113
113
  createVuetify.version = version;
114
114
 
115
115
  // Vue's inject() can only be used in setup
@@ -12,7 +12,7 @@ import { forwardRefs } from "../../composables/forwardRefs.js";
12
12
  import { useLocale } from "../../composables/locale.js";
13
13
  import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
14
14
  import { computed, ref, shallowRef, watch } from 'vue';
15
- import { createRange, genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
15
+ import { genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
16
16
  // Types
17
17
  export const makeVDateInputProps = propsFactory({
18
18
  displayFormat: [Function, String],
@@ -175,18 +175,14 @@ export const VDateInput = genericComponent()({
175
175
  const parts = value.trim().split(/\D+-\D+|[^\d\-/.]+/);
176
176
  if (parts.every(isValid)) {
177
177
  if (props.multiple === 'range') {
178
- model.value = getRange(parts);
178
+ const [start, stop] = parts.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
179
+ model.value = adapter.createDateRange(start, stop);
179
180
  } else {
180
181
  model.value = parts.map(parseDate);
181
182
  }
182
183
  }
183
184
  }
184
185
  }
185
- function getRange(inputDates) {
186
- const [start, stop] = inputDates.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
187
- const diff = adapter.getDiff(stop ?? start, start, 'days');
188
- return [start, ...createRange(diff, 1).map(i => adapter.addDays(start, i))];
189
- }
190
186
  useRender(() => {
191
187
  const confirmEditProps = VConfirmEdit.filterProps(props);
192
188
  const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));