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