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

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 (43) hide show
  1. package/CHANGELOG.md +13 -3
  2. package/dist/json/attributes.json +2908 -2908
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +156 -156
  5. package/dist/json/web-types.json +5526 -5526
  6. package/dist/vuetify-labs.cjs +107 -185
  7. package/dist/vuetify-labs.css +6809 -6809
  8. package/dist/vuetify-labs.d.ts +52 -50
  9. package/dist/vuetify-labs.esm.js +107 -185
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +107 -185
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +107 -185
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +2799 -2799
  16. package/dist/vuetify.d.ts +52 -50
  17. package/dist/vuetify.esm.js +107 -185
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +107 -185
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +277 -263
  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/entry-bundler.d.ts +1 -0
  39. package/lib/entry-bundler.js +1 -1
  40. package/lib/framework.d.ts +52 -50
  41. package/lib/framework.js +1 -1
  42. package/lib/labs/entry-bundler.d.ts +1 -0
  43. 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;
@@ -82943,39 +82945,42 @@ declare module 'vue' {
82943
82945
  $children?: VNodeChild
82944
82946
  }
82945
82947
  export interface GlobalComponents {
82946
- VApp: VApp
82947
82948
  VAppBar: VAppBar
82948
82949
  VAppBarNavIcon: VAppBarNavIcon
82949
82950
  VAppBarTitle: VAppBarTitle
82951
+ VApp: VApp
82952
+ VAvatar: VAvatar
82953
+ VAutocomplete: VAutocomplete
82950
82954
  VAlert: VAlert
82951
82955
  VAlertTitle: VAlertTitle
82952
- VBadge: VBadge
82953
- VAvatar: VAvatar
82954
- VBottomSheet: VBottomSheet
82955
82956
  VBanner: VBanner
82956
82957
  VBannerActions: VBannerActions
82957
82958
  VBannerText: VBannerText
82958
- VBreadcrumbs: VBreadcrumbs
82959
- VBreadcrumbsItem: VBreadcrumbsItem
82960
- VBreadcrumbsDivider: VBreadcrumbsDivider
82961
82959
  VBottomNavigation: VBottomNavigation
82962
- VBtnToggle: VBtnToggle
82960
+ VBadge: VBadge
82963
82961
  VBtn: VBtn
82964
- VAutocomplete: VAutocomplete
82965
- VCarousel: VCarousel
82966
- VCarouselItem: VCarouselItem
82967
- VBtnGroup: VBtnGroup
82968
- VCheckbox: VCheckbox
82969
- VCheckboxBtn: VCheckboxBtn
82970
- VCode: VCode
82971
- VCombobox: VCombobox
82972
82962
  VCard: VCard
82973
82963
  VCardActions: VCardActions
82974
82964
  VCardItem: VCardItem
82975
82965
  VCardSubtitle: VCardSubtitle
82976
82966
  VCardText: VCardText
82977
82967
  VCardTitle: VCardTitle
82968
+ VBreadcrumbs: VBreadcrumbs
82969
+ VBreadcrumbsItem: VBreadcrumbsItem
82970
+ VBreadcrumbsDivider: VBreadcrumbsDivider
82971
+ VBottomSheet: VBottomSheet
82972
+ VBtnToggle: VBtnToggle
82973
+ VBtnGroup: VBtnGroup
82974
+ VCheckbox: VCheckbox
82975
+ VCheckboxBtn: VCheckboxBtn
82976
+ VChip: VChip
82977
+ VCounter: VCounter
82978
+ VCarousel: VCarousel
82979
+ VCarouselItem: VCarouselItem
82978
82980
  VChipGroup: VChipGroup
82981
+ VColorPicker: VColorPicker
82982
+ VCombobox: VCombobox
82983
+ VCode: VCode
82979
82984
  VDataTable: VDataTable
82980
82985
  VDataTableHeaders: VDataTableHeaders
82981
82986
  VDataTableFooter: VDataTableFooter
@@ -82983,38 +82988,38 @@ declare module 'vue' {
82983
82988
  VDataTableRow: VDataTableRow
82984
82989
  VDataTableVirtual: VDataTableVirtual
82985
82990
  VDataTableServer: VDataTableServer
82986
- VColorPicker: VColorPicker
82987
- VCounter: VCounter
82988
- VChip: VChip
82989
- VDivider: VDivider
82990
82991
  VDatePicker: VDatePicker
82991
82992
  VDatePickerControls: VDatePickerControls
82992
82993
  VDatePickerHeader: VDatePickerHeader
82993
82994
  VDatePickerMonth: VDatePickerMonth
82994
82995
  VDatePickerMonths: VDatePickerMonths
82995
82996
  VDatePickerYears: VDatePickerYears
82996
- VFab: VFab
82997
82997
  VDialog: VDialog
82998
+ VDivider: VDivider
82998
82999
  VEmptyState: VEmptyState
82999
- VFooter: VFooter
83000
+ VFab: VFab
83001
+ VIcon: VIcon
83002
+ VComponentIcon: VComponentIcon
83003
+ VSvgIcon: VSvgIcon
83004
+ VLigatureIcon: VLigatureIcon
83005
+ VClassIcon: VClassIcon
83000
83006
  VField: VField
83001
83007
  VFieldLabel: VFieldLabel
83002
83008
  VExpansionPanels: VExpansionPanels
83003
83009
  VExpansionPanel: VExpansionPanel
83004
83010
  VExpansionPanelText: VExpansionPanelText
83005
83011
  VExpansionPanelTitle: VExpansionPanelTitle
83012
+ VFooter: VFooter
83006
83013
  VFileInput: VFileInput
83007
- VIcon: VIcon
83008
- VComponentIcon: VComponentIcon
83009
- VSvgIcon: VSvgIcon
83010
- VLigatureIcon: VLigatureIcon
83011
- VClassIcon: VClassIcon
83012
83014
  VImg: VImg
83013
- VInput: VInput
83014
83015
  VItemGroup: VItemGroup
83015
83016
  VItem: VItem
83017
+ VInput: VInput
83016
83018
  VInfiniteScroll: VInfiniteScroll
83017
83019
  VLabel: VLabel
83020
+ VKbd: VKbd
83021
+ VMain: VMain
83022
+ VNavigationDrawer: VNavigationDrawer
83018
83023
  VList: VList
83019
83024
  VListGroup: VListGroup
83020
83025
  VListImg: VListImg
@@ -83024,43 +83029,40 @@ declare module 'vue' {
83024
83029
  VListItemSubtitle: VListItemSubtitle
83025
83030
  VListItemTitle: VListItemTitle
83026
83031
  VListSubheader: VListSubheader
83027
- VKbd: VKbd
83028
- VMain: VMain
83029
- VMessages: VMessages
83030
- VNavigationDrawer: VNavigationDrawer
83031
83032
  VMenu: VMenu
83033
+ VMessages: VMessages
83032
83034
  VNumberInput: VNumberInput
83033
83035
  VOtpInput: VOtpInput
83034
83036
  VOverlay: VOverlay
83035
- VPagination: VPagination
83036
83037
  VProgressLinear: VProgressLinear
83038
+ VProgressCircular: VProgressCircular
83039
+ VPagination: VPagination
83037
83040
  VRating: VRating
83038
83041
  VRadioGroup: VRadioGroup
83039
- VProgressCircular: VProgressCircular
83040
83042
  VSelect: VSelect
83041
- VSelectionControl: VSelectionControl
83042
- VSkeletonLoader: VSkeletonLoader
83043
83043
  VSelectionControlGroup: VSelectionControlGroup
83044
+ VSelectionControl: VSelectionControl
83045
+ VSheet: VSheet
83044
83046
  VSlideGroup: VSlideGroup
83045
83047
  VSlideGroupItem: VSlideGroupItem
83046
- VSheet: VSheet
83048
+ VSkeletonLoader: VSkeletonLoader
83049
+ VSnackbar: VSnackbar
83050
+ VSlider: VSlider
83047
83051
  VStepper: VStepper
83048
83052
  VStepperActions: VStepperActions
83049
83053
  VStepperHeader: VStepperHeader
83050
83054
  VStepperItem: VStepperItem
83051
83055
  VStepperWindow: VStepperWindow
83052
83056
  VStepperWindowItem: VStepperWindowItem
83053
- VSnackbar: VSnackbar
83054
- VSlider: VSlider
83055
83057
  VTextarea: VTextarea
83058
+ VSwitch: VSwitch
83059
+ VSystemBar: VSystemBar
83056
83060
  VTab: VTab
83057
83061
  VTabs: VTabs
83058
83062
  VTabsWindow: VTabsWindow
83059
83063
  VTabsWindowItem: VTabsWindowItem
83060
- VSwitch: VSwitch
83061
- VSystemBar: VSystemBar
83062
- VTextField: VTextField
83063
83064
  VTable: VTable
83065
+ VTextField: VTextField
83064
83066
  VTimeline: VTimeline
83065
83067
  VTimelineItem: VTimelineItem
83066
83068
  VToolbar: VToolbar
@@ -83072,12 +83074,12 @@ declare module 'vue' {
83072
83074
  VConfirmEdit: VConfirmEdit
83073
83075
  VDataIterator: VDataIterator
83074
83076
  VDefaultsProvider: VDefaultsProvider
83077
+ VHover: VHover
83075
83078
  VForm: VForm
83076
83079
  VContainer: VContainer
83077
83080
  VCol: VCol
83078
83081
  VRow: VRow
83079
83082
  VSpacer: VSpacer
83080
- VHover: VHover
83081
83083
  VLayout: VLayout
83082
83084
  VLayoutItem: VLayoutItem
83083
83085
  VLazy: VLazy
@@ -83085,14 +83087,14 @@ declare module 'vue' {
83085
83087
  VNoSsr: VNoSsr
83086
83088
  VParallax: VParallax
83087
83089
  VRangeSlider: VRangeSlider
83088
- VRadio: VRadio
83089
83090
  VResponsive: VResponsive
83091
+ VRadio: VRadio
83090
83092
  VSnackbarQueue: VSnackbarQueue
83091
83093
  VSparkline: VSparkline
83092
83094
  VSpeedDial: VSpeedDial
83093
83095
  VThemeProvider: VThemeProvider
83094
- VVirtualScroll: VVirtualScroll
83095
83096
  VValidation: VValidation
83097
+ VVirtualScroll: VVirtualScroll
83096
83098
  VFabTransition: VFabTransition
83097
83099
  VDialogBottomTransition: VDialogBottomTransition
83098
83100
  VDialogTopTransition: VDialogTopTransition
@@ -83109,26 +83111,26 @@ declare module 'vue' {
83109
83111
  VExpandTransition: VExpandTransition
83110
83112
  VExpandXTransition: VExpandXTransition
83111
83113
  VDialogTransition: VDialogTransition
83112
- VFileUpload: VFileUpload
83113
- VFileUploadItem: VFileUploadItem
83114
83114
  VCalendar: VCalendar
83115
83115
  VCalendarDay: VCalendarDay
83116
83116
  VCalendarHeader: VCalendarHeader
83117
83117
  VCalendarInterval: VCalendarInterval
83118
83118
  VCalendarIntervalEvent: VCalendarIntervalEvent
83119
83119
  VCalendarMonthDay: VCalendarMonthDay
83120
+ VIconBtn: VIconBtn
83121
+ VFileUpload: VFileUpload
83122
+ VFileUploadItem: VFileUploadItem
83120
83123
  VTreeview: VTreeview
83121
83124
  VTreeviewItem: VTreeviewItem
83122
83125
  VTreeviewGroup: VTreeviewGroup
83123
- VPicker: VPicker
83124
- VPickerTitle: VPickerTitle
83125
83126
  VStepperVertical: VStepperVertical
83126
83127
  VStepperVerticalItem: VStepperVerticalItem
83127
83128
  VStepperVerticalActions: VStepperVerticalActions
83129
+ VPicker: VPicker
83130
+ VPickerTitle: VPickerTitle
83128
83131
  VTimePicker: VTimePicker
83129
83132
  VTimePickerClock: VTimePickerClock
83130
83133
  VTimePickerControls: VTimePickerControls
83131
- VIconBtn: VIconBtn
83132
83134
  VDateInput: VDateInput
83133
83135
  VPullToRefresh: VPullToRefresh
83134
83136
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.1-master.2025-04-07
2
+ * Vuetify v3.8.1-master.2025-04-09
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -13315,6 +13315,7 @@ const VSelect = genericComponent()({
13315
13315
  // Composables
13316
13316
  const defaultFilter = (value, query, item) => {
13317
13317
  if (value == null || query == null) return -1;
13318
+ if (!query.length) return 0;
13318
13319
  value = value.toString().toLocaleLowerCase();
13319
13320
  query = query.toString().toLocaleLowerCase();
13320
13321
  const result = [];
@@ -13327,7 +13328,7 @@ const defaultFilter = (value, query, item) => {
13327
13328
  };
13328
13329
  function normaliseMatch(match, query) {
13329
13330
  if (match == null || typeof match === 'boolean' || match === -1) return;
13330
- if (typeof match === 'number') return [[match, query.length]];
13331
+ if (typeof match === 'number') return [[match, match + query.length]];
13331
13332
  if (Array.isArray(match[0])) return match;
13332
13333
  return [match];
13333
13334
  }
@@ -17242,165 +17243,81 @@ const VPicker = genericComponent()({
17242
17243
 
17243
17244
  // Types
17244
17245
 
17245
- const firstDay = {
17246
- '001': 1,
17247
- AD: 1,
17248
- AE: 6,
17249
- AF: 6,
17250
- AG: 0,
17251
- AI: 1,
17252
- AL: 1,
17253
- AM: 1,
17254
- AN: 1,
17255
- AR: 1,
17256
- AS: 0,
17257
- AT: 1,
17258
- AU: 1,
17259
- AX: 1,
17260
- AZ: 1,
17261
- BA: 1,
17262
- BD: 0,
17263
- BE: 1,
17264
- BG: 1,
17265
- BH: 6,
17266
- BM: 1,
17267
- BN: 1,
17268
- BR: 0,
17269
- BS: 0,
17270
- BT: 0,
17271
- BW: 0,
17272
- BY: 1,
17273
- BZ: 0,
17274
- CA: 0,
17275
- CH: 1,
17276
- CL: 1,
17277
- CM: 1,
17278
- CN: 1,
17279
- CO: 0,
17280
- CR: 1,
17281
- CY: 1,
17282
- CZ: 1,
17283
- DE: 1,
17284
- DJ: 6,
17285
- DK: 1,
17286
- DM: 0,
17287
- DO: 0,
17288
- DZ: 6,
17289
- EC: 1,
17290
- EE: 1,
17291
- EG: 6,
17292
- ES: 1,
17293
- ET: 0,
17294
- FI: 1,
17295
- FJ: 1,
17296
- FO: 1,
17297
- FR: 1,
17298
- GB: 1,
17299
- 'GB-alt-variant': 0,
17300
- GE: 1,
17301
- GF: 1,
17302
- GP: 1,
17303
- GR: 1,
17304
- GT: 0,
17305
- GU: 0,
17306
- HK: 0,
17307
- HN: 0,
17308
- HR: 1,
17309
- HU: 1,
17310
- ID: 0,
17311
- IE: 1,
17312
- IL: 0,
17313
- IN: 0,
17314
- IQ: 6,
17315
- IR: 6,
17316
- IS: 1,
17317
- IT: 1,
17318
- JM: 0,
17319
- JO: 6,
17320
- JP: 0,
17321
- KE: 0,
17322
- KG: 1,
17323
- KH: 0,
17324
- KR: 0,
17325
- KW: 6,
17326
- KZ: 1,
17327
- LA: 0,
17328
- LB: 1,
17329
- LI: 1,
17330
- LK: 1,
17331
- LT: 1,
17332
- LU: 1,
17333
- LV: 1,
17334
- LY: 6,
17335
- MC: 1,
17336
- MD: 1,
17337
- ME: 1,
17338
- MH: 0,
17339
- MK: 1,
17340
- MM: 0,
17341
- MN: 1,
17342
- MO: 0,
17343
- MQ: 1,
17344
- MT: 0,
17345
- MV: 5,
17346
- MX: 0,
17347
- MY: 1,
17348
- MZ: 0,
17349
- NI: 0,
17350
- NL: 1,
17351
- NO: 1,
17352
- NP: 0,
17353
- NZ: 1,
17354
- OM: 6,
17355
- PA: 0,
17356
- PE: 0,
17357
- PH: 0,
17358
- PK: 0,
17359
- PL: 1,
17360
- PR: 0,
17361
- PT: 0,
17362
- PY: 0,
17363
- QA: 6,
17364
- RE: 1,
17365
- RO: 1,
17366
- RS: 1,
17367
- RU: 1,
17368
- SA: 0,
17369
- SD: 6,
17370
- SE: 1,
17371
- SG: 0,
17372
- SI: 1,
17373
- SK: 1,
17374
- SM: 1,
17375
- SV: 0,
17376
- SY: 6,
17377
- TH: 0,
17378
- TJ: 1,
17379
- TM: 1,
17380
- TR: 1,
17381
- TT: 0,
17382
- TW: 0,
17383
- UA: 1,
17384
- UM: 0,
17385
- US: 0,
17386
- UY: 1,
17387
- UZ: 1,
17388
- VA: 1,
17389
- VE: 0,
17390
- VI: 0,
17391
- VN: 1,
17392
- WS: 0,
17393
- XK: 1,
17394
- YE: 0,
17395
- ZA: 0,
17396
- ZW: 0
17397
- };
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
+ }
17398
17315
  function getWeekArray(date, locale, firstDayOfWeek) {
17399
17316
  const weeks = [];
17400
17317
  let currentWeek = [];
17401
17318
  const firstDayOfMonth = startOfMonth(date);
17402
17319
  const lastDayOfMonth = endOfMonth(date);
17403
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17320
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17404
17321
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17405
17322
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17406
17323
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17431,7 +17348,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
17431
17348
  return weeks;
17432
17349
  }
17433
17350
  function startOfWeek(date, locale, firstDayOfWeek) {
17434
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17351
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17435
17352
  const d = new Date(date);
17436
17353
  while (d.getDay() !== day) {
17437
17354
  d.setDate(d.getDate() - 1);
@@ -17440,7 +17357,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
17440
17357
  }
17441
17358
  function endOfWeek(date, locale) {
17442
17359
  const d = new Date(date);
17443
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17360
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17444
17361
  while (d.getDay() !== lastDay) {
17445
17362
  d.setDate(d.getDate() + 1);
17446
17363
  }
@@ -17475,7 +17392,7 @@ function date(value) {
17475
17392
  }
17476
17393
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17477
17394
  function getWeekdays(locale, firstDayOfWeek) {
17478
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17395
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17479
17396
  return createRange(7).map(i => {
17480
17397
  const weekday = new Date(sundayJanuarySecond2000);
17481
17398
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17723,6 +17640,24 @@ function getYear(date) {
17723
17640
  function getMonth(date) {
17724
17641
  return date.getMonth();
17725
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
+ }
17726
17661
  function getDate(date) {
17727
17662
  return date.getDate();
17728
17663
  }
@@ -17862,10 +17797,12 @@ class VuetifyDateAdapter {
17862
17797
  return addMonths(date, amount);
17863
17798
  }
17864
17799
  getWeekArray(date, firstDayOfWeek) {
17865
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17800
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17801
+ return getWeekArray(date, this.locale, firstDay);
17866
17802
  }
17867
17803
  startOfWeek(date, firstDayOfWeek) {
17868
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17804
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17805
+ return startOfWeek(date, this.locale, firstDay);
17869
17806
  }
17870
17807
  endOfWeek(date) {
17871
17808
  return endOfWeek(date, this.locale);
@@ -17925,7 +17862,8 @@ class VuetifyDateAdapter {
17925
17862
  return getDiff(date, comparing, unit);
17926
17863
  }
17927
17864
  getWeekdays(firstDayOfWeek) {
17928
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17865
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17866
+ return getWeekdays(this.locale, firstDay);
17929
17867
  }
17930
17868
  getYear(date) {
17931
17869
  return getYear(date);
@@ -17933,6 +17871,10 @@ class VuetifyDateAdapter {
17933
17871
  getMonth(date) {
17934
17872
  return getMonth(date);
17935
17873
  }
17874
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17875
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17876
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17877
+ }
17936
17878
  getDate(date) {
17937
17879
  return getDate(date);
17938
17880
  }
@@ -18036,26 +17978,6 @@ function useDate() {
18036
17978
  return createInstance(options, locale);
18037
17979
  }
18038
17980
 
18039
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
18040
- function getWeek(adapter, value) {
18041
- const date = adapter.toJsDate(value);
18042
- let year = date.getFullYear();
18043
- let d1w1 = new Date(year, 0, 1);
18044
- if (date < d1w1) {
18045
- year = year - 1;
18046
- d1w1 = new Date(year, 0, 1);
18047
- } else {
18048
- const tv = new Date(year + 1, 0, 1);
18049
- if (date >= tv) {
18050
- year = year + 1;
18051
- d1w1 = tv;
18052
- }
18053
- }
18054
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
18055
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
18056
- return Math.floor(diffDays / 7) + 1;
18057
- }
18058
-
18059
17981
  // Types
18060
17982
 
18061
17983
  const makeVColorPickerProps = propsFactory({
@@ -22338,7 +22260,7 @@ function useCalendar(props) {
22338
22260
  });
22339
22261
  const weekNumbers = computed(() => {
22340
22262
  return weeksInMonth.value.map(week => {
22341
- return week.length ? getWeek(adapter, week[0]) : null;
22263
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22342
22264
  });
22343
22265
  });
22344
22266
  function isDisabled(value) {
@@ -29236,7 +29158,7 @@ function createVuetify$1() {
29236
29158
  };
29237
29159
  });
29238
29160
  }
29239
- const version$1 = "3.8.1-master.2025-04-07";
29161
+ const version$1 = "3.8.1-master.2025-04-09";
29240
29162
  createVuetify$1.version = version$1;
29241
29163
 
29242
29164
  // Vue's inject() can only be used in setup
@@ -29261,7 +29183,7 @@ const createVuetify = function () {
29261
29183
  ...options
29262
29184
  });
29263
29185
  };
29264
- const version = "3.8.1-master.2025-04-07";
29186
+ const version = "3.8.1-master.2025-04-09";
29265
29187
  createVuetify.version = version;
29266
29188
 
29267
29189
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };