vuetify 3.5.1 → 3.5.3

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 (87) hide show
  1. package/dist/json/attributes.json +39 -27
  2. package/dist/json/importMap.json +100 -100
  3. package/dist/json/tags.json +6 -3
  4. package/dist/json/web-types.json +101 -65
  5. package/dist/vuetify-labs.css +1717 -1712
  6. package/dist/vuetify-labs.d.ts +191 -92
  7. package/dist/vuetify-labs.esm.js +49 -30
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +49 -30
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +1154 -1149
  12. package/dist/vuetify.d.ts +215 -116
  13. package/dist/vuetify.esm.js +49 -30
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +49 -30
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +25 -26
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/index.d.mts +12 -0
  21. package/lib/components/VAvatar/VAvatar.mjs +16 -2
  22. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  23. package/lib/components/VBottomSheet/index.d.mts +6 -0
  24. package/lib/components/VCheckbox/VCheckbox.css +3 -0
  25. package/lib/components/VCheckbox/VCheckbox.sass +3 -0
  26. package/lib/components/VCheckbox/_variables.scss +3 -0
  27. package/lib/components/VChip/VChip.css +0 -1
  28. package/lib/components/VChip/VChip.mjs +2 -1
  29. package/lib/components/VChip/VChip.mjs.map +1 -1
  30. package/lib/components/VChip/VChip.sass +0 -1
  31. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  32. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  33. package/lib/components/VColorPicker/VColorPickerEdit.mjs +1 -1
  34. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  35. package/lib/components/VColorPicker/util/index.mjs +1 -1
  36. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  37. package/lib/components/VCombobox/index.d.mts +12 -0
  38. package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
  39. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  40. package/lib/components/VDatePicker/VDatePickerMonth.mjs +2 -3
  41. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  42. package/lib/components/VDatePicker/index.d.mts +45 -63
  43. package/lib/components/VDialog/index.d.mts +21 -3
  44. package/lib/components/VLabel/VLabel.mjs +5 -4
  45. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  46. package/lib/components/VLabel/index.d.mts +6 -9
  47. package/lib/components/VList/VListItem.css +19 -6
  48. package/lib/components/VList/VListItem.sass +16 -3
  49. package/lib/components/VList/_variables.scss +6 -4
  50. package/lib/components/VMenu/VMenu.mjs +1 -0
  51. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  52. package/lib/components/VMenu/index.d.mts +21 -3
  53. package/lib/components/VOverlay/VOverlay.css +1 -1
  54. package/lib/components/VOverlay/VOverlay.mjs +4 -2
  55. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  56. package/lib/components/VOverlay/_variables.scss +1 -1
  57. package/lib/components/VOverlay/index.d.mts +6 -0
  58. package/lib/components/VOverlay/scrollStrategies.mjs +3 -0
  59. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  60. package/lib/components/VSelect/index.d.mts +12 -0
  61. package/lib/components/VSelectionControl/VSelectionControl.mjs +4 -2
  62. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  63. package/lib/components/VSnackbar/index.d.mts +21 -3
  64. package/lib/components/VSwitch/VSwitch.css +3 -0
  65. package/lib/components/VSwitch/VSwitch.sass +3 -0
  66. package/lib/components/VSwitch/_variables.scss +1 -0
  67. package/lib/components/VTable/VTable.css +15 -28
  68. package/lib/components/VTable/VTable.sass +6 -13
  69. package/lib/components/VTable/_variables.scss +1 -1
  70. package/lib/components/VTooltip/index.d.mts +21 -3
  71. package/lib/components/VWindow/VWindow.css +1 -1
  72. package/lib/components/VWindow/VWindow.sass +1 -1
  73. package/lib/components/index.d.mts +183 -84
  74. package/lib/composables/calendar.mjs +1 -1
  75. package/lib/composables/calendar.mjs.map +1 -1
  76. package/lib/composables/date/adapters/vuetify.mjs +2 -8
  77. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  78. package/lib/composables/group.mjs +4 -1
  79. package/lib/composables/group.mjs.map +1 -1
  80. package/lib/composables/validation.mjs +1 -1
  81. package/lib/composables/validation.mjs.map +1 -1
  82. package/lib/entry-bundler.mjs +1 -1
  83. package/lib/framework.mjs +1 -1
  84. package/lib/index.d.mts +32 -32
  85. package/lib/labs/VCalendar/index.d.mts +8 -8
  86. package/lib/labs/components.d.mts +8 -8
  87. package/package.json +2 -2
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.5.1
2
+ * Vuetify v3.5.3
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -4137,6 +4137,9 @@
4137
4137
  const key = Symbol.for(`${injectKey.description}:id`);
4138
4138
  const children = findChildrenWithProvide(key, groupVm?.vnode);
4139
4139
  const index = children.indexOf(vm);
4140
+ if (vue.unref(unwrapped.value) == null) {
4141
+ unwrapped.value = index;
4142
+ }
4140
4143
  if (index > -1) {
4141
4144
  items.splice(index, 0, unwrapped);
4142
4145
  } else {
@@ -5881,7 +5884,7 @@
5881
5884
  }, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
5882
5885
  "style": [colorStyles.value, sizeStyles.value, props.style]
5883
5886
  }, {
5884
- default: () => [props.image ? vue.createVNode(VImg, {
5887
+ default: () => [!slots.default ? props.image ? vue.createVNode(VImg, {
5885
5888
  "key": "image",
5886
5889
  "src": props.image,
5887
5890
  "alt": "",
@@ -5889,7 +5892,20 @@
5889
5892
  }, null) : props.icon ? vue.createVNode(VIcon, {
5890
5893
  "key": "icon",
5891
5894
  "icon": props.icon
5892
- }, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
5895
+ }, null) : props.text : vue.createVNode(VDefaultsProvider, {
5896
+ "key": "content-defaults",
5897
+ "defaults": {
5898
+ VAvatar: {
5899
+ cover: true,
5900
+ image: props.image
5901
+ },
5902
+ VIcon: {
5903
+ icon: props.icon
5904
+ }
5905
+ }
5906
+ }, {
5907
+ default: () => [slots.default?.()]
5908
+ }), genOverlays(false, 'v-avatar')]
5893
5909
  }));
5894
5910
  return {};
5895
5911
  }
@@ -5897,7 +5913,7 @@
5897
5913
 
5898
5914
  const makeVLabelProps = propsFactory({
5899
5915
  text: String,
5900
- clickable: Boolean,
5916
+ onClick: EventProp(),
5901
5917
  ...makeComponentProps(),
5902
5918
  ...makeThemeProps()
5903
5919
  }, 'VLabel');
@@ -5910,9 +5926,10 @@
5910
5926
  } = _ref;
5911
5927
  useRender(() => vue.createVNode("label", {
5912
5928
  "class": ['v-label', {
5913
- 'v-label--clickable': props.clickable
5929
+ 'v-label--clickable': !!props.onClick
5914
5930
  }, props.class],
5915
- "style": props.style
5931
+ "style": props.style,
5932
+ "onClick": props.onClick
5916
5933
  }, [props.text, slots.default?.()]));
5917
5934
  return {};
5918
5935
  }
@@ -6131,6 +6148,9 @@
6131
6148
  isFocused.value = false;
6132
6149
  isFocusVisible.value = false;
6133
6150
  }
6151
+ function onClickLabel(e) {
6152
+ e.stopPropagation();
6153
+ }
6134
6154
  function onInput(e) {
6135
6155
  if (!isInteractive.value) return;
6136
6156
  if (props.readonly && group) {
@@ -6197,8 +6217,7 @@
6197
6217
  "icon": icon.value
6198
6218
  }, null), inputNode])]), [[vue.resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && vue.createVNode(VLabel, {
6199
6219
  "for": id.value,
6200
- "clickable": true,
6201
- "onClick": e => e.stopPropagation()
6220
+ "onClick": onClickLabel
6202
6221
  }, {
6203
6222
  default: () => [label]
6204
6223
  })]);
@@ -6611,7 +6630,7 @@
6611
6630
  if (!val) validate();
6612
6631
  });
6613
6632
  });
