@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
@@ -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
  */
@@ -22310,7 +22310,8 @@
22310
22310
  min: null,
22311
22311
  max: null,
22312
22312
  modelValue: Number,
22313
- year: Number
22313
+ year: Number,
22314
+ allowedMonths: [Array, Function]
22314
22315
  }, 'VDatePickerMonths');
22315
22316
  const VDatePickerMonths = genericComponent()({
22316
22317
  name: 'VDatePickerMonths',
@@ -22332,7 +22333,7 @@
22332
22333
  }
22333
22334
  return createRange(12).map(i => {
22334
22335
  const text = adapter.format(date, 'monthShort');
22335
- const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
22336
+ 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))));
22336
22337
  date = adapter.getNextMonth(date);
22337
22338
  return {
22338
22339
  isDisabled,
@@ -22344,6 +22345,15 @@
22344
22345
  vue.watchEffect(() => {
22345
22346
  model.value = model.value ?? adapter.getMonth(adapter.date());
22346
22347
  });
22348
+ function isMonthAllowed(month) {
22349
+ if (Array.isArray(props.allowedMonths) && props.allowedMonths.length) {
22350
+ return props.allowedMonths.includes(month);
22351
+ }
22352
+ if (typeof props.allowedMonths === 'function') {
22353
+ return props.allowedMonths(month);
22354
+ }
22355
+ return true;
22356
+ }
22347
22357
  useRender(() => vue.createElementVNode("div", {
22348
22358
  "class": "v-date-picker-months",
22349
22359
  "style": vue.normalizeStyle({
@@ -22389,7 +22399,8 @@
22389
22399
  height: [String, Number],
22390
22400
  min: null,
22391
22401
  max: null,
22392
- modelValue: Number
22402
+ modelValue: Number,
22403
+ allowedYears: [Array, Function]
22393
22404
  }, 'VDatePickerYears');
22394
22405
  const VDatePickerYears = genericComponent()({
22395
22406
  name: 'VDatePickerYears',
@@ -22421,7 +22432,8 @@
22421
22432
  date = adapter.setYear(date, adapter.getYear(date) + 1);
22422
22433
  return {
22423
22434
  text,
22424
- value: i
22435
+ value: i,
22436
+ isDisabled: !isYearAllowed(i)
22425
22437
  };
22426
22438
  });
22427
22439
  });
@@ -22435,6 +22447,15 @@
22435
22447
  block: 'center'
22436
22448
  });
22437
22449
  });
22450
+ function isYearAllowed(year) {
22451
+ if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
22452
+ return props.allowedYears.includes(year);
22453
+ }
22454
+ if (typeof props.allowedYears === 'function') {
22455
+ return props.allowedYears(year);
22456
+ }
22457
+ return true;
22458
+ }
22438
22459
  useRender(() => vue.createElementVNode("div", {
22439
22460
  "class": "v-date-picker-years",
22440
22461
  "style": vue.normalizeStyle({
@@ -22449,6 +22470,7 @@
22449
22470
  color: model.value === year.value ? props.color : undefined,
22450
22471
  rounded: true,
22451
22472
  text: year.text,
22473
+ disabled: year.isDisabled,
22452
22474
  variant: model.value === year.value ? 'flat' : 'text',
22453
22475
  onClick: () => {
22454
22476
  if (model.value === year.value) {
@@ -22598,6 +22620,41 @@
22598
22620
  }
22599
22621
  return targets;
22600
22622
  });
22623
+ function isAllowedInRange(start, end) {
22624
+ const allowedDates = props.allowedDates;
22625
+ if (typeof allowedDates !== 'function') return true;
22626
+ const days = adapter.getDiff(end, start, 'days');
22627
+ for (let i = 0; i < days; i++) {
22628
+ if (allowedDates(adapter.addDays(start, i))) return true;
22629
+ }
22630
+ return false;
22631
+ }
22632
+ function allowedYears(year) {
22633
+ if (typeof props.allowedDates === 'function') {
22634
+ const startOfYear = adapter.parseISO(`${year}-01-01`);
22635
+ return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear));
22636
+ }
22637
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22638
+ for (const date of props.allowedDates) {
22639
+ if (adapter.getYear(adapter.date(date)) === year) return true;
22640
+ }
22641
+ return false;
22642
+ }
22643
+ return true;
22644
+ }
22645
+ function allowedMonths(month) {
22646
+ if (typeof props.allowedDates === 'function') {
22647
+ const startOfMonth = adapter.parseISO(`${year.value}-${month + 1}-01`);
22648
+ return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
22649
+ }
22650
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22651
+ for (const date of props.allowedDates) {
22652
+ if (adapter.getYear(adapter.date(date)) === year.value && adapter.getMonth(adapter.date(date)) === month) return true;
22653
+ }
22654
+ return false;
22655
+ }
22656
+ return true;
22657
+ }
22601
22658
 
22602
22659
  // function onClickAppend () {
22603
22660
  // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'
@@ -22713,14 +22770,16 @@
22713
22770
  "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
22714
22771
  "min": minDate.value,
22715
22772
  "max": maxDate.value,
22716
- "year": year.value
22773
+ "year": year.value,
22774
+ "allowedMonths": allowedMonths
22717
22775
  }), null) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
22718
22776
  "key": "date-picker-years"
22719
22777
  }, datePickerYearsProps, {
22720
22778
  "modelValue": year.value,
22721
22779
  "onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
22722
22780
  "min": minDate.value,
22723
- "max": maxDate.value
22781
+ "max": maxDate.value,
22782
+ "allowedYears": allowedYears
22724
22783
  }), null) : vue.createVNode(VDatePickerMonth, vue.mergeProps({
22725
22784
  "key": "date-picker-month"
22726
22785
  }, datePickerMonthProps, {
@@ -32016,7 +32075,7 @@
32016
32075
  };
32017
32076
  });
32018
32077
  }
32019
- const version$1 = "3.8.7-master.2025-05-27";
32078
+ const version$1 = "3.8.7-master.2025-05-29";
32020
32079
  createVuetify$1.version = version$1;
32021
32080
 
32022
32081
  // Vue's inject() can only be used in setup
@@ -32314,7 +32373,7 @@
32314
32373
 
32315
32374
  /* eslint-disable local-rules/sort-imports */
32316
32375
 
32317
- const version = "3.8.7-master.2025-05-27";
32376
+ const version = "3.8.7-master.2025-05-29";
32318
32377
 
32319
32378
  /* eslint-disable local-rules/sort-imports */
32320
32379