vuetify 3.3.19 → 3.3.21

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 (105) hide show
  1. package/dist/json/attributes.json +43 -31
  2. package/dist/json/importMap-labs.json +4 -4
  3. package/dist/json/importMap.json +4 -4
  4. package/dist/json/tags.json +3 -0
  5. package/dist/json/web-types.json +97 -70
  6. package/dist/vuetify-labs.css +5073 -5056
  7. package/dist/vuetify-labs.d.ts +240 -220
  8. package/dist/vuetify-labs.esm.js +101 -62
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +101 -62
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +5452 -5440
  13. package/dist/vuetify.d.ts +168 -166
  14. package/dist/vuetify.esm.js +56 -41
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +56 -41
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +775 -773
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/blueprints/index.d.mts +2 -0
  22. package/lib/blueprints/md1.d.mts +2 -0
  23. package/lib/blueprints/md2.d.mts +2 -0
  24. package/lib/blueprints/md3.d.mts +2 -0
  25. package/lib/components/VAutocomplete/index.d.mts +14 -14
  26. package/lib/components/VCheckbox/index.d.mts +8 -8
  27. package/lib/components/VChip/VChip.css +67 -67
  28. package/lib/components/VChip/_variables.scss +1 -1
  29. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -0
  30. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  31. package/lib/components/VCombobox/VCombobox.mjs +1 -1
  32. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  33. package/lib/components/VCombobox/index.d.mts +14 -14
  34. package/lib/components/VField/VField.css +3 -0
  35. package/lib/components/VField/VField.sass +3 -0
  36. package/lib/components/VField/_variables.scss +1 -0
  37. package/lib/components/VFileInput/index.d.mts +20 -20
  38. package/lib/components/VInput/index.d.mts +8 -8
  39. package/lib/components/VList/VList.css +0 -3
  40. package/lib/components/VList/VList.sass +0 -4
  41. package/lib/components/VList/VListItem.css +9 -1
  42. package/lib/components/VList/VListItem.sass +12 -1
  43. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +8 -7
  44. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  45. package/lib/components/VRadioGroup/index.d.mts +8 -8
  46. package/lib/components/VRangeSlider/index.d.mts +8 -8
  47. package/lib/components/VSelect/index.d.mts +14 -14
  48. package/lib/components/VSlider/VSliderThumb.css +2 -0
  49. package/lib/components/VSlider/VSliderThumb.mjs +7 -6
  50. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  51. package/lib/components/VSlider/VSliderThumb.sass +2 -0
  52. package/lib/components/VSlider/VSliderTrack.mjs +5 -7
  53. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  54. package/lib/components/VSlider/index.d.mts +8 -8
  55. package/lib/components/VSlider/slider.mjs +4 -10
  56. package/lib/components/VSlider/slider.mjs.map +1 -1
  57. package/lib/components/VSwitch/index.d.mts +8 -8
  58. package/lib/components/VTable/VTable.css +3 -0
  59. package/lib/components/VTable/VTable.sass +3 -0
  60. package/lib/components/VTextField/VTextField.mjs +1 -1
  61. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  62. package/lib/components/VTextField/index.d.mts +26 -26
  63. package/lib/components/VTextarea/index.d.mts +20 -20
  64. package/lib/components/VTimeline/VTimeline.css +0 -1
  65. package/lib/components/VTimeline/VTimeline.sass +0 -1
  66. package/lib/components/VValidation/index.d.mts +8 -8
  67. package/lib/components/index.d.mts +164 -164
  68. package/lib/composables/forwardRefs.mjs +4 -4
  69. package/lib/composables/forwardRefs.mjs.map +1 -1
  70. package/lib/composables/validation.mjs +2 -2
  71. package/lib/composables/validation.mjs.map +1 -1
  72. package/lib/entry-bundler.mjs +1 -1
  73. package/lib/framework.mjs +1 -1
  74. package/lib/index.d.mts +4 -2
  75. package/lib/labs/VDataTable/VDataTableFooter.mjs +12 -4
  76. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  77. package/lib/labs/VDataTable/VDataTableVirtual.mjs +5 -5
  78. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  79. package/lib/labs/VDataTable/composables/select.mjs +6 -6
  80. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  81. package/lib/labs/VDataTable/index.d.mts +48 -48
  82. package/lib/labs/VDateInput/index.d.mts +14 -14
  83. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +14 -2
  84. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  85. package/lib/labs/VDatePicker/index.d.mts +18 -0
  86. package/lib/labs/VDateRangePicker/index.d.mts +12 -0
  87. package/lib/labs/VOtpInput/VOtpInput.css +3 -2
  88. package/lib/labs/VOtpInput/VOtpInput.mjs +7 -4
  89. package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -1
  90. package/lib/labs/VOtpInput/VOtpInput.sass +9 -8
  91. package/lib/labs/VOtpInput/_variables.scss +9 -0
  92. package/lib/labs/VSkeletonLoader/VSkeletonLoader.css +4 -0
  93. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +2 -1
  94. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  95. package/lib/labs/VSkeletonLoader/VSkeletonLoader.sass +4 -0
  96. package/lib/labs/VSkeletonLoader/index.d.mts +8 -8
  97. package/lib/labs/components.d.mts +74 -56
  98. package/lib/labs/date/DateAdapter.mjs.map +1 -1
  99. package/lib/labs/date/adapters/vuetify.d.mts +4 -0
  100. package/lib/labs/date/adapters/vuetify.mjs +18 -1
  101. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  102. package/lib/labs/date/date.mjs +1 -1
  103. package/lib/labs/date/date.mjs.map +1 -1
  104. package/lib/labs/date/index.d.mts +4 -0
  105. package/package.json +2 -2
@@ -1168,10 +1168,10 @@ declare const VDataTable: {
1168
1168
  prevPageLabel?: string | undefined;
1169
1169
  nextPageLabel?: string | undefined;
1170
1170
  lastPageLabel?: string | undefined;
1171
- itemsPerPageOptions?: readonly {
1171
+ itemsPerPageOptions?: readonly (number | {
1172
1172
  title: string;
1173
1173
  value: number;
1174
- }[] | undefined;
1174
+ })[] | undefined;
1175
1175
  showCurrentPage?: boolean | undefined;
1176
1176
  sortAscIcon?: IconValue | undefined;
1177
1177
  sortDescIcon?: IconValue | undefined;
@@ -1589,10 +1589,10 @@ declare const VDataTable: {
1589
1589
  prevPageLabel: string;
1590
1590
  nextPageLabel: string;
1591
1591
  lastPageLabel: string;
1592
- itemsPerPageOptions: readonly {
1592
+ itemsPerPageOptions: readonly (number | {
1593
1593
  title: string;
1594
1594
  value: number;
1595
- }[];
1595
+ })[];
1596
1596
  showCurrentPage: boolean;
1597
1597
  sortAscIcon: IconValue;
1598
1598
  sortDescIcon: IconValue;
@@ -1883,10 +1883,10 @@ declare const VDataTable: {
1883
1883
  prevPageLabel: string;
1884
1884
  nextPageLabel: string;
1885
1885
  lastPageLabel: string;
1886
- itemsPerPageOptions: readonly {
1886
+ itemsPerPageOptions: readonly (number | {
1887
1887
  title: string;
1888
1888
  value: number;
1889
- }[];
1889
+ })[];
1890
1890
  showCurrentPage: boolean;
1891
1891
  sortAscIcon: IconValue;
1892
1892
  sortDescIcon: IconValue;
@@ -2069,10 +2069,10 @@ declare const VDataTable: {
2069
2069
  prevPageLabel: string;
2070
2070
  nextPageLabel: string;
2071
2071
  lastPageLabel: string;
2072
- itemsPerPageOptions: readonly {
2072
+ itemsPerPageOptions: readonly (number | {
2073
2073
  title: string;
2074
2074
  value: number;
2075
- }[];
2075
+ })[];
2076
2076
  showCurrentPage: boolean;
2077
2077
  sortAscIcon: IconValue;
2078
2078
  sortDescIcon: IconValue;
@@ -2359,10 +2359,10 @@ declare const VDataTable: {
2359
2359
  prevPageLabel: string;
2360
2360
  nextPageLabel: string;
2361
2361
  lastPageLabel: string;
2362
- itemsPerPageOptions: readonly {
2362
+ itemsPerPageOptions: readonly (number | {
2363
2363
  title: string;
2364
2364
  value: number;
2365
- }[];
2365
+ })[];
2366
2366
  showCurrentPage: boolean;
2367
2367
  sortAscIcon: IconValue;
2368
2368
  sortDescIcon: IconValue;
@@ -2653,10 +2653,10 @@ declare const VDataTable: {
2653
2653
  prevPageLabel: string;
2654
2654
  nextPageLabel: string;
2655
2655
  lastPageLabel: string;
2656
- itemsPerPageOptions: readonly {
2656
+ itemsPerPageOptions: readonly (number | {
2657
2657
  title: string;
2658
2658
  value: number;
2659
- }[];
2659
+ })[];
2660
2660
  showCurrentPage: boolean;
2661
2661
  sortAscIcon: IconValue;
2662
2662
  sortDescIcon: IconValue;
@@ -2820,10 +2820,10 @@ declare const VDataTable: {
2820
2820
  default: string;
2821
2821
  };
2822
2822
  itemsPerPageOptions: {
2823
- type: vue.PropType<readonly {
2823
+ type: vue.PropType<readonly (number | {
2824
2824
  title: string;
2825
2825
  value: number;
2826
- }[]>;
2826
+ })[]>;
2827
2827
  default: () => {
2828
2828
  value: number;
2829
2829
  title: string;
@@ -2981,10 +2981,10 @@ declare const VDataTable: {
2981
2981
  default: string;
2982
2982
  };
2983
2983
  itemsPerPageOptions: {
2984
- type: vue.PropType<readonly {
2984
+ type: vue.PropType<readonly (number | {
2985
2985
  title: string;
2986
2986
  value: number;
2987
- }[]>;
2987
+ })[]>;
2988
2988
  default: () => {
2989
2989
  value: number;
2990
2990
  title: string;
@@ -3118,10 +3118,10 @@ declare const VDataTableFooter: {
3118
3118
  prevPageLabel?: string | undefined;
3119
3119
  nextPageLabel?: string | undefined;
3120
3120
  lastPageLabel?: string | undefined;
3121
- itemsPerPageOptions?: readonly {
3121
+ itemsPerPageOptions?: readonly (number | {
3122
3122
  title: string;
3123
3123
  value: number;
3124
- }[] | undefined;
3124
+ })[] | undefined;
3125
3125
  showCurrentPage?: boolean | undefined;
3126
3126
  key?: string | number | symbol | undefined;
3127
3127
  style?: unknown;
@@ -3201,10 +3201,10 @@ declare const VDataTableFooter: {
3201
3201
  prevPageLabel: string;
3202
3202
  nextPageLabel: string;
3203
3203
  lastPageLabel: string;
3204
- itemsPerPageOptions: readonly {
3204
+ itemsPerPageOptions: readonly (number | {
3205
3205
  title: string;
3206
3206
  value: number;
3207
- }[];
3207
+ })[];
3208
3208
  showCurrentPage: boolean;
3209
3209
  } & {} & {
3210
3210
  $children?: {} | vue.VNodeChild | {
@@ -3226,10 +3226,10 @@ declare const VDataTableFooter: {
3226
3226
  prevPageLabel: string;
3227
3227
  nextPageLabel: string;
3228
3228
  lastPageLabel: string;
3229
- itemsPerPageOptions: readonly {
3229
+ itemsPerPageOptions: readonly (number | {
3230
3230
  title: string;
3231
3231
  value: number;
3232
- }[];
3232
+ })[];
3233
3233
  showCurrentPage: boolean;
3234
3234
  }, {}, string, vue.SlotsType<Partial<{
3235
3235
  prepend: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
@@ -3266,10 +3266,10 @@ declare const VDataTableFooter: {
3266
3266
  prevPageLabel: string;
3267
3267
  nextPageLabel: string;
3268
3268
  lastPageLabel: string;
3269
- itemsPerPageOptions: readonly {
3269
+ itemsPerPageOptions: readonly (number | {
3270
3270
  title: string;
3271
3271
  value: number;
3272
- }[];
3272
+ })[];
3273
3273
  showCurrentPage: boolean;
3274
3274
  } & {} & {
3275
3275
  $children?: {} | vue.VNodeChild | {
@@ -3295,10 +3295,10 @@ declare const VDataTableFooter: {
3295
3295
  prevPageLabel: string;
3296
3296
  nextPageLabel: string;
3297
3297
  lastPageLabel: string;
3298
- itemsPerPageOptions: readonly {
3298
+ itemsPerPageOptions: readonly (number | {
3299
3299
  title: string;
3300
3300
  value: number;
3301
- }[];
3301
+ })[];
3302
3302
  showCurrentPage: boolean;
3303
3303
  } & {} & {
3304
3304
  $children?: {} | vue.VNodeChild | {
@@ -3320,10 +3320,10 @@ declare const VDataTableFooter: {
3320
3320
  prevPageLabel: string;
3321
3321
  nextPageLabel: string;
3322
3322
  lastPageLabel: string;
3323
- itemsPerPageOptions: readonly {
3323
+ itemsPerPageOptions: readonly (number | {
3324
3324
  title: string;
3325
3325
  value: number;
3326
- }[];
3326
+ })[];
3327
3327
  showCurrentPage: boolean;
3328
3328
  }, {}, string, vue.SlotsType<Partial<{
3329
3329
  prepend: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
@@ -3371,10 +3371,10 @@ declare const VDataTableFooter: {
3371
3371
  default: string;
3372
3372
  };
3373
3373
  itemsPerPageOptions: {
3374
- type: PropType<readonly {
3374
+ type: PropType<readonly (number | {
3375
3375
  title: string;
3376
3376
  value: number;
3377
- }[]>;
3377
+ })[]>;
3378
3378
  default: () => {
3379
3379
  value: number;
3380
3380
  title: string;
@@ -3423,10 +3423,10 @@ declare const VDataTableFooter: {
3423
3423
  default: string;
3424
3424
  };
3425
3425
  itemsPerPageOptions: {
3426
- type: PropType<readonly {
3426
+ type: PropType<readonly (number | {
3427
3427
  title: string;
3428
3428
  value: number;
3429
- }[]>;
3429
+ })[]>;
3430
3430
  default: () => {
3431
3431
  value: number;
3432
3432
  title: string;
@@ -5146,10 +5146,10 @@ declare const VDataTableServer: {
5146
5146
  prevPageLabel?: string | undefined;
5147
5147
  nextPageLabel?: string | undefined;
5148
5148
  lastPageLabel?: string | undefined;
5149
- itemsPerPageOptions?: readonly {
5149
+ itemsPerPageOptions?: readonly (number | {
5150
5150
  title: string;
5151
5151
  value: number;
5152
- }[] | undefined;
5152
+ })[] | undefined;
5153
5153
  showCurrentPage?: boolean | undefined;
5154
5154
  sortAscIcon?: IconValue | undefined;
5155
5155
  sortDescIcon?: IconValue | undefined;
@@ -5564,10 +5564,10 @@ declare const VDataTableServer: {
5564
5564
  prevPageLabel: string;
5565
5565
  nextPageLabel: string;
5566
5566
  lastPageLabel: string;
5567
- itemsPerPageOptions: readonly {
5567
+ itemsPerPageOptions: readonly (number | {
5568
5568
  title: string;
5569
5569
  value: number;
5570
- }[];
5570
+ })[];
5571
5571
  showCurrentPage: boolean;
5572
5572
  sortAscIcon: IconValue;
5573
5573
  sortDescIcon: IconValue;
@@ -5853,10 +5853,10 @@ declare const VDataTableServer: {
5853
5853
  prevPageLabel: string;
5854
5854
  nextPageLabel: string;
5855
5855
  lastPageLabel: string;
5856
- itemsPerPageOptions: readonly {
5856
+ itemsPerPageOptions: readonly (number | {
5857
5857
  title: string;
5858
5858
  value: number;
5859
- }[];
5859
+ })[];
5860
5860
  showCurrentPage: boolean;
5861
5861
  sortAscIcon: IconValue;
5862
5862
  sortDescIcon: IconValue;
@@ -6038,10 +6038,10 @@ declare const VDataTableServer: {
6038
6038
  prevPageLabel: string;
6039
6039
  nextPageLabel: string;
6040
6040
  lastPageLabel: string;
6041
- itemsPerPageOptions: readonly {
6041
+ itemsPerPageOptions: readonly (number | {
6042
6042
  title: string;
6043
6043
  value: number;
6044
- }[];
6044
+ })[];
6045
6045
  showCurrentPage: boolean;
6046
6046
  sortAscIcon: IconValue;
6047
6047
  sortDescIcon: IconValue;
@@ -6324,10 +6324,10 @@ declare const VDataTableServer: {
6324
6324
  prevPageLabel: string;
6325
6325
  nextPageLabel: string;
6326
6326
  lastPageLabel: string;
6327
- itemsPerPageOptions: readonly {
6327
+ itemsPerPageOptions: readonly (number | {
6328
6328
  title: string;
6329
6329
  value: number;
6330
- }[];
6330
+ })[];
6331
6331
  showCurrentPage: boolean;
6332
6332
  sortAscIcon: IconValue;
6333
6333
  sortDescIcon: IconValue;
@@ -6613,10 +6613,10 @@ declare const VDataTableServer: {
6613
6613
  prevPageLabel: string;
6614
6614
  nextPageLabel: string;
6615
6615
  lastPageLabel: string;
6616
- itemsPerPageOptions: readonly {
6616
+ itemsPerPageOptions: readonly (number | {
6617
6617
  title: string;
6618
6618
  value: number;
6619
- }[];
6619
+ })[];
6620
6620
  showCurrentPage: boolean;
6621
6621
  sortAscIcon: IconValue;
6622
6622
  sortDescIcon: IconValue;
@@ -6780,10 +6780,10 @@ declare const VDataTableServer: {
6780
6780
  default: string;
6781
6781
  };
6782
6782
  itemsPerPageOptions: {
6783
- type: vue.PropType<readonly {
6783
+ type: vue.PropType<readonly (number | {
6784
6784
  title: string;
6785
6785
  value: number;
6786
- }[]>;
6786
+ })[]>;
6787
6787
  default: () => {
6788
6788
  value: number;
6789
6789
  title: string;
@@ -6937,10 +6937,10 @@ declare const VDataTableServer: {
6937
6937
  default: string;
6938
6938
  };
6939
6939
  itemsPerPageOptions: {
6940
- type: vue.PropType<readonly {
6940
+ type: vue.PropType<readonly (number | {
6941
6941
  title: string;
6942
6942
  value: number;
6943
- }[]>;
6943
+ })[]>;
6944
6944
  default: () => {
6945
6945
  value: number;
6946
6946
  title: string;
@@ -77,7 +77,7 @@ declare const VDateInput: {
77
77
  clearIcon?: IconValue | undefined;
78
78
  appendInnerIcon?: NonNullable<IconValue> | undefined;
79
79
  focused?: boolean | undefined;
80
- errorMessages?: string | readonly string[] | undefined;
80
+ errorMessages?: string | readonly string[] | null | undefined;
81
81
  maxErrors?: string | number | undefined;
82
82
  rules?: readonly ValidationRule[] | undefined;
83
83
  centerAffix?: boolean | undefined;
@@ -122,7 +122,7 @@ declare const VDateInput: {
122
122
  ref_key?: string | undefined;
123
123
  theme?: string | undefined;
124
124
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
125
- counter?: string | number | true | undefined;
125
+ counter?: string | number | boolean | undefined;
126
126
  'v-slots'?: {
127
127
  message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
128
128
  clear?: false | (() => vue.VNodeChild) | undefined;
@@ -281,7 +281,7 @@ declare const VDateInput: {
281
281
  clearIcon: IconValue;
282
282
  appendInnerIcon: NonNullable<IconValue>;
283
283
  focused: boolean;
284
- errorMessages: string | readonly string[];
284
+ errorMessages: string | readonly string[] | null;
285
285
  maxErrors: string | number;
286
286
  rules: readonly ValidationRule[];
287
287
  persistentHint: boolean;
@@ -305,7 +305,7 @@ declare const VDateInput: {
305
305
  class?: any;
306
306
  format?: string | undefined;
307
307
  theme?: string | undefined;
308
- counter?: string | number | true | undefined;
308
+ counter?: string | number | boolean | undefined;
309
309
  rounded?: string | number | boolean | undefined;
310
310
  modelValue?: any;
311
311
  bgColor?: string | undefined;
@@ -407,7 +407,7 @@ declare const VDateInput: {
407
407
  clearIcon: IconValue;
408
408
  appendInnerIcon: NonNullable<IconValue>;
409
409
  focused: boolean;
410
- errorMessages: string | readonly string[];
410
+ errorMessages: string | readonly string[] | null;
411
411
  maxErrors: string | number;
412
412
  rules: readonly ValidationRule[];
413
413
  centerAffix: boolean;
@@ -497,7 +497,7 @@ declare const VDateInput: {
497
497
  clearIcon: IconValue;
498
498
  appendInnerIcon: NonNullable<IconValue>;
499
499
  focused: boolean;
500
- errorMessages: string | readonly string[];
500
+ errorMessages: string | readonly string[] | null;
501
501
  maxErrors: string | number;
502
502
  rules: readonly ValidationRule[];
503
503
  persistentHint: boolean;
@@ -521,7 +521,7 @@ declare const VDateInput: {
521
521
  class?: any;
522
522
  format?: string | undefined;
523
523
  theme?: string | undefined;
524
- counter?: string | number | true | undefined;
524
+ counter?: string | number | boolean | undefined;
525
525
  rounded?: string | number | boolean | undefined;
526
526
  modelValue?: any;
527
527
  bgColor?: string | undefined;
@@ -620,7 +620,7 @@ declare const VDateInput: {
620
620
  clearIcon: IconValue;
621
621
  appendInnerIcon: NonNullable<IconValue>;
622
622
  focused: boolean;
623
- errorMessages: string | readonly string[];
623
+ errorMessages: string | readonly string[] | null;
624
624
  maxErrors: string | number;
625
625
  rules: readonly ValidationRule[];
626
626
  persistentHint: boolean;
@@ -644,7 +644,7 @@ declare const VDateInput: {
644
644
  class?: any;
645
645
  format?: string | undefined;
646
646
  theme?: string | undefined;
647
- counter?: string | number | true | undefined;
647
+ counter?: string | number | boolean | undefined;
648
648
  rounded?: string | number | boolean | undefined;
649
649
  modelValue?: any;
650
650
  bgColor?: string | undefined;
@@ -746,7 +746,7 @@ declare const VDateInput: {
746
746
  clearIcon: IconValue;
747
747
  appendInnerIcon: NonNullable<IconValue>;
748
748
  focused: boolean;
749
- errorMessages: string | readonly string[];
749
+ errorMessages: string | readonly string[] | null;
750
750
  maxErrors: string | number;
751
751
  rules: readonly ValidationRule[];
752
752
  centerAffix: boolean;
@@ -852,7 +852,7 @@ declare const VDateInput: {
852
852
  focused: BooleanConstructor;
853
853
  'onUpdate:focused': vue.PropType<EventProp<[boolean], (args_0: boolean) => any>>;
854
854
  errorMessages: {
855
- type: vue.PropType<string | readonly string[]>;
855
+ type: vue.PropType<string | readonly string[] | null>;
856
856
  default: () => never[];
857
857
  };
858
858
  maxErrors: {
@@ -894,7 +894,7 @@ declare const VDateInput: {
894
894
  'onClick:prepend': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
895
895
  'onClick:append': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
896
896
  autofocus: BooleanConstructor;
897
- counter: vue.PropType<string | number | true>;
897
+ counter: (StringConstructor | BooleanConstructor | NumberConstructor)[];
898
898
  counterValue: vue.PropType<number | ((value: any) => number)>;
899
899
  prefix: StringConstructor;
900
900
  placeholder: {
@@ -979,7 +979,7 @@ declare const VDateInput: {
979
979
  focused: BooleanConstructor;
980
980
  'onUpdate:focused': vue.PropType<EventProp<[boolean], (args_0: boolean) => any>>;
981
981
  errorMessages: {
982
- type: vue.PropType<string | readonly string[]>;
982
+ type: vue.PropType<string | readonly string[] | null>;
983
983
  default: () => never[];
984
984
  };
985
985
  maxErrors: {
@@ -1021,7 +1021,7 @@ declare const VDateInput: {
1021
1021
  'onClick:prepend': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1022
1022
  'onClick:append': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
1023
1023
  autofocus: BooleanConstructor;
1024
- counter: vue.PropType<string | number | true>;
1024
+ counter: (StringConstructor | BooleanConstructor | NumberConstructor)[];
1025
1025
  counterValue: vue.PropType<number | ((value: any) => number)>;
1026
1026
  prefix: StringConstructor;
1027
1027
  placeholder: {
@@ -12,6 +12,7 @@ import { getWeek, toIso } from "../date/date.mjs";
12
12
  import { dateEmits, makeDateProps } from "../VDateInput/composables.mjs";
13
13
  import { useDate } from "../date/index.mjs";
14
14
  export const makeVDatePickerMonthProps = propsFactory({
15
+ allowedDates: [Array, Function],
15
16
  color: String,
16
17
  showAdjacentMonths: Boolean,
17
18
  hideWeekdays: Boolean,
@@ -98,7 +99,6 @@ export const VDatePickerMonth = genericComponent()({
98
99
  const startDate = validDates[0];
99
100
  const endDate = validDates[1];
100
101
  return days.map((date, index) => {
101
- const isDisabled = !!(props.min && adapter.isAfter(props.min, date) || props.max && adapter.isAfter(date, props.max));
102
102
  const isStart = startDate && adapter.isSameDay(date, startDate);
103
103
  const isEnd = endDate && adapter.isSameDay(date, endDate);
104
104
  const isAdjacent = !adapter.isSameMonth(date, month.value);
@@ -109,7 +109,7 @@ export const VDatePickerMonth = genericComponent()({
109
109
  formatted: adapter.format(date, 'keyboardDate'),
110
110
  year: adapter.getYear(date),
111
111
  month: adapter.getMonth(date),
112
- isDisabled,
112
+ isDisabled: isDisabled(date),
113
113
  isWeekStart: index % 7 === 0,
114
114
  isWeekEnd: index % 7 === 6,
115
115
  isSelected: isStart || isEnd,
@@ -136,6 +136,18 @@ export const VDatePickerMonth = genericComponent()({
136
136
  backgroundColorClasses,
137
137
  backgroundColorStyles
138
138
  } = useBackgroundColor(props, 'color');
139
+ function isDisabled(value) {
140
+ const date = adapter.date(value);
141
+ if (props.min && adapter.isAfter(props.min, date)) return true;
142
+ if (props.max && adapter.isAfter(date, props.max)) return true;
143
+ if (Array.isArray(props.allowedDates)) {
144
+ return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date));
145
+ }
146
+ if (typeof props.allowedDates === 'function') {
147
+ return !props.allowedDates(date);
148
+ }
149
+ return false;
150
+ }
139
151
  function selectDate(date) {
140
152
  let newModel = props.modelValue.slice();
141
153
  if (props.multiple) {
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","useDatePicker","useBackgroundColor","computed","ref","genericComponent","omit","propsFactory","getWeek","toIso","dateEmits","makeDateProps","useDate","makeVDatePickerMonthProps","color","String","showAdjacentMonths","Boolean","hideWeekdays","showWeek","hoverDate","multiple","side","type","min","Number","Date","max","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","adapter","isDragging","dragHandle","hasScrolled","month","displayDate","findClosestDate","dates","isSameDay","getDiff","startDate","endDate","distStart","Math","abs","distEnd","weeksInMonth","weeks","getWeekArray","value","days","flat","daysInMonth","length","lastDay","week","day","push","addDays","validDates","modelValue","filter","v","isRange","today","map","index","isDisabled","isAfter","isStart","isEnd","isAdjacent","isSameMonth","isSame","isoDate","formatted","format","year","getYear","getMonth","isWeekStart","isWeekEnd","isSelected","isToday","isHidden","inRange","isWithinRange","isHovered","inHover","localized","backgroundColorClasses","backgroundColorStyles","selectDate","newModel","slice","otherIndex","fn","find","d","closest","indexOf","undefined","i","isBefore","daysRef","findElement","el","dataset","vDate","parentElement","findDate","e","x","changedTouches","clientX","y","clientY","document","elementFromPoint","canDrag","handleMousedown","selected","modelIndex","findIndex","isEqual","window","addEventListener","handleTouchmove","passive","preventDefault","handleTouchend","over","cancelable","removeEventListener","end","_createVNode","_createTextVNode","getWeekdays","weekDay","item","variant","default"],"sources":["../../../src/labs/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDatePicker } from './composables'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory } from '@/util'\n\n// Types\nimport { getWeek, toIso } from '../date/date'\nimport { dateEmits, makeDateProps } from '../VDateInput/composables'\nimport { useDate } from '@/labs/date'\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n showAdjacentMonths: Boolean,\n hideWeekdays: Boolean,\n showWeek: Boolean,\n hoverDate: null,\n multiple: Boolean,\n side: {\n type: String,\n },\n min: [Number, String, Date],\n max: [Number, String, Date],\n\n ...omit(makeDateProps(), ['inputMode', 'viewMode']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps({ color: 'surface-variant' }),\n\n emits: {\n ...omit(dateEmits, ['update:inputMode', 'update:viewMode']),\n 'update:hoverDate': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { isDragging, dragHandle, hasScrolled } = useDatePicker()\n\n const month = computed(() => props.displayDate)\n\n const findClosestDate = (date: any, dates: any[]) => {\n const { isSameDay, getDiff } = adapter\n const [startDate, endDate] = dates\n\n if (isSameDay(startDate, endDate)) {\n return getDiff(date, startDate, 'days') > 0 ? endDate : startDate\n }\n\n const distStart = Math.abs(getDiff(date, startDate))\n const distEnd = Math.abs(getDiff(date, endDate))\n\n return distStart < distEnd ? startDate : endDate\n }\n\n // const hoverRange = computed<[any, any] | null>(() => {\n // if (!props.hoverDate) return null\n\n // const closestDate = findClosestDate(props.hoverDate, props.modelValue)\n\n // if (!closestDate) return null\n\n // return adapter.isAfter(props.hoverDate, closestDate) ? [closestDate, props.hoverDate] : [props.hoverDate, closestDate]\n // })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // But only do it if we're not hiding adjacent months?\n const daysInMonth = 6 * 7\n if (days.length < daysInMonth && props.showAdjacentMonths) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n const daysInMonth = computed(() => {\n const validDates = props.modelValue.filter(v => !!v)\n const isRange = validDates.length > 1\n\n const days = weeksInMonth.value.flat()\n const today = adapter.date()\n\n const startDate = validDates[0]\n const endDate = validDates[1]\n\n return days.map((date, index) => {\n const isDisabled = !!(\n (props.min && adapter.isAfter(props.min, date)) ||\n (props.max && adapter.isAfter(date, props.max))\n )\n const isStart = startDate && adapter.isSameDay(date, startDate)\n const isEnd = endDate && adapter.isSameDay(date, endDate)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isSame = validDates.length === 2 && adapter.isSameDay(startDate, endDate)\n\n return {\n date,\n isoDate: toIso(adapter, date),\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled,\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isSelected: isStart || isEnd,\n isStart,\n isEnd,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n inRange: isRange &&\n !isSame &&\n (isStart || isEnd || (validDates.length === 2 && adapter.isWithinRange(date, validDates as [any, any]))),\n // isHovered: props.hoverDate === date,\n // inHover: hoverRange.value && isWithinRange(date, hoverRange.value),\n isHovered: false,\n inHover: false,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n })\n\n const weeks = computed(() => {\n return weeksInMonth.value.map(week => {\n return getWeek(adapter, week[0])\n })\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function selectDate (date: any) {\n let newModel = props.modelValue.slice()\n\n if (props.multiple) {\n if (isDragging.value && dragHandle.value != null) {\n const otherIndex = (dragHandle.value + 1) % 2\n const fn = otherIndex === 0 ? 'isBefore' : 'isAfter'\n if (adapter[fn](date, newModel[otherIndex])) {\n newModel[dragHandle.value] = newModel[otherIndex]\n newModel[otherIndex] = date\n dragHandle.value = otherIndex\n } else {\n newModel[dragHandle.value] = date\n }\n } else {\n if (newModel.find(d => adapter.isSameDay(d, date))) {\n newModel = newModel.filter(v => !adapter.isSameDay(v, date))\n } else if (newModel.length === 2) {\n let index: number | undefined\n if (!props.side || adapter.isSameMonth(newModel[0], newModel[1])) {\n const closest = findClosestDate(date, newModel)\n index = newModel.indexOf(closest)\n } else {\n index = props.side === 'start' ? 0 : props.side === 'end' ? 1 : undefined\n }\n\n newModel = newModel.map((v, i) => i === index ? date : v)\n } else {\n if (newModel[0] && adapter.isBefore(newModel[0], date)) {\n newModel = [newModel[0], date]\n } else {\n newModel = [date, newModel[0]]\n }\n }\n }\n } else {\n newModel = [date]\n }\n\n emit('update:modelValue', newModel.filter(v => !!v))\n }\n\n const daysRef = ref()\n\n function findElement (el: HTMLElement | null): any {\n if (!el || el === daysRef.value) return null\n\n if ('vDate' in el.dataset) {\n return adapter.date(el.dataset.vDate)\n }\n\n return findElement(el.parentElement)\n }\n\n function findDate (e: MouseEvent | TouchEvent) {\n const x = 'changedTouches' in e ? e.changedTouches[0]?.clientX : e.clientX\n const y = 'changedTouches' in e ? e.changedTouches[0]?.clientY : e.clientY\n const el = document.elementFromPoint(x, y) as HTMLElement\n\n return findElement(el)\n }\n\n let canDrag = false\n function handleMousedown (e: MouseEvent | TouchEvent) {\n hasScrolled.value = false\n\n const selected = findDate(e)\n\n if (!selected) return\n\n const modelIndex = props.modelValue.findIndex(d => adapter.isEqual(d, selected))\n\n if (modelIndex >= 0) {\n canDrag = true\n dragHandle.value = modelIndex\n\n window.addEventListener('touchmove', handleTouchmove, { passive: false })\n window.addEventListener('mousemove', handleTouchmove, { passive: false })\n\n e.preventDefault()\n }\n\n window.addEventListener('touchend', handleTouchend, { passive: false })\n window.addEventListener('mouseup', handleTouchend, { passive: false })\n }\n\n function handleTouchmove (e: MouseEvent | TouchEvent) {\n if (!canDrag) return\n\n e.preventDefault()\n\n isDragging.value = true\n\n const over = findDate(e)\n\n if (!over) return\n\n selectDate(over)\n }\n\n function handleTouchend (e: MouseEvent | TouchEvent) {\n if (e.cancelable) e.preventDefault()\n\n window.removeEventListener('touchmove', handleTouchmove)\n window.removeEventListener('mousemove', handleTouchmove)\n window.removeEventListener('touchend', handleTouchend)\n window.removeEventListener('mouseup', handleTouchend)\n\n const end = findDate(e)\n\n if (!end) return\n\n if (!hasScrolled.value) {\n selectDate(end)\n }\n\n isDragging.value = false\n dragHandle.value = null\n canDrag = false\n }\n\n return () => (\n <div class=\"v-date-picker-month\">\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\">&nbsp;</div>\n )}\n { weeks.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <div\n ref={ daysRef }\n class=\"v-date-picker-month__days\"\n onMousedown={ handleMousedown }\n onTouchstart={ handleMousedown }\n >\n { !props.hideWeekdays && adapter.getWeekdays().map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, index) => {\n const color = (item.isSelected || item.isToday)\n ? props.color\n : (item.isHovered || item.isDisabled)\n ? undefined\n : 'transparent'\n const variant = item.isDisabled\n ? 'text'\n : (item.isToday || item.isHovered) && !item.isSelected\n ? 'outlined'\n : 'flat'\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--start': item.isStart,\n 'v-date-picker-month__day--end': item.isEnd,\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--hovered': item.isHovered,\n },\n ]}\n data-v-date={ !item.isHidden && !item.isDisabled ? item.isoDate : undefined }\n >\n { item.inRange && (\n <div\n key=\"in-range\"\n class={[\n 'v-date-picker-month__day--range',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n />\n )}\n\n { item.inHover && !item.isStart && !item.isEnd && !item.isHovered && !item.inRange && (\n <div\n key=\"in-hover\"\n class=\"v-date-picker-month__day--hover\"\n />\n )}\n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VBtn\n color={ (!item.isToday || item.isSelected) ? color : undefined }\n disabled={ item.isDisabled }\n icon\n ripple={ false } /* ripple not working correctly since we preventDefault in touchend */\n variant={ variant }\n >\n { item.localized }\n </VBtn>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","useDatePicker","useBackgroundColor","computed","ref","genericComponent","omit","propsFactory","getWeek","toIso","dateEmits","makeDateProps","useDate","makeVDatePickerMonthProps","allowedDates","Array","Function","color","String","showAdjacentMonths","Boolean","hideWeekdays","showWeek","hoverDate","multiple","side","type","min","Number","Date","max","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","adapter","isDragging","dragHandle","hasScrolled","month","displayDate","findClosestDate","dates","isSameDay","getDiff","startDate","endDate","distStart","Math","abs","distEnd","weeksInMonth","weeks","getWeekArray","value","days","flat","daysInMonth","length","lastDay","week","day","push","addDays","validDates","modelValue","filter","v","isRange","today","map","index","isStart","isEnd","isAdjacent","isSameMonth","isSame","isoDate","formatted","format","year","getYear","getMonth","isDisabled","isWeekStart","isWeekEnd","isSelected","isToday","isHidden","inRange","isWithinRange","isHovered","inHover","localized","backgroundColorClasses","backgroundColorStyles","isAfter","isArray","some","d","selectDate","newModel","slice","otherIndex","fn","find","closest","indexOf","undefined","i","isBefore","daysRef","findElement","el","dataset","vDate","parentElement","findDate","e","x","changedTouches","clientX","y","clientY","document","elementFromPoint","canDrag","handleMousedown","selected","modelIndex","findIndex","isEqual","window","addEventListener","handleTouchmove","passive","preventDefault","handleTouchend","over","cancelable","removeEventListener","end","_createVNode","_createTextVNode","getWeekdays","weekDay","item","variant","default"],"sources":["../../../src/labs/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDatePicker } from './composables'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory } from '@/util'\n\n// Types\nimport { getWeek, toIso } from '../date/date'\nimport { dateEmits, makeDateProps } from '../VDateInput/composables'\nimport { useDate } from '@/labs/date'\n\nexport const makeVDatePickerMonthProps = propsFactory({\n allowedDates: [Array, Function],\n color: String,\n showAdjacentMonths: Boolean,\n hideWeekdays: Boolean,\n showWeek: Boolean,\n hoverDate: null,\n multiple: Boolean,\n side: {\n type: String,\n },\n min: [Number, String, Date],\n max: [Number, String, Date],\n\n ...omit(makeDateProps(), ['inputMode', 'viewMode']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps({ color: 'surface-variant' }),\n\n emits: {\n ...omit(dateEmits, ['update:inputMode', 'update:viewMode']),\n 'update:hoverDate': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { isDragging, dragHandle, hasScrolled } = useDatePicker()\n\n const month = computed(() => props.displayDate)\n\n const findClosestDate = (date: any, dates: any[]) => {\n const { isSameDay, getDiff } = adapter\n const [startDate, endDate] = dates\n\n if (isSameDay(startDate, endDate)) {\n return getDiff(date, startDate, 'days') > 0 ? endDate : startDate\n }\n\n const distStart = Math.abs(getDiff(date, startDate))\n const distEnd = Math.abs(getDiff(date, endDate))\n\n return distStart < distEnd ? startDate : endDate\n }\n\n // const hoverRange = computed<[any, any] | null>(() => {\n // if (!props.hoverDate) return null\n\n // const closestDate = findClosestDate(props.hoverDate, props.modelValue)\n\n // if (!closestDate) return null\n\n // return adapter.isAfter(props.hoverDate, closestDate) ? [closestDate, props.hoverDate] : [props.hoverDate, closestDate]\n // })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // But only do it if we're not hiding adjacent months?\n const daysInMonth = 6 * 7\n if (days.length < daysInMonth && props.showAdjacentMonths) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n const daysInMonth = computed(() => {\n const validDates = props.modelValue.filter(v => !!v)\n const isRange = validDates.length > 1\n\n const days = weeksInMonth.value.flat()\n const today = adapter.date()\n\n const startDate = validDates[0]\n const endDate = validDates[1]\n\n return days.map((date, index) => {\n const isStart = startDate && adapter.isSameDay(date, startDate)\n const isEnd = endDate && adapter.isSameDay(date, endDate)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isSame = validDates.length === 2 && adapter.isSameDay(startDate, endDate)\n\n return {\n date,\n isoDate: toIso(adapter, date),\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled: isDisabled(date),\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isSelected: isStart || isEnd,\n isStart,\n isEnd,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n inRange: isRange &&\n !isSame &&\n (isStart || isEnd || (validDates.length === 2 && adapter.isWithinRange(date, validDates as [any, any]))),\n // isHovered: props.hoverDate === date,\n // inHover: hoverRange.value && isWithinRange(date, hoverRange.value),\n isHovered: false,\n inHover: false,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n })\n\n const weeks = computed(() => {\n return weeksInMonth.value.map(week => {\n return getWeek(adapter, week[0])\n })\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function isDisabled (value: any) {\n const date = adapter.date(value)\n\n if (props.min && adapter.isAfter(props.min, date)) return true\n if (props.max && adapter.isAfter(date, props.max)) return true\n\n if (Array.isArray(props.allowedDates)) {\n return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date))\n }\n\n if (typeof props.allowedDates === 'function') {\n return !props.allowedDates(date)\n }\n\n return false\n }\n\n function selectDate (date: any) {\n let newModel = props.modelValue.slice()\n\n if (props.multiple) {\n if (isDragging.value && dragHandle.value != null) {\n const otherIndex = (dragHandle.value + 1) % 2\n const fn = otherIndex === 0 ? 'isBefore' : 'isAfter'\n if (adapter[fn](date, newModel[otherIndex])) {\n newModel[dragHandle.value] = newModel[otherIndex]\n newModel[otherIndex] = date\n dragHandle.value = otherIndex\n } else {\n newModel[dragHandle.value] = date\n }\n } else {\n if (newModel.find(d => adapter.isSameDay(d, date))) {\n newModel = newModel.filter(v => !adapter.isSameDay(v, date))\n } else if (newModel.length === 2) {\n let index: number | undefined\n if (!props.side || adapter.isSameMonth(newModel[0], newModel[1])) {\n const closest = findClosestDate(date, newModel)\n index = newModel.indexOf(closest)\n } else {\n index = props.side === 'start' ? 0 : props.side === 'end' ? 1 : undefined\n }\n\n newModel = newModel.map((v, i) => i === index ? date : v)\n } else {\n if (newModel[0] && adapter.isBefore(newModel[0], date)) {\n newModel = [newModel[0], date]\n } else {\n newModel = [date, newModel[0]]\n }\n }\n }\n } else {\n newModel = [date]\n }\n\n emit('update:modelValue', newModel.filter(v => !!v))\n }\n\n const daysRef = ref()\n\n function findElement (el: HTMLElement | null): any {\n if (!el || el === daysRef.value) return null\n\n if ('vDate' in el.dataset) {\n return adapter.date(el.dataset.vDate)\n }\n\n return findElement(el.parentElement)\n }\n\n function findDate (e: MouseEvent | TouchEvent) {\n const x = 'changedTouches' in e ? e.changedTouches[0]?.clientX : e.clientX\n const y = 'changedTouches' in e ? e.changedTouches[0]?.clientY : e.clientY\n const el = document.elementFromPoint(x, y) as HTMLElement\n\n return findElement(el)\n }\n\n let canDrag = false\n function handleMousedown (e: MouseEvent | TouchEvent) {\n hasScrolled.value = false\n\n const selected = findDate(e)\n\n if (!selected) return\n\n const modelIndex = props.modelValue.findIndex(d => adapter.isEqual(d, selected))\n\n if (modelIndex >= 0) {\n canDrag = true\n dragHandle.value = modelIndex\n\n window.addEventListener('touchmove', handleTouchmove, { passive: false })\n window.addEventListener('mousemove', handleTouchmove, { passive: false })\n\n e.preventDefault()\n }\n\n window.addEventListener('touchend', handleTouchend, { passive: false })\n window.addEventListener('mouseup', handleTouchend, { passive: false })\n }\n\n function handleTouchmove (e: MouseEvent | TouchEvent) {\n if (!canDrag) return\n\n e.preventDefault()\n\n isDragging.value = true\n\n const over = findDate(e)\n\n if (!over) return\n\n selectDate(over)\n }\n\n function handleTouchend (e: MouseEvent | TouchEvent) {\n if (e.cancelable) e.preventDefault()\n\n window.removeEventListener('touchmove', handleTouchmove)\n window.removeEventListener('mousemove', handleTouchmove)\n window.removeEventListener('touchend', handleTouchend)\n window.removeEventListener('mouseup', handleTouchend)\n\n const end = findDate(e)\n\n if (!end) return\n\n if (!hasScrolled.value) {\n selectDate(end)\n }\n\n isDragging.value = false\n dragHandle.value = null\n canDrag = false\n }\n\n return () => (\n <div class=\"v-date-picker-month\">\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\">&nbsp;</div>\n )}\n { weeks.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <div\n ref={ daysRef }\n class=\"v-date-picker-month__days\"\n onMousedown={ handleMousedown }\n onTouchstart={ handleMousedown }\n >\n { !props.hideWeekdays && adapter.getWeekdays().map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, index) => {\n const color = (item.isSelected || item.isToday)\n ? props.color\n : (item.isHovered || item.isDisabled)\n ? undefined\n : 'transparent'\n const variant = item.isDisabled\n ? 'text'\n : (item.isToday || item.isHovered) && !item.isSelected\n ? 'outlined'\n : 'flat'\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--start': item.isStart,\n 'v-date-picker-month__day--end': item.isEnd,\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--hovered': item.isHovered,\n },\n ]}\n data-v-date={ !item.isHidden && !item.isDisabled ? item.isoDate : undefined }\n >\n { item.inRange && (\n <div\n key=\"in-range\"\n class={[\n 'v-date-picker-month__day--range',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n />\n )}\n\n { item.inHover && !item.isStart && !item.isEnd && !item.isHovered && !item.inRange && (\n <div\n key=\"in-hover\"\n class=\"v-date-picker-month__day--hover\"\n />\n )}\n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VBtn\n color={ (!item.isToday || item.isSelected) ? color : undefined }\n disabled={ item.isDisabled }\n icon\n ripple={ false } /* ripple not working correctly since we preventDefault in touchend */\n variant={ variant }\n >\n { item.localized }\n </VBtn>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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"}