@vuetify/nightly 3.8.7-master.2025-05-27 → 3.8.7-master.2025-05-31

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 +13 -3
  2. package/dist/json/attributes.json +2816 -2792
  3. package/dist/json/importMap-labs.json +26 -26
  4. package/dist/json/importMap.json +156 -156
  5. package/dist/json/tags.json +6 -0
  6. package/dist/json/web-types.json +5254 -5200
  7. package/dist/vuetify-labs.cjs +85 -24
  8. package/dist/vuetify-labs.css +3367 -3367
  9. package/dist/vuetify-labs.d.ts +89 -55
  10. package/dist/vuetify-labs.esm.js +85 -24
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +85 -24
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +83 -18
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3390 -3390
  17. package/dist/vuetify.d.ts +79 -55
  18. package/dist/vuetify.esm.js +83 -18
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +83 -18
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +25 -16
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VDatePicker/VDatePicker.d.ts +20 -0
  26. package/lib/components/VDatePicker/VDatePicker.js +39 -2
  27. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  28. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -8
  29. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  30. package/lib/components/VDatePicker/VDatePickerMonths.d.ts +10 -0
  31. package/lib/components/VDatePicker/VDatePickerMonths.js +12 -2
  32. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  33. package/lib/components/VDatePicker/VDatePickerYears.d.ts +10 -0
  34. package/lib/components/VDatePicker/VDatePickerYears.js +14 -2
  35. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  36. package/lib/composables/date/date.d.ts +4 -0
  37. package/lib/composables/date/date.js +14 -1
  38. package/lib/composables/date/date.js.map +1 -1
  39. package/lib/entry-bundler.d.ts +3 -0
  40. package/lib/entry-bundler.js +1 -1
  41. package/lib/framework.d.ts +59 -55
  42. package/lib/framework.js +1 -1
  43. package/lib/labs/VDateInput/VDateInput.d.ts +20 -0
  44. package/lib/labs/VDateInput/VDateInput.js +3 -7
  45. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  46. package/lib/labs/entry-bundler.d.ts +3 -0
  47. package/package.json +1 -1
