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

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 (38) hide show
  1. package/CHANGELOG.md +8 -3
  2. package/dist/json/attributes.json +2677 -2653
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +200 -200
  5. package/dist/json/tags.json +6 -0
  6. package/dist/json/web-types.json +4691 -4637
  7. package/dist/vuetify-labs.cjs +68 -9
  8. package/dist/vuetify-labs.css +6193 -6193
  9. package/dist/vuetify-labs.d.ts +100 -70
  10. package/dist/vuetify-labs.esm.js +68 -9
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +68 -9
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +68 -9
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3735 -3735
  17. package/dist/vuetify.d.ts +90 -70
  18. package/dist/vuetify.esm.js +68 -9
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +68 -9
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +21 -11
  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/VDatePickerMonths.d.ts +10 -0
  29. package/lib/components/VDatePicker/VDatePickerMonths.js +12 -2
  30. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  31. package/lib/components/VDatePicker/VDatePickerYears.d.ts +10 -0
  32. package/lib/components/VDatePicker/VDatePickerYears.js +14 -2
  33. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  34. package/lib/entry-bundler.js +1 -1
  35. package/lib/framework.d.ts +70 -70
  36. package/lib/framework.js +1 -1
  37. package/lib/labs/VDateInput/VDateInput.d.ts +20 -0
  38. package/package.json +1 -1
