@vuetify/nightly 3.8.1-dev.2025-04-07 → 3.8.1-master.2025-04-08

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 (47) hide show
  1. package/CHANGELOG.md +9 -5
  2. package/dist/json/attributes.json +2967 -2967
  3. package/dist/json/importMap-labs.json +36 -36
  4. package/dist/json/importMap.json +172 -172
  5. package/dist/json/web-types.json +5714 -5714
  6. package/dist/vuetify-labs.cjs +108 -191
  7. package/dist/vuetify-labs.css +3534 -3534
  8. package/dist/vuetify-labs.d.ts +67 -65
  9. package/dist/vuetify-labs.esm.js +108 -191
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +108 -191
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +108 -191
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +5837 -5837
  16. package/dist/vuetify.d.ts +67 -65
  17. package/dist/vuetify.esm.js +108 -191
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +108 -191
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +278 -266
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDataTable/VDataTable.css +1 -1
  25. package/lib/components/VDataTable/VDataTable.sass +1 -1
  26. package/lib/composables/calendar.js +2 -2
  27. package/lib/composables/calendar.js.map +1 -1
  28. package/lib/composables/date/DateAdapter.d.ts +1 -0
  29. package/lib/composables/date/DateAdapter.js.map +1 -1
  30. package/lib/composables/date/adapters/vuetify.d.ts +1 -0
  31. package/lib/composables/date/adapters/vuetify.js +101 -160
  32. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  33. package/lib/composables/date/date.d.ts +1 -1
  34. package/lib/composables/date/date.js +0 -20
  35. package/lib/composables/date/date.js.map +1 -1
  36. package/lib/composables/filter.js +2 -1
  37. package/lib/composables/filter.js.map +1 -1
  38. package/lib/composables/virtual.js +1 -6
  39. package/lib/composables/virtual.js.map +1 -1
  40. package/lib/entry-bundler.d.ts +1 -0
  41. package/lib/entry-bundler.js +1 -1
  42. package/lib/entry-bundler.js.map +1 -1
  43. package/lib/framework.d.ts +67 -65
  44. package/lib/framework.js +1 -1
  45. package/lib/framework.js.map +1 -1
  46. package/lib/labs/entry-bundler.d.ts +1 -0
  47. package/package.json +4 -4