package/dist/vuetify.d.ts CHANGED
@@ -86,6 +86,7 @@ declare function useRtl(): {
86
86
 
87
87
  interface DateInstance extends DateModule.InternalAdapter {
88
88
  locale?: any;
89
+ createDateRange: (start: unknown, stop?: unknown) => unknown[];
89
90
  }
90
91
  /** Supports module augmentation to specify date adapter types */
91
92
  declare namespace DateModule {
@@ -39396,6 +39397,8 @@ declare const VDatePicker: {
39396
39397
  headerColor?: string | undefined;
39397
39398
  firstDayOfWeek?: string | number | undefined;
39398
39399
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
39400
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
39401
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
39399
39402
  } & {
39400
39403
  "onUpdate:month"?: ((date: any) => any) | undefined;
39401
39404
  "onUpdate:year"?: ((date: any) => any) | undefined;
@@ -39491,6 +39494,8 @@ declare const VDatePicker: {
39491
39494
  headerColor?: string | undefined;
39492
39495
  firstDayOfWeek?: string | number | undefined;
39493
39496
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
39497
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
39498
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
39494
39499
  } & {
39495
39500
  "onUpdate:month"?: ((date: any) => any) | undefined;
39496
39501
  "onUpdate:year"?: ((date: any) => any) | undefined;
@@ -39570,6 +39575,8 @@ declare const VDatePicker: {
39570
39575
  headerColor?: string | undefined;
39571
39576
  firstDayOfWeek?: string | number | undefined;
39572
39577
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
39578
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
39579
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
39573
39580
  } & {
39574
39581
  "onUpdate:month"?: ((date: any) => any) | undefined;
39575
39582
  "onUpdate:year"?: ((date: any) => any) | undefined;
@@ -39659,7 +39666,9 @@ declare const VDatePicker: {
39659
39666
  hideHeader: BooleanConstructor;
39660
39667
  max: vue.PropType<unknown>;
39661
39668
  min: vue.PropType<unknown>;
39669
+ allowedYears: vue.PropType<number[] | ((date: number) => boolean)>;
39662
39670
  year: NumberConstructor;
39671
+ allowedMonths: vue.PropType<number[] | ((date: number) => boolean)>;
39663
39672
  disabled: {
39664
39673
  type: BooleanConstructor;
39665
39674
  default: null;
@@ -39764,7 +39773,9 @@ declare const VDatePicker: {
39764
39773
  hideHeader: BooleanConstructor;
39765
39774
  max: vue.PropType<unknown>;
39766
39775
  min: vue.PropType<unknown>;
39776
+ allowedYears: vue.PropType<number[] | ((date: number) => boolean)>;
39767
39777
  year: NumberConstructor;
39778
+ allowedMonths: vue.PropType<number[] | ((date: number) => boolean)>;
39768
39779
  disabled: {
39769
39780
  type: BooleanConstructor;
39770
39781
  default: null;
@@ -40421,6 +40432,7 @@ declare const VDatePickerMonths: {
40421
40432
  color?: string | undefined;
40422
40433
  year?: number | undefined;
40423
40434
  modelValue?: number | undefined;
40435
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
40424
40436
  } & {
40425
40437
  $children?: {} | vue.VNodeChild | {
40426
40438
  month?: ((arg: {
@@ -40486,6 +40498,7 @@ declare const VDatePickerMonths: {
40486
40498
  color?: string | undefined;
40487
40499
  year?: number | undefined;
40488
40500
  modelValue?: number | undefined;
40501
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
40489
40502
  } & {
40490
40503
  $children?: {} | vue.VNodeChild | {
40491
40504
  month?: ((arg: {
@@ -40535,6 +40548,7 @@ declare const VDatePickerMonths: {
40535
40548
  color?: string | undefined;
40536
40549
  year?: number | undefined;
40537
40550
  modelValue?: number | undefined;
40551
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
40538
40552
  } & {
40539
40553
  $children?: {} | vue.VNodeChild | {
40540
40554
  month?: ((arg: {
@@ -40593,6 +40607,7 @@ declare const VDatePickerMonths: {
40593
40607
  max: PropType<unknown>;
40594
40608
  modelValue: NumberConstructor;
40595
40609
  year: NumberConstructor;
40610
+ allowedMonths: PropType<number[] | ((date: number) => boolean)>;
40596
40611
  }, vue.ExtractPropTypes<{
40597
40612
  color: StringConstructor;
40598
40613
  height: (StringConstructor | NumberConstructor)[];
@@ -40600,6 +40615,7 @@ declare const VDatePickerMonths: {
40600
40615
  max: PropType<unknown>;
40601
40616
  modelValue: NumberConstructor;
40602
40617
  year: NumberConstructor;
40618
+ allowedMonths: PropType<number[] | ((date: number) => boolean)>;
40603
40619
  }>>;
40604
40620
  type VDatePickerMonths = InstanceType<typeof VDatePickerMonths>;
40605
40621
 
@@ -40610,6 +40626,7 @@ declare const VDatePickerYears: {
40610
40626
  min?: unknown;
40611
40627
  color?: string | undefined;
40612
40628
  modelValue?: number | undefined;
40629
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
40613
40630
  } & {
40614
40631
  $children?: {} | vue.VNodeChild | {
40615
40632
  year?: ((arg: {
@@ -40694,6 +40711,7 @@ declare const VDatePickerYears: {
40694
40711
  min?: unknown;
40695
40712
  color?: string | undefined;
40696
40713
  modelValue?: number | undefined;
40714
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
40697
40715
  } & {
40698
40716
  $children?: {} | vue.VNodeChild | {
40699
40717
  year?: ((arg: {
@@ -40757,6 +40775,7 @@ declare const VDatePickerYears: {
40757
40775
  min?: unknown;
40758
40776
  color?: string | undefined;
40759
40777
  modelValue?: number | undefined;
40778
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
40760
40779
  } & {
40761
40780
  $children?: {} | vue.VNodeChild | {
40762
40781
  year?: ((arg: {
@@ -40834,12 +40853,14 @@ declare const VDatePickerYears: {
40834
40853
  min: PropType<unknown>;
40835
40854
  max: PropType<unknown>;
40836
40855
  modelValue: NumberConstructor;
40856
+ allowedYears: PropType<number[] | ((date: number) => boolean)>;
40837
40857
  }, vue.ExtractPropTypes<{
40838
40858
  color: StringConstructor;
40839
40859
  height: (StringConstructor | NumberConstructor)[];
40840
40860
  min: PropType<unknown>;
40841
40861
  max: PropType<unknown>;
40842
40862
  modelValue: NumberConstructor;
40863
+ allowedYears: PropType<number[] | ((date: number) => boolean)>;
40843
40864
  }>>;
40844
40865
  type VDatePickerYears = InstanceType<typeof VDatePickerYears>;
40845
40866
 
@@ -85789,6 +85810,7 @@ declare const createVuetify: {
85789
85810
  options: InternalDateOptions;
85790
85811
  instance: {
85791
85812
  locale?: any;
85813
+ createDateRange: (start: unknown, stop?: unknown) => unknown[];
85792
85814
  date: (value?: any) => unknown;
85793
85815
  format: (date: unknown, formatString: string) => string;
85794
85816
  toJsDate: (value: unknown) => Date;
@@ -85832,6 +85854,8 @@ declare const createVuetify: {
85832
85854
  setHours: (date: unknown, hours: number) => unknown;
85833
85855
  getMinutes: (date: unknown) => number;
85834
85856
  setMinutes: (date: unknown, minutes: number) => unknown;
85857
+ } & {
85858
+ createDateRange(start: unknown, stop?: unknown): unknown[];
85835
85859
  };
85836
85860
  };
85837
85861
  goTo: GoToInstance;
@@ -85877,80 +85901,76 @@ declare module 'vue' {
85877
85901
  $children?: VNodeChild
85878
85902
  }
85879
85903
  export interface GlobalComponents {
85880
- VAppBar: VAppBar
85881
- VAppBarNavIcon: VAppBarNavIcon
85882
- VAppBarTitle: VAppBarTitle
85883
- VAutocomplete: VAutocomplete
85904
+ VApp: VApp
85884
85905
  VAlert: VAlert
85885
85906
  VAlertTitle: VAlertTitle
85886
- VApp: VApp
85887
85907
  VAvatar: VAvatar
85888
- VBadge: VBadge
85889
- VBtn: VBtn
85908
+ VAutocomplete: VAutocomplete
85909
+ VBottomNavigation: VBottomNavigation
85890
85910
  VBanner: VBanner
85891
85911
  VBannerActions: VBannerActions
85892
85912
  VBannerText: VBannerText
85893
- VBottomSheet: VBottomSheet
85894
- VCarousel: VCarousel
85895
- VCarouselItem: VCarouselItem
85896
- VBottomNavigation: VBottomNavigation
85913
+ VBadge: VBadge
85914
+ VBtn: VBtn
85897
85915
  VBreadcrumbs: VBreadcrumbs
85898
85916
  VBreadcrumbsItem: VBreadcrumbsItem
85899
85917
  VBreadcrumbsDivider: VBreadcrumbsDivider
85900
- VBtnGroup: VBtnGroup
85901
85918
  VCard: VCard
85902
85919
  VCardActions: VCardActions
85903
85920
  VCardItem: VCardItem
85904
85921
  VCardSubtitle: VCardSubtitle
85905
85922
  VCardText: VCardText
85906
85923
  VCardTitle: VCardTitle
85924
+ VBottomSheet: VBottomSheet
85907
85925
  VBtnToggle: VBtnToggle
85908
- VChipGroup: VChipGroup
85909
- VChip: VChip
85910
85926
  VCheckbox: VCheckbox
85911
85927
  VCheckboxBtn: VCheckboxBtn
85912
- VColorPicker: VColorPicker
85928
+ VBtnGroup: VBtnGroup
85929
+ VChip: VChip
85930
+ VCarousel: VCarousel
85931
+ VCarouselItem: VCarouselItem
85913
85932
  VCode: VCode
85914
- VDataTable: VDataTable
85915
- VDataTableHeaders: VDataTableHeaders
85916
- VDataTableFooter: VDataTableFooter
85917
- VDataTableRows: VDataTableRows
85918
- VDataTableRow: VDataTableRow
85919
- VDataTableVirtual: VDataTableVirtual
85920
- VDataTableServer: VDataTableServer
85921
- VDivider: VDivider
85933
+ VChipGroup: VChipGroup
85934
+ VColorPicker: VColorPicker
85922
85935
  VCombobox: VCombobox
85923
- VDialog: VDialog
85924
85936
  VDatePicker: VDatePicker
85925
85937
  VDatePickerControls: VDatePickerControls
85926
85938
  VDatePickerHeader: VDatePickerHeader
85927
85939
  VDatePickerMonth: VDatePickerMonth
85928
85940
  VDatePickerMonths: VDatePickerMonths
85929
85941
  VDatePickerYears: VDatePickerYears
85942
+ VDataTable: VDataTable
85943
+ VDataTableHeaders: VDataTableHeaders
85944
+ VDataTableFooter: VDataTableFooter
85945
+ VDataTableRows: VDataTableRows
85946
+ VDataTableRow: VDataTableRow
85947
+ VDataTableVirtual: VDataTableVirtual
85948
+ VDataTableServer: VDataTableServer
85930
85949
  VCounter: VCounter
85950
+ VDialog: VDialog
85931
85951
  VEmptyState: VEmptyState
85932
- VFab: VFab
85952
+ VDivider: VDivider
85933
85953
  VExpansionPanels: VExpansionPanels
85934
85954
  VExpansionPanel: VExpansionPanel
85935
85955
  VExpansionPanelText: VExpansionPanelText
85936
85956
  VExpansionPanelTitle: VExpansionPanelTitle
85957
+ VFab: VFab
85937
85958
  VField: VField
85938
85959
  VFieldLabel: VFieldLabel
85939
- VFooter: VFooter
85940
- VItemGroup: VItemGroup
85941
- VItem: VItem
85942
85960
  VFileInput: VFileInput
85943
85961
  VIcon: VIcon
85944
85962
  VComponentIcon: VComponentIcon
85945
85963
  VSvgIcon: VSvgIcon
85946
85964
  VLigatureIcon: VLigatureIcon
85947
85965
  VClassIcon: VClassIcon
85948
- VImg: VImg
85966
+ VItemGroup: VItemGroup
85967
+ VItem: VItem
85968
+ VInfiniteScroll: VInfiniteScroll
85969
+ VFooter: VFooter
85949
85970
  VInput: VInput
85971
+ VImg: VImg
85950
85972
  VKbd: VKbd
85951
- VInfiniteScroll: VInfiniteScroll
85952
85973
  VLabel: VLabel
85953
- VMain: VMain
85954
85974
  VList: VList
85955
85975
  VListGroup: VListGroup
85956
85976
  VListImg: VListImg
@@ -85961,28 +85981,28 @@ declare module 'vue' {
85961
85981
  VListItemTitle: VListItemTitle
85962
85982
  VListSubheader: VListSubheader
85963
85983
  VMenu: VMenu
85964
- VNavigationDrawer: VNavigationDrawer
85965
85984
  VMessages: VMessages
85966
- VOtpInput: VOtpInput
85967
85985
  VNumberInput: VNumberInput
85968
- VPagination: VPagination
85986
+ VMain: VMain
85987
+ VNavigationDrawer: VNavigationDrawer
85969
85988
  VOverlay: VOverlay
85989
+ VOtpInput: VOtpInput
85970
85990
  VProgressLinear: VProgressLinear
85991
+ VRadioGroup: VRadioGroup
85971
85992
  VProgressCircular: VProgressCircular
85972
85993
  VSelectionControl: VSelectionControl
85973
- VRadioGroup: VRadioGroup
85974
85994
  VRating: VRating
85975
- VSelect: VSelect
85976
85995
  VSelectionControlGroup: VSelectionControlGroup
85977
- VSheet: VSheet
85996
+ VPagination: VPagination
85978
85997
  VSkeletonLoader: VSkeletonLoader
85979
85998
  VSlider: VSlider
85999
+ VSheet: VSheet
85980
86000
  VSlideGroup: VSlideGroup
85981
86001
  VSlideGroupItem: VSlideGroupItem
85982
- VSystemBar: VSystemBar
85983
86002
  VSnackbar: VSnackbar
86003
+ VSelect: VSelect
86004
+ VSystemBar: VSystemBar
85984
86005
  VSwitch: VSwitch
85985
- VTable: VTable
85986
86006
  VStepper: VStepper
85987
86007
  VStepperActions: VStepperActions
85988
86008
  VStepperHeader: VStepperHeader
@@ -85993,32 +86013,36 @@ declare module 'vue' {
85993
86013
  VTabs: VTabs
85994
86014
  VTabsWindow: VTabsWindow
85995
86015
  VTabsWindowItem: VTabsWindowItem
85996
- VTimeline: VTimeline
85997
- VTimelineItem: VTimelineItem
86016
+ VTextarea: VTextarea
85998
86017
  VTextField: VTextField
86018
+ VTable: VTable
85999
86019
  VTooltip: VTooltip
86000
- VTextarea: VTextarea
86001
- VWindow: VWindow
86002
- VWindowItem: VWindowItem
86003
86020
  VToolbar: VToolbar
86004
86021
  VToolbarTitle: VToolbarTitle
86005
86022
  VToolbarItems: VToolbarItems
86023
+ VTimeline: VTimeline
86024
+ VTimelineItem: VTimelineItem
86025
+ VWindow: VWindow
86026
+ VWindowItem: VWindowItem
86027
+ VAppBar: VAppBar
86028
+ VAppBarNavIcon: VAppBarNavIcon
86029
+ VAppBarTitle: VAppBarTitle
86006
86030
  VConfirmEdit: VConfirmEdit
86007
- VDataIterator: VDataIterator
86008
86031
  VDefaultsProvider: VDefaultsProvider
86032
+ VDataIterator: VDataIterator
86009
86033
  VForm: VForm
86010
86034
  VContainer: VContainer
86011
86035
  VCol: VCol
86012
86036
  VRow: VRow
86013
86037
  VSpacer: VSpacer
86014
86038
  VHover: VHover
86015
- VLazy: VLazy
86016
- VLocaleProvider: VLocaleProvider
86017
86039
  VLayout: VLayout
86018
86040
  VLayoutItem: VLayoutItem
86019
- VNoSsr: VNoSsr
86041
+ VLazy: VLazy
86042
+ VLocaleProvider: VLocaleProvider
86020
86043
  VParallax: VParallax
86021
86044
  VRadio: VRadio
86045
+ VNoSsr: VNoSsr
86022
86046
  VRangeSlider: VRangeSlider
86023
86047
  VResponsive: VResponsive
86024
86048
  VSparkline: VSparkline
@@ -86043,27 +86067,27 @@ declare module 'vue' {
86043
86067
  VExpandTransition: VExpandTransition
86044
86068
  VExpandXTransition: VExpandXTransition
86045
86069
  VDialogTransition: VDialogTransition
86070
+ VFileUpload: VFileUpload
86071
+ VFileUploadItem: VFileUploadItem
86072
+ VIconBtn: VIconBtn
86046
86073
  VCalendar: VCalendar
86047
86074
  VCalendarDay: VCalendarDay
86048
86075
  VCalendarHeader: VCalendarHeader
86049
86076
  VCalendarInterval: VCalendarInterval
86050
86077
  VCalendarIntervalEvent: VCalendarIntervalEvent
86051
86078
  VCalendarMonthDay: VCalendarMonthDay
86052
- VFileUpload: VFileUpload
86053
- VFileUploadItem: VFileUploadItem
86054
- VIconBtn: VIconBtn
86055
- VColorInput: VColorInput
86056
86079
  VStepperVertical: VStepperVertical
86057
86080
  VStepperVerticalItem: VStepperVerticalItem
86058
86081
  VStepperVerticalActions: VStepperVerticalActions
86059
86082
  VPicker: VPicker
86060
86083
  VPickerTitle: VPickerTitle
86061
- VTreeview: VTreeview
86062
- VTreeviewItem: VTreeviewItem
86063
- VTreeviewGroup: VTreeviewGroup
86064
86084
  VTimePicker: VTimePicker
86065
86085
  VTimePickerClock: VTimePickerClock
86066
86086
  VTimePickerControls: VTimePickerControls
86087
+ VTreeview: VTreeview
86088
+ VTreeviewItem: VTreeviewItem
86089
+ VTreeviewGroup: VTreeviewGroup
86090
+ VColorInput: VColorInput
86067
86091
  VDateInput: VDateInput
86068
86092
  VPullToRefresh: VPullToRefresh
86069
86093
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.7-master.2025-05-27
2
+ * Vuetify v3.8.7-master.2025-05-31
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -18097,7 +18097,20 @@ function createInstance(options, locale) {
18097
18097
  watch(locale.current, value => {
18098
18098
  instance.locale = options.locale[value] ?? value ?? instance.locale;
18099
18099
  });
18100
- return instance;
18100
+ return Object.assign(instance, {
18101
+ createDateRange(start, stop) {
18102
+ const diff = instance.getDiff(stop ?? start, start, 'days');
18103
+ const datesInRange = [start];
18104
+ for (let i = 1; i < diff; i++) {
18105
+ const nextDate = instance.addDays(start, i);
18106
+ datesInRange.push(nextDate);
18107
+ }
18108
+ if (stop) {
18109
+ datesInRange.push(instance.endOfDay(stop));
18110
+ }
18111
+ return datesInRange;
18112
+ }
18113
+ });
18101
18114
  }
18102
18115
  function useDate() {
18103
18116
  const options = inject$1(DateOptionsSymbol);
@@ -22491,14 +22504,7 @@ const VDatePickerMonth = genericComponent()({
22491
22504
  } else {
22492
22505
  rangeStop.value = adapter.endOfDay(_value);
22493
22506
  }
22494
- const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');
22495
- const datesInRange = [rangeStart.value];
22496
- for (let i = 1; i < diff; i++) {
22497
- const nextDate = adapter.addDays(rangeStart.value, i);
22498
- datesInRange.push(nextDate);
22499
- }
22500
- datesInRange.push(rangeStop.value);
22501
- model.value = datesInRange;
22507
+ model.value = adapter.createDateRange(rangeStart.value, rangeStop.value);
22502
22508
  } else {
22503
22509
  rangeStart.value = value;
22504
22510
  rangeStop.value = undefined;
@@ -22584,7 +22590,8 @@ const makeVDatePickerMonthsProps = propsFactory({
22584
22590
  min: null,
22585
22591
  max: null,
22586
22592
  modelValue: Number,
22587
- year: Number
22593
+ year: Number,
22594
+ allowedMonths: [Array, Function]
22588
22595
  }, 'VDatePickerMonths');
22589
22596
  const VDatePickerMonths = genericComponent()({
22590
22597
  name: 'VDatePickerMonths',
@@ -22606,7 +22613,7 @@ const VDatePickerMonths = genericComponent()({
22606
22613
  }
22607
22614
  return createRange(12).map(i => {
22608
22615
  const text = adapter.format(date, 'monthShort');
22609
- const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
22616
+ const isDisabled = !!(!isMonthAllowed(i) || props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
22610
22617
  date = adapter.getNextMonth(date);
22611
22618
  return {
22612
22619
  isDisabled,
@@ -22618,6 +22625,15 @@ const VDatePickerMonths = genericComponent()({
22618
22625
  watchEffect(() => {
22619
22626
  model.value = model.value ?? adapter.getMonth(adapter.date());
22620
22627
  });
22628
+ function isMonthAllowed(month) {
22629
+ if (Array.isArray(props.allowedMonths) && props.allowedMonths.length) {
22630
+ return props.allowedMonths.includes(month);
22631
+ }
22632
+ if (typeof props.allowedMonths === 'function') {
22633
+ return props.allowedMonths(month);
22634
+ }
22635
+ return true;
22636
+ }
22621
22637
  useRender(() => createElementVNode("div", {
22622
22638
  "class": "v-date-picker-months",
22623
22639
  "style": normalizeStyle({
@@ -22663,7 +22679,8 @@ const makeVDatePickerYearsProps = propsFactory({
22663
22679
  height: [String, Number],
22664
22680
  min: null,
22665
22681
  max: null,
22666
- modelValue: Number
22682
+ modelValue: Number,
22683
+ allowedYears: [Array, Function]
22667
22684
  }, 'VDatePickerYears');
22668
22685
  const VDatePickerYears = genericComponent()({
22669
22686
  name: 'VDatePickerYears',
@@ -22695,7 +22712,8 @@ const VDatePickerYears = genericComponent()({
22695
22712
  date = adapter.setYear(date, adapter.getYear(date) + 1);
22696
22713
  return {
22697
22714
  text,
22698
- value: i
22715
+ value: i,
22716
+ isDisabled: !isYearAllowed(i)
22699
22717
  };
22700
22718
  });
22701
22719
  });
@@ -22709,6 +22727,15 @@ const VDatePickerYears = genericComponent()({
22709
22727
  block: 'center'
22710
22728
  });
22711
22729
  });
22730
+ function isYearAllowed(year) {
22731
+ if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
22732
+ return props.allowedYears.includes(year);
22733
+ }
22734
+ if (typeof props.allowedYears === 'function') {
22735
+ return props.allowedYears(year);
22736
+ }
22737
+ return true;
22738
+ }
22712
22739
  useRender(() => createElementVNode("div", {
22713
22740
  "class": "v-date-picker-years",
22714
22741
  "style": normalizeStyle({
@@ -22723,6 +22750,7 @@ const VDatePickerYears = genericComponent()({
22723
22750
  color: model.value === year.value ? props.color : undefined,
22724
22751
  rounded: true,
22725
22752
  text: year.text,
22753
+ disabled: year.isDisabled,
22726
22754
  variant: model.value === year.value ? 'flat' : 'text',
22727
22755
  onClick: () => {
22728
22756
  if (model.value === year.value) {
@@ -22872,6 +22900,41 @@ const VDatePicker = genericComponent()({
22872
22900
  }
22873
22901
  return targets;
22874
22902
  });
22903
+ function isAllowedInRange(start, end) {
22904
+ const allowedDates = props.allowedDates;
22905
+ if (typeof allowedDates !== 'function') return true;
22906
+ const days = adapter.getDiff(end, start, 'days');
22907
+ for (let i = 0; i < days; i++) {
22908
+ if (allowedDates(adapter.addDays(start, i))) return true;
22909
+ }
22910
+ return false;
22911
+ }
22912
+ function allowedYears(year) {
22913
+ if (typeof props.allowedDates === 'function') {
22914
+ const startOfYear = adapter.parseISO(`${year}-01-01`);
22915
+ return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear));
22916
+ }
22917
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22918
+ for (const date of props.allowedDates) {
22919
+ if (adapter.getYear(adapter.date(date)) === year) return true;
22920
+ }
22921
+ return false;
22922
+ }
22923
+ return true;
22924
+ }
22925
+ function allowedMonths(month) {
22926
+ if (typeof props.allowedDates === 'function') {
22927
+ const startOfMonth = adapter.parseISO(`${year.value}-${month + 1}-01`);
22928
+ return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
22929
+ }
22930
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22931
+ for (const date of props.allowedDates) {
22932
+ if (adapter.getYear(adapter.date(date)) === year.value && adapter.getMonth(adapter.date(date)) === month) return true;
22933
+ }
22934
+ return false;
22935
+ }
22936
+ return true;
22937
+ }
22875
22938
 
22876
22939
  // function onClickAppend () {
22877
22940
  // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'
@@ -22987,14 +23050,16 @@ const VDatePicker = genericComponent()({
22987
23050
  "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
22988
23051
  "min": minDate.value,
22989
23052
  "max": maxDate.value,
22990
- "year": year.value
23053
+ "year": year.value,
23054
+ "allowedMonths": allowedMonths
22991
23055
  }), null) : viewMode.value === 'year' ? createVNode(VDatePickerYears, mergeProps({
22992
23056
  "key": "date-picker-years"
22993
23057
  }, datePickerYearsProps, {
22994
23058
  "modelValue": year.value,
22995
23059
  "onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
22996
23060
  "min": minDate.value,
22997
- "max": maxDate.value
23061
+ "max": maxDate.value,
23062
+ "allowedYears": allowedYears
22998
23063
  }), null) : createVNode(VDatePickerMonth, mergeProps({
22999
23064
  "key": "date-picker-month"
23000
23065
  }, datePickerMonthProps, {
@@ -29317,7 +29382,7 @@ function createVuetify$1() {
29317
29382
  };
29318
29383
  });
29319
29384
  }
29320
- const version$1 = "3.8.7-master.2025-05-27";
29385
+ const version$1 = "3.8.7-master.2025-05-31";
29321
29386
  createVuetify$1.version = version$1;
29322
29387
 
29323
29388
  // Vue's inject() can only be used in setup
@@ -29342,7 +29407,7 @@ const createVuetify = function () {
29342
29407
  ...options
29343
29408
  });
29344
29409
  };
29345
- const version = "3.8.7-master.2025-05-27";
29410
+ const version = "3.8.7-master.2025-05-31";
29346
29411
  createVuetify.version = version;
29347
29412
 
29348
29413
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };