@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.cjs CHANGED
@@ -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
  */
@@ -22588,7 +22588,8 @@
22588
22588
  min: null,
22589
22589
  max: null,
22590
22590
  modelValue: Number,
22591
- year: Number
22591
+ year: Number,
22592
+ allowedMonths: [Array, Function]
22592
22593
  }, 'VDatePickerMonths');
22593
22594
  const VDatePickerMonths = genericComponent()({
22594
22595
  name: 'VDatePickerMonths',
@@ -22610,7 +22611,7 @@
22610
22611
  }
22611
22612
  return createRange(12).map(i => {
22612
22613
  const text = adapter.format(date, 'monthShort');
22613
- const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
22614
+ 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))));
22614
22615
  date = adapter.getNextMonth(date);
22615
22616
  return {
22616
22617
  isDisabled,
@@ -22622,6 +22623,15 @@
22622
22623
  vue.watchEffect(() => {
22623
22624
  model.value = model.value ?? adapter.getMonth(adapter.date());
22624
22625
  });
22626
+ function isMonthAllowed(month) {
22627
+ if (Array.isArray(props.allowedMonths) && props.allowedMonths.length) {
22628
+ return props.allowedMonths.includes(month);
22629
+ }
22630
+ if (typeof props.allowedMonths === 'function') {
22631
+ return props.allowedMonths(month);
22632
+ }
22633
+ return true;
22634
+ }
22625
22635
  useRender(() => vue.createElementVNode("div", {
22626
22636
  "class": "v-date-picker-months",
22627
22637
  "style": vue.normalizeStyle({
@@ -22667,7 +22677,8 @@
22667
22677
  height: [String, Number],
22668
22678
  min: null,
22669
22679
  max: null,
22670
- modelValue: Number
22680
+ modelValue: Number,
22681
+ allowedYears: [Array, Function]
22671
22682
  }, 'VDatePickerYears');
22672
22683
  const VDatePickerYears = genericComponent()({
22673
22684
  name: 'VDatePickerYears',
@@ -22699,7 +22710,8 @@
22699
22710
  date = adapter.setYear(date, adapter.getYear(date) + 1);
22700
22711
  return {
22701
22712
  text,
22702
- value: i
22713
+ value: i,
22714
+ isDisabled: !isYearAllowed(i)
22703
22715
  };
22704
22716
  });
22705
22717
  });
@@ -22713,6 +22725,15 @@
22713
22725
  block: 'center'
22714
22726
  });
22715
22727
  });
22728
+ function isYearAllowed(year) {
22729
+ if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
22730
+ return props.allowedYears.includes(year);
22731
+ }
22732
+ if (typeof props.allowedYears === 'function') {
22733
+ return props.allowedYears(year);
22734
+ }
22735
+ return true;
22736
+ }
22716
22737
  useRender(() => vue.createElementVNode("div", {
22717
22738
  "class": "v-date-picker-years",
22718
22739
  "style": vue.normalizeStyle({
@@ -22727,6 +22748,7 @@
22727
22748
  color: model.value === year.value ? props.color : undefined,
22728
22749
  rounded: true,
22729
22750
  text: year.text,
22751
+ disabled: year.isDisabled,
22730
22752
  variant: model.value === year.value ? 'flat' : 'text',
22731
22753
  onClick: () => {
22732
22754
  if (model.value === year.value) {
@@ -22876,6 +22898,41 @@
22876
22898
  }
22877
22899
  return targets;
22878
22900
  });
22901
+ function isAllowedInRange(start, end) {
22902
+ const allowedDates = props.allowedDates;
22903
+ if (typeof allowedDates !== 'function') return true;
22904
+ const days = adapter.getDiff(end, start, 'days');
22905
+ for (let i = 0; i < days; i++) {
22906
+ if (allowedDates(adapter.addDays(start, i))) return true;
22907
+ }
22908
+ return false;
22909
+ }
22910
+ function allowedYears(year) {
22911
+ if (typeof props.allowedDates === 'function') {
22912
+ const startOfYear = adapter.parseISO(`${year}-01-01`);
22913
+ return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear));
22914
+ }
22915
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22916
+ for (const date of props.allowedDates) {
22917
+ if (adapter.getYear(adapter.date(date)) === year) return true;
22918
+ }
22919
+ return false;
22920
+ }
22921
+ return true;
22922
+ }
22923
+ function allowedMonths(month) {
22924
+ if (typeof props.allowedDates === 'function') {
22925
+ const startOfMonth = adapter.parseISO(`${year.value}-${month + 1}-01`);
22926
+ return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
22927
+ }
22928
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22929
+ for (const date of props.allowedDates) {
22930
+ if (adapter.getYear(adapter.date(date)) === year.value && adapter.getMonth(adapter.date(date)) === month) return true;
22931
+ }
22932
+ return false;
22933
+ }
22934
+ return true;
22935
+ }
22879
22936
 
22880
22937
  // function onClickAppend () {
22881
22938
  // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'
@@ -22991,14 +23048,16 @@
22991
23048
  "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
22992
23049
  "min": minDate.value,
22993
23050
  "max": maxDate.value,
22994
- "year": year.value
23051
+ "year": year.value,
23052
+ "allowedMonths": allowedMonths
22995
23053
  }), null) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
22996
23054
  "key": "date-picker-years"
22997
23055
  }, datePickerYearsProps, {
22998
23056
  "modelValue": year.value,
22999
23057
  "onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
23000
23058
  "min": minDate.value,
23001
- "max": maxDate.value
23059
+ "max": maxDate.value,
23060
+ "allowedYears": allowedYears
23002
23061
  }), null) : vue.createVNode(VDatePickerMonth, vue.mergeProps({
23003
23062
  "key": "date-picker-month"
23004
23063
  }, datePickerMonthProps, {
@@ -29321,7 +29380,7 @@
29321
29380
  };
29322
29381
  });
29323
29382
  }
29324
- const version$1 = "3.8.7-master.2025-05-27";
29383
+ const version$1 = "3.8.7-master.2025-05-29";
29325
29384
  createVuetify$1.version = version$1;
29326
29385
 
29327
29386
  // Vue's inject() can only be used in setup
@@ -29346,7 +29405,7 @@
29346
29405
  ...options
29347
29406
  });
29348
29407
  };
29349
- const version = "3.8.7-master.2025-05-27";
29408
+ const version = "3.8.7-master.2025-05-29";
29350
29409
  createVuetify.version = version;
29351
29410
 
29352
29411
  exports.blueprints = index;