6614
- vue.watch(isValid, () => {
6633
+ vue.watch([isValid, errorMessages], () => {
6615
6634
  form?.update(uid.value, isValid.value, errorMessages.value);
6616
6635
  });
6617
6636
  function reset() {
@@ -7635,7 +7654,8 @@
7635
7654
  }
7636
7655
  }
7637
7656
  }, slots.prepend)]), vue.createVNode("div", {
7638
- "class": "v-chip__content"
7657
+ "class": "v-chip__content",
7658
+ "data-no-activator": ""
7639
7659
  }, [slots.default?.({
7640
7660
  isSelected: group?.isSelected.value,
7641
7661
  selectedClass: group?.selectedClass.value,
@@ -9556,12 +9576,15 @@
9556
9576
  scrollElements.forEach((el, i) => {
9557
9577
  const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));
9558
9578
  const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));
9579
+ const scrollBehavior = el.style.scrollBehavior;
9580
+ el.style.scrollBehavior = 'auto';
9559
9581
  el.style.removeProperty('--v-body-scroll-x');
9560
9582
  el.style.removeProperty('--v-body-scroll-y');
9561
9583
  el.style.removeProperty('--v-scrollbar-offset');
9562
9584
  el.classList.remove('v-overlay-scroll-blocked');
9563
9585
  el.scrollLeft = -x;
9564
9586
  el.scrollTop = -y;
9587
+ el.style.scrollBehavior = scrollBehavior;
9565
9588
  });
9566
9589
  if (scrollableParent) {
9567
9590
  data.root.value.classList.remove('v-overlay--scroll-blocked');
@@ -10168,6 +10191,7 @@
10168
10191
  contentClass: null,
10169
10192
  contentProps: null,
10170
10193
  disabled: Boolean,
10194
+ opacity: [Number, String],
10171
10195
  noClickAnimation: Boolean,
10172
10196
  modelValue: Boolean,
10173
10197
  persistent: Boolean,
@@ -10354,7 +10378,7 @@
10354
10378
  ref: activatorRef,
10355
10379
  targetRef
10356
10380
  }, activatorEvents.value, props.activatorProps)
10357
- }), !props.disabled && isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
10381
+ }), isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
10358
10382
  "disabled": !teleportTarget.value,
10359
10383
  "to": teleportTarget.value
10360
10384
  }, {
@@ -10365,12 +10389,13 @@
10365
10389
  'v-overlay--contained': props.contained
10366
10390
  }, themeClasses.value, rtlClasses.value, props.class],
10367
10391
  "style": [stackStyles.value, {
10392
+ '--v-overlay-opacity': props.opacity,
10368
10393
  top: convertToUnit(top.value)
10369
10394
  }, props.style],
10370
10395
  "ref": root
10371
10396
  }, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
10372
10397
  "color": scrimColor,
10373
- "modelValue": !!props.scrim && isActive.value
10398
+ "modelValue": isActive.value && !!props.scrim
10374
10399
  }, scrimEvents.value), null), vue.createVNode(MaybeTransition, {
10375
10400
  "appear": true,
10376
10401
  "persisted": true,
@@ -10617,6 +10642,7 @@
10617
10642
  const overlayProps = VOverlay.filterProps(props);
10618
10643
  return vue.createVNode(VOverlay, vue.mergeProps({
10619
10644
  "ref": overlay,
10645
+ "id": id.value,
10620
10646
  "class": ['v-menu', props.class],
10621
10647
  "style": props.style
10622
10648
  }, overlayProps, {
@@ -14216,7 +14242,7 @@
14216
14242
  ctx.fillStyle = saturationGradient;
14217
14243
  ctx.fillRect(0, 0, canvas.width, canvas.height);
14218
14244
  const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height);
14219
- valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)'); // transparent
14245
+ valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)'); // transparent
14220
14246
  valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)'); // black
14221
14247
  ctx.fillStyle = valueGradient;
14222
14248
  ctx.fillRect(0, 0, canvas.width, canvas.height);
@@ -14299,7 +14325,7 @@
14299
14325
  const nullColor = {
14300
14326
  h: 0,
14301
14327
  s: 0,
14302
- v: 1,
14328
+ v: 0,
14303
14329
  a: 1
14304
14330
  };
14305
14331
  const rgba = {
@@ -14500,7 +14526,7 @@
14500
14526
  onChange: e => {
14501
14527
  const target = e.target;
14502
14528
  if (!target) return;
14503
- emit('update:color', mode.from(getColor(color ?? nullColor, target.value)));
14529
+ emit('update:color', mode.from(getColor(color ?? mode.to(nullColor), target.value)));
14504
14530
  }
14505
14531
  };
14506
14532
  });
