vuetify 3.3.4 → 3.3.6

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 (94) hide show
  1. package/dist/json/attributes.json +4 -12
  2. package/dist/json/importMap.json +20 -20
  3. package/dist/json/tags.json +0 -2
  4. package/dist/json/web-types.json +7 -27
  5. package/dist/vuetify-labs.css +49 -27
  6. package/dist/vuetify-labs.d.ts +36 -98
  7. package/dist/vuetify-labs.esm.js +85 -53
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +85 -53
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +66 -43
  12. package/dist/vuetify.d.ts +5 -5
  13. package/dist/vuetify.esm.js +43 -34
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +43 -34
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +21 -22
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAppBar/VAppBar.mjs +12 -9
  21. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.css +12 -4
  23. package/lib/components/VAutocomplete/VAutocomplete.sass +17 -9
  24. package/lib/components/VAutocomplete/_variables.scss +1 -0
  25. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +4 -0
  26. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
  27. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  28. package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +4 -0
  29. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +8 -7
  30. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  31. package/lib/components/VBtn/VBtn.css +1 -1
  32. package/lib/components/VBtn/VBtn.sass +1 -1
  33. package/lib/components/VCombobox/VCombobox.css +12 -4
  34. package/lib/components/VCombobox/VCombobox.sass +17 -9
  35. package/lib/components/VCombobox/_variables.scss +1 -0
  36. package/lib/components/VFooter/VFooter.mjs +4 -2
  37. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  38. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  39. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  40. package/lib/components/VOverlay/VOverlay.mjs +1 -1
  41. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  42. package/lib/components/VSelect/VSelect.css +4 -3
  43. package/lib/components/VSelect/VSelect.sass +10 -12
  44. package/lib/components/VSlider/VSliderThumb.mjs +6 -2
  45. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  46. package/lib/components/VTextField/VTextField.css +2 -0
  47. package/lib/components/VTextField/VTextField.mjs +2 -4
  48. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  49. package/lib/components/VTextField/VTextField.sass +3 -1
  50. package/lib/composables/validation.mjs +2 -2
  51. package/lib/composables/validation.mjs.map +1 -1
  52. package/lib/composables/virtual.mjs +7 -5
  53. package/lib/composables/virtual.mjs.map +1 -1
  54. package/lib/entry-bundler.mjs +1 -1
  55. package/lib/framework.mjs +1 -1
  56. package/lib/iconsets/fa.mjs +2 -2
  57. package/lib/iconsets/fa.mjs.map +1 -1
  58. package/lib/iconsets/fa4.mjs +2 -2
  59. package/lib/iconsets/fa4.mjs.map +1 -1
  60. package/lib/index.d.mts +5 -5
  61. package/lib/labs/VDataTable/composables/sort.mjs +4 -1
  62. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  63. package/lib/labs/VDatePicker/VDatePicker.css +3 -5
  64. package/lib/labs/VDatePicker/VDatePicker.mjs +12 -10
  65. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  66. package/lib/labs/VDatePicker/VDatePicker.sass +3 -5
  67. package/lib/labs/VDatePicker/VDatePickerControls.css +3 -1
  68. package/lib/labs/VDatePicker/VDatePickerControls.mjs +1 -1
  69. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
  70. package/lib/labs/VDatePicker/VDatePickerControls.sass +3 -3
  71. package/lib/labs/VDatePicker/VDatePickerMonth.css +0 -1
  72. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +0 -5
  73. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  74. package/lib/labs/VDatePicker/VDatePickerMonth.sass +0 -1
  75. package/lib/labs/VDatePicker/VDatePickerTitle.sass +1 -1
  76. package/lib/labs/VDatePicker/VDatePickerYears.css +1 -1
  77. package/lib/labs/VDatePicker/VDatePickerYears.sass +1 -1
  78. package/lib/labs/VDatePicker/_variables.scss +0 -5
  79. package/lib/labs/VDatePicker/index.d.mts +36 -98
  80. package/lib/labs/VDateRangePicker/index.d.mts +34 -44
  81. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +24 -4
  82. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  83. package/lib/labs/VPicker/VPicker.css +1 -1
  84. package/lib/labs/VPicker/VPicker.sass +1 -1
  85. package/lib/labs/VPicker/_variables.scss +2 -2
  86. package/lib/labs/components.d.mts +36 -98
  87. package/lib/util/helpers.mjs +3 -0
  88. package/lib/util/helpers.mjs.map +1 -1
  89. package/lib/util/injectSelf.mjs +1 -0
  90. package/lib/util/injectSelf.mjs.map +1 -1
  91. package/package.json +2 -2
  92. package/lib/labs/VDatePicker/VDatePickerTable.sass +0 -84
  93. package/lib/labs/VDatePicker/mixins/date-picker-table.mjs +0 -210
  94. package/lib/labs/VDatePicker/mixins/date-picker-table.mjs.map +0 -1
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.3.4
2
+ * Vuetify v3.3.6
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1290,6 +1290,7 @@
1290
1290
  // TS doesn't allow symbol as index type
1291
1291
  return provides[key];
1292
1292
  }
1293
+ return undefined;
1293
1294
  }
1294
1295
 
1295
1296
  function isFixedPosition(el) {
@@ -3640,16 +3641,18 @@
3640
3641
  const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
3641
3642
  return height + extensionHeight;
3642
3643
  });
3643
- vue.watchEffect(() => {
3644
- if (scrollBehavior.value.hide) {
3645
- if (scrollBehavior.value.inverted) {
3646
- isActive.value = currentScroll.value > scrollThreshold.value;
3644
+ useToggleScope(vue.computed(() => !!props.scrollBehavior), () => {
3645
+ vue.watchEffect(() => {
3646
+ if (scrollBehavior.value.hide) {
3647
+ if (scrollBehavior.value.inverted) {
3648
+ isActive.value = currentScroll.value > scrollThreshold.value;
3649
+ } else {
3650
+ isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
3651
+ }
3647
3652
  } else {
3648
- isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
3653
+ isActive.value = true;
3649
3654
  }
3650
- } else {
3651
- isActive.value = true;
3652
- }
3655
+ });
3653
3656
  });
3654
3657
  const {
3655
3658
  ssrBootStyles
@@ -6281,12 +6284,12 @@
6281
6284
  const handler = typeof rule === 'function' ? rule : () => rule;
6282
6285
  const result = await handler(validationModel.value);
6283
6286
  if (result === true) continue;
6284
- if (typeof result !== 'string') {
6287
+ if (result !== false && typeof result !== 'string') {
6285
6288
  // eslint-disable-next-line no-console
6286
6289
  console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`);
6287
6290
  continue;
6288
6291
  }
6289
- results.push(result);
6292
+ results.push(result || '');
6290
6293
  }
6291
6294
  internalErrorMessages.value = results;
6292
6295
  isValidating.value = false;
@@ -9421,7 +9424,7 @@
9421
9424
  modelValue: Boolean,
9422
9425
  persistent: Boolean,
9423
9426
  scrim: {
9424
- type: [String, Boolean],
9427
+ type: [Boolean, String],
9425
9428
  default: true
9426
9429
  },
9427
9430
  zIndex: {
@@ -10355,12 +10358,10 @@
10355
10358
  }]]);
10356
10359
  return vue.createVNode(vue.Fragment, null, [props.prefix && vue.createVNode("span", {
10357
10360
  "class": "v-text-field__prefix"
10358
- }, [props.prefix]), slots.default ? vue.createVNode("div", {
10361
+ }, [props.prefix]), vue.createVNode("div", {
10359
10362
  "class": fieldClass,
10360
10363
  "data-no-activator": ""
10361
- }, [slots.default(), inputNode]) : vue.cloneVNode(inputNode, {
10362
- class: fieldClass
10363
- }), props.suffix && vue.createVNode("span", {
10364
+ }, [slots.default ? vue.createVNode(vue.Fragment, null, [slots.default(), inputNode]) : vue.cloneVNode(inputNode)]), props.suffix && vue.createVNode("span", {
10364
10365
  "class": "v-text-field__suffix"
10365
10366
  }, [props.suffix])]);
10366
10367
  }
@@ -11596,20 +11597,21 @@
11596
11597
  textColorStyles
11597
11598
  } = useTextColor(color);
11598
11599
  useRender(() => {
11599
- const Tag = link.isLink.value ? 'a' : props.tag;
11600
- return vue.createVNode(Tag, {
11600
+ return vue.createVNode(props.tag, {
11601
11601
  "class": ['v-breadcrumbs-item', {
11602
11602
  'v-breadcrumbs-item--active': isActive.value,
11603
11603
  'v-breadcrumbs-item--disabled': props.disabled,
11604
- 'v-breadcrumbs-item--link': link.isLink.value,
11605
11604
  [`${props.activeClass}`]: isActive.value && props.activeClass
11606
11605
  }, textColorClasses.value, props.class],
11607
11606
  "style": [textColorStyles.value, props.style],
11608
- "href": link.href.value,
11609
- "aria-current": isActive.value ? 'page' : undefined,
11610
- "onClick": link.navigate
11607
+ "aria-current": isActive.value ? 'page' : undefined
11611
11608
  }, {
11612
- default: () => [slots.default?.() ?? props.title]
11609
+ default: () => [!link.isLink.value ? slots.default?.() ?? props.title : vue.createVNode("a", {
11610
+ "class": "v-breadcrumbs-item--link",
11611
+ "href": link.href.value,
11612
+ "aria-current": isActive.value ? 'page' : undefined,
11613
+ "onClick": link.navigate
11614
+ }, [slots.default?.() ?? props.title])]
11613
11615
  });
11614
11616
  });
11615
11617
  return {};
@@ -11685,7 +11687,7 @@
11685
11687
  "class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value, props.class],
11686
11688
  "style": [backgroundColorStyles.value, props.style]
11687
11689
  }, {
11688
- default: () => [hasPrepend && vue.createVNode("div", {
11690
+ default: () => [hasPrepend && vue.createVNode("li", {
11689
11691
  "key": "prepend",
11690
11692
  "class": "v-breadcrumbs__prepend"
11691
11693
  }, [!slots.prepend ? vue.createVNode(VIcon, {
@@ -13297,6 +13299,9 @@
13297
13299
  emit
13298
13300
  } = _ref;
13299
13301
  const slider = vue.inject(VSliderSymbol);
13302
+ const {
13303
+ rtlClasses
13304
+ } = useRtl();
13300
13305
  if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');
13301
13306
  const {
13302
13307
  thumbColor,
@@ -13364,7 +13369,7 @@
13364
13369
  "class": ['v-slider-thumb', {
13365
13370
  'v-slider-thumb--focused': props.focused,
13366
13371
  'v-slider-thumb--pressed': props.focused && mousePressed.value
13367
- }, props.class],
13372
+ }, props.class, rtlClasses.value],
13368
13373
  "style": [{
13369
13374
  '--v-slider-thumb-position': positionPercentage,
13370
13375
  '--v-slider-thumb-size': convertToUnit(thumbSize.value)
@@ -15347,7 +15352,9 @@
15347
15352
  useRender(() => vue.createVNode(props.tag, {
15348
15353
  "ref": resizeRef,
15349
15354
  "class": ['v-footer', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value, props.class],
15350
- "style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : undefined, props.style]
15355
+ "style": [backgroundColorStyles.value, props.app ? layoutItemStyles.value : {
15356
+ height: convertToUnit(props.height)
15357
+ }, props.style]
15351
15358
  }, slots));
15352
15359
  return {};
15353
15360
  }
@@ -16310,7 +16317,7 @@
16310
16317
  default: 56
16311
16318
  },
16312
16319
  scrim: {
16313
- type: [String, Boolean],
16320
+ type: [Boolean, String],
16314
16321
  default: true
16315
16322
  },
16316
16323
  image: String,
@@ -19104,12 +19111,14 @@
19104
19111
  const direction = scrollTop < lastScrollTop ? UP : DOWN;
19105
19112
  const midPointIndex = calculateMidPointIndex(scrollTop + height / 2);
19106
19113
  const buffer = Math.round(visibleItems.value / 3);
19107
- if (direction === UP && midPointIndex <= first.value + buffer * 2 - 1) {
19108
- first.value = clamp(midPointIndex - buffer, 0, items.value.length);
19109
- } else if (direction === DOWN && midPointIndex >= first.value + buffer * 2 - 1) {
19110
- first.value = clamp(midPointIndex - buffer, 0, items.value.length - visibleItems.value);
19114
+ const firstIndex = midPointIndex - buffer;
19115
+ const lastIndex = first.value + buffer * 2 - 1;
19116
+ if (direction === UP && midPointIndex <= lastIndex) {
19117
+ first.value = clamp(firstIndex, 0, items.value.length);
19118
+ } else if (direction === DOWN && midPointIndex >= lastIndex) {
19119
+ first.value = clamp(firstIndex, 0, items.value.length - visibleItems.value);
19111
19120
  }
19112
- lastScrollTop = containerRef.value.scrollTop;
19121
+ lastScrollTop = scrollTop;
19113
19122
  }
19114
19123
  function scrollToIndex(index) {
19115
19124
  if (!containerRef.value) return;
@@ -20008,7 +20017,7 @@
20008
20017
  date
20009
20018
  };
20010
20019
  }
20011
- const version$1 = "3.3.4";
20020
+ const version$1 = "3.3.6";
20012
20021
  createVuetify$1.version = version$1;
20013
20022
 
20014
20023
  // Vue's inject() can only be used in setup
@@ -20033,7 +20042,7 @@
20033
20042
  ...options
20034
20043
  });
20035
20044
  };
20036
- const version = "3.3.4";
20045
+ const version = "3.3.6";
20037
20046
  createVuetify.version = version;
20038
20047
 
20039
20048
  exports.components = components;