package/dist/vuetify.d.ts CHANGED
@@ -39396,6 +39396,8 @@ declare const VDatePicker: {
39396
39396
  headerColor?: string | undefined;
39397
39397
  firstDayOfWeek?: string | number | undefined;
39398
39398
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
39399
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
39400
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
39399
39401
  } & {
39400
39402
  "onUpdate:month"?: ((date: any) => any) | undefined;
39401
39403
  "onUpdate:year"?: ((date: any) => any) | undefined;
@@ -39491,6 +39493,8 @@ declare const VDatePicker: {
39491
39493
  headerColor?: string | undefined;
39492
39494
  firstDayOfWeek?: string | number | undefined;
39493
39495
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
39496
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
39497
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
39494
39498
  } & {
39495
39499
  "onUpdate:month"?: ((date: any) => any) | undefined;
39496
39500
  "onUpdate:year"?: ((date: any) => any) | undefined;
@@ -39570,6 +39574,8 @@ declare const VDatePicker: {
39570
39574
  headerColor?: string | undefined;
39571
39575
  firstDayOfWeek?: string | number | undefined;
39572
39576
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
39577
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
39578
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
39573
39579
  } & {
39574
39580
  "onUpdate:month"?: ((date: any) => any) | undefined;
39575
39581
  "onUpdate:year"?: ((date: any) => any) | undefined;
@@ -39659,7 +39665,9 @@ declare const VDatePicker: {
39659
39665
  hideHeader: BooleanConstructor;
39660
39666
  max: vue.PropType<unknown>;
39661
39667
  min: vue.PropType<unknown>;
39668
+ allowedYears: vue.PropType<number[] | ((date: number) => boolean)>;
39662
39669
  year: NumberConstructor;
39670
+ allowedMonths: vue.PropType<number[] | ((date: number) => boolean)>;
39663
39671
  disabled: {
39664
39672
  type: BooleanConstructor;
39665
39673
  default: null;
@@ -39764,7 +39772,9 @@ declare const VDatePicker: {
39764
39772
  hideHeader: BooleanConstructor;
39765
39773
  max: vue.PropType<unknown>;
39766
39774
  min: vue.PropType<unknown>;
39775
+ allowedYears: vue.PropType<number[] | ((date: number) => boolean)>;
39767
39776
  year: NumberConstructor;
39777
+ allowedMonths: vue.PropType<number[] | ((date: number) => boolean)>;
39768
39778
  disabled: {
39769
39779
  type: BooleanConstructor;
39770
39780
  default: null;
@@ -40421,6 +40431,7 @@ declare const VDatePickerMonths: {
40421
40431
  color?: string | undefined;
40422
40432
  year?: number | undefined;
40423
40433
  modelValue?: number | undefined;
40434
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
40424
40435
  } & {
40425
40436
  $children?: {} | vue.VNodeChild | {
40426
40437
  month?: ((arg: {
@@ -40486,6 +40497,7 @@ declare const VDatePickerMonths: {
40486
40497
  color?: string | undefined;
40487
40498
  year?: number | undefined;
40488
40499
  modelValue?: number | undefined;
40500
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
40489
40501
  } & {
40490
40502
  $children?: {} | vue.VNodeChild | {
40491
40503
  month?: ((arg: {
@@ -40535,6 +40547,7 @@ declare const VDatePickerMonths: {
40535
40547
  color?: string | undefined;
40536
40548
  year?: number | undefined;
40537
40549
  modelValue?: number | undefined;
40550
+ allowedMonths?: number[] | ((date: number) => boolean) | undefined;
40538
40551
  } & {
40539
40552
  $children?: {} | vue.VNodeChild | {
40540
40553
  month?: ((arg: {
@@ -40593,6 +40606,7 @@ declare const VDatePickerMonths: {
40593
40606
  max: PropType<unknown>;
40594
40607
  modelValue: NumberConstructor;
40595
40608
  year: NumberConstructor;
40609
+ allowedMonths: PropType<number[] | ((date: number) => boolean)>;
40596
40610
  }, vue.ExtractPropTypes<{
40597
40611
  color: StringConstructor;
40598
40612
  height: (StringConstructor | NumberConstructor)[];
@@ -40600,6 +40614,7 @@ declare const VDatePickerMonths: {
40600
40614
  max: PropType<unknown>;
40601
40615
  modelValue: NumberConstructor;
40602
40616
  year: NumberConstructor;
40617
+ allowedMonths: PropType<number[] | ((date: number) => boolean)>;
40603
40618
  }>>;
40604
40619
  type VDatePickerMonths = InstanceType<typeof VDatePickerMonths>;
40605
40620
 
@@ -40610,6 +40625,7 @@ declare const VDatePickerYears: {
40610
40625
  min?: unknown;
40611
40626
  color?: string | undefined;
40612
40627
  modelValue?: number | undefined;
40628
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
40613
40629
  } & {
40614
40630
  $children?: {} | vue.VNodeChild | {
40615
40631
  year?: ((arg: {
@@ -40694,6 +40710,7 @@ declare const VDatePickerYears: {
40694
40710
  min?: unknown;
40695
40711
  color?: string | undefined;
40696
40712
  modelValue?: number | undefined;
40713
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
40697
40714
  } & {
40698
40715
  $children?: {} | vue.VNodeChild | {
40699
40716
  year?: ((arg: {
@@ -40757,6 +40774,7 @@ declare const VDatePickerYears: {
40757
40774
  min?: unknown;
40758
40775
  color?: string | undefined;
40759
40776
  modelValue?: number | undefined;
40777
+ allowedYears?: number[] | ((date: number) => boolean) | undefined;
40760
40778
  } & {
40761
40779
  $children?: {} | vue.VNodeChild | {
40762
40780
  year?: ((arg: {
@@ -40834,12 +40852,14 @@ declare const VDatePickerYears: {
40834
40852
  min: PropType<unknown>;
40835
40853
  max: PropType<unknown>;
40836
40854
  modelValue: NumberConstructor;
40855
+ allowedYears: PropType<number[] | ((date: number) => boolean)>;
40837
40856
  }, vue.ExtractPropTypes<{
40838
40857
  color: StringConstructor;
40839
40858
  height: (StringConstructor | NumberConstructor)[];
40840
40859
  min: PropType<unknown>;
40841
40860
  max: PropType<unknown>;
40842
40861
  modelValue: NumberConstructor;
40862
+ allowedYears: PropType<number[] | ((date: number) => boolean)>;
40843
40863
  }>>;
40844
40864
  type VDatePickerYears = InstanceType<typeof VDatePickerYears>;
40845
40865
 
@@ -85877,40 +85897,37 @@ declare module 'vue' {
85877
85897
  $children?: VNodeChild
85878
85898
  }
85879
85899
  export interface GlobalComponents {
85880
- VAppBar: VAppBar
85881
- VAppBarNavIcon: VAppBarNavIcon
85882
- VAppBarTitle: VAppBarTitle
85883
- VAutocomplete: VAutocomplete
85884
85900
  VAlert: VAlert
85885
85901
  VAlertTitle: VAlertTitle
85886
85902
  VApp: VApp
85903
+ VAutocomplete: VAutocomplete
85887
85904
  VAvatar: VAvatar
85888
- VBadge: VBadge
85889
- VBtn: VBtn
85905
+ VBottomNavigation: VBottomNavigation
85890
85906
  VBanner: VBanner
85891
85907
  VBannerActions: VBannerActions
85892
85908
  VBannerText: VBannerText
85909
+ VBtn: VBtn
85893
85910
  VBottomSheet: VBottomSheet
85894
- VCarousel: VCarousel
85895
- VCarouselItem: VCarouselItem
85896
- VBottomNavigation: VBottomNavigation
85897
- VBreadcrumbs: VBreadcrumbs
85898
- VBreadcrumbsItem: VBreadcrumbsItem
85899
- VBreadcrumbsDivider: VBreadcrumbsDivider
85900
- VBtnGroup: VBtnGroup
85901
85911
  VCard: VCard
85902
85912
  VCardActions: VCardActions
85903
85913
  VCardItem: VCardItem
85904
85914
  VCardSubtitle: VCardSubtitle
85905
85915
  VCardText: VCardText
85906
85916
  VCardTitle: VCardTitle
85907
- VBtnToggle: VBtnToggle
85908
- VChipGroup: VChipGroup
85917
+ VBtnGroup: VBtnGroup
85918
+ VBadge: VBadge
85919
+ VBreadcrumbs: VBreadcrumbs
85920
+ VBreadcrumbsItem: VBreadcrumbsItem
85921
+ VBreadcrumbsDivider: VBreadcrumbsDivider
85909
85922
  VChip: VChip
85910
85923
  VCheckbox: VCheckbox
85911
85924
  VCheckboxBtn: VCheckboxBtn
85925
+ VChipGroup: VChipGroup
85912
85926
  VColorPicker: VColorPicker
85913
85927
  VCode: VCode
85928
+ VCombobox: VCombobox
85929
+ VBtnToggle: VBtnToggle
85930
+ VCounter: VCounter
85914
85931
  VDataTable: VDataTable
85915
85932
  VDataTableHeaders: VDataTableHeaders
85916
85933
  VDataTableFooter: VDataTableFooter
@@ -85918,71 +85935,55 @@ declare module 'vue' {
85918
85935
  VDataTableRow: VDataTableRow
85919
85936
  VDataTableVirtual: VDataTableVirtual
85920
85937
  VDataTableServer: VDataTableServer
85921
- VDivider: VDivider
85922
- VCombobox: VCombobox
85923
- VDialog: VDialog
85938
+ VCarousel: VCarousel
85939
+ VCarouselItem: VCarouselItem
85924
85940
  VDatePicker: VDatePicker
85925
85941
  VDatePickerControls: VDatePickerControls
85926
85942
  VDatePickerHeader: VDatePickerHeader
85927
85943
  VDatePickerMonth: VDatePickerMonth
85928
85944
  VDatePickerMonths: VDatePickerMonths
85929
85945
  VDatePickerYears: VDatePickerYears
85930
- VCounter: VCounter
85946
+ VDialog: VDialog
85931
85947
  VEmptyState: VEmptyState
85932
- VFab: VFab
85948
+ VField: VField
85949
+ VFieldLabel: VFieldLabel
85933
85950
  VExpansionPanels: VExpansionPanels
85934
85951
  VExpansionPanel: VExpansionPanel
85935
85952
  VExpansionPanelText: VExpansionPanelText
85936
85953
  VExpansionPanelTitle: VExpansionPanelTitle
85937
- VField: VField
85938
- VFieldLabel: VFieldLabel
85954
+ VFileInput: VFileInput
85955
+ VFab: VFab
85939
85956
  VFooter: VFooter
85957
+ VDivider: VDivider
85958
+ VImg: VImg
85940
85959
  VItemGroup: VItemGroup
85941
85960
  VItem: VItem
85942
- VFileInput: VFileInput
85943
- VIcon: VIcon
85944
- VComponentIcon: VComponentIcon
85945
- VSvgIcon: VSvgIcon
85946
- VLigatureIcon: VLigatureIcon
85947
- VClassIcon: VClassIcon
85948
- VImg: VImg
85949
- VInput: VInput
85950
- VKbd: VKbd
85951
85961
  VInfiniteScroll: VInfiniteScroll
85962
+ VKbd: VKbd
85952
85963
  VLabel: VLabel
85964
+ VInput: VInput
85953
85965
  VMain: VMain
85954
- VList: VList
85955
- VListGroup: VListGroup
85956
- VListImg: VListImg
85957
- VListItem: VListItem
85958
- VListItemAction: VListItemAction
85959
- VListItemMedia: VListItemMedia
85960
- VListItemSubtitle: VListItemSubtitle
85961
- VListItemTitle: VListItemTitle
85962
- VListSubheader: VListSubheader
85963
85966
  VMenu: VMenu
85967
+ VNumberInput: VNumberInput
85964
85968
  VNavigationDrawer: VNavigationDrawer
85965
- VMessages: VMessages
85966
85969
  VOtpInput: VOtpInput
85967
- VNumberInput: VNumberInput
85968
- VPagination: VPagination
85970
+ VMessages: VMessages
85971
+ VProgressCircular: VProgressCircular
85969
85972
  VOverlay: VOverlay
85973
+ VPagination: VPagination
85970
85974
  VProgressLinear: VProgressLinear
85971
- VProgressCircular: VProgressCircular
85972
- VSelectionControl: VSelectionControl
85973
- VRadioGroup: VRadioGroup
85974
85975
  VRating: VRating
85976
+ VRadioGroup: VRadioGroup
85975
85977
  VSelect: VSelect
85976
- VSelectionControlGroup: VSelectionControlGroup
85977
- VSheet: VSheet
85978
- VSkeletonLoader: VSkeletonLoader
85979
- VSlider: VSlider
85978
+ VSelectionControl: VSelectionControl
85980
85979
  VSlideGroup: VSlideGroup
85981
85980
  VSlideGroupItem: VSlideGroupItem
85982
- VSystemBar: VSystemBar
85981
+ VSlider: VSlider
85982
+ VSkeletonLoader: VSkeletonLoader
85983
+ VSheet: VSheet
85984
+ VSelectionControlGroup: VSelectionControlGroup
85983
85985
  VSnackbar: VSnackbar
85984
85986
  VSwitch: VSwitch
85985
- VTable: VTable
85986
85987
  VStepper: VStepper
85987
85988
  VStepperActions: VStepperActions
85988
85989
  VStepperHeader: VStepperHeader
@@ -85993,18 +85994,32 @@ declare module 'vue' {
85993
85994
  VTabs: VTabs
85994
85995
  VTabsWindow: VTabsWindow
85995
85996
  VTabsWindowItem: VTabsWindowItem
85997
+ VSystemBar: VSystemBar
85998
+ VTable: VTable
85999
+ VTextarea: VTextarea
86000
+ VTooltip: VTooltip
85996
86001
  VTimeline: VTimeline
85997
86002
  VTimelineItem: VTimelineItem
85998
- VTextField: VTextField
85999
- VTooltip: VTooltip
86000
- VTextarea: VTextarea
86001
- VWindow: VWindow
86002
- VWindowItem: VWindowItem
86003
86003
  VToolbar: VToolbar
86004
86004
  VToolbarTitle: VToolbarTitle
86005
86005
  VToolbarItems: VToolbarItems
86006
- VConfirmEdit: VConfirmEdit
86007
- VDataIterator: VDataIterator
86006
+ VTextField: VTextField
86007
+ VWindow: VWindow
86008
+ VWindowItem: VWindowItem
86009
+ VIcon: VIcon
86010
+ VComponentIcon: VComponentIcon
86011
+ VSvgIcon: VSvgIcon
86012
+ VLigatureIcon: VLigatureIcon
86013
+ VClassIcon: VClassIcon
86014
+ VList: VList
86015
+ VListGroup: VListGroup
86016
+ VListImg: VListImg
86017
+ VListItem: VListItem
86018
+ VListItemAction: VListItemAction
86019
+ VListItemMedia: VListItemMedia
86020
+ VListItemSubtitle: VListItemSubtitle
86021
+ VListItemTitle: VListItemTitle
86022
+ VListSubheader: VListSubheader
86008
86023
  VDefaultsProvider: VDefaultsProvider
86009
86024
  VForm: VForm
86010
86025
  VContainer: VContainer
@@ -86013,20 +86028,24 @@ declare module 'vue' {
86013
86028
  VSpacer: VSpacer
86014
86029
  VHover: VHover
86015
86030
  VLazy: VLazy
86016
- VLocaleProvider: VLocaleProvider
86031
+ VAppBar: VAppBar
86032
+ VAppBarNavIcon: VAppBarNavIcon
86033
+ VAppBarTitle: VAppBarTitle
86034
+ VConfirmEdit: VConfirmEdit
86017
86035
  VLayout: VLayout
86018
86036
  VLayoutItem: VLayoutItem
86037
+ VLocaleProvider: VLocaleProvider
86019
86038
  VNoSsr: VNoSsr
86020
86039
  VParallax: VParallax
86021
86040
  VRadio: VRadio
86022
86041
  VRangeSlider: VRangeSlider
86023
86042
  VResponsive: VResponsive
86024
- VSparkline: VSparkline
86025
86043
  VSnackbarQueue: VSnackbarQueue
86044
+ VSparkline: VSparkline
86026
86045
  VSpeedDial: VSpeedDial
86027
86046
  VThemeProvider: VThemeProvider
86028
- VValidation: VValidation
86029
86047
  VVirtualScroll: VVirtualScroll
86048
+ VValidation: VValidation
86030
86049
  VFabTransition: VFabTransition
86031
86050
  VDialogBottomTransition: VDialogBottomTransition
86032
86051
  VDialogTopTransition: VDialogTopTransition
@@ -86043,27 +86062,28 @@ declare module 'vue' {
86043
86062
  VExpandTransition: VExpandTransition
86044
86063
  VExpandXTransition: VExpandXTransition
86045
86064
  VDialogTransition: VDialogTransition
86065
+ VDataIterator: VDataIterator
86046
86066
  VCalendar: VCalendar
86047
86067
  VCalendarDay: VCalendarDay
86048
86068
  VCalendarHeader: VCalendarHeader
86049
86069
  VCalendarInterval: VCalendarInterval
86050
86070
  VCalendarIntervalEvent: VCalendarIntervalEvent
86051
86071
  VCalendarMonthDay: VCalendarMonthDay
86052
- VFileUpload: VFileUpload
86053
- VFileUploadItem: VFileUploadItem
86054
- VIconBtn: VIconBtn
86055
86072
  VColorInput: VColorInput
86073
+ VPicker: VPicker
86074
+ VPickerTitle: VPickerTitle
86056
86075
  VStepperVertical: VStepperVertical
86057
86076
  VStepperVerticalItem: VStepperVerticalItem
86058
86077
  VStepperVerticalActions: VStepperVerticalActions
86059
- VPicker: VPicker
86060
- VPickerTitle: VPickerTitle
86061
- VTreeview: VTreeview
86062
- VTreeviewItem: VTreeviewItem
86063
- VTreeviewGroup: VTreeviewGroup
86078
+ VFileUpload: VFileUpload
86079
+ VFileUploadItem: VFileUploadItem
86080
+ VIconBtn: VIconBtn
86064
86081
  VTimePicker: VTimePicker
86065
86082
  VTimePickerClock: VTimePickerClock
86066
86083
  VTimePickerControls: VTimePickerControls
86084
+ VTreeview: VTreeview
86085
+ VTreeviewItem: VTreeviewItem
86086
+ VTreeviewGroup: VTreeviewGroup
86067
86087
  VDateInput: VDateInput
86068
86088
  VPullToRefresh: VPullToRefresh
86069
86089
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.7-master.2025-05-27
2
+ * Vuetify v3.8.7-master.2025-05-29
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -22584,7 +22584,8 @@ const makeVDatePickerMonthsProps = propsFactory({
22584
22584
  min: null,
22585
22585
  max: null,
22586
22586
  modelValue: Number,
22587
- year: Number
22587
+ year: Number,
22588
+ allowedMonths: [Array, Function]
22588
22589
  }, 'VDatePickerMonths');
22589
22590
  const VDatePickerMonths = genericComponent()({
22590
22591
  name: 'VDatePickerMonths',
@@ -22606,7 +22607,7 @@ const VDatePickerMonths = genericComponent()({
22606
22607
  }
22607
22608
  return createRange(12).map(i => {
22608
22609
  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))));
22610
+ 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
22611
  date = adapter.getNextMonth(date);
22611
22612
  return {
22612
22613
  isDisabled,
@@ -22618,6 +22619,15 @@ const VDatePickerMonths = genericComponent()({
22618
22619
  watchEffect(() => {
22619
22620
  model.value = model.value ?? adapter.getMonth(adapter.date());
22620
22621
  });
22622
+ function isMonthAllowed(month) {
22623
+ if (Array.isArray(props.allowedMonths) && props.allowedMonths.length) {
22624
+ return props.allowedMonths.includes(month);
22625
+ }
22626
+ if (typeof props.allowedMonths === 'function') {
22627
+ return props.allowedMonths(month);
22628
+ }
22629
+ return true;
22630
+ }
22621
22631
  useRender(() => createElementVNode("div", {
22622
22632
  "class": "v-date-picker-months",
22623
22633
  "style": normalizeStyle({
@@ -22663,7 +22673,8 @@ const makeVDatePickerYearsProps = propsFactory({
22663
22673
  height: [String, Number],
22664
22674
  min: null,
22665
22675
  max: null,
22666
- modelValue: Number
22676
+ modelValue: Number,
22677
+ allowedYears: [Array, Function]
22667
22678
  }, 'VDatePickerYears');
22668
22679
  const VDatePickerYears = genericComponent()({
22669
22680
  name: 'VDatePickerYears',
@@ -22695,7 +22706,8 @@ const VDatePickerYears = genericComponent()({
22695
22706
  date = adapter.setYear(date, adapter.getYear(date) + 1);
22696
22707
  return {
22697
22708
  text,
22698
- value: i
22709
+ value: i,
22710
+ isDisabled: !isYearAllowed(i)
22699
22711
  };
22700
22712
  });
22701
22713
  });
@@ -22709,6 +22721,15 @@ const VDatePickerYears = genericComponent()({
22709
22721
  block: 'center'
22710
22722
  });
22711
22723
  });
22724
+ function isYearAllowed(year) {
22725
+ if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
22726
+ return props.allowedYears.includes(year);
22727
+ }
22728
+ if (typeof props.allowedYears === 'function') {
22729
+ return props.allowedYears(year);
22730
+ }
22731
+ return true;
22732
+ }
22712
22733
  useRender(() => createElementVNode("div", {
22713
22734
  "class": "v-date-picker-years",
22714
22735
  "style": normalizeStyle({
@@ -22723,6 +22744,7 @@ const VDatePickerYears = genericComponent()({
22723
22744
  color: model.value === year.value ? props.color : undefined,
22724
22745
  rounded: true,
22725
22746
  text: year.text,
22747
+ disabled: year.isDisabled,
22726
22748
  variant: model.value === year.value ? 'flat' : 'text',
22727
22749
  onClick: () => {
22728
22750
  if (model.value === year.value) {
@@ -22872,6 +22894,41 @@ const VDatePicker = genericComponent()({
22872
22894
  }
22873
22895
  return targets;
22874
22896
  });
22897
+ function isAllowedInRange(start, end) {
22898
+ const allowedDates = props.allowedDates;
22899
+ if (typeof allowedDates !== 'function') return true;
22900
+ const days = adapter.getDiff(end, start, 'days');
22901
+ for (let i = 0; i < days; i++) {
22902
+ if (allowedDates(adapter.addDays(start, i))) return true;
22903
+ }
22904
+ return false;
22905
+ }
22906
+ function allowedYears(year) {
22907
+ if (typeof props.allowedDates === 'function') {
22908
+ const startOfYear = adapter.parseISO(`${year}-01-01`);
22909
+ return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear));
22910
+ }
22911
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22912
+ for (const date of props.allowedDates) {
22913
+ if (adapter.getYear(adapter.date(date)) === year) return true;
22914
+ }
22915
+ return false;
22916
+ }
22917
+ return true;
22918
+ }
22919
+ function allowedMonths(month) {
22920
+ if (typeof props.allowedDates === 'function') {
22921
+ const startOfMonth = adapter.parseISO(`${year.value}-${month + 1}-01`);
22922
+ return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
22923
+ }
22924
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22925
+ for (const date of props.allowedDates) {
22926
+ if (adapter.getYear(adapter.date(date)) === year.value && adapter.getMonth(adapter.date(date)) === month) return true;
22927
+ }
22928
+ return false;
22929
+ }
22930
+ return true;
22931
+ }
22875
22932
 
22876
22933
  // function onClickAppend () {
22877
22934
  // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'
@@ -22987,14 +23044,16 @@ const VDatePicker = genericComponent()({
22987
23044
  "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
22988
23045
  "min": minDate.value,
22989
23046
  "max": maxDate.value,
22990
- "year": year.value
23047
+ "year": year.value,
23048
+ "allowedMonths": allowedMonths
22991
23049
  }), null) : viewMode.value === 'year' ? createVNode(VDatePickerYears, mergeProps({
22992
23050
  "key": "date-picker-years"
22993
23051
  }, datePickerYearsProps, {
22994
23052
  "modelValue": year.value,
22995
23053
  "onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
22996
23054
  "min": minDate.value,
22997
- "max": maxDate.value
23055
+ "max": maxDate.value,
23056
+ "allowedYears": allowedYears
22998
23057
  }), null) : createVNode(VDatePickerMonth, mergeProps({
22999
23058
  "key": "date-picker-month"
23000
23059
  }, datePickerMonthProps, {
@@ -29317,7 +29376,7 @@ function createVuetify$1() {
29317
29376
  };
29318
29377
  });
29319
29378
  }
29320
- const version$1 = "3.8.7-master.2025-05-27";
29379
+ const version$1 = "3.8.7-master.2025-05-29";
29321
29380
  createVuetify$1.version = version$1;
29322
29381
 
29323
29382
  // Vue's inject() can only be used in setup
@@ -29342,7 +29401,7 @@ const createVuetify = function () {
29342
29401
  ...options
29343
29402
  });
29344
29403
  };
29345
- const version = "3.8.7-master.2025-05-27";
29404
+ const version = "3.8.7-master.2025-05-29";
29346
29405
  createVuetify.version = version;
29347
29406
 
29348
29407
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };