From 28ccc14902068c951156079979953e9f894a90c9 Mon Sep 17 00:00:00 2001 From: J-Sek Date: Sun, 16 Aug 2026 22:34:22 +0200 Subject: [PATCH 1/2] fix(VDatePicker): restore the hover preview for range selection --- .../src/components/VDatePicker/VDatePicker.tsx | 4 +++- .../__tests__/VDatePicker.spec.browser.tsx | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/vuetify/src/components/VDatePicker/VDatePicker.tsx b/packages/vuetify/src/components/VDatePicker/VDatePicker.tsx index ad7093e95a8..623ce279f56 100644 --- a/packages/vuetify/src/components/VDatePicker/VDatePicker.tsx +++ b/packages/vuetify/src/components/VDatePicker/VDatePicker.tsx @@ -132,6 +132,8 @@ export const VDatePicker = genericComponent emit('update:previewValue', value) } + v-model:previewValue={ previewValue.value } onBoundaryNavigate={ (payload: any) => emit('boundary-navigate', payload) } min={ minDate.value } max={ maxDate.value } diff --git a/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.spec.browser.tsx b/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.spec.browser.tsx index 4948d4b54a4..a0626791494 100644 --- a/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.spec.browser.tsx +++ b/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.spec.browser.tsx @@ -118,4 +118,15 @@ describe('VDatePicker', () => { expect(document.querySelector('[data-v-date="2026-01-15"]')).not.toBeNull() expect(document.querySelector('[data-v-date="2026-02-20"]')).toBeNull() }) + + it('previews the hovered end of a range', async () => { + render(() => ( + + )) + + const $days = await screen.findAllByCSS('.v-date-picker-month__day-btn') + await userEvent.hover($days[15]) + + expect(document.querySelectorAll('.v-date-picker-month__range-bg--preview').length).toBeGreaterThan(0) + }) }) From cee55418799fbf08e4f327d77fe7c871a5d97f43 Mon Sep 17 00:00:00 2001 From: J-Sek Date: Sun, 16 Aug 2026 22:35:08 +0200 Subject: [PATCH 2/2] feat(VDatePicker): week selection --- .../src/locale/en/VDatePicker.json | 2 +- .../v-date-picker/prop-week-selection.vue | 35 +++++++++++++++ .../src/pages/en/components/date-pickers.md | 6 +++ .../src/components/VDateInput/VDateInput.tsx | 9 ++-- .../components/VDatePicker/VDatePicker.tsx | 29 +++++++++---- .../VDatePicker/VDatePickerMonth.sass | 3 ++ .../VDatePicker/VDatePickerMonth.tsx | 39 ++++++++++++++--- .../__tests__/VDatePicker.date.spec.ts | 43 ++++++++++++++++++- .../__tests__/VDatePicker.spec.browser.tsx | 40 +++++++++++++++++ packages/vuetify/src/composables/date/date.ts | 6 +++ .../vuetify/src/composables/rangePicker.ts | 12 +++++- packages/vuetify/src/locale/af.ts | 5 +++ packages/vuetify/src/locale/ar.ts | 5 +++ packages/vuetify/src/locale/az.ts | 5 +++ packages/vuetify/src/locale/bg.ts | 5 +++ packages/vuetify/src/locale/ca.ts | 5 +++ packages/vuetify/src/locale/ckb.ts | 5 +++ packages/vuetify/src/locale/cs.ts | 5 +++ packages/vuetify/src/locale/da.ts | 5 +++ packages/vuetify/src/locale/de.ts | 5 +++ packages/vuetify/src/locale/el.ts | 5 +++ packages/vuetify/src/locale/en.ts | 5 +++ packages/vuetify/src/locale/es.ts | 5 +++ packages/vuetify/src/locale/et.ts | 5 +++ packages/vuetify/src/locale/fa.ts | 5 +++ packages/vuetify/src/locale/fi.ts | 5 +++ packages/vuetify/src/locale/fr.ts | 5 +++ packages/vuetify/src/locale/he.ts | 5 +++ packages/vuetify/src/locale/hr.ts | 5 +++ packages/vuetify/src/locale/hu.ts | 5 +++ packages/vuetify/src/locale/id.ts | 5 +++ packages/vuetify/src/locale/it.ts | 5 +++ packages/vuetify/src/locale/ja.ts | 5 +++ packages/vuetify/src/locale/km.ts | 5 +++ packages/vuetify/src/locale/ko.ts | 5 +++ packages/vuetify/src/locale/lt.ts | 5 +++ packages/vuetify/src/locale/lv.ts | 5 +++ packages/vuetify/src/locale/nl.ts | 5 +++ packages/vuetify/src/locale/no.ts | 5 +++ packages/vuetify/src/locale/pl.ts | 5 +++ packages/vuetify/src/locale/pt.ts | 5 +++ packages/vuetify/src/locale/ro.ts | 5 +++ packages/vuetify/src/locale/ru.ts | 5 +++ packages/vuetify/src/locale/sk.ts | 5 +++ packages/vuetify/src/locale/sl.ts | 5 +++ packages/vuetify/src/locale/sr-Cyrl.ts | 5 +++ packages/vuetify/src/locale/sr-Latn.ts | 5 +++ packages/vuetify/src/locale/sv.ts | 5 +++ packages/vuetify/src/locale/th.ts | 5 +++ packages/vuetify/src/locale/tr.ts | 5 +++ packages/vuetify/src/locale/uk.ts | 5 +++ packages/vuetify/src/locale/vi.ts | 5 +++ packages/vuetify/src/locale/zh-Hans.ts | 5 +++ packages/vuetify/src/locale/zh-Hant.ts | 5 +++ 54 files changed, 418 insertions(+), 21 deletions(-) create mode 100644 packages/docs/src/examples/v-date-picker/prop-week-selection.vue diff --git a/packages/api-generator/src/locale/en/VDatePicker.json b/packages/api-generator/src/locale/en/VDatePicker.json index 986406d5a11..a4fe2c5c081 100644 --- a/packages/api-generator/src/locale/en/VDatePicker.json +++ b/packages/api-generator/src/locale/en/VDatePicker.json @@ -15,7 +15,7 @@ "headerDateFormat": "Allows you to customize the format of the date selection text that appears in the header of the calendar.", "max": "Maximum allowed date/month (ISO 8601 format).", "min": "Minimum allowed date/month (ISO 8601 format).", - "multiple": "Allow the selection of multiple dates. The **range** value selects all dates between two selections.", + "multiple": "Allow the selection of multiple dates. The **range** value selects all dates between two selections, **week** selects the week a clicked day belongs to.", "noAutoNavigation": "Prevents the displayed month from automatically following the selected value. Useful when building multi-calendar layouts where each picker manages its own view.", "nextIcon": "Sets the icon for next month/year button.", "prevIcon": "Sets the icon for previous month/year button.", diff --git a/packages/docs/src/examples/v-date-picker/prop-week-selection.vue b/packages/docs/src/examples/v-date-picker/prop-week-selection.vue new file mode 100644 index 00000000000..ffbf098ff02 --- /dev/null +++ b/packages/docs/src/examples/v-date-picker/prop-week-selection.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/packages/docs/src/pages/en/components/date-pickers.md b/packages/docs/src/pages/en/components/date-pickers.md index efb3640e6ec..c6a947be736 100644 --- a/packages/docs/src/pages/en/components/date-pickers.md +++ b/packages/docs/src/pages/en/components/date-pickers.md @@ -87,6 +87,12 @@ Specify allowed dates using objects or functions. When using objects, accepts a +#### Week selection + +Setting **multiple** to `week` selects the whole week a clicked day belongs to. The model holds the first and last day of that week. + + + #### Landscape Using `landscape` moves header to the side. You can customize it further using custom width and date format. diff --git a/packages/vuetify/src/components/VDateInput/VDateInput.tsx b/packages/vuetify/src/components/VDateInput/VDateInput.tsx index 8069e1cd719..755d8a91cb6 100644 --- a/packages/vuetify/src/components/VDateInput/VDateInput.tsx +++ b/packages/vuetify/src/components/VDateInput/VDateInput.tsx @@ -8,6 +8,7 @@ import { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextFi // Composables import { useCalendarRange } from '@/composables/calendar' import { useDate } from '@/composables/date' +import { createWeekRange } from '@/composables/date/date' import { makeDateFormatProps, useDateFormat } from '@/composables/dateFormat' import { makeDisplayProps, useDisplay } from '@/composables/display' import { makeFocusProps } from '@/composables/focus' @@ -83,7 +84,7 @@ export const makeVDateInputProps = propsFactory({ export const VDateInput = genericComponent props.multiple === 'week') + const titleText = toRef(() => t( + props.title ?? (isWeek.value ? '$vuetify.datePicker.week.title' : '$vuetify.datePicker.title') + )) const header = computed(() => { + if (isWeek.value && model.value.length) { + return t( + '$vuetify.datePicker.week.selected', + adapter.getWeek(model.value[0], props.firstDayOfWeek, props.firstDayOfYear), + adapter.getYear(model.value[0]), + ) + } + if (props.multiple === 'range' && model.value.length === 2) { const [startDate, endDate] = model.value const daysBetween = adapter.getDiff(endDate, startDate, 'days') + 1 @@ -175,7 +184,7 @@ export const VDatePicker = genericComponent adapter.getMonth(adapter.date(d)) === month.value) + const after = adapter.date(onScreen || arrAfter[arrAfter.length - 1]) if (adapter.isSameDay(before, after)) return @@ -432,7 +443,7 @@ export const VDatePicker = genericComponent slots.title?.() ?? (
- { t(props.title) } + { titleText.value }
), header: () => slots.header ? ( diff --git a/packages/vuetify/src/components/VDatePicker/VDatePickerMonth.sass b/packages/vuetify/src/components/VDatePicker/VDatePickerMonth.sass index 740042942e3..bf5c2ed7cba 100644 --- a/packages/vuetify/src/components/VDatePicker/VDatePickerMonth.sass +++ b/packages/vuetify/src/components/VDatePicker/VDatePickerMonth.sass @@ -27,6 +27,9 @@ grid-template-columns: repeat(var(--v-date-picker-days-in-week), 1fr) justify-items: center + .v-date-picker-month--week .v-date-picker-month__days-row:has(.v-btn:not(.v-btn--disabled)) + cursor: pointer + .v-date-picker-month__day align-items: center display: flex diff --git a/packages/vuetify/src/components/VDatePicker/VDatePickerMonth.tsx b/packages/vuetify/src/components/VDatePicker/VDatePickerMonth.tsx index f4313ca2be8..1caa0228f0a 100644 --- a/packages/vuetify/src/components/VDatePicker/VDatePickerMonth.tsx +++ b/packages/vuetify/src/components/VDatePicker/VDatePickerMonth.tsx @@ -8,7 +8,7 @@ import { VBtn } from '@/components/VBtn' // Composables import { makeCalendarProps, useCalendar } from '@/composables/calendar' import { useBackgroundColor } from '@/composables/color' -import { useDate } from '@/composables/date/date' +import { createWeekRange, useDate } from '@/composables/date/date' import { useGridSelection } from '@/composables/gridSelection' import { useLocale } from '@/composables/locale' import { useProxiedModel } from '@/composables/proxiedModel' @@ -45,7 +45,7 @@ export type VDatePickerMonthSlots = { export const makeVDatePickerMonthProps = propsFactory({ color: String, hideWeekdays: Boolean, - multiple: [Boolean, Number, String] as PropType, + multiple: [Boolean, Number, String] as PropType, showWeek: Boolean, readonly: Boolean, transition: { @@ -107,16 +107,20 @@ export const VDatePickerMonth = genericComponent( } const previewValue = useProxiedModel(props, 'previewValue') + const isWeek = toRef(() => props.multiple === 'week') const range = useRangePicker({ multiple: computed(() => { - if (props.multiple === 'range') return 'range' + if (props.multiple === 'range' || isWeek.value) return 'range' return !!props.multiple }), model, compare: compareDays, normalizeEnd: (value: unknown) => adapter.endOfDay(value), previewValue, + expand: value => isWeek.value + ? createWeekRange(adapter, value, props.firstDayOfWeek) + : null, }) const selectionColor = toRef(() => props.color || 'surface-variant') @@ -275,6 +279,23 @@ export const VDatePickerMonth = genericComponent( } } + // in week mode the whole row is the target, so the gaps between day buttons stay live + function weekRowTarget (row: typeof daysInMonth.value) { + return row.find(item => !item.isAdjacent && !isDayDisabled(item)) ?? row.find(item => !isDayDisabled(item)) + } + + function onWeekRowEnter (row: typeof daysInMonth.value) { + range.setPreview(weekRowTarget(row)?.date) + } + + function onWeekRowClick (row: typeof daysInMonth.value, e: MouseEvent) { + if ((e.target as HTMLElement).closest('.v-date-picker-month__day-btn')) return + + const item = weekRowTarget(row) + + if (item) onDayClick(item) + } + function focusGrid () { containerEl.value?.focus() } @@ -336,7 +357,10 @@ export const VDatePickerMonth = genericComponent( } useRender(() => (
{ props.showWeek && ( @@ -377,7 +401,12 @@ export const VDatePickerMonth = genericComponent( )} { dayRows.value.map((row, rowIndex) => ( -
+
onWeekRowEnter(row) : undefined } + onClick={ isWeek.value ? (e: MouseEvent) => onWeekRowClick(row, e) : undefined } + > { row.map((item, colIndex) => { const i = rowIndex * props.weekdays.length + colIndex const isSelected = isSelectedDay(item) diff --git a/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts b/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts index fe43f2ebd12..4784b8fb999 100644 --- a/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +++ b/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts @@ -6,7 +6,7 @@ import { VDatePicker } from '../VDatePicker' // import { touch } from '@/../test' import { render, screen } from '@test' -import { h, ref } from 'vue' +import { h, nextTick, ref } from 'vue' import { mount, MountOptions, @@ -838,3 +838,44 @@ describe('range selection with time zone', () => { expect(update).toHaveBeenNthCalledWith(2, [new Date('2025-10-02T04:00:00.000Z'), new Date('2025-10-04T03:59:59.999Z')]) }) }) + +describe('week selection', () => { + function renderWeekPicker (initialValue: unknown[]) { + const update = vi.fn() + const modelValue = ref(initialValue) + update.mockImplementation((v: unknown[]) => { modelValue.value = v }) + const wrapper = render(() => h(VDatePicker, { + multiple: 'week', + modelValue: modelValue.value, + 'onUpdate:modelValue': update, + })) + return { wrapper, update } + } + + it('should select the whole week with a single click', async () => { + const { wrapper, update } = renderWeekPicker([new Date(2025, 3, 1)]) + + const btn = await wrapper.findByText('9') as HTMLElement + btn.click() + + expect(update).toHaveBeenCalledWith([new Date(2025, 3, 6), new Date(2025, 3, 12, 23, 59, 59, 999)]) + }) + + it('should show the week number in the header', async () => { + renderWeekPicker([new Date(2025, 3, 9)]) + + const $header = await screen.findByCSS('.v-date-picker-header__content') + expect($header.textContent).toBe('Week 15, 2025') + }) + + it('should stay on the displayed month when the week straddles two months', async () => { + const { wrapper } = renderWeekPicker([new Date(2025, 3, 15)]) + + const btn = await wrapper.findByText('30') as HTMLElement + btn.click() + await nextTick() + + const $controls = await screen.findByCSS('.v-date-picker-controls') + expect($controls.textContent).toContain('Apr2025') + }) +}) diff --git a/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.spec.browser.tsx b/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.spec.browser.tsx index a0626791494..cd06c073047 100644 --- a/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.spec.browser.tsx +++ b/packages/vuetify/src/components/VDatePicker/__tests__/VDatePicker.spec.browser.tsx @@ -129,4 +129,44 @@ describe('VDatePicker', () => { expect(document.querySelectorAll('.v-date-picker-month__range-bg--preview').length).toBeGreaterThan(0) }) + + it('selects and previews a whole week', async () => { + const model = ref([]) + render(() => ( + + )) + + const $days = await screen.findAllByCSS('.v-date-picker-month__day-btn') + await userEvent.hover($days[10]) + expect(document.querySelectorAll('.v-date-picker-month__range-bg--preview')).toHaveLength(7) + + await userEvent.click($days[10]) + await expect.poll(() => model.value).toHaveLength(2) + expect(document.querySelectorAll('.v-date-picker-month__range-bg--range')).toHaveLength(7) + }) + + it('treats the whole row as one week target', async () => { + const update = vi.fn() + render(() => ( + + )) + + // the gap between two day buttons belongs to the row, not to either day + const $row = (await screen.findAllByCSS('.v-date-picker-month__days-row'))[2] + const row = $row.getBoundingClientRect() + const [a, b] = Array.from($row.querySelectorAll('.v-date-picker-month__day-btn')).map(el => el.getBoundingClientRect()) + const position = { x: (a.right + b.left) / 2 - row.left, y: a.top + a.height / 2 - row.top } + expect(b.left - a.right).toBeGreaterThan(0) + + await userEvent.hover($row, { position }) + expect(document.querySelectorAll('.v-date-picker-month__range-bg--preview')).toHaveLength(7) + + await userEvent.click($row, { position }) + expect(update).toHaveBeenCalledTimes(1) + expect(document.querySelectorAll('.v-date-picker-month__range-bg--range')).toHaveLength(7) + + // clicking a day still runs through the day, not twice through the row as well + await userEvent.click($row.querySelectorAll('.v-date-picker-month__day-btn')[3]) + expect(update).toHaveBeenCalledTimes(2) + }) }) diff --git a/packages/vuetify/src/composables/date/date.ts b/packages/vuetify/src/composables/date/date.ts index 7b287c91a6c..95d048dc6e0 100644 --- a/packages/vuetify/src/composables/date/date.ts +++ b/packages/vuetify/src/composables/date/date.ts @@ -99,6 +99,12 @@ export function daysDiff (adapter: DateInstance, start: unknown, stop?: unknown) : adapter.getDiff(adapter.date(iso[0]), adapter.date(iso[1]), 'days') } +export function createWeekRange (adapter: DateInstance, value: unknown, firstDayOfWeek?: number | string): [unknown, unknown] { + const start = adapter.startOfDay(adapter.startOfWeek(value, firstDayOfWeek)) + + return [start, adapter.endOfDay(adapter.addDays(start, 6))] +} + function createInstance (options: InternalDateOptions, locale: LocaleInstance) { const instance = reactive( isFunction(options.adapter) diff --git a/packages/vuetify/src/composables/rangePicker.ts b/packages/vuetify/src/composables/rangePicker.ts index b7c1a995505..765a9a540c0 100644 --- a/packages/vuetify/src/composables/rangePicker.ts +++ b/packages/vuetify/src/composables/rangePicker.ts @@ -10,6 +10,8 @@ export interface RangePickerOptions { compare: (a: T, b: T) => number normalizeEnd?: (value: T) => T previewValue?: Ref + /** Return a fixed span for a single value to replace two-click range picking, or null to keep it. */ + expand?: (value: T) => [T, T] | null } export function useRangePicker ({ @@ -18,6 +20,7 @@ export function useRangePicker ({ compare, normalizeEnd = (v: T) => v, previewValue: externalPreview, + expand, }: RangePickerOptions) { const rangeStart = computed(() => model.value.length >= 1 ? model.value[0] : undefined) const rangeEnd = computed(() => model.value.length >= 2 ? model.value[model.value.length - 1] : undefined) @@ -25,8 +28,10 @@ export function useRangePicker ({ const previewRange = computed<[T, T] | null>(() => { if (multiple.value !== 'range') return null - if (!rangeStart.value || rangeEnd.value) return null if (!previewValue.value) return null + const span = expand?.(previewValue.value) + if (span) return span + if (!rangeStart.value || rangeEnd.value) return null const start = rangeStart.value const preview = previewValue.value if (compare(start, preview) === 0) return null @@ -66,7 +71,10 @@ export function useRangePicker ({ } function select (value: T): void { - if (multiple.value === 'range') { + const span = expand?.(value) + if (span) { + model.value = span + } else if (multiple.value === 'range') { onRangeSelect(value) } else if (multiple.value) { onMultipleSelect(value) diff --git a/packages/vuetify/src/locale/af.ts b/packages/vuetify/src/locale/af.ts index 6ebcd4c8eaa..6006dc40cc8 100644 --- a/packages/vuetify/src/locale/af.ts +++ b/packages/vuetify/src/locale/af.ts @@ -58,6 +58,11 @@ export default { title: 'Kies datums', header: 'Voer datums in', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Kies datum', header: 'Voer datum in', input: { diff --git a/packages/vuetify/src/locale/ar.ts b/packages/vuetify/src/locale/ar.ts index c6172766d86..5cee35af2ee 100644 --- a/packages/vuetify/src/locale/ar.ts +++ b/packages/vuetify/src/locale/ar.ts @@ -58,6 +58,11 @@ export default { title: 'اختر التواريخ', header: 'أدخل التواريخ', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'اختر التاريخ', header: 'أدخل التاريخ', input: { diff --git a/packages/vuetify/src/locale/az.ts b/packages/vuetify/src/locale/az.ts index 32eb026e860..fd221f0218c 100644 --- a/packages/vuetify/src/locale/az.ts +++ b/packages/vuetify/src/locale/az.ts @@ -58,6 +58,11 @@ export default { title: 'Tarixləri seçin', header: 'Tarixləri daxil edin', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Tarixi seçin', header: 'Tarixi daxil edin', input: { diff --git a/packages/vuetify/src/locale/bg.ts b/packages/vuetify/src/locale/bg.ts index 2e7027dd934..25590cf1db5 100644 --- a/packages/vuetify/src/locale/bg.ts +++ b/packages/vuetify/src/locale/bg.ts @@ -58,6 +58,11 @@ export default { title: 'Избор на дати', header: 'Въвеждане на дати', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Избор на дата', header: 'Въвеждане на дата', input: { diff --git a/packages/vuetify/src/locale/ca.ts b/packages/vuetify/src/locale/ca.ts index 18feff6a215..26307d9881c 100644 --- a/packages/vuetify/src/locale/ca.ts +++ b/packages/vuetify/src/locale/ca.ts @@ -58,6 +58,11 @@ export default { title: 'Selecciona dates', header: 'Introdueix les dates', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Selecciona data', header: 'Introdueix la data', input: { diff --git a/packages/vuetify/src/locale/ckb.ts b/packages/vuetify/src/locale/ckb.ts index cbc2fe411c0..78405fc7f43 100644 --- a/packages/vuetify/src/locale/ckb.ts +++ b/packages/vuetify/src/locale/ckb.ts @@ -58,6 +58,11 @@ export default { title: 'بژاردنی بەروارەکان', header: 'بەروارەکان بنووسە', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'بژاردنی بەروار', header: 'بەروار بنووسە', input: { diff --git a/packages/vuetify/src/locale/cs.ts b/packages/vuetify/src/locale/cs.ts index 4a81e269366..670cdd04ac9 100644 --- a/packages/vuetify/src/locale/cs.ts +++ b/packages/vuetify/src/locale/cs.ts @@ -58,6 +58,11 @@ export default { title: 'Vyberte datumy', header: 'Zadejte datumy', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Vyberte datum', header: 'Zadejte datum', input: { diff --git a/packages/vuetify/src/locale/da.ts b/packages/vuetify/src/locale/da.ts index 698c587532f..07251f761f1 100644 --- a/packages/vuetify/src/locale/da.ts +++ b/packages/vuetify/src/locale/da.ts @@ -58,6 +58,11 @@ export default { title: 'Vælg datoer', header: 'Indtast datoer', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Vælg dato', header: 'Indtast dato', input: { diff --git a/packages/vuetify/src/locale/de.ts b/packages/vuetify/src/locale/de.ts index 8d69fb831d5..3f52eb1eb4a 100644 --- a/packages/vuetify/src/locale/de.ts +++ b/packages/vuetify/src/locale/de.ts @@ -58,6 +58,11 @@ export default { title: 'Daten auswählen', header: 'Daten eingeben', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Datum auswählen', header: 'Datum eingeben', input: { diff --git a/packages/vuetify/src/locale/el.ts b/packages/vuetify/src/locale/el.ts index c9143717127..8fea780f003 100755 --- a/packages/vuetify/src/locale/el.ts +++ b/packages/vuetify/src/locale/el.ts @@ -58,6 +58,11 @@ export default { title: 'Επιλέξτε ημερομηνίες', header: 'Εισαγάγετε ημερομηνίες', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Επιλέξτε ημερομηνία', header: 'Εισαγάγετε ημερομηνία', input: { diff --git a/packages/vuetify/src/locale/en.ts b/packages/vuetify/src/locale/en.ts index 4fa7db92520..53b2dc3af21 100644 --- a/packages/vuetify/src/locale/en.ts +++ b/packages/vuetify/src/locale/en.ts @@ -58,6 +58,11 @@ export default { title: 'Select dates', header: 'Enter dates', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Select date', header: 'Enter date', input: { diff --git a/packages/vuetify/src/locale/es.ts b/packages/vuetify/src/locale/es.ts index 99837032a59..b8e1de0b17b 100644 --- a/packages/vuetify/src/locale/es.ts +++ b/packages/vuetify/src/locale/es.ts @@ -58,6 +58,11 @@ export default { title: 'Seleccionar fechas', header: 'Introducir fechas', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Seleccionar fecha', header: 'Introducir fecha', input: { diff --git a/packages/vuetify/src/locale/et.ts b/packages/vuetify/src/locale/et.ts index cd3738a8016..a571926a9b4 100644 --- a/packages/vuetify/src/locale/et.ts +++ b/packages/vuetify/src/locale/et.ts @@ -58,6 +58,11 @@ export default { title: 'Vali kuupäevad', header: 'Sisesta kuupäevad', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Vali kuupäev', header: 'Sisesta kuupäev', input: { diff --git a/packages/vuetify/src/locale/fa.ts b/packages/vuetify/src/locale/fa.ts index bb7e9d40442..2d74df4433b 100644 --- a/packages/vuetify/src/locale/fa.ts +++ b/packages/vuetify/src/locale/fa.ts @@ -58,6 +58,11 @@ export default { title: 'انتخاب تاریخ‌ها', header: 'تاریخ‌ها را وارد کنید', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'انتخاب تاریخ', header: 'تاریخ را وارد کنید', input: { diff --git a/packages/vuetify/src/locale/fi.ts b/packages/vuetify/src/locale/fi.ts index 040bd5b8ce3..3e97fdaeddb 100644 --- a/packages/vuetify/src/locale/fi.ts +++ b/packages/vuetify/src/locale/fi.ts @@ -58,6 +58,11 @@ export default { title: 'Valitse päivämäärät', header: 'Syötä päivämäärät', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Valitse päivämäärä', header: 'Syötä päivämäärä', input: { diff --git a/packages/vuetify/src/locale/fr.ts b/packages/vuetify/src/locale/fr.ts index 665177b76ea..4b85e9d3104 100644 --- a/packages/vuetify/src/locale/fr.ts +++ b/packages/vuetify/src/locale/fr.ts @@ -58,6 +58,11 @@ export default { title: 'Sélectionner des dates', header: 'Entrer des dates', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Sélectionner une date', header: 'Entrer une date', input: { diff --git a/packages/vuetify/src/locale/he.ts b/packages/vuetify/src/locale/he.ts index 8469a1e5b6b..6eabe7efb21 100644 --- a/packages/vuetify/src/locale/he.ts +++ b/packages/vuetify/src/locale/he.ts @@ -58,6 +58,11 @@ export default { title: 'בחר תאריכים', header: 'הזן תאריכים', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'בחר תאריך', header: 'הזן תאריך', input: { diff --git a/packages/vuetify/src/locale/hr.ts b/packages/vuetify/src/locale/hr.ts index 6c5702d2e59..94e54505dd4 100644 --- a/packages/vuetify/src/locale/hr.ts +++ b/packages/vuetify/src/locale/hr.ts @@ -58,6 +58,11 @@ export default { title: 'Odaberite datume', header: 'Unesite datume', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Odaberite datum', header: 'Unesite datum', input: { diff --git a/packages/vuetify/src/locale/hu.ts b/packages/vuetify/src/locale/hu.ts index 5fccadc2817..c8b1539a401 100644 --- a/packages/vuetify/src/locale/hu.ts +++ b/packages/vuetify/src/locale/hu.ts @@ -58,6 +58,11 @@ export default { title: 'Válassza ki a dátumokat', header: 'Adja meg a dátumokat', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Válassza ki a dátumot', header: 'Adja meg a dátumot', input: { diff --git a/packages/vuetify/src/locale/id.ts b/packages/vuetify/src/locale/id.ts index 6f31638b0a5..ffb3e92d9a0 100644 --- a/packages/vuetify/src/locale/id.ts +++ b/packages/vuetify/src/locale/id.ts @@ -58,6 +58,11 @@ export default { title: 'Pilih tanggal', header: 'Masukkan tanggal', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Pilih tanggal', header: 'Masukkan tanggal', input: { diff --git a/packages/vuetify/src/locale/it.ts b/packages/vuetify/src/locale/it.ts index 052f294670d..8d7d1c44644 100644 --- a/packages/vuetify/src/locale/it.ts +++ b/packages/vuetify/src/locale/it.ts @@ -58,6 +58,11 @@ export default { title: 'Seleziona date', header: 'Inserisci date', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Seleziona data', header: 'Inserisci data', input: { diff --git a/packages/vuetify/src/locale/ja.ts b/packages/vuetify/src/locale/ja.ts index d6cf79476fd..9fe0789adcc 100644 --- a/packages/vuetify/src/locale/ja.ts +++ b/packages/vuetify/src/locale/ja.ts @@ -58,6 +58,11 @@ export default { title: '日付を選択', header: '日付を入力', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: '日付を選択', header: '日付を入力', input: { diff --git a/packages/vuetify/src/locale/km.ts b/packages/vuetify/src/locale/km.ts index ca53d3bf4c1..bc4940622c0 100644 --- a/packages/vuetify/src/locale/km.ts +++ b/packages/vuetify/src/locale/km.ts @@ -58,6 +58,11 @@ export default { title: 'ជ្រើសរើសកាលបរិច្ឆេទ', header: 'បញ្ចូលកាលបរិច្ឆេទ', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'ជ្រើសរើសកាលបរិច្ឆេទ', header: 'បញ្ចូលកាលបរិច្ឆេទ', input: { diff --git a/packages/vuetify/src/locale/ko.ts b/packages/vuetify/src/locale/ko.ts index 72c19f7b264..4ba2ff54e93 100644 --- a/packages/vuetify/src/locale/ko.ts +++ b/packages/vuetify/src/locale/ko.ts @@ -58,6 +58,11 @@ export default { title: '날짜 선택', header: '날짜 입력', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: '날짜 선택', header: '날짜 입력', input: { diff --git a/packages/vuetify/src/locale/lt.ts b/packages/vuetify/src/locale/lt.ts index 68bbce595d9..b076b54fe71 100644 --- a/packages/vuetify/src/locale/lt.ts +++ b/packages/vuetify/src/locale/lt.ts @@ -58,6 +58,11 @@ export default { title: 'Pasirinkite datas', header: 'Įveskite datas', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Pasirinkite datą', header: 'Įveskite datą', input: { diff --git a/packages/vuetify/src/locale/lv.ts b/packages/vuetify/src/locale/lv.ts index 03c983e8164..b141afa54de 100644 --- a/packages/vuetify/src/locale/lv.ts +++ b/packages/vuetify/src/locale/lv.ts @@ -58,6 +58,11 @@ export default { title: 'Izvēlieties datumus', header: 'Ievadiet datumus', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Izvēlieties datumu', header: 'Ievadiet datumu', input: { diff --git a/packages/vuetify/src/locale/nl.ts b/packages/vuetify/src/locale/nl.ts index 1630d3c2c91..aba0a55ee24 100644 --- a/packages/vuetify/src/locale/nl.ts +++ b/packages/vuetify/src/locale/nl.ts @@ -58,6 +58,11 @@ export default { title: 'Selecteer datums', header: 'Voer datums in', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Selecteer datum', header: 'Voer datum in', input: { diff --git a/packages/vuetify/src/locale/no.ts b/packages/vuetify/src/locale/no.ts index 9c847c226a7..e0d65548d72 100644 --- a/packages/vuetify/src/locale/no.ts +++ b/packages/vuetify/src/locale/no.ts @@ -58,6 +58,11 @@ export default { title: 'Velg datoer', header: 'Velg datoer', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Velg dato', header: 'Velg dato', input: { diff --git a/packages/vuetify/src/locale/pl.ts b/packages/vuetify/src/locale/pl.ts index f63674eb592..1d21c67fa82 100644 --- a/packages/vuetify/src/locale/pl.ts +++ b/packages/vuetify/src/locale/pl.ts @@ -58,6 +58,11 @@ export default { title: 'Wybór zakresu dat', header: 'Wprowadź zakres dat', }, + week: { + title: 'Wybór tygodnia', + header: 'Wprowadź tydzień', + selected: 'Tydzień {0}, {1}', + }, title: 'Wybór daty', header: 'Wprowadź datę', input: { diff --git a/packages/vuetify/src/locale/pt.ts b/packages/vuetify/src/locale/pt.ts index f7de2659a37..53611986165 100644 --- a/packages/vuetify/src/locale/pt.ts +++ b/packages/vuetify/src/locale/pt.ts @@ -58,6 +58,11 @@ export default { title: 'Selecione as datas', header: 'Digite as datas', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Selecione a data', header: 'Digite a data', input: { diff --git a/packages/vuetify/src/locale/ro.ts b/packages/vuetify/src/locale/ro.ts index eafff0aa091..39b9ec7ff9f 100644 --- a/packages/vuetify/src/locale/ro.ts +++ b/packages/vuetify/src/locale/ro.ts @@ -58,6 +58,11 @@ export default { title: 'Selectați datele', header: 'Introduceți datele', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Selectați data', header: 'Introduceți data', input: { diff --git a/packages/vuetify/src/locale/ru.ts b/packages/vuetify/src/locale/ru.ts index 06d899a3cb8..4cd70442e26 100644 --- a/packages/vuetify/src/locale/ru.ts +++ b/packages/vuetify/src/locale/ru.ts @@ -58,6 +58,11 @@ export default { title: 'Выбранные даты', header: 'Ввод дат', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Выбор даты', header: 'Ввод даты', input: { diff --git a/packages/vuetify/src/locale/sk.ts b/packages/vuetify/src/locale/sk.ts index 9dd9241b290..a4719b9f462 100644 --- a/packages/vuetify/src/locale/sk.ts +++ b/packages/vuetify/src/locale/sk.ts @@ -58,6 +58,11 @@ export default { title: 'Vyberte rozsah dátumov', header: 'Zadajte rozsah dátumov', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Vyberte dátum', header: 'Zadajte dátum', input: { diff --git a/packages/vuetify/src/locale/sl.ts b/packages/vuetify/src/locale/sl.ts index 03a1990837b..9f54b9eecd9 100644 --- a/packages/vuetify/src/locale/sl.ts +++ b/packages/vuetify/src/locale/sl.ts @@ -58,6 +58,11 @@ export default { title: 'Izberite datume', header: 'Vnesite datume', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Izberite datum', header: 'Vnesite datum', input: { diff --git a/packages/vuetify/src/locale/sr-Cyrl.ts b/packages/vuetify/src/locale/sr-Cyrl.ts index a8d88ddeabe..d1b6810e56d 100644 --- a/packages/vuetify/src/locale/sr-Cyrl.ts +++ b/packages/vuetify/src/locale/sr-Cyrl.ts @@ -58,6 +58,11 @@ export default { title: 'Изаберите датуме', header: 'Унесите датуме', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Изаберите датум', header: 'Унесите датум', input: { diff --git a/packages/vuetify/src/locale/sr-Latn.ts b/packages/vuetify/src/locale/sr-Latn.ts index d817dc32e32..7d49e76752d 100644 --- a/packages/vuetify/src/locale/sr-Latn.ts +++ b/packages/vuetify/src/locale/sr-Latn.ts @@ -58,6 +58,11 @@ export default { title: 'Izaberite datume', header: 'Unesite datume', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Izaberite datum', header: 'Unesite datum', input: { diff --git a/packages/vuetify/src/locale/sv.ts b/packages/vuetify/src/locale/sv.ts index 23da442be48..6663ee6ceee 100644 --- a/packages/vuetify/src/locale/sv.ts +++ b/packages/vuetify/src/locale/sv.ts @@ -58,6 +58,11 @@ export default { title: 'Välj datum', header: 'Välj datum', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Välj datum', header: 'Välj datum', input: { diff --git a/packages/vuetify/src/locale/th.ts b/packages/vuetify/src/locale/th.ts index 56dd05be596..ac162802a87 100644 --- a/packages/vuetify/src/locale/th.ts +++ b/packages/vuetify/src/locale/th.ts @@ -58,6 +58,11 @@ export default { title: 'เลือกวันที่', header: 'ป้อนวันที่', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'เลือกวันที่', header: 'ป้อนวันที่', input: { diff --git a/packages/vuetify/src/locale/tr.ts b/packages/vuetify/src/locale/tr.ts index c43c9079b59..af69bf019b5 100644 --- a/packages/vuetify/src/locale/tr.ts +++ b/packages/vuetify/src/locale/tr.ts @@ -58,6 +58,11 @@ export default { title: 'Tarihleri seçin', header: 'Tarihleri girin', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Tarih seçin', header: 'Tarih girin', input: { diff --git a/packages/vuetify/src/locale/uk.ts b/packages/vuetify/src/locale/uk.ts index d2d342e39cd..e5dc2d29a61 100644 --- a/packages/vuetify/src/locale/uk.ts +++ b/packages/vuetify/src/locale/uk.ts @@ -58,6 +58,11 @@ export default { title: 'Оберіть дати', header: 'Введіть дати', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Оберіть дату', header: 'Введіть дату', input: { diff --git a/packages/vuetify/src/locale/vi.ts b/packages/vuetify/src/locale/vi.ts index 8298fba56d6..795c45e0bb9 100644 --- a/packages/vuetify/src/locale/vi.ts +++ b/packages/vuetify/src/locale/vi.ts @@ -58,6 +58,11 @@ export default { title: 'Chọn ngày', header: 'Nhập ngày', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: 'Chọn ngày', header: 'Nhập ngày', input: { diff --git a/packages/vuetify/src/locale/zh-Hans.ts b/packages/vuetify/src/locale/zh-Hans.ts index 06f392282e1..ac6219de8fb 100644 --- a/packages/vuetify/src/locale/zh-Hans.ts +++ b/packages/vuetify/src/locale/zh-Hans.ts @@ -58,6 +58,11 @@ export default { title: '选择日期', header: '输入日期', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: '选择日期', header: '输入日期', input: { diff --git a/packages/vuetify/src/locale/zh-Hant.ts b/packages/vuetify/src/locale/zh-Hant.ts index beaef638a67..778ead73c5f 100644 --- a/packages/vuetify/src/locale/zh-Hant.ts +++ b/packages/vuetify/src/locale/zh-Hant.ts @@ -58,6 +58,11 @@ export default { title: '選擇日期範圍', header: '輸入日期範圍', }, + week: { + title: 'Select week', + header: 'Enter week', + selected: 'Week {0}, {1}', + }, title: '選擇日期', header: '輸入日期', input: {