@vuetify/nightly 3.8.1-master.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 (43) hide show
  1. package/CHANGELOG.md +12 -3
  2. package/dist/json/attributes.json +2796 -2796
  3. package/dist/json/importMap-labs.json +30 -30
  4. package/dist/json/importMap.json +132 -132
  5. package/dist/json/web-types.json +5227 -5227
  6. package/dist/vuetify-labs.cjs +107 -185
  7. package/dist/vuetify-labs.css +3264 -3264
  8. package/dist/vuetify-labs.d.ts +57 -55
  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 +2167 -2167
  16. package/dist/vuetify.d.ts +57 -55
  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 +57 -55
  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;
@@ -82947,28 +82949,24 @@ declare module 'vue' {
82947
82949
  VAppBar: VAppBar
82948
82950
  VAppBarNavIcon: VAppBarNavIcon
82949
82951
  VAppBarTitle: VAppBarTitle
82952
+ VBadge: VBadge
82950
82953
  VAlert: VAlert
82951
82954
  VAlertTitle: VAlertTitle
82952
- VBadge: VBadge
82955
+ VAutocomplete: VAutocomplete
82953
82956
  VAvatar: VAvatar
82954
- VBottomSheet: VBottomSheet
82955
- VBanner: VBanner
82956
- VBannerActions: VBannerActions
82957
- VBannerText: VBannerText
82957
+ VBottomNavigation: VBottomNavigation
82958
82958
  VBreadcrumbs: VBreadcrumbs
82959
82959
  VBreadcrumbsItem: VBreadcrumbsItem
82960
82960
  VBreadcrumbsDivider: VBreadcrumbsDivider
82961
- VBottomNavigation: VBottomNavigation
82962
- VBtnToggle: VBtnToggle
82963
82961
  VBtn: VBtn
82964
- VAutocomplete: VAutocomplete
82962
+ VBanner: VBanner
82963
+ VBannerActions: VBannerActions
82964
+ VBannerText: VBannerText
82965
+ VBottomSheet: VBottomSheet
82966
+ VBtnToggle: VBtnToggle
82967
+ VBtnGroup: VBtnGroup
82965
82968
  VCarousel: VCarousel
82966
82969
  VCarouselItem: VCarouselItem
82967
- VBtnGroup: VBtnGroup
82968
- VCheckbox: VCheckbox
82969
- VCheckboxBtn: VCheckboxBtn
82970
- VCode: VCode
82971
- VCombobox: VCombobox
82972
82970
  VCard: VCard
82973
82971
  VCardActions: VCardActions
82974
82972
  VCardItem: VCardItem
@@ -82976,45 +82974,50 @@ declare module 'vue' {
82976
82974
  VCardText: VCardText
82977
82975
  VCardTitle: VCardTitle
82978
82976
  VChipGroup: VChipGroup
82979
- VDataTable: VDataTable
82980
- VDataTableHeaders: VDataTableHeaders
82981
- VDataTableFooter: VDataTableFooter
82982
- VDataTableRows: VDataTableRows
82983
- VDataTableRow: VDataTableRow
82984
- VDataTableVirtual: VDataTableVirtual
82985
- VDataTableServer: VDataTableServer
82977
+ VCheckbox: VCheckbox
82978
+ VCheckboxBtn: VCheckboxBtn
82979
+ VChip: VChip
82986
82980
  VColorPicker: VColorPicker
82981
+ VCode: VCode
82987
82982
  VCounter: VCounter
82988
- VChip: VChip
82989
- VDivider: VDivider
82983
+ VCombobox: VCombobox
82984
+ VDialog: VDialog
82990
82985
  VDatePicker: VDatePicker
82991
82986
  VDatePickerControls: VDatePickerControls
82992
82987
  VDatePickerHeader: VDatePickerHeader
82993
82988
  VDatePickerMonth: VDatePickerMonth
82994
82989
  VDatePickerMonths: VDatePickerMonths
82995
82990
  VDatePickerYears: VDatePickerYears
82991
+ VDivider: VDivider
82992
+ VDataTable: VDataTable
82993
+ VDataTableHeaders: VDataTableHeaders
82994
+ VDataTableFooter: VDataTableFooter
82995
+ VDataTableRows: VDataTableRows
82996
+ VDataTableRow: VDataTableRow
82997
+ VDataTableVirtual: VDataTableVirtual
82998
+ VDataTableServer: VDataTableServer
82996
82999
  VFab: VFab
82997
- VDialog: VDialog
82998
83000
  VEmptyState: VEmptyState
82999
- VFooter: VFooter
83000
83001
  VField: VField
83001
83002
  VFieldLabel: VFieldLabel
83003
+ VFileInput: VFileInput
83002
83004
  VExpansionPanels: VExpansionPanels
83003
83005
  VExpansionPanel: VExpansionPanel
83004
83006
  VExpansionPanelText: VExpansionPanelText
83005
83007
  VExpansionPanelTitle: VExpansionPanelTitle
83006
- VFileInput: VFileInput
83008
+ VFooter: VFooter
83009
+ VImg: VImg
83007
83010
  VIcon: VIcon
83008
83011
  VComponentIcon: VComponentIcon
83009
83012
  VSvgIcon: VSvgIcon
83010
83013
  VLigatureIcon: VLigatureIcon
83011
83014
  VClassIcon: VClassIcon
83012
- VImg: VImg
83013
- VInput: VInput
83015
+ VInfiniteScroll: VInfiniteScroll
83016
+ VKbd: VKbd
83014
83017
  VItemGroup: VItemGroup
83015
83018
  VItem: VItem
83016
- VInfiniteScroll: VInfiniteScroll
83017
- VLabel: VLabel
83019
+ VInput: VInput
83020
+ VMain: VMain
83018
83021
  VList: VList
83019
83022
  VListGroup: VListGroup
83020
83023
  VListImg: VListImg
@@ -83024,49 +83027,48 @@ declare module 'vue' {
83024
83027
  VListItemSubtitle: VListItemSubtitle
83025
83028
  VListItemTitle: VListItemTitle
83026
83029
  VListSubheader: VListSubheader
83027
- VKbd: VKbd
83028
- VMain: VMain
83029
- VMessages: VMessages
83030
- VNavigationDrawer: VNavigationDrawer
83030
+ VLabel: VLabel
83031
83031
  VMenu: VMenu
83032
+ VNavigationDrawer: VNavigationDrawer
83032
83033
  VNumberInput: VNumberInput
83033
- VOtpInput: VOtpInput
83034
+ VMessages: VMessages
83034
83035
  VOverlay: VOverlay
83035
- VPagination: VPagination
83036
+ VOtpInput: VOtpInput
83036
83037
  VProgressLinear: VProgressLinear
83037
- VRating: VRating
83038
+ VPagination: VPagination
83038
83039
  VRadioGroup: VRadioGroup
83039
83040
  VProgressCircular: VProgressCircular
83041
+ VRating: VRating
83040
83042
  VSelect: VSelect
83041
83043
  VSelectionControl: VSelectionControl
83044
+ VSheet: VSheet
83042
83045
  VSkeletonLoader: VSkeletonLoader
83043
- VSelectionControlGroup: VSelectionControlGroup
83044
83046
  VSlideGroup: VSlideGroup
83045
83047
  VSlideGroupItem: VSlideGroupItem
83046
- VSheet: VSheet
83048
+ VSelectionControlGroup: VSelectionControlGroup
83049
+ VSlider: VSlider
83050
+ VSnackbar: VSnackbar
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
- VTextarea: VTextarea
83056
83057
  VTab: VTab
83057
83058
  VTabs: VTabs
83058
83059
  VTabsWindow: VTabsWindow
83059
83060
  VTabsWindowItem: VTabsWindowItem
83060
83061
  VSwitch: VSwitch
83061
- VSystemBar: VSystemBar
83062
- VTextField: VTextField
83063
83062
  VTable: VTable
83063
+ VTextField: VTextField
83064
+ VSystemBar: VSystemBar
83065
+ VTextarea: VTextarea
83066
+ VTooltip: VTooltip
83064
83067
  VTimeline: VTimeline
83065
83068
  VTimelineItem: VTimelineItem
83066
83069
  VToolbar: VToolbar
83067
83070
  VToolbarTitle: VToolbarTitle
83068
83071
  VToolbarItems: VToolbarItems
83069
- VTooltip: VTooltip
83070
83072
  VWindow: VWindow
83071
83073
  VWindowItem: VWindowItem
83072
83074
  VConfirmEdit: VConfirmEdit
@@ -83078,9 +83080,9 @@ declare module 'vue' {
83078
83080
  VRow: VRow
83079
83081
  VSpacer: VSpacer
83080
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
@@ -83111,24 +83113,24 @@ declare module 'vue' {
83111
83113
  VDialogTransition: VDialogTransition
83112
83114
  VFileUpload: VFileUpload
83113
83115
  VFileUploadItem: VFileUploadItem
83114
- VCalendar: VCalendar
83115
- VCalendarDay: VCalendarDay
83116
- VCalendarHeader: VCalendarHeader
83117
- VCalendarInterval: VCalendarInterval
83118
- VCalendarIntervalEvent: VCalendarIntervalEvent
83119
- VCalendarMonthDay: VCalendarMonthDay
83120
- VTreeview: VTreeview
83121
- VTreeviewItem: VTreeviewItem
83122
- VTreeviewGroup: VTreeviewGroup
83123
83116
  VPicker: VPicker
83124
83117
  VPickerTitle: VPickerTitle
83118
+ VIconBtn: VIconBtn
83125
83119
  VStepperVertical: VStepperVertical
83126
83120
  VStepperVerticalItem: VStepperVerticalItem
83127
83121
  VStepperVerticalActions: VStepperVerticalActions
83122
+ VTreeview: VTreeview
83123
+ VTreeviewItem: VTreeviewItem
83124
+ VTreeviewGroup: VTreeviewGroup
83128
83125
  VTimePicker: VTimePicker
83129
83126
  VTimePickerClock: VTimePickerClock
83130
83127
  VTimePickerControls: VTimePickerControls
83131
- VIconBtn: VIconBtn
83128
+ VCalendar: VCalendar
83129
+ VCalendarDay: VCalendarDay
83130
+ VCalendarHeader: VCalendarHeader
83131
+ VCalendarInterval: VCalendarInterval
83132
+ VCalendarIntervalEvent: VCalendarIntervalEvent
83133
+ VCalendarMonthDay: VCalendarMonthDay
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-08
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-08";
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-08";
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 };