@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
@@ -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;
@@ -96728,6 +96729,7 @@ declare const createVuetify: (options?: VuetifyOptions) => {
96728
96729
  getDiff: (date: unknown, comparing: unknown, unit?: string) => number;
96729
96730
  getWeekArray: (date: unknown, firstDayOfWeek?: number | string) => unknown[][];
96730
96731
  getWeekdays: (firstDayOfWeek?: number | string) => string[];
96732
+ getWeek: (date: unknown, firstDayOfWeek?: number | string, firstWeekMinSize?: number) => number;
96731
96733
  getMonth: (date: unknown) => number;
96732
96734
  setMonth: (date: unknown, month: number) => unknown;
96733
96735
  getDate: (date: unknown) => number;
@@ -96784,36 +96786,46 @@ declare module 'vue' {
96784
96786
  VAppBar: VAppBar
96785
96787
  VAppBarNavIcon: VAppBarNavIcon
96786
96788
  VAppBarTitle: VAppBarTitle
96787
- VAvatar: VAvatar
96789
+ VBadge: VBadge
96788
96790
  VAlert: VAlert
96789
96791
  VAlertTitle: VAlertTitle
96790
96792
  VAutocomplete: VAutocomplete
96791
- VBadge: VBadge
96792
- VBanner: VBanner
96793
- VBannerActions: VBannerActions
96794
- VBannerText: VBannerText
96793
+ VAvatar: VAvatar
96794
+ VBottomNavigation: VBottomNavigation
96795
96795
  VBreadcrumbs: VBreadcrumbs
96796
96796
  VBreadcrumbsItem: VBreadcrumbsItem
96797
96797
  VBreadcrumbsDivider: VBreadcrumbsDivider
96798
+ VBtn: VBtn
96799
+ VBanner: VBanner
96800
+ VBannerActions: VBannerActions
96801
+ VBannerText: VBannerText
96798
96802
  VBottomSheet: VBottomSheet
96799
- VBottomNavigation: VBottomNavigation
96803
+ VBtnToggle: VBtnToggle
96800
96804
  VBtnGroup: VBtnGroup
96801
- VBtn: VBtn
96802
- VCheckbox: VCheckbox
96803
- VCheckboxBtn: VCheckboxBtn
96805
+ VCarousel: VCarousel
96806
+ VCarouselItem: VCarouselItem
96804
96807
  VCard: VCard
96805
96808
  VCardActions: VCardActions
96806
96809
  VCardItem: VCardItem
96807
96810
  VCardSubtitle: VCardSubtitle
96808
96811
  VCardText: VCardText
96809
96812
  VCardTitle: VCardTitle
96810
- VBtnToggle: VBtnToggle
96811
96813
  VChipGroup: VChipGroup
96812
- VCarousel: VCarousel
96813
- VCarouselItem: VCarouselItem
96814
+ VCheckbox: VCheckbox
96815
+ VCheckboxBtn: VCheckboxBtn
96816
+ VChip: VChip
96814
96817
  VColorPicker: VColorPicker
96815
96818
  VCode: VCode
96819
+ VCounter: VCounter
96816
96820
  VCombobox: VCombobox
96821
+ VDialog: VDialog
96822
+ VDatePicker: VDatePicker
96823
+ VDatePickerControls: VDatePickerControls
96824
+ VDatePickerHeader: VDatePickerHeader
96825
+ VDatePickerMonth: VDatePickerMonth
96826
+ VDatePickerMonths: VDatePickerMonths
96827
+ VDatePickerYears: VDatePickerYears
96828
+ VDivider: VDivider
96817
96829
  VDataTable: VDataTable
96818
96830
  VDataTableHeaders: VDataTableHeaders
96819
96831
  VDataTableFooter: VDataTableFooter
@@ -96821,38 +96833,28 @@ declare module 'vue' {
96821
96833
  VDataTableRow: VDataTableRow
96822
96834
  VDataTableVirtual: VDataTableVirtual
96823
96835
  VDataTableServer: VDataTableServer
96824
- VDatePicker: VDatePicker
96825
- VDatePickerControls: VDatePickerControls
96826
- VDatePickerHeader: VDatePickerHeader
96827
- VDatePickerMonth: VDatePickerMonth
96828
- VDatePickerMonths: VDatePickerMonths
96829
- VDatePickerYears: VDatePickerYears
96830
- VCounter: VCounter
96831
- VChip: VChip
96836
+ VFab: VFab
96832
96837
  VEmptyState: VEmptyState
96833
- VDivider: VDivider
96838
+ VField: VField
96839
+ VFieldLabel: VFieldLabel
96840
+ VFileInput: VFileInput
96834
96841
  VExpansionPanels: VExpansionPanels
96835
96842
  VExpansionPanel: VExpansionPanel
96836
96843
  VExpansionPanelText: VExpansionPanelText
96837
96844
  VExpansionPanelTitle: VExpansionPanelTitle
96838
- VDialog: VDialog
96839
- VFab: VFab
96840
- VField: VField
96841
- VFieldLabel: VFieldLabel
96842
96845
  VFooter: VFooter
96843
- VFileInput: VFileInput
96846
+ VImg: VImg
96844
96847
  VIcon: VIcon
96845
96848
  VComponentIcon: VComponentIcon
96846
96849
  VSvgIcon: VSvgIcon
96847
96850
  VLigatureIcon: VLigatureIcon
96848
96851
  VClassIcon: VClassIcon
96849
- VInput: VInput
96850
- VLabel: VLabel
96851
96852
  VInfiniteScroll: VInfiniteScroll
96853
+ VKbd: VKbd
96852
96854
  VItemGroup: VItemGroup
96853
96855
  VItem: VItem
96854
- VKbd: VKbd
96855
- VImg: VImg
96856
+ VInput: VInput
96857
+ VMain: VMain
96856
96858
  VList: VList
96857
96859
  VListGroup: VListGroup
96858
96860
  VListImg: VListImg
@@ -96862,74 +96864,74 @@ declare module 'vue' {
96862
96864
  VListItemSubtitle: VListItemSubtitle
96863
96865
  VListItemTitle: VListItemTitle
96864
96866
  VListSubheader: VListSubheader
96865
- VMain: VMain
96866
- VNavigationDrawer: VNavigationDrawer
96867
+ VLabel: VLabel
96867
96868
  VMenu: VMenu
96868
- VOtpInput: VOtpInput
96869
- VOverlay: VOverlay
96870
- VMessages: VMessages
96869
+ VNavigationDrawer: VNavigationDrawer
96871
96870
  VNumberInput: VNumberInput
96872
- VPagination: VPagination
96871
+ VMessages: VMessages
96872
+ VOverlay: VOverlay
96873
+ VOtpInput: VOtpInput
96873
96874
  VProgressLinear: VProgressLinear
96875
+ VPagination: VPagination
96874
96876
  VRadioGroup: VRadioGroup
96875
96877
  VProgressCircular: VProgressCircular
96876
- VSelect: VSelect
96877
96878
  VRating: VRating
96879
+ VSelect: VSelect
96878
96880
  VSelectionControl: VSelectionControl
96879
- VSelectionControlGroup: VSelectionControlGroup
96880
- VSlideGroup: VSlideGroup
96881
- VSlideGroupItem: VSlideGroupItem
96882
- VSnackbar: VSnackbar
96883
96881
  VSheet: VSheet
96884
96882
  VSkeletonLoader: VSkeletonLoader
96883
+ VSlideGroup: VSlideGroup
96884
+ VSlideGroupItem: VSlideGroupItem
96885
+ VSelectionControlGroup: VSelectionControlGroup
96885
96886
  VSlider: VSlider
96886
- VSwitch: VSwitch
96887
- VTab: VTab
96888
- VTabs: VTabs
96889
- VTabsWindow: VTabsWindow
96890
- VTabsWindowItem: VTabsWindowItem
96891
- VSystemBar: VSystemBar
96887
+ VSnackbar: VSnackbar
96892
96888
  VStepper: VStepper
96893
96889
  VStepperActions: VStepperActions
96894
96890
  VStepperHeader: VStepperHeader
96895
96891
  VStepperItem: VStepperItem
96896
96892
  VStepperWindow: VStepperWindow
96897
96893
  VStepperWindowItem: VStepperWindowItem
96898
- VTextarea: VTextarea
96894
+ VTab: VTab
96895
+ VTabs: VTabs
96896
+ VTabsWindow: VTabsWindow
96897
+ VTabsWindowItem: VTabsWindowItem
96898
+ VSwitch: VSwitch
96899
96899
  VTable: VTable
96900
- VToolbar: VToolbar
96901
- VToolbarTitle: VToolbarTitle
96902
- VToolbarItems: VToolbarItems
96903
96900
  VTextField: VTextField
96901
+ VSystemBar: VSystemBar
96902
+ VTextarea: VTextarea
96903
+ VTooltip: VTooltip
96904
96904
  VTimeline: VTimeline
96905
96905
  VTimelineItem: VTimelineItem
96906
+ VToolbar: VToolbar
96907
+ VToolbarTitle: VToolbarTitle
96908
+ VToolbarItems: VToolbarItems
96906
96909
  VWindow: VWindow
96907
96910
  VWindowItem: VWindowItem
96908
- VTooltip: VTooltip
96909
96911
  VConfirmEdit: VConfirmEdit
96910
96912
  VDataIterator: VDataIterator
96911
96913
  VDefaultsProvider: VDefaultsProvider
96912
96914
  VForm: VForm
96913
- VHover: VHover
96914
96915
  VContainer: VContainer
96915
96916
  VCol: VCol
96916
96917
  VRow: VRow
96917
96918
  VSpacer: VSpacer
96919
+ VHover: VHover
96920
+ VLazy: VLazy
96918
96921
  VLayout: VLayout
96919
96922
  VLayoutItem: VLayoutItem
96920
- VLazy: VLazy
96921
96923
  VLocaleProvider: VLocaleProvider
96922
96924
  VNoSsr: VNoSsr
96923
96925
  VParallax: VParallax
96924
- VRadio: VRadio
96925
96926
  VRangeSlider: VRangeSlider
96927
+ VRadio: VRadio
96926
96928
  VResponsive: VResponsive
96927
96929
  VSnackbarQueue: VSnackbarQueue
96928
96930
  VSparkline: VSparkline
96929
96931
  VSpeedDial: VSpeedDial
96930
96932
  VThemeProvider: VThemeProvider
96931
- VValidation: VValidation
96932
96933
  VVirtualScroll: VVirtualScroll
96934
+ VValidation: VValidation
96933
96935
  VFabTransition: VFabTransition
96934
96936
  VDialogBottomTransition: VDialogBottomTransition
96935
96937
  VDialogTopTransition: VDialogTopTransition
@@ -96948,24 +96950,24 @@ declare module 'vue' {
96948
96950
  VDialogTransition: VDialogTransition
96949
96951
  VFileUpload: VFileUpload
96950
96952
  VFileUploadItem: VFileUploadItem
96953
+ VPicker: VPicker
96954
+ VPickerTitle: VPickerTitle
96955
+ VIconBtn: VIconBtn
96951
96956
  VStepperVertical: VStepperVertical
96952
96957
  VStepperVerticalItem: VStepperVerticalItem
96953
96958
  VStepperVerticalActions: VStepperVerticalActions
96959
+ VTreeview: VTreeview
96960
+ VTreeviewItem: VTreeviewItem
96961
+ VTreeviewGroup: VTreeviewGroup
96962
+ VTimePicker: VTimePicker
96963
+ VTimePickerClock: VTimePickerClock
96964
+ VTimePickerControls: VTimePickerControls
96954
96965
  VCalendar: VCalendar
96955
96966
  VCalendarDay: VCalendarDay
96956
96967
  VCalendarHeader: VCalendarHeader
96957
96968
  VCalendarInterval: VCalendarInterval
96958
96969
  VCalendarIntervalEvent: VCalendarIntervalEvent
96959
96970
  VCalendarMonthDay: VCalendarMonthDay
96960
- VIconBtn: VIconBtn
96961
- VPicker: VPicker
96962
- VPickerTitle: VPickerTitle
96963
- VTimePicker: VTimePicker
96964
- VTimePickerClock: VTimePickerClock
96965
- VTimePickerControls: VTimePickerControls
96966
- VTreeview: VTreeview
96967
- VTreeviewItem: VTreeviewItem
96968
- VTreeviewGroup: VTreeviewGroup
96969
96971
  VDateInput: VDateInput
96970
96972
  VPullToRefresh: VPullToRefresh
96971
96973
  }
@@ -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
  */
@@ -12303,12 +12303,7 @@ function useVirtual(props, items) {
12303
12303
  }
12304
12304
  function calculateOffset(index) {
12305
12305
  index = clamp(index, 0, items.value.length - 1);
12306
- const whole = Math.floor(index);
12307
- const fraction = index % 1;
12308
- const next = whole + 1;
12309
- const wholeOffset = offsets[whole] || 0;
12310
- const nextOffset = offsets[next] || wholeOffset;
12311
- return wholeOffset + (nextOffset - wholeOffset) * fraction;
12306
+ return offsets[index] || 0;
12312
12307
  }
12313
12308
  function calculateIndex(scrollTop) {
12314
12309
  return binaryClosest(offsets, scrollTop);
@@ -13055,6 +13050,7 @@ const VSelect = genericComponent()({
13055
13050
  // Composables
13056
13051
  const defaultFilter = (value, query, item) => {
13057
13052
  if (value == null || query == null) return -1;
13053
+ if (!query.length) return 0;
13058
13054
  value = value.toString().toLocaleLowerCase();
13059
13055
  query = query.toString().toLocaleLowerCase();
13060
13056
  const result = [];
@@ -13067,7 +13063,7 @@ const defaultFilter = (value, query, item) => {
13067
13063
  };
13068
13064
  function normaliseMatch(match, query) {
13069
13065
  if (match == null || typeof match === 'boolean' || match === -1) return;
13070
- if (typeof match === 'number') return [[match, query.length]];
13066
+ if (typeof match === 'number') return [[match, match + query.length]];
13071
13067
  if (Array.isArray(match[0])) return match;
13072
13068
  return [match];
13073
13069
  }
@@ -16982,165 +16978,81 @@ const VPicker = genericComponent()({
16982
16978
 
16983
16979
  // Types
16984
16980
 
16985
- const firstDay = {
16986
- '001': 1,
16987
- AD: 1,
16988
- AE: 6,
16989
- AF: 6,
16990
- AG: 0,
16991
- AI: 1,
16992
- AL: 1,
16993
- AM: 1,
16994
- AN: 1,
16995
- AR: 1,
16996
- AS: 0,
16997
- AT: 1,
16998
- AU: 1,
16999
- AX: 1,
17000
- AZ: 1,
17001
- BA: 1,
17002
- BD: 0,
17003
- BE: 1,
17004
- BG: 1,
17005
- BH: 6,
17006
- BM: 1,
17007
- BN: 1,
17008
- BR: 0,
17009
- BS: 0,
17010
- BT: 0,
17011
- BW: 0,
17012
- BY: 1,
17013
- BZ: 0,
17014
- CA: 0,
17015
- CH: 1,
17016
- CL: 1,
17017
- CM: 1,
17018
- CN: 1,
17019
- CO: 0,
17020
- CR: 1,
17021
- CY: 1,
17022
- CZ: 1,
17023
- DE: 1,
17024
- DJ: 6,
17025
- DK: 1,
17026
- DM: 0,
17027
- DO: 0,
17028
- DZ: 6,
17029
- EC: 1,
17030
- EE: 1,
17031
- EG: 6,
17032
- ES: 1,
17033
- ET: 0,
17034
- FI: 1,
17035
- FJ: 1,
17036
- FO: 1,
17037
- FR: 1,
17038
- GB: 1,
17039
- 'GB-alt-variant': 0,
17040
- GE: 1,
17041
- GF: 1,
17042
- GP: 1,
17043
- GR: 1,
17044
- GT: 0,
17045
- GU: 0,
17046
- HK: 0,
17047
- HN: 0,
17048
- HR: 1,
17049
- HU: 1,
17050
- ID: 0,
17051
- IE: 1,
17052
- IL: 0,
17053
- IN: 0,
17054
- IQ: 6,
17055
- IR: 6,
17056
- IS: 1,
17057
- IT: 1,
17058
- JM: 0,
17059
- JO: 6,
17060
- JP: 0,
17061
- KE: 0,
17062
- KG: 1,
17063
- KH: 0,
17064
- KR: 0,
17065
- KW: 6,
17066
- KZ: 1,
17067
- LA: 0,
17068
- LB: 1,
17069
- LI: 1,
17070
- LK: 1,
17071
- LT: 1,
17072
- LU: 1,
17073
- LV: 1,
17074
- LY: 6,
17075
- MC: 1,
17076
- MD: 1,
17077
- ME: 1,
17078
- MH: 0,
17079
- MK: 1,
17080
- MM: 0,
17081
- MN: 1,
17082
- MO: 0,
17083
- MQ: 1,
17084
- MT: 0,
17085
- MV: 5,
17086
- MX: 0,
17087
- MY: 1,
17088
- MZ: 0,
17089
- NI: 0,
17090
- NL: 1,
17091
- NO: 1,
17092
- NP: 0,
17093
- NZ: 1,
17094
- OM: 6,
17095
- PA: 0,
17096
- PE: 0,
17097
- PH: 0,
17098
- PK: 0,
17099
- PL: 1,
17100
- PR: 0,
17101
- PT: 0,
17102
- PY: 0,
17103
- QA: 6,
17104
- RE: 1,
17105
- RO: 1,
17106
- RS: 1,
17107
- RU: 1,
17108
- SA: 0,
17109
- SD: 6,
17110
- SE: 1,
17111
- SG: 0,
17112
- SI: 1,
17113
- SK: 1,
17114
- SM: 1,
17115
- SV: 0,
17116
- SY: 6,
17117
- TH: 0,
17118
- TJ: 1,
17119
- TM: 1,
17120
- TR: 1,
17121
- TT: 0,
17122
- TW: 0,
17123
- UA: 1,
17124
- UM: 0,
17125
- US: 0,
17126
- UY: 1,
17127
- UZ: 1,
17128
- VA: 1,
17129
- VE: 0,
17130
- VI: 0,
17131
- VN: 1,
17132
- WS: 0,
17133
- XK: 1,
17134
- YE: 0,
17135
- ZA: 0,
17136
- ZW: 0
17137
- };
16981
+ function weekInfo(locale) {
16982
+ // https://simplelocalize.io/data/locales/
16983
+ // then `new Intl.Locale(...).getWeekInfo()`
16984
+ const code = locale.slice(-2).toUpperCase();
16985
+ switch (true) {
16986
+ case locale === 'GB-alt-variant':
16987
+ {
16988
+ return {
16989
+ firstDay: 0,
16990
+ firstWeekSize: 4
16991
+ };
16992
+ }
16993
+ case locale === '001':
16994
+ {
16995
+ return {
16996
+ firstDay: 1,
16997
+ firstWeekSize: 1
16998
+ };
16999
+ }
17000
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17001
+ 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
17002
+ VE VI WS YE ZA ZW`.includes(code):
17003
+ {
17004
+ return {
17005
+ firstDay: 0,
17006
+ firstWeekSize: 1
17007
+ };
17008
+ }
17009
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17010
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17011
+ {
17012
+ return {
17013
+ firstDay: 1,
17014
+ firstWeekSize: 1
17015
+ };
17016
+ }
17017
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17018
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17019
+ {
17020
+ return {
17021
+ firstDay: 1,
17022
+ firstWeekSize: 4
17023
+ };
17024
+ }
17025
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17026
+ {
17027
+ return {
17028
+ firstDay: 6,
17029
+ firstWeekSize: 1
17030
+ };
17031
+ }
17032
+ case code === 'MV':
17033
+ {
17034
+ return {
17035
+ firstDay: 5,
17036
+ firstWeekSize: 1
17037
+ };
17038
+ }
17039
+ case code === 'PT':
17040
+ {
17041
+ return {
17042
+ firstDay: 0,
17043
+ firstWeekSize: 4
17044
+ };
17045
+ }
17046
+ default:
17047
+ return null;
17048
+ }
17049
+ }
17138
17050
  function getWeekArray(date, locale, firstDayOfWeek) {
17139
17051
  const weeks = [];
17140
17052
  let currentWeek = [];
17141
17053
  const firstDayOfMonth = startOfMonth(date);
17142
17054
  const lastDayOfMonth = endOfMonth(date);
17143
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17055
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17144
17056
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17145
17057
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17146
17058
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17171,7 +17083,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
17171
17083
  return weeks;
17172
17084
  }
17173
17085
  function startOfWeek(date, locale, firstDayOfWeek) {
17174
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17086
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17175
17087
  const d = new Date(date);
17176
17088
  while (d.getDay() !== day) {
17177
17089
  d.setDate(d.getDate() - 1);
@@ -17180,7 +17092,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
17180
17092
  }
17181
17093
  function endOfWeek(date, locale) {
17182
17094
  const d = new Date(date);
17183
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17095
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17184
17096
  while (d.getDay() !== lastDay) {
17185
17097
  d.setDate(d.getDate() + 1);
17186
17098
  }
@@ -17215,7 +17127,7 @@ function date(value) {
17215
17127
  }
17216
17128
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17217
17129
  function getWeekdays(locale, firstDayOfWeek) {
17218
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17130
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17219
17131
  return createRange(7).map(i => {
17220
17132
  const weekday = new Date(sundayJanuarySecond2000);
17221
17133
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17463,6 +17375,24 @@ function getYear(date) {
17463
17375
  function getMonth(date) {
17464
17376
  return date.getMonth();
17465
17377
  }
17378
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17379
+ const weekInfoFromLocale = weekInfo(locale);
17380
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17381
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17382
+ function firstWeekSize(year) {
17383
+ const yearStart = new Date(year, 0, 1);
17384
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17385
+ }
17386
+ let year = getYear(date);
17387
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17388
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17389
+ year++;
17390
+ }
17391
+ const yearStart = new Date(year, 0, 1);
17392
+ const size = firstWeekSize(year);
17393
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17394
+ return 1 + getDiff(date, d1w1, 'weeks');
17395
+ }
17466
17396
  function getDate(date) {
17467
17397
  return date.getDate();
17468
17398
  }
@@ -17602,10 +17532,12 @@ class VuetifyDateAdapter {
17602
17532
  return addMonths(date, amount);
17603
17533
  }
17604
17534
  getWeekArray(date, firstDayOfWeek) {
17605
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17535
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17536
+ return getWeekArray(date, this.locale, firstDay);
17606
17537
  }
17607
17538
  startOfWeek(date, firstDayOfWeek) {
17608
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17539
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17540
+ return startOfWeek(date, this.locale, firstDay);
17609
17541
  }
17610
17542
  endOfWeek(date) {
17611
17543
  return endOfWeek(date, this.locale);
@@ -17665,7 +17597,8 @@ class VuetifyDateAdapter {
17665
17597
  return getDiff(date, comparing, unit);
17666
17598
  }
17667
17599
  getWeekdays(firstDayOfWeek) {
17668
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17600
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17601
+ return getWeekdays(this.locale, firstDay);
17669
17602
  }
17670
17603
  getYear(date) {
17671
17604
  return getYear(date);
@@ -17673,6 +17606,10 @@ class VuetifyDateAdapter {
17673
17606
  getMonth(date) {
17674
17607
  return getMonth(date);
17675
17608
  }
17609
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17610
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17611
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17612
+ }
17676
17613
  getDate(date) {
17677
17614
  return getDate(date);
17678
17615
  }
@@ -17776,26 +17713,6 @@ function useDate() {
17776
17713
  return createInstance(options, locale);
17777
17714
  }
17778
17715
 
17779
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
17780
- function getWeek(adapter, value) {
17781
- const date = adapter.toJsDate(value);
17782
- let year = date.getFullYear();
17783
- let d1w1 = new Date(year, 0, 1);
17784
- if (date < d1w1) {
17785
- year = year - 1;
17786
- d1w1 = new Date(year, 0, 1);
17787
- } else {
17788
- const tv = new Date(year + 1, 0, 1);
17789
- if (date >= tv) {
17790
- year = year + 1;
17791
- d1w1 = tv;
17792
- }
17793
- }
17794
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
17795
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
17796
- return Math.floor(diffDays / 7) + 1;
17797
- }
17798
-
17799
17716
  // Types
17800
17717
 
17801
17718
  const makeVColorPickerProps = propsFactory({
@@ -22078,7 +21995,7 @@ function useCalendar(props) {
22078
21995
  });
22079
21996
  const weekNumbers = computed(() => {
22080
21997
  return weeksInMonth.value.map(week => {
22081
- return week.length ? getWeek(adapter, week[0]) : null;
21998
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22082
21999
  });
22083
22000
  });
22084
22001
  function isDisabled(value) {
@@ -31565,7 +31482,7 @@ function createVuetify$1() {
31565
31482
  };
31566
31483
  });
31567
31484
  }
31568
- const version$1 = "3.8.1-dev.2025-04-07";
31485
+ const version$1 = "3.8.1-master.2025-04-08";
31569
31486
  createVuetify$1.version = version$1;
31570
31487
 
31571
31488
  // Vue's inject() can only be used in setup
@@ -31850,7 +31767,7 @@ var index = /*#__PURE__*/Object.freeze({
31850
31767
 
31851
31768
  /* eslint-disable local-rules/sort-imports */
31852
31769
 
31853
- const version = "3.8.1-dev.2025-04-07";
31770
+ const version = "3.8.1-master.2025-04-08";
31854
31771
 
31855
31772
  /* eslint-disable local-rules/sort-imports */
31856
31773