vuetify 3.3.19 → 3.3.20

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 (71) hide show
  1. package/dist/json/attributes.json +25 -25
  2. package/dist/json/importMap.json +20 -20
  3. package/dist/json/web-types.json +63 -63
  4. package/dist/vuetify-labs.css +5122 -5112
  5. package/dist/vuetify-labs.d.ts +172 -172
  6. package/dist/vuetify-labs.esm.js +45 -51
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +45 -51
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +5088 -5082
  11. package/dist/vuetify.d.ts +169 -169
  12. package/dist/vuetify.esm.js +33 -40
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +33 -40
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +201 -202
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAutocomplete/index.d.mts +14 -14
  20. package/lib/components/VCheckbox/index.d.mts +8 -8
  21. package/lib/components/VCombobox/index.d.mts +14 -14
  22. package/lib/components/VFileInput/index.d.mts +20 -20
  23. package/lib/components/VInput/index.d.mts +8 -8
  24. package/lib/components/VList/VList.css +0 -3
  25. package/lib/components/VList/VList.sass +0 -4
  26. package/lib/components/VList/VListItem.css +9 -1
  27. package/lib/components/VList/VListItem.sass +12 -1
  28. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +8 -7
  29. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  30. package/lib/components/VRadioGroup/index.d.mts +8 -8
  31. package/lib/components/VRangeSlider/index.d.mts +8 -8
  32. package/lib/components/VSelect/index.d.mts +14 -14
  33. package/lib/components/VSlider/VSliderThumb.css +2 -0
  34. package/lib/components/VSlider/VSliderThumb.mjs +7 -6
  35. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  36. package/lib/components/VSlider/VSliderThumb.sass +2 -0
  37. package/lib/components/VSlider/VSliderTrack.mjs +5 -7
  38. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  39. package/lib/components/VSlider/index.d.mts +8 -8
  40. package/lib/components/VSlider/slider.mjs +4 -10
  41. package/lib/components/VSlider/slider.mjs.map +1 -1
  42. package/lib/components/VSwitch/index.d.mts +8 -8
  43. package/lib/components/VTextField/VTextField.mjs +1 -1
  44. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  45. package/lib/components/VTextField/index.d.mts +26 -26
  46. package/lib/components/VTextarea/index.d.mts +20 -20
  47. package/lib/components/VTimeline/VTimeline.css +0 -1
  48. package/lib/components/VTimeline/VTimeline.sass +0 -1
  49. package/lib/components/VValidation/index.d.mts +8 -8
  50. package/lib/components/index.d.mts +164 -164
  51. package/lib/composables/forwardRefs.mjs +4 -4
  52. package/lib/composables/forwardRefs.mjs.map +1 -1
  53. package/lib/composables/validation.mjs +2 -2
  54. package/lib/composables/validation.mjs.map +1 -1
  55. package/lib/entry-bundler.mjs +1 -1
  56. package/lib/framework.mjs +1 -1
  57. package/lib/index.d.mts +5 -5
  58. package/lib/labs/VDataTable/VDataTableVirtual.mjs +5 -5
  59. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  60. package/lib/labs/VDataTable/composables/select.mjs +6 -6
  61. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  62. package/lib/labs/VDateInput/index.d.mts +14 -14
  63. package/lib/labs/VSkeletonLoader/VSkeletonLoader.css +4 -0
  64. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +2 -1
  65. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  66. package/lib/labs/VSkeletonLoader/VSkeletonLoader.sass +4 -0
  67. package/lib/labs/VSkeletonLoader/index.d.mts +8 -8
  68. package/lib/labs/components.d.mts +8 -8
  69. package/lib/labs/date/date.mjs +1 -1
  70. package/lib/labs/date/date.mjs.map +1 -1
  71. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.3.19
2
+ * Vuetify v3.3.20
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -6293,7 +6293,7 @@
6293
6293
  const isDisabled = vue.computed(() => !!(props.disabled ?? form?.isDisabled.value));
6294
6294
  const isReadonly = vue.computed(() => !!(props.readonly ?? form?.isReadonly.value));
6295
6295
  const errorMessages = vue.computed(() => {
6296
- return props.errorMessages.length ? wrapInArray(props.errorMessages).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6296
+ return props.errorMessages?.length ? wrapInArray(props.errorMessages).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6297
6297
  });
6298
6298
  const validateOn = vue.computed(() => {
6299
6299
  let value = (props.validateOn ?? form?.validateOn.value) || 'input';
@@ -6307,7 +6307,7 @@
6307
6307
  };
6308
6308
  });
6309
6309
  const isValid = vue.computed(() => {
6310
- if (props.error || props.errorMessages.length) return false;
6310
+ if (props.error || props.errorMessages?.length) return false;
6311
6311
  if (!props.rules.length) return true;
6312
6312
  if (isPristine.value) {
6313
6313
  return internalErrorMessages.value.length || validateOn.value.lazy ? null : true;
@@ -9803,7 +9803,7 @@
9803
9803
  }
9804
9804
 
9805
9805
  // Skip internal properties
9806
- if (typeof key === 'symbol' || key.startsWith('__')) return;
9806
+ if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;
9807
9807
  for (const ref of refs) {
9808
9808
  if (ref.value && Reflect.has(ref.value, key)) {
9809
9809
  const val = Reflect.get(ref.value, key);
@@ -9817,7 +9817,7 @@
9817
9817
  }
9818
9818
 
9819
9819
  // Skip internal properties
9820
- if (typeof key === 'symbol' || key.startsWith('__')) return false;
9820
+ if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;
9821
9821
  for (const ref of refs) {
9822
9822
  if (ref.value && Reflect.has(ref.value, key)) {
9823
9823
  return true;
@@ -9831,7 +9831,7 @@
9831
9831
  }
9832
9832
 
9833
9833
  // Skip internal properties
9834
- if (typeof key === 'symbol' || key.startsWith('__')) return false;
9834
+ if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;
9835
9835
  for (const ref of refs) {
9836
9836
  if (ref.value && Reflect.has(ref.value, key)) {
9837
9837
  return Reflect.set(ref.value, key, value);
@@ -9844,7 +9844,7 @@
9844
9844
  if (descriptor) return descriptor;
9845
9845
 
9846
9846
  // Skip internal properties
9847
- if (typeof key === 'symbol' || key.startsWith('__')) return;
9847
+ if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;
9848
9848
 
9849
9849
  // Check each ref's own properties
9850
9850
  for (const ref of refs) {
@@ -10457,7 +10457,7 @@
10457
10457
  }
10458
10458
  }
10459
10459
  useRender(() => {
10460
- const hasCounter = !!(slots.counter || props.counter || props.counterValue);
10460
+ const hasCounter = !!(slots.counter || props.counter !== false && props.counter != null);
10461
10461
  const hasDetails = !!(hasCounter || slots.details);
10462
10462
  const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
10463
10463
  const [{
@@ -13624,13 +13624,8 @@
13624
13624
  isRtl
13625
13625
  } = useRtl();
13626
13626
  const isReversed = vue.toRef(props, 'reverse');
13627
- const horizontalDirection = vue.computed(() => {
13628
- let hd = isRtl.value ? 'rtl' : 'ltr';
13629
- if (props.reverse) {
13630
- hd = hd === 'rtl' ? 'ltr' : 'rtl';
13631
- }
13632
- return hd;
13633
- });
13627
+ const vertical = vue.computed(() => props.direction === 'vertical');
13628
+ const indexFromEnd = vue.computed(() => vertical.value !== isReversed.value);
13634
13629
  const {
13635
13630
  min,
13636
13631
  max,
@@ -13643,7 +13638,6 @@
13643
13638
  const trackSize = vue.computed(() => parseInt(props.trackSize, 10));
13644
13639
  const numTicks = vue.computed(() => (max.value - min.value) / step.value);
13645
13640
  const disabled = vue.toRef(props, 'disabled');
13646
- const vertical = vue.computed(() => props.direction === 'vertical');
13647
13641
  const thumbColor = vue.computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
13648
13642
  const trackColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
13649
13643
  const trackFillColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
@@ -13664,7 +13658,7 @@
13664
13658
 
13665
13659
  // It is possible for left to be NaN, force to number
13666
13660
  let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;
13667
- if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos;
13661
+ if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;
13668
13662
  return roundValue(min.value + clickPos * (max.value - min.value));
13669
13663
  }
13670
13664
  const handleStop = e => {
@@ -13768,8 +13762,8 @@
13768
13762
  direction: vue.toRef(props, 'direction'),
13769
13763
  elevation: vue.toRef(props, 'elevation'),
13770
13764
  hasLabels,
13771
- horizontalDirection,
13772
13765
  isReversed,
13766
+ indexFromEnd,
13773
13767
  min,
13774
13768
  max,
13775
13769
  mousePressed,
@@ -13842,23 +13836,24 @@
13842
13836
  } = _ref;
13843
13837
  const slider = vue.inject(VSliderSymbol);
13844
13838
  const {
13839
+ isRtl,
13845
13840
  rtlClasses
13846
13841
  } = useRtl();
13847
13842
  if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');
13848
13843
  const {
13849
13844
  thumbColor,
13850
13845
  step,
13851
- vertical,
13852
13846
  disabled,
13853
13847
  thumbSize,
13854
13848
  thumbLabel,
13855
13849
  direction,
13850
+ isReversed,
13851
+ vertical,
13856
13852
  readonly,
13857
13853
  elevation,
13858
- isReversed,
13859
- horizontalDirection,
13860
13854
  mousePressed,
13861
- decimals
13855
+ decimals,
13856
+ indexFromEnd
13862
13857
  } = slider;
13863
13858
  const {
13864
13859
  textColorClasses,
@@ -13884,7 +13879,7 @@
13884
13879
  const _step = step.value || 0.1;
13885
13880
  const steps = (props.max - props.min) / _step;
13886
13881
  if ([left, right, down, up].includes(e.key)) {
13887
- const increase = horizontalDirection.value === 'rtl' ? [left, up] : [right, up];
13882
+ const increase = vertical.value ? [isRtl.value ? left : right, isReversed.value ? down : up] : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up];
13888
13883
  const direction = increase.includes(e.key) ? 1 : -1;
13889
13884
  const multiplier = e.shiftKey ? 2 : e.ctrlKey ? 1 : 0;
13890
13885
  value = value + direction * _step * multipliers.value[multiplier];
@@ -13903,7 +13898,7 @@
13903
13898
  newValue != null && emit('update:modelValue', newValue);
13904
13899
  }
13905
13900
  useRender(() => {
13906
- const positionPercentage = convertToUnit(vertical.value || isReversed.value ? 100 - props.position : props.position, '%');
13901
+ const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%');
13907
13902
  const {
13908
13903
  elevationClasses
13909
13904
  } = useElevation(vue.computed(() => !disabled.value ? elevation.value : undefined));
@@ -13976,7 +13971,6 @@
13976
13971
  if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider');
13977
13972
  const {
13978
13973
  color,
13979
- horizontalDirection,
13980
13974
  parsedTicks,
13981
13975
  rounded,
13982
13976
  showTicks,
@@ -13986,7 +13980,8 @@
13986
13980
  trackSize,
13987
13981
  vertical,
13988
13982
  min,
13989
- max
13983
+ max,
13984
+ indexFromEnd
13990
13985
  } = slider;
13991
13986
  const {
13992
13987
  roundedClasses
@@ -13999,7 +13994,7 @@
13999
13994
  backgroundColorClasses: trackColorClasses,
14000
13995
  backgroundColorStyles: trackColorStyles
14001
13996
  } = useBackgroundColor(trackColor);
14002
- const startDir = vue.computed(() => `inset-${vertical.value ? 'block-end' : 'inline-start'}`);
13997
+ const startDir = vue.computed(() => `inset-${vertical.value ? 'block' : 'inline'}-${indexFromEnd.value ? 'end' : 'start'}`);
14003
13998
  const endDir = vue.computed(() => vertical.value ? 'height' : 'width');
14004
13999
  const backgroundStyles = vue.computed(() => {
14005
14000
  return {
@@ -14018,7 +14013,6 @@
14018
14013
  if (!showTicks.value) return [];
14019
14014
  const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;
14020
14015
  return ticks.map((tick, index) => {
14021
- const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start';
14022
14016
  const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;
14023
14017
  return vue.createVNode("div", {
14024
14018
  "key": tick.value,
@@ -14028,7 +14022,7 @@
14028
14022
  'v-slider-track__tick--last': tick.value === max.value
14029
14023
  }],
14030
14024
  "style": {
14031
- [directionProperty]: directionValue
14025
+ [startDir.value]: directionValue
14032
14026
  }
14033
14027
  }, [(tick.label || slots['tick-label']) && vue.createVNode("div", {
14034
14028
  "class": "v-slider-track__tick-label"
@@ -14043,8 +14037,7 @@
14043
14037
  "class": ['v-slider-track', roundedClasses.value, props.class],
14044
14038
  "style": [{
14045
14039
  '--v-slider-track-size': convertToUnit(trackSize.value),
14046
- '--v-slider-tick-size': convertToUnit(tickSize.value),
14047
- direction: !vertical.value ? horizontalDirection.value : undefined
14040
+ '--v-slider-tick-size': convertToUnit(tickSize.value)
14048
14041
  }, props.style]
14049
14042
  }, [vue.createVNode("div", {
14050
14043
  "class": ['v-slider-track__background', trackColorClasses.value, {
@@ -16965,15 +16958,15 @@
16965
16958
  });
16966
16959
  const isTemporary = vue.computed(() => !props.permanent && (mobile.value || props.temporary));
16967
16960
  const isSticky = vue.computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
16968
- if (props.expandOnHover && props.rail != null) {
16961
+ useToggleScope(() => props.expandOnHover && props.rail != null, () => {
16969
16962
  vue.watch(isHovering, val => emit('update:rail', !val));
16970
- }
16971
- if (!props.disableResizeWatcher) {
16963
+ });
16964
+ useToggleScope(() => !props.disableResizeWatcher, () => {
16972
16965
  vue.watch(isTemporary, val => !props.permanent && vue.nextTick(() => isActive.value = !val));
16973
- }
16974
- if (!props.disableRouteWatcher && router) {
16966
+ });
16967
+ useToggleScope(() => !props.disableRouteWatcher && !!router, () => {
16975
16968
  vue.watch(router.currentRoute, () => isTemporary.value && (isActive.value = false));
16976
- }
16969
+ });
16977
16970
  vue.watch(() => props.permanent, val => {
16978
16971
  if (val) isActive.value = true;
16979
16972
  });
@@ -20014,7 +20007,7 @@
20014
20007
  items,
20015
20008
  value
20016
20009
  } = _ref;
20017
- return new Set(value ? [vue.toRaw(items[0]?.value)] : []);
20010
+ return new Set(value ? [items[0]?.value] : []);
20018
20011
  },
20019
20012
  selectAll: _ref2 => {
20020
20013
  let {
@@ -20038,7 +20031,7 @@
20038
20031
  selected
20039
20032
  } = _ref4;
20040
20033
  for (const item of items) {
20041
- if (value) selected.add(vue.toRaw(item.value));else selected.delete(vue.toRaw(item.value));
20034
+ if (value) selected.add(item.value);else selected.delete(item.value);
20042
20035
  }
20043
20036
  return selected;
20044
20037
  },
@@ -20070,7 +20063,7 @@
20070
20063
  selected
20071
20064
  } = _ref7;
20072
20065
  for (const item of items) {
20073
- if (value) selected.add(vue.toRaw(item.value));else selected.delete(vue.toRaw(item.value));
20066
+ if (value) selected.add(item.value);else selected.delete(item.value);
20074
20067
  }
20075
20068
  return selected;
20076
20069
  },
@@ -20130,10 +20123,10 @@
20130
20123
  }
20131
20124
  });
20132
20125
  function isSelected(items) {
20133
- return wrapInArray(items).every(item => selected.value.has(vue.toRaw(item.value)));
20126
+ return wrapInArray(items).every(item => selected.value.has(item.value));
20134
20127
  }
20135
20128
  function isSomeSelected(items) {
20136
- return wrapInArray(items).some(item => selected.value.has(vue.toRaw(item.value)));
20129
+ return wrapInArray(items).some(item => selected.value.has(item.value));
20137
20130
  }
20138
20131
  function select(items, value) {
20139
20132
  const newSelected = selectStrategy.value.select({
@@ -21587,7 +21580,7 @@
21587
21580
  }, [vue.createVNode("td", {
21588
21581
  "colspan": columns.value.length,
21589
21582
  "style": {
21590
- height: convertToUnit(paddingTop.value),
21583
+ height: 0,
21591
21584
  border: 0
21592
21585
  }
21593
21586
  }, null)]), vue.createVNode(VDataTableRows, vue.mergeProps(dataTableRowsProps, {
@@ -21595,9 +21588,9 @@
21595
21588
  }), {
21596
21589
  ...slots,
21597
21590
  item: itemSlotProps => vue.createVNode(VVirtualScrollItem, {
21598
- "key": itemSlotProps.item.index,
21591
+ "key": itemSlotProps.internalItem.index,
21599
21592
  "renderless": true,
21600
- "onUpdate:height": height => handleItemResize(itemSlotProps.item.index, height)
21593
+ "onUpdate:height": height => handleItemResize(itemSlotProps.internalItem.index, height)
21601
21594
  }, {
21602
21595
  default: _ref2 => {
21603
21596
  let {
@@ -21608,7 +21601,7 @@
21608
21601
  itemRef
21609
21602
  }) ?? vue.createVNode(VDataTableRow, vue.mergeProps(itemSlotProps.props, {
21610
21603
  "ref": itemRef,
21611
- "key": itemSlotProps.item.index
21604
+ "key": itemSlotProps.internalItem.index
21612
21605
  }), slots);
21613
21606
  }
21614
21607
  })
@@ -21620,7 +21613,7 @@
21620
21613
  }, [vue.createVNode("td", {
21621
21614
  "colspan": columns.value.length,
21622
21615
  "style": {
21623
- height: convertToUnit(paddingBottom.value),
21616
+ height: 0,
21624
21617
  border: 0
21625
21618
  }
21626
21619
  }, null)])])])]),
@@ -22345,7 +22338,7 @@
22345
22338
  lv: 'lv-LV',
22346
22339
  lt: 'lt-LT',
22347
22340
  nl: 'nl-NL',
22348
- no: 'nn-NO',
22341
+ no: 'no-NO',
22349
22342
  pl: 'pl-PL',
22350
22343
  pt: 'pt-PT',
22351
22344
  ro: 'ro-RO',
@@ -23762,6 +23755,7 @@
23762
23755
  'list-item-avatar-two-line': 'avatar, sentences',
23763
23756
  'list-item-three-line': 'paragraph',
23764
23757
  'list-item-avatar-three-line': 'avatar, paragraph',
23758
+ ossein: 'ossein',
23765
23759
  paragraph: 'text@3',
23766
23760
  sentences: 'text@2',
23767
23761
  subtitle: 'text',
@@ -23826,7 +23820,7 @@
23826
23820
  },
23827
23821
  type: {
23828
23822
  type: [String, Array],
23829
- default: 'image'
23823
+ default: 'ossein'
23830
23824
  },
23831
23825
  ...makeDimensionProps(),
23832
23826
  ...makeElevationProps(),
@@ -24618,7 +24612,7 @@
24618
24612
  date
24619
24613
  };
24620
24614
  }
24621
- const version$1 = "3.3.19";
24615
+ const version$1 = "3.3.20";
24622
24616
  createVuetify$1.version = version$1;
24623
24617
 
24624
24618
  // Vue's inject() can only be used in setup
@@ -24632,7 +24626,7 @@
24632
24626
 
24633
24627
  /* eslint-disable local-rules/sort-imports */
24634
24628
 
24635
- const version = "3.3.19";
24629
+ const version = "3.3.20";
24636
24630
 
24637
24631
  /* eslint-disable local-rules/sort-imports */
24638
24632