@@ -17102,16 +17128,13 @@
17102
17128
  return null;
17103
17129
  }
17104
17130
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17105
-
17106
- // The number of letters returned by getWeekday() varies by date library
17107
- // So we've opted for 3-letter abbreviations for all locales
17108
17131
  function getWeekdays(locale) {
17109
17132
  const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
17110
17133
  return createRange(7).map(i => {
17111
17134
  const weekday = new Date(sundayJanuarySecond2000);
17112
17135
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
17113
17136
  return new Intl.DateTimeFormat(locale, {
17114
- weekday: 'short'
17137
+ weekday: 'narrow'
17115
17138
  }).format(weekday);
17116
17139
  });
17117
17140
  }
@@ -17174,10 +17197,7 @@
17174
17197
  };
17175
17198
  break;
17176
17199
  case 'dayOfMonth':
17177
- options = {
17178
- day: 'numeric'
17179
- };
17180
- break;
17200
+ return new Intl.NumberFormat(locale).format(newDate.getDate());
17181
17201
  case 'shortDate':
17182
17202
  options = {
17183
17203
  year: '2-digit',
@@ -20338,7 +20358,7 @@
20338
20358
  }, v => adapter.getYear(v));
20339
20359
  const month = useProxiedModel(props, 'month', undefined, v => {
20340
20360
  const value = v != null ? Number(v) : adapter.getMonth(displayValue.value);
20341
- const date = adapter.setYear(adapter.date(), adapter.getYear(year.value));
20361
+ const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
20342
20362
  return adapter.setMonth(date, value);
20343
20363
  }, v => adapter.getMonth(v));
20344
20364
  const weeksInMonth = vue.computed(() => {
@@ -20440,7 +20460,6 @@
20440
20460
  color: String,
20441
20461
  hideWeekdays: Boolean,
20442
20462
  multiple: [Boolean, Number, String],
20443
- range: Boolean,
20444
20463
  showWeek: Boolean,
20445
20464
  ...makeCalendarProps()
20446
20465
  }, 'VDatePickerMonth');
@@ -20462,7 +20481,7 @@
20462
20481
  daysInMonth,
20463
20482
  model,
20464
20483
  weekNumbers
20465
- } = useCalendar(props); // TODO: fix typing
20484
+ } = useCalendar(props);
20466
20485
  const adapter = useDate();
20467
20486
  const rangeStart = vue.shallowRef();
20468
20487
  const rangeStop = vue.shallowRef();
@@ -20534,7 +20553,7 @@
20534
20553
  "class": "v-date-picker-month__days"
20535
20554
  }, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => vue.createVNode("div", {
20536
20555
  "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
20537
- }, [weekDay[0]])), daysInMonth.value.map((item, i) => {
20556
+ }, [weekDay])), daysInMonth.value.map((item, i) => {
20538
20557
  const slotProps = {
20539
20558
  props: {
20540
20559
  onClick: () => onClick(item.date)
@@ -20858,7 +20877,7 @@
20858
20877
  return props.multiple && model.value.length > 1 ? t('$vuetify.datePicker.itemsSelected', model.value.length) : model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header);
20859
20878
  });
20860
20879
  const text = vue.computed(() => {
20861
- return adapter.format(adapter.setYear(adapter.setMonth(adapter.startOfMonth(adapter.date()), month.value), year.value), 'monthAndYear');
20880
+ return adapter.format(adapter.parseISO(`${year.value}-${month.value + 1}-01`), 'monthAndYear');
20862
20881
  });
20863
20882
  // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
20864
20883
  const headerTransition = vue.computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
@@ -25647,7 +25666,7 @@
25647
25666
  goTo
25648
25667
  };
25649
25668
  }
25650
- const version$1 = "3.5.1";
25669
+ const version$1 = "3.5.3";
25651
25670
  createVuetify$1.version = version$1;
25652
25671
 
25653
25672
  // Vue's inject() can only be used in setup
@@ -25672,7 +25691,7 @@
25672
25691
  ...options
25673
25692
  });
25674
25693
  };
25675
- const version = "3.5.1";
25694
+ const version = "3.5.3";
25676
25695
  createVuetify.version = version;
25677
25696
 
25678
25697
  exports.components = components;