package/dist/vuetify.d.ts CHANGED
@@ -39,6 +39,7 @@ interface DateAdapter<T = unknown> {
39
39
  getDiff(date: T, comparing: T | string, unit?: string): number;
40
40
  getWeekArray(date: T, firstDayOfWeek?: number | string): T[][];
41
41
  getWeekdays(firstDayOfWeek?: number | string): string[];
42
+ getWeek(date: T, firstDayOfWeek?: number | string, firstWeekMinSize?: number): number;
42
43
  getMonth(date: T): number;
43
44
  setMonth(date: T, month: number): T;
44
45
  getDate(date: T): number;
@@ -82888,6 +82889,7 @@ declare const createVuetify: {
82888
82889
  getDiff: (date: unknown, comparing: unknown, unit?: string) => number;
82889
82890
  getWeekArray: (date: unknown, firstDayOfWeek?: number | string) => unknown[][];
82890
82891
  getWeekdays: (firstDayOfWeek?: number | string) => string[];
82892
+ getWeek: (date: unknown, firstDayOfWeek?: number | string, firstWeekMinSize?: number) => number;
82891
82893
  getMonth: (date: unknown) => number;
82892
82894
  setMonth: (date: unknown, month: number) => unknown;
82893
82895
  getDate: (date: unknown) => number;
@@ -82947,36 +82949,46 @@ declare module 'vue' {
82947
82949
  VAppBar: VAppBar
82948
82950
  VAppBarNavIcon: VAppBarNavIcon
82949
82951
  VAppBarTitle: VAppBarTitle
82950
- VAvatar: VAvatar
82952
+ VBadge: VBadge
82951
82953
  VAlert: VAlert
82952
82954
  VAlertTitle: VAlertTitle
82953
82955
  VAutocomplete: VAutocomplete
82954
- VBadge: VBadge
82955
- VBanner: VBanner
82956
- VBannerActions: VBannerActions
82957
- VBannerText: VBannerText
82956
+ VAvatar: VAvatar
82957
+ VBottomNavigation: VBottomNavigation
82958
82958
  VBreadcrumbs: VBreadcrumbs
82959
82959
  VBreadcrumbsItem: VBreadcrumbsItem
82960
82960
  VBreadcrumbsDivider: VBreadcrumbsDivider
82961
+ VBtn: VBtn
82962
+ VBanner: VBanner
82963
+ VBannerActions: VBannerActions
82964
+ VBannerText: VBannerText
82961
82965
  VBottomSheet: VBottomSheet
82962
- VBottomNavigation: VBottomNavigation
82966
+ VBtnToggle: VBtnToggle
82963
82967
  VBtnGroup: VBtnGroup
82964
- VBtn: VBtn
82965
- VCheckbox: VCheckbox
82966
- VCheckboxBtn: VCheckboxBtn
82968
+ VCarousel: VCarousel
82969
+ VCarouselItem: VCarouselItem
82967
82970
  VCard: VCard
82968
82971
  VCardActions: VCardActions
82969
82972
  VCardItem: VCardItem
82970
82973
  VCardSubtitle: VCardSubtitle
82971
82974
  VCardText: VCardText
82972
82975
  VCardTitle: VCardTitle
82973
- VBtnToggle: VBtnToggle
82974
82976
  VChipGroup: VChipGroup
82975
- VCarousel: VCarousel
82976
- VCarouselItem: VCarouselItem
82977
+ VCheckbox: VCheckbox
82978
+ VCheckboxBtn: VCheckboxBtn
82979
+ VChip: VChip
82977
82980
  VColorPicker: VColorPicker
82978
82981
  VCode: VCode
82982
+ VCounter: VCounter
82979
82983
  VCombobox: VCombobox
82984
+ VDialog: VDialog
82985
+ VDatePicker: VDatePicker
82986
+ VDatePickerControls: VDatePickerControls
82987
+ VDatePickerHeader: VDatePickerHeader
82988
+ VDatePickerMonth: VDatePickerMonth
82989
+ VDatePickerMonths: VDatePickerMonths
82990
+ VDatePickerYears: VDatePickerYears
82991
+ VDivider: VDivider
82980
82992
  VDataTable: VDataTable
82981
82993
  VDataTableHeaders: VDataTableHeaders
82982
82994
  VDataTableFooter: VDataTableFooter
@@ -82984,38 +82996,28 @@ declare module 'vue' {
82984
82996
  VDataTableRow: VDataTableRow
82985
82997
  VDataTableVirtual: VDataTableVirtual
82986
82998
  VDataTableServer: VDataTableServer
82987
- VDatePicker: VDatePicker
82988
- VDatePickerControls: VDatePickerControls
82989
- VDatePickerHeader: VDatePickerHeader
82990
- VDatePickerMonth: VDatePickerMonth
82991
- VDatePickerMonths: VDatePickerMonths
82992
- VDatePickerYears: VDatePickerYears
82993
- VCounter: VCounter
82994
- VChip: VChip
82999
+ VFab: VFab
82995
83000
  VEmptyState: VEmptyState
82996
- VDivider: VDivider
83001
+ VField: VField
83002
+ VFieldLabel: VFieldLabel
83003
+ VFileInput: VFileInput
82997
83004
  VExpansionPanels: VExpansionPanels
82998
83005
  VExpansionPanel: VExpansionPanel
82999
83006
  VExpansionPanelText: VExpansionPanelText
83000
83007
  VExpansionPanelTitle: VExpansionPanelTitle
83001
- VDialog: VDialog
83002
- VFab: VFab
83003
- VField: VField
83004
- VFieldLabel: VFieldLabel
83005
83008
  VFooter: VFooter
83006
- VFileInput: VFileInput
83009
+ VImg: VImg
83007
83010
  VIcon: VIcon
83008
83011
  VComponentIcon: VComponentIcon
83009
83012
  VSvgIcon: VSvgIcon
83010
83013
  VLigatureIcon: VLigatureIcon
83011
83014
  VClassIcon: VClassIcon
83012
- VInput: VInput
83013
- VLabel: VLabel
83014
83015
  VInfiniteScroll: VInfiniteScroll
83016
+ VKbd: VKbd
83015
83017
  VItemGroup: VItemGroup
83016
83018
  VItem: VItem
83017
- VKbd: VKbd
83018
- VImg: VImg
83019
+ VInput: VInput
83020
+ VMain: VMain
83019
83021
  VList: VList
83020
83022
  VListGroup: VListGroup
83021
83023
  VListImg: VListImg
@@ -83025,74 +83027,74 @@ declare module 'vue' {
83025
83027
  VListItemSubtitle: VListItemSubtitle
83026
83028
  VListItemTitle: VListItemTitle
83027
83029
  VListSubheader: VListSubheader
83028
- VMain: VMain
83029
- VNavigationDrawer: VNavigationDrawer
83030
+ VLabel: VLabel
83030
83031
  VMenu: VMenu
83031
- VOtpInput: VOtpInput
83032
- VOverlay: VOverlay
83033
- VMessages: VMessages
83032
+ VNavigationDrawer: VNavigationDrawer
83034
83033
  VNumberInput: VNumberInput
83035
- VPagination: VPagination
83034
+ VMessages: VMessages
83035
+ VOverlay: VOverlay
83036
+ VOtpInput: VOtpInput
83036
83037
  VProgressLinear: VProgressLinear
83038
+ VPagination: VPagination
83037
83039
  VRadioGroup: VRadioGroup
83038
83040
  VProgressCircular: VProgressCircular
83039
- VSelect: VSelect
83040
83041
  VRating: VRating
83042
+ VSelect: VSelect
83041
83043
  VSelectionControl: VSelectionControl
83042
- VSelectionControlGroup: VSelectionControlGroup
83043
- VSlideGroup: VSlideGroup
83044
- VSlideGroupItem: VSlideGroupItem
83045
- VSnackbar: VSnackbar
83046
83044
  VSheet: VSheet
83047
83045
  VSkeletonLoader: VSkeletonLoader
83046
+ VSlideGroup: VSlideGroup
83047
+ VSlideGroupItem: VSlideGroupItem
83048
+ VSelectionControlGroup: VSelectionControlGroup
83048
83049
  VSlider: VSlider
83049
- VSwitch: VSwitch
83050
- VTab: VTab
83051
- VTabs: VTabs
83052
- VTabsWindow: VTabsWindow
83053
- VTabsWindowItem: VTabsWindowItem
83054
- VSystemBar: VSystemBar
83050
+ VSnackbar: VSnackbar
83055
83051
  VStepper: VStepper
83056
83052
  VStepperActions: VStepperActions
83057
83053
  VStepperHeader: VStepperHeader
83058
83054
  VStepperItem: VStepperItem
83059
83055
  VStepperWindow: VStepperWindow
83060
83056
  VStepperWindowItem: VStepperWindowItem
83061
- VTextarea: VTextarea
83057
+ VTab: VTab
83058
+ VTabs: VTabs
83059
+ VTabsWindow: VTabsWindow
83060
+ VTabsWindowItem: VTabsWindowItem
83061
+ VSwitch: VSwitch
83062
83062
  VTable: VTable
83063
- VToolbar: VToolbar
83064
- VToolbarTitle: VToolbarTitle
83065
- VToolbarItems: VToolbarItems
83066
83063
  VTextField: VTextField
83064
+ VSystemBar: VSystemBar
83065
+ VTextarea: VTextarea
83066
+ VTooltip: VTooltip
83067
83067
  VTimeline: VTimeline
83068
83068
  VTimelineItem: VTimelineItem
83069
+ VToolbar: VToolbar
83070
+ VToolbarTitle: VToolbarTitle
83071
+ VToolbarItems: VToolbarItems
83069
83072
  VWindow: VWindow
83070
83073
  VWindowItem: VWindowItem
83071
- VTooltip: VTooltip
83072
83074
  VConfirmEdit: VConfirmEdit
83073
83075
  VDataIterator: VDataIterator
83074
83076
  VDefaultsProvider: VDefaultsProvider
83075
83077
  VForm: VForm
83076
- VHover: VHover
83077
83078
  VContainer: VContainer
83078
83079
  VCol: VCol
83079
83080
  VRow: VRow
83080
83081
  VSpacer: VSpacer
83082
+ VHover: VHover
83083
+ VLazy: VLazy
83081
83084
  VLayout: VLayout
83082
83085
  VLayoutItem: VLayoutItem
83083
- VLazy: VLazy
83084
83086
  VLocaleProvider: VLocaleProvider
83085
83087
  VNoSsr: VNoSsr
83086
83088
  VParallax: VParallax
83087
- VRadio: VRadio
83088
83089
  VRangeSlider: VRangeSlider
83090
+ VRadio: VRadio
83089
83091
  VResponsive: VResponsive
83090
83092
  VSnackbarQueue: VSnackbarQueue
83091
83093
  VSparkline: VSparkline
83092
83094
  VSpeedDial: VSpeedDial
83093
83095
  VThemeProvider: VThemeProvider
83094
- VValidation: VValidation
83095
83096
  VVirtualScroll: VVirtualScroll
83097
+ VValidation: VValidation
83096
83098
  VFabTransition: VFabTransition
83097
83099
  VDialogBottomTransition: VDialogBottomTransition
83098
83100
  VDialogTopTransition: VDialogTopTransition
@@ -83111,24 +83113,24 @@ declare module 'vue' {
83111
83113
  VDialogTransition: VDialogTransition
83112
83114
  VFileUpload: VFileUpload
83113
83115
  VFileUploadItem: VFileUploadItem
83116
+ VPicker: VPicker
83117
+ VPickerTitle: VPickerTitle
83118
+ VIconBtn: VIconBtn
83114
83119
  VStepperVertical: VStepperVertical
83115
83120
  VStepperVerticalItem: VStepperVerticalItem
83116
83121
  VStepperVerticalActions: VStepperVerticalActions
83122
+ VTreeview: VTreeview
83123
+ VTreeviewItem: VTreeviewItem
83124
+ VTreeviewGroup: VTreeviewGroup
83125
+ VTimePicker: VTimePicker
83126
+ VTimePickerClock: VTimePickerClock
83127
+ VTimePickerControls: VTimePickerControls
83117
83128
  VCalendar: VCalendar
83118
83129
  VCalendarDay: VCalendarDay
83119
83130
  VCalendarHeader: VCalendarHeader
83120
83131
  VCalendarInterval: VCalendarInterval
83121
83132
  VCalendarIntervalEvent: VCalendarIntervalEvent
83122
83133
  VCalendarMonthDay: VCalendarMonthDay
83123
- VIconBtn: VIconBtn
83124
- VPicker: VPicker
83125
- VPickerTitle: VPickerTitle
83126
- VTimePicker: VTimePicker
83127
- VTimePickerClock: VTimePickerClock
83128
- VTimePickerControls: VTimePickerControls
83129
- VTreeview: VTreeview
83130
- VTreeviewItem: VTreeviewItem
83131
- VTreeviewGroup: VTreeviewGroup
83132
83134
  VDateInput: VDateInput
83133
83135
  VPullToRefresh: VPullToRefresh
83134
83136
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.1-dev.2025-04-07
2
+ * Vuetify v3.8.1-master.2025-04-08
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -12568,12 +12568,7 @@ function useVirtual(props, items) {
12568
12568
  }
12569
12569
  function calculateOffset(index) {
12570
12570
  index = clamp(index, 0, items.value.length - 1);
12571
- const whole = Math.floor(index);
12572
- const fraction = index % 1;
12573
- const next = whole + 1;
12574
- const wholeOffset = offsets[whole] || 0;
12575
- const nextOffset = offsets[next] || wholeOffset;
12576
- return wholeOffset + (nextOffset - wholeOffset) * fraction;
12571
+ return offsets[index] || 0;
12577
12572
  }
12578
12573
  function calculateIndex(scrollTop) {
12579
12574
  return binaryClosest(offsets, scrollTop);
@@ -13320,6 +13315,7 @@ const VSelect = genericComponent()({
13320
13315
  // Composables
13321
13316
  const defaultFilter = (value, query, item) => {
13322
13317
  if (value == null || query == null) return -1;
13318
+ if (!query.length) return 0;
13323
13319
  value = value.toString().toLocaleLowerCase();
13324
13320
  query = query.toString().toLocaleLowerCase();
13325
13321
  const result = [];
@@ -13332,7 +13328,7 @@ const defaultFilter = (value, query, item) => {
13332
13328
  };
13333
13329
  function normaliseMatch(match, query) {
13334
13330
  if (match == null || typeof match === 'boolean' || match === -1) return;
13335
- if (typeof match === 'number') return [[match, query.length]];
13331
+ if (typeof match === 'number') return [[match, match + query.length]];
13336
13332
  if (Array.isArray(match[0])) return match;
13337
13333
  return [match];
13338
13334
  }
@@ -17247,165 +17243,81 @@ const VPicker = genericComponent()({
17247
17243
 
17248
17244
  // Types
17249
17245
 
17250
- const firstDay = {
17251
- '001': 1,
17252
- AD: 1,
17253
- AE: 6,
17254
- AF: 6,
17255
- AG: 0,
17256
- AI: 1,
17257
- AL: 1,
17258
- AM: 1,
17259
- AN: 1,
17260
- AR: 1,
17261
- AS: 0,
17262
- AT: 1,
17263
- AU: 1,
17264
- AX: 1,
17265
- AZ: 1,
17266
- BA: 1,
17267
- BD: 0,
17268
- BE: 1,
17269
- BG: 1,
17270
- BH: 6,
17271
- BM: 1,
17272
- BN: 1,
17273
- BR: 0,
17274
- BS: 0,
17275
- BT: 0,
17276
- BW: 0,
17277
- BY: 1,
17278
- BZ: 0,
17279
- CA: 0,
17280
- CH: 1,
17281
- CL: 1,
17282
- CM: 1,
17283
- CN: 1,
17284
- CO: 0,
17285
- CR: 1,
17286
- CY: 1,
17287
- CZ: 1,
17288
- DE: 1,
17289
- DJ: 6,
17290
- DK: 1,
17291
- DM: 0,
17292
- DO: 0,
17293
- DZ: 6,
17294
- EC: 1,
17295
- EE: 1,
17296
- EG: 6,
17297
- ES: 1,
17298
- ET: 0,
17299
- FI: 1,
17300
- FJ: 1,
17301
- FO: 1,
17302
- FR: 1,
17303
- GB: 1,
17304
- 'GB-alt-variant': 0,
17305
- GE: 1,
17306
- GF: 1,
17307
- GP: 1,
17308
- GR: 1,
17309
- GT: 0,
17310
- GU: 0,
17311
- HK: 0,
17312
- HN: 0,
17313
- HR: 1,
17314
- HU: 1,
17315
- ID: 0,
17316
- IE: 1,
17317
- IL: 0,
17318
- IN: 0,
17319
- IQ: 6,
17320
- IR: 6,
17321
- IS: 1,
17322
- IT: 1,
17323
- JM: 0,
17324
- JO: 6,
17325
- JP: 0,
17326
- KE: 0,
17327
- KG: 1,
17328
- KH: 0,
17329
- KR: 0,
17330
- KW: 6,
17331
- KZ: 1,
17332
- LA: 0,
17333
- LB: 1,
17334
- LI: 1,
17335
- LK: 1,
17336
- LT: 1,
17337
- LU: 1,
17338
- LV: 1,
17339
- LY: 6,
17340
- MC: 1,
17341
- MD: 1,
17342
- ME: 1,
17343
- MH: 0,
17344
- MK: 1,
17345
- MM: 0,
17346
- MN: 1,
17347
- MO: 0,
17348
- MQ: 1,
17349
- MT: 0,
17350
- MV: 5,
17351
- MX: 0,
17352
- MY: 1,
17353
- MZ: 0,
17354
- NI: 0,
17355
- NL: 1,
17356
- NO: 1,
17357
- NP: 0,
17358
- NZ: 1,
17359
- OM: 6,
17360
- PA: 0,
17361
- PE: 0,
17362
- PH: 0,
17363
- PK: 0,
17364
- PL: 1,
17365
- PR: 0,
17366
- PT: 0,
17367
- PY: 0,
17368
- QA: 6,
17369
- RE: 1,
17370
- RO: 1,
17371
- RS: 1,
17372
- RU: 1,
17373
- SA: 0,
17374
- SD: 6,
17375
- SE: 1,
17376
- SG: 0,
17377
- SI: 1,
17378
- SK: 1,
17379
- SM: 1,
17380
- SV: 0,
17381
- SY: 6,
17382
- TH: 0,
17383
- TJ: 1,
17384
- TM: 1,
17385
- TR: 1,
17386
- TT: 0,
17387
- TW: 0,
17388
- UA: 1,
17389
- UM: 0,
17390
- US: 0,
17391
- UY: 1,
17392
- UZ: 1,
17393
- VA: 1,
17394
- VE: 0,
17395
- VI: 0,
17396
- VN: 1,
17397
- WS: 0,
17398
- XK: 1,
17399
- YE: 0,
17400
- ZA: 0,
17401
- ZW: 0
17402
- };
17246
+ function weekInfo(locale) {
17247
+ // https://simplelocalize.io/data/locales/
17248
+ // then `new Intl.Locale(...).getWeekInfo()`
17249
+ const code = locale.slice(-2).toUpperCase();
17250
+ switch (true) {
17251
+ case locale === 'GB-alt-variant':
17252
+ {
17253
+ return {
17254
+ firstDay: 0,
17255
+ firstWeekSize: 4
17256
+ };
17257
+ }
17258
+ case locale === '001':
17259
+ {
17260
+ return {
17261
+ firstDay: 1,
17262
+ firstWeekSize: 1
17263
+ };
17264
+ }
17265
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17266
+ KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PY SA SG SV TH TT TW UM US
17267
+ VE VI WS YE ZA ZW`.includes(code):
17268
+ {
17269
+ return {
17270
+ firstDay: 0,
17271
+ firstWeekSize: 1
17272
+ };
17273
+ }
17274
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17275
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17276
+ {
17277
+ return {
17278
+ firstDay: 1,
17279
+ firstWeekSize: 1
17280
+ };
17281
+ }
17282
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17283
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17284
+ {
17285
+ return {
17286
+ firstDay: 1,
17287
+ firstWeekSize: 4
17288
+ };
17289
+ }
17290
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17291
+ {
17292
+ return {
17293
+ firstDay: 6,
17294
+ firstWeekSize: 1
17295
+ };
17296
+ }
17297
+ case code === 'MV':
17298
+ {
17299
+ return {
17300
+ firstDay: 5,
17301
+ firstWeekSize: 1
17302
+ };
17303
+ }
17304
+ case code === 'PT':
17305
+ {
17306
+ return {
17307
+ firstDay: 0,
17308
+ firstWeekSize: 4
17309
+ };
17310
+ }
17311
+ default:
17312
+ return null;
17313
+ }
17314
+ }
17403
17315
  function getWeekArray(date, locale, firstDayOfWeek) {
17404
17316
  const weeks = [];
17405
17317
  let currentWeek = [];
17406
17318
  const firstDayOfMonth = startOfMonth(date);
17407
17319
  const lastDayOfMonth = endOfMonth(date);
17408
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17320
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17409
17321
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17410
17322
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17411
17323
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17436,7 +17348,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
17436
17348
  return weeks;
17437
17349
  }
17438
17350
  function startOfWeek(date, locale, firstDayOfWeek) {
17439
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17351
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17440
17352
  const d = new Date(date);
17441
17353
  while (d.getDay() !== day) {
17442
17354
  d.setDate(d.getDate() - 1);
@@ -17445,7 +17357,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
17445
17357
  }
17446
17358
  function endOfWeek(date, locale) {
17447
17359
  const d = new Date(date);
17448
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17360
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17449
17361
  while (d.getDay() !== lastDay) {
17450
17362
  d.setDate(d.getDate() + 1);
17451
17363
  }
@@ -17480,7 +17392,7 @@ function date(value) {
17480
17392
  }
17481
17393
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17482
17394
  function getWeekdays(locale, firstDayOfWeek) {
17483
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17395
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17484
17396
  return createRange(7).map(i => {
17485
17397
  const weekday = new Date(sundayJanuarySecond2000);
17486
17398
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17728,6 +17640,24 @@ function getYear(date) {
17728
17640
  function getMonth(date) {
17729
17641
  return date.getMonth();
17730
17642
  }
17643
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17644
+ const weekInfoFromLocale = weekInfo(locale);
17645
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17646
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17647
+ function firstWeekSize(year) {
17648
+ const yearStart = new Date(year, 0, 1);
17649
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17650
+ }
17651
+ let year = getYear(date);
17652
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17653
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17654
+ year++;
17655
+ }
17656
+ const yearStart = new Date(year, 0, 1);
17657
+ const size = firstWeekSize(year);
17658
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17659
+ return 1 + getDiff(date, d1w1, 'weeks');
17660
+ }
17731
17661
  function getDate(date) {
17732
17662
  return date.getDate();
17733
17663
  }
@@ -17867,10 +17797,12 @@ class VuetifyDateAdapter {
17867
17797
  return addMonths(date, amount);
17868
17798
  }
17869
17799
  getWeekArray(date, firstDayOfWeek) {
17870
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17800
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17801
+ return getWeekArray(date, this.locale, firstDay);
17871
17802
  }
17872
17803
  startOfWeek(date, firstDayOfWeek) {
17873
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17804
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17805
+ return startOfWeek(date, this.locale, firstDay);
17874
17806
  }
17875
17807
  endOfWeek(date) {
17876
17808
  return endOfWeek(date, this.locale);
@@ -17930,7 +17862,8 @@ class VuetifyDateAdapter {
17930
17862
  return getDiff(date, comparing, unit);
17931
17863
  }
17932
17864
  getWeekdays(firstDayOfWeek) {
17933
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17865
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17866
+ return getWeekdays(this.locale, firstDay);
17934
17867
  }
17935
17868
  getYear(date) {
17936
17869
  return getYear(date);
@@ -17938,6 +17871,10 @@ class VuetifyDateAdapter {
17938
17871
  getMonth(date) {
17939
17872
  return getMonth(date);
17940
17873
  }
17874
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17875
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17876
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17877
+ }
17941
17878
  getDate(date) {
17942
17879
  return getDate(date);
17943
17880
  }
@@ -18041,26 +17978,6 @@ function useDate() {
18041
17978
  return createInstance(options, locale);
18042
17979
  }
18043
17980
 
18044
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
18045
- function getWeek(adapter, value) {
18046
- const date = adapter.toJsDate(value);
18047
- let year = date.getFullYear();
18048
- let d1w1 = new Date(year, 0, 1);
18049
- if (date < d1w1) {
18050
- year = year - 1;
18051
- d1w1 = new Date(year, 0, 1);
18052
- } else {
18053
- const tv = new Date(year + 1, 0, 1);
18054
- if (date >= tv) {
18055
- year = year + 1;
18056
- d1w1 = tv;
18057
- }
18058
- }
18059
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
18060
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
18061
- return Math.floor(diffDays / 7) + 1;
18062
- }
18063
-
18064
17981
  // Types
18065
17982
 
18066
17983
  const makeVColorPickerProps = propsFactory({
@@ -22343,7 +22260,7 @@ function useCalendar(props) {
22343
22260
  });
22344
22261
  const weekNumbers = computed(() => {
22345
22262
  return weeksInMonth.value.map(week => {
22346
- return week.length ? getWeek(adapter, week[0]) : null;
22263
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22347
22264
  });
22348
22265
  });
22349
22266
  function isDisabled(value) {
@@ -29241,7 +29158,7 @@ function createVuetify$1() {
29241
29158
  };
29242
29159
  });
29243
29160
  }
29244
- const version$1 = "3.8.1-dev.2025-04-07";
29161
+ const version$1 = "3.8.1-master.2025-04-08";
29245
29162
  createVuetify$1.version = version$1;
29246
29163
 
29247
29164
  // Vue's inject() can only be used in setup
@@ -29266,7 +29183,7 @@ const createVuetify = function () {
29266
29183
  ...options
29267
29184
  });
29268
29185
  };
29269
- const version = "3.8.1-dev.2025-04-07";
29186
+ const version = "3.8.1-master.2025-04-08";
29270
29187
  createVuetify.version = version;
29271
29188
 
29272
29189
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };