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
@@ -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
  */
@@ -4139,6 +4139,9 @@ function useGroup(props, injectKey) {
4139
4139
  const key = Symbol.for(`${injectKey.description}:id`);
4140
4140
  const children = findChildrenWithProvide(key, groupVm?.vnode);
4141
4141
  const index = children.indexOf(vm);
4142
+ if (unref(unwrapped.value) == null) {
4143
+ unwrapped.value = index;
4144
+ }
4142
4145
  if (index > -1) {
4143
4146
  items.splice(index, 0, unwrapped);
4144
4147
  } else {
@@ -5883,7 +5886,7 @@ const VAvatar = genericComponent()({
5883
5886
  }, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
5884
5887
  "style": [colorStyles.value, sizeStyles.value, props.style]
5885
5888
  }, {
5886
- default: () => [props.image ? createVNode(VImg, {
5889
+ default: () => [!slots.default ? props.image ? createVNode(VImg, {
5887
5890
  "key": "image",
5888
5891
  "src": props.image,
5889
5892
  "alt": "",
@@ -5891,7 +5894,20 @@ const VAvatar = genericComponent()({
5891
5894
  }, null) : props.icon ? createVNode(VIcon, {
5892
5895
  "key": "icon",
5893
5896
  "icon": props.icon
5894
- }, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
5897
+ }, null) : props.text : createVNode(VDefaultsProvider, {
5898
+ "key": "content-defaults",
5899
+ "defaults": {
5900
+ VAvatar: {
5901
+ cover: true,
5902
+ image: props.image
5903
+ },
5904
+ VIcon: {
5905
+ icon: props.icon
5906
+ }
5907
+ }
5908
+ }, {
5909
+ default: () => [slots.default?.()]
5910
+ }), genOverlays(false, 'v-avatar')]
5895
5911
  }));
5896
5912
  return {};
5897
5913
  }
@@ -5899,7 +5915,7 @@ const VAvatar = genericComponent()({
5899
5915
 
5900
5916
  const makeVLabelProps = propsFactory({
5901
5917
  text: String,
5902
- clickable: Boolean,
5918
+ onClick: EventProp(),
5903
5919
  ...makeComponentProps(),
5904
5920
  ...makeThemeProps()
5905
5921
  }, 'VLabel');
@@ -5912,9 +5928,10 @@ const VLabel = genericComponent()({
5912
5928
  } = _ref;
5913
5929
  useRender(() => createVNode("label", {
5914
5930
  "class": ['v-label', {
5915
- 'v-label--clickable': props.clickable
5931
+ 'v-label--clickable': !!props.onClick
5916
5932
  }, props.class],
5917
- "style": props.style
5933
+ "style": props.style,
5934
+ "onClick": props.onClick
5918
5935
  }, [props.text, slots.default?.()]));
5919
5936
  return {};
5920
5937
  }
@@ -6133,6 +6150,9 @@ const VSelectionControl = genericComponent()({
6133
6150
  isFocused.value = false;
6134
6151
  isFocusVisible.value = false;
6135
6152
  }
6153
+ function onClickLabel(e) {
6154
+ e.stopPropagation();
6155
+ }
6136
6156
  function onInput(e) {
6137
6157
  if (!isInteractive.value) return;
6138
6158
  if (props.readonly && group) {
@@ -6199,8 +6219,7 @@ const VSelectionControl = genericComponent()({
6199
6219
  "icon": icon.value
6200
6220
  }, null), inputNode])]), [[resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && createVNode(VLabel, {
6201
6221
  "for": id.value,
6202
- "clickable": true,
6203
- "onClick": e => e.stopPropagation()
6222
+ "onClick": onClickLabel
6204
6223
  }, {
6205
6224
  default: () => [label]
6206
6225
  })]);
@@ -6613,7 +6632,7 @@ function useValidation(props) {
6613
6632
  if (!val) validate();
6614
6633
  });
6615
6634
  });
6616
- watch(isValid, () => {
6635
+ watch([isValid, errorMessages], () => {
6617
6636
  form?.update(uid.value, isValid.value, errorMessages.value);
6618
6637
  });
6619
6638
  function reset() {
@@ -7637,7 +7656,8 @@ const VChip = genericComponent()({
7637
7656
  }
7638
7657
  }
7639
7658
  }, slots.prepend)]), createVNode("div", {
7640
- "class": "v-chip__content"
7659
+ "class": "v-chip__content",
7660
+ "data-no-activator": ""
7641
7661
  }, [slots.default?.({
7642
7662
  isSelected: group?.isSelected.value,
7643
7663
  selectedClass: group?.selectedClass.value,
@@ -9558,12 +9578,15 @@ function blockScrollStrategy(data, props) {
9558
9578
  scrollElements.forEach((el, i) => {
9559
9579
  const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));
9560
9580
  const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));
9581
+ const scrollBehavior = el.style.scrollBehavior;
9582
+ el.style.scrollBehavior = 'auto';
9561
9583
  el.style.removeProperty('--v-body-scroll-x');
9562
9584
  el.style.removeProperty('--v-body-scroll-y');
9563
9585
  el.style.removeProperty('--v-scrollbar-offset');
9564
9586
  el.classList.remove('v-overlay-scroll-blocked');
9565
9587
  el.scrollLeft = -x;
9566
9588
  el.scrollTop = -y;
9589
+ el.style.scrollBehavior = scrollBehavior;
9567
9590
  });
9568
9591
  if (scrollableParent) {
9569
9592
  data.root.value.classList.remove('v-overlay--scroll-blocked');
@@ -10170,6 +10193,7 @@ const makeVOverlayProps = propsFactory({
10170
10193
  contentClass: null,
10171
10194
  contentProps: null,
10172
10195
  disabled: Boolean,
10196
+ opacity: [Number, String],
10173
10197
  noClickAnimation: Boolean,
10174
10198
  modelValue: Boolean,
10175
10199
  persistent: Boolean,
@@ -10356,7 +10380,7 @@ const VOverlay = genericComponent()({
10356
10380
  ref: activatorRef,
10357
10381
  targetRef
10358
10382
  }, activatorEvents.value, props.activatorProps)
10359
- }), !props.disabled && isMounted.value && hasContent.value && createVNode(Teleport, {
10383
+ }), isMounted.value && hasContent.value && createVNode(Teleport, {
10360
10384
  "disabled": !teleportTarget.value,
10361
10385
  "to": teleportTarget.value
10362
10386
  }, {
@@ -10367,12 +10391,13 @@ const VOverlay = genericComponent()({
10367
10391
  'v-overlay--contained': props.contained
10368
10392
  }, themeClasses.value, rtlClasses.value, props.class],
10369
10393
  "style": [stackStyles.value, {
10394
+ '--v-overlay-opacity': props.opacity,
10370
10395
  top: convertToUnit(top.value)
10371
10396
  }, props.style],
10372
10397
  "ref": root
10373
10398
  }, scopeId, attrs), [createVNode(Scrim, mergeProps({
10374
10399
  "color": scrimColor,
10375
- "modelValue": !!props.scrim && isActive.value
10400
+ "modelValue": isActive.value && !!props.scrim
10376
10401
  }, scrimEvents.value), null), createVNode(MaybeTransition, {
10377
10402
  "appear": true,
10378
10403
  "persisted": true,
@@ -10619,6 +10644,7 @@ const VMenu = genericComponent()({
10619
10644
  const overlayProps = VOverlay.filterProps(props);
10620
10645
  return createVNode(VOverlay, mergeProps({
10621
10646
  "ref": overlay,
10647
+ "id": id.value,
10622
10648
  "class": ['v-menu', props.class],
10623
10649
  "style": props.style
10624
10650
  }, overlayProps, {
@@ -14218,7 +14244,7 @@ const VColorPickerCanvas = defineComponent({
14218
14244
  ctx.fillStyle = saturationGradient;
14219
14245
  ctx.fillRect(0, 0, canvas.width, canvas.height);
14220
14246
  const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height);
14221
- valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)'); // transparent
14247
+ valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)'); // transparent
14222
14248
  valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)'); // black
14223
14249
  ctx.fillStyle = valueGradient;
14224
14250
  ctx.fillRect(0, 0, canvas.width, canvas.height);
@@ -14301,7 +14327,7 @@ function extractColor(color, input) {
14301
14327
  const nullColor = {
14302
14328
  h: 0,
14303
14329
  s: 0,
14304
- v: 1,
14330
+ v: 0,
14305
14331
  a: 1
14306
14332
  };
14307
14333
  const rgba = {
@@ -14502,7 +14528,7 @@ const VColorPickerEdit = defineComponent({
14502
14528
  onChange: e => {
14503
14529
  const target = e.target;
14504
14530
  if (!target) return;
14505
- emit('update:color', mode.from(getColor(color ?? nullColor, target.value)));
14531
+ emit('update:color', mode.from(getColor(color ?? mode.to(nullColor), target.value)));
14506
14532
  }
14507
14533
  };
14508
14534
  });
@@ -17104,16 +17130,13 @@ function date(value) {
17104
17130
  return null;
17105
17131
  }
17106
17132
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17107
-
17108
- // The number of letters returned by getWeekday() varies by date library
17109
- // So we've opted for 3-letter abbreviations for all locales
17110
17133
  function getWeekdays(locale) {
17111
17134
  const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
17112
17135
  return createRange(7).map(i => {
17113
17136
  const weekday = new Date(sundayJanuarySecond2000);
17114
17137
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
17115
17138
  return new Intl.DateTimeFormat(locale, {
17116
- weekday: 'short'
17139
+ weekday: 'narrow'
17117
17140
  }).format(weekday);
17118
17141
  });
17119
17142
  }
@@ -17176,10 +17199,7 @@ function format(value, formatString, locale, formats) {
17176
17199
  };
17177
17200
  break;
17178
17201
  case 'dayOfMonth':
17179
- options = {
17180
- day: 'numeric'
17181
- };
17182
- break;
17202
+ return new Intl.NumberFormat(locale).format(newDate.getDate());
17183
17203
  case 'shortDate':
17184
17204
  options = {
17185
17205
  year: '2-digit',
@@ -20340,7 +20360,7 @@ function useCalendar(props) {
20340
20360
  }, v => adapter.getYear(v));
20341
20361
  const month = useProxiedModel(props, 'month', undefined, v => {
20342
20362
  const value = v != null ? Number(v) : adapter.getMonth(displayValue.value);
20343
- const date = adapter.setYear(adapter.date(), adapter.getYear(year.value));
20363
+ const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
20344
20364
  return adapter.setMonth(date, value);
20345
20365
  }, v => adapter.getMonth(v));
20346
20366
  const weeksInMonth = computed(() => {
@@ -20442,7 +20462,6 @@ const makeVDatePickerMonthProps = propsFactory({
20442
20462
  color: String,
20443
20463
  hideWeekdays: Boolean,
20444
20464
  multiple: [Boolean, Number, String],
20445
- range: Boolean,
20446
20465
  showWeek: Boolean,
20447
20466
  ...makeCalendarProps()
20448
20467
  }, 'VDatePickerMonth');
@@ -20464,7 +20483,7 @@ const VDatePickerMonth = genericComponent()({
20464
20483
  daysInMonth,
20465
20484
  model,
20466
20485
  weekNumbers
20467
- } = useCalendar(props); // TODO: fix typing
20486
+ } = useCalendar(props);
20468
20487
  const adapter = useDate();
20469
20488
  const rangeStart = shallowRef();
20470
20489
  const rangeStop = shallowRef();
@@ -20536,7 +20555,7 @@ const VDatePickerMonth = genericComponent()({
20536
20555
  "class": "v-date-picker-month__days"
20537
20556
  }, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => createVNode("div", {
20538
20557
  "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
20539
- }, [weekDay[0]])), daysInMonth.value.map((item, i) => {
20558
+ }, [weekDay])), daysInMonth.value.map((item, i) => {
20540
20559
  const slotProps = {
20541
20560
  props: {
20542
20561
  onClick: () => onClick(item.date)
@@ -20860,7 +20879,7 @@ const VDatePicker = genericComponent()({
20860
20879
  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);
20861
20880
  });
20862
20881
  const text = computed(() => {
20863
- return adapter.format(adapter.setYear(adapter.setMonth(adapter.startOfMonth(adapter.date()), month.value), year.value), 'monthAndYear');
20882
+ return adapter.format(adapter.parseISO(`${year.value}-${month.value + 1}-01`), 'monthAndYear');
20864
20883
  });
20865
20884
  // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
20866
20885
  const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
@@ -26201,7 +26220,7 @@ function createVuetify$1() {
26201
26220
  goTo
26202
26221
  };
26203
26222
  }
26204
- const version$1 = "3.5.1";
26223
+ const version$1 = "3.5.3";
26205
26224
  createVuetify$1.version = version$1;
26206
26225
 
26207
26226
  // Vue's inject() can only be used in setup
@@ -26215,7 +26234,7 @@ function inject(key) {
26215
26234
 
26216
26235
  /* eslint-disable local-rules/sort-imports */
26217
26236
 
26218
- const version = "3.5.1";
26237
+ const version = "3.5.3";
26219
26238
 
26220
26239
  /* eslint-disable local-rules/sort-imports */
26221
26240