vuetify 3.3.7 → 3.3.9

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 (83) hide show
  1. package/dist/json/attributes.json +3 -3
  2. package/dist/json/importMap.json +76 -76
  3. package/dist/json/web-types.json +153 -153
  4. package/dist/vuetify-labs.css +471 -523
  5. package/dist/vuetify-labs.d.ts +65 -64
  6. package/dist/vuetify-labs.esm.js +149 -82
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +148 -81
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +49 -107
  11. package/dist/vuetify.d.ts +23 -23
  12. package/dist/vuetify.esm.js +92 -69
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +91 -68
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +116 -112
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAutocomplete/VAutocomplete.css +2 -2
  20. package/lib/components/VAutocomplete/VAutocomplete.sass +2 -2
  21. package/lib/components/VCarousel/VCarousel.mjs +58 -57
  22. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  23. package/lib/components/VColorPicker/VColorPickerEdit.css +1 -0
  24. package/lib/components/VColorPicker/VColorPickerEdit.sass +1 -0
  25. package/lib/components/VColorPicker/VColorPickerPreview.css +1 -1
  26. package/lib/components/VColorPicker/_variables.scss +2 -1
  27. package/lib/components/VCombobox/VCombobox.css +2 -2
  28. package/lib/components/VCombobox/VCombobox.sass +2 -2
  29. package/lib/components/VField/VField.css +8 -70
  30. package/lib/components/VField/VField.mjs +1 -1
  31. package/lib/components/VField/VField.mjs.map +1 -1
  32. package/lib/components/VField/VField.sass +5 -8
  33. package/lib/components/VField/_variables.scss +3 -3
  34. package/lib/components/VList/VListItem.css +3 -0
  35. package/lib/components/VList/VListItem.sass +10 -3
  36. package/lib/components/VOverlay/VOverlay.mjs +2 -2
  37. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  38. package/lib/components/VOverlay/locationStrategies.mjs +6 -0
  39. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  40. package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -2
  41. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  42. package/lib/components/VTextField/VTextField.css +1 -1
  43. package/lib/composables/filter.mjs +3 -2
  44. package/lib/composables/filter.mjs.map +1 -1
  45. package/lib/composables/theme.mjs +2 -2
  46. package/lib/composables/theme.mjs.map +1 -1
  47. package/lib/entry-bundler.mjs +1 -1
  48. package/lib/framework.mjs +1 -1
  49. package/lib/index.d.mts +23 -23
  50. package/lib/labs/VDataIterator/index.d.mts +1 -0
  51. package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
  52. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  53. package/lib/labs/VDataTable/composables/items.mjs +1 -0
  54. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  55. package/lib/labs/VDataTable/index.d.mts +47 -46
  56. package/lib/labs/VDataTable/types.mjs.map +1 -1
  57. package/lib/labs/VDateInput/composables.mjs +1 -1
  58. package/lib/labs/VDateInput/composables.mjs.map +1 -1
  59. package/lib/labs/VDateInput/index.d.mts +16 -16
  60. package/lib/labs/VDatePicker/VDatePicker.mjs +8 -7
  61. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  62. package/lib/labs/VDatePicker/VDatePickerControls.css +7 -0
  63. package/lib/labs/VDatePicker/VDatePickerControls.mjs +1 -0
  64. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
  65. package/lib/labs/VDatePicker/VDatePickerControls.sass +8 -0
  66. package/lib/labs/VDatePicker/composables.mjs +15 -2
  67. package/lib/labs/VDatePicker/composables.mjs.map +1 -1
  68. package/lib/labs/VDatePicker/index.d.mts +18 -18
  69. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs +2 -4
  70. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs.map +1 -1
  71. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +4 -5
  72. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -1
  73. package/lib/labs/VDateRangePicker/index.d.mts +59 -51
  74. package/lib/labs/VPicker/VPicker.css +0 -1
  75. package/lib/labs/VPicker/VPicker.sass +0 -1
  76. package/lib/labs/components.d.mts +65 -64
  77. package/lib/labs/date/adapters/vuetify.mjs +14 -1
  78. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  79. package/lib/labs/date/date.mjs +3 -3
  80. package/lib/labs/date/date.mjs.map +1 -1
  81. package/lib/labs/date/index.d.mts +25 -1
  82. package/package.json +2 -2
  83. package/lib/components/VField/_mixins.sass +0 -7
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.3.7
2
+ * Vuetify v3.3.9
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -2158,7 +2158,7 @@
2158
2158
 
2159
2159
  // Composables
2160
2160
  function createTheme(options) {
2161
- const parsedOptions = vue.reactive(parseThemeOptions(options));
2161
+ const parsedOptions = parseThemeOptions(options);
2162
2162
  const name = vue.ref(parsedOptions.defaultTheme);
2163
2163
  const themes = vue.ref(parsedOptions.themes);
2164
2164
  const computedThemes = vue.computed(() => {
@@ -8331,6 +8331,12 @@
8331
8331
  // el.style.removeProperty('max-width')
8332
8332
  // el.style.removeProperty('max-height')
8333
8333
 
8334
+ if (isRtl) {
8335
+ el.style.removeProperty('left');
8336
+ } else {
8337
+ el.style.removeProperty('right');
8338
+ }
8339
+
8334
8340
  /* eslint-disable-next-line sonarjs/prefer-immediate-return */
8335
8341
  const contentBox = nullifyTransforms(el);
8336
8342
  if (isRtl) {
@@ -9612,11 +9618,11 @@
9612
9618
  props: vue.mergeProps({
9613
9619
  ref: activatorRef
9614
9620
  }, activatorEvents.value, props.activatorProps)
9615
- }), isMounted.value && vue.createVNode(vue.Teleport, {
9621
+ }), isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
9616
9622
  "disabled": !teleportTarget.value,
9617
9623
  "to": teleportTarget.value
9618
9624
  }, {
9619
- default: () => [hasContent.value && vue.createVNode("div", vue.mergeProps({
9625
+ default: () => [vue.createVNode("div", vue.mergeProps({
9620
9626
  "class": ['v-overlay', {
9621
9627
  'v-overlay--absolute': props.absolute || props.contained,
9622
9628
  'v-overlay--active': isActive.value,
@@ -10118,7 +10124,7 @@
10118
10124
  }, null), vue.createVNode(LoaderSlot, {
10119
10125
  "name": "v-field",
10120
10126
  "active": !!props.loading,
10121
- "color": props.error ? 'error' : props.color
10127
+ "color": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color
10122
10128
  }, {
10123
10129
  default: slots.loader
10124
10130
  }), hasPrepend && vue.createVNode("div", {
@@ -11101,7 +11107,8 @@
11101
11107
  const filteredMatches = vue.ref(new Map());
11102
11108
  const transformedItems = vue.computed(() => options?.transform ? vue.unref(items).map(options?.transform) : vue.unref(items));
11103
11109
  vue.watchEffect(() => {
11104
- const strQuery = typeof vue.toValue(query) !== 'string' && typeof vue.toValue(query) !== 'number' ? '' : String(vue.toValue(query));
11110
+ const _query = typeof query === 'function' ? query() : vue.unref(query);
11111
+ const strQuery = typeof _query !== 'string' && typeof _query !== 'number' ? '' : String(_query);
11105
11112
  const results = filterItems(transformedItems.value, strQuery, {
11106
11113
  customKeyFilter: props.customKeyFilter,
11107
11114
  default: props.customFilter,
@@ -12674,64 +12681,65 @@
12674
12681
  window.clearTimeout(slideTimeout);
12675
12682
  window.requestAnimationFrame(startTimeout);
12676
12683
  }
12677
- useRender(() => vue.createVNode(VWindow, {
12678
- "ref": windowRef,
12679
- "modelValue": model.value,
12680
- "onUpdate:modelValue": $event => model.value = $event,
12681
- "class": ['v-carousel', {
12682
- 'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
12683
- 'v-carousel--vertical-delimiters': props.verticalDelimiters
12684
- }, props.class],
12685
- "style": [{
12686
- height: convertToUnit(props.height)
12687
- }, props.style],
12688
- "continuous": true,
12689
- "mandatory": "force",
12690
- "showArrows": props.showArrows
12691
- }, {
12692
- default: slots.default,
12693
- additional: _ref2 => {
12694
- let {
12695
- group
12696
- } = _ref2;
12697
- return vue.createVNode(vue.Fragment, null, [!props.hideDelimiters && vue.createVNode("div", {
12698
- "class": "v-carousel__controls",
12699
- "style": {
12700
- left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',
12701
- right: props.verticalDelimiters === 'right' ? 0 : 'auto'
12702
- }
12703
- }, [group.items.value.length > 0 && vue.createVNode(VDefaultsProvider, {
12704
- "defaults": {
12705
- VBtn: {
12706
- color: props.color,
12707
- icon: props.delimiterIcon,
12708
- size: 'x-small',
12709
- variant: 'text'
12684
+ useRender(() => {
12685
+ const [windowProps] = VWindow.filterProps(props);
12686
+ return vue.createVNode(VWindow, vue.mergeProps({
12687
+ "ref": windowRef
12688
+ }, windowProps, {
12689
+ "modelValue": model.value,
12690
+ "onUpdate:modelValue": $event => model.value = $event,
12691
+ "class": ['v-carousel', {
12692
+ 'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,
12693
+ 'v-carousel--vertical-delimiters': props.verticalDelimiters
12694
+ }, props.class],
12695
+ "style": [{
12696
+ height: convertToUnit(props.height)
12697
+ }, props.style]
12698
+ }), {
12699
+ default: slots.default,
12700
+ additional: _ref2 => {
12701
+ let {
12702
+ group
12703
+ } = _ref2;
12704
+ return vue.createVNode(vue.Fragment, null, [!props.hideDelimiters && vue.createVNode("div", {
12705
+ "class": "v-carousel__controls",
12706
+ "style": {
12707
+ left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',
12708
+ right: props.verticalDelimiters === 'right' ? 0 : 'auto'
12710
12709
  }
12711
- },
12712
- "scoped": true
12713
- }, {
12714
- default: () => [group.items.value.map((item, index) => {
12715
- const props = {
12716
- id: `carousel-item-${item.id}`,
12717
- 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),
12718
- class: [group.isSelected(item.id) && 'v-btn--active'],
12719
- onClick: () => group.select(item.id, true)
12720
- };
12721
- return slots.item ? slots.item({
12722
- props,
12723
- item
12724
- }) : vue.createVNode(VBtn, vue.mergeProps(item, props), null);
12725
- })]
12726
- })]), props.progress && vue.createVNode(VProgressLinear, {
12727
- "class": "v-carousel__progress",
12728
- "color": typeof props.progress === 'string' ? props.progress : undefined,
12729
- "modelValue": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100
12730
- }, null)]);
12731
- },
12732
- prev: slots.prev,
12733
- next: slots.next
12734
- }));
12710
+ }, [group.items.value.length > 0 && vue.createVNode(VDefaultsProvider, {
12711
+ "defaults": {
12712
+ VBtn: {
12713
+ color: props.color,
12714
+ icon: props.delimiterIcon,
12715
+ size: 'x-small',
12716
+ variant: 'text'
12717
+ }
12718
+ },
12719
+ "scoped": true
12720
+ }, {
12721
+ default: () => [group.items.value.map((item, index) => {
12722
+ const props = {
12723
+ id: `carousel-item-${item.id}`,
12724
+ 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),
12725
+ class: [group.isSelected(item.id) && 'v-btn--active'],
12726
+ onClick: () => group.select(item.id, true)
12727
+ };
12728
+ return slots.item ? slots.item({
12729
+ props,
12730
+ item
12731
+ }) : vue.createVNode(VBtn, vue.mergeProps(item, props), null);
12732
+ })]
12733
+ })]), props.progress && vue.createVNode(VProgressLinear, {
12734
+ "class": "v-carousel__progress",
12735
+ "color": typeof props.progress === 'string' ? props.progress : undefined,
12736
+ "modelValue": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100
12737
+ }, null)]);
12738
+ },
12739
+ prev: slots.prev,
12740
+ next: slots.next
12741
+ });
12742
+ });
12735
12743
  return {};
12736
12744
  }
12737
12745
  });
@@ -17482,8 +17490,10 @@
17482
17490
  value
17483
17491
  } = _ref2;
17484
17492
  const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];
17485
- model.value = newValue;
17486
- emit('end', newValue);
17493
+ if (!props.strict && newValue[0] < newValue[1]) {
17494
+ model.value = newValue;
17495
+ }
17496
+ emit('end', model.value);
17487
17497
  },
17488
17498
  onSliderMove: _ref3 => {
17489
17499
  let {
@@ -19825,11 +19835,24 @@
19825
19835
  function endOfMonth(date) {
19826
19836
  return new Date(date.getFullYear(), date.getMonth() + 1, 0);
19827
19837
  }
19838
+ function formatYyyyMmDd(value) {
19839
+ const formattedValue = value.split('-').map(d => d.padStart(2, '0')).join('-');
19840
+ const offsetMin = new Date().getTimezoneOffset() / -60;
19841
+ const offsetSign = offsetMin < 0 ? '-' : '+';
19842
+ const offsetValue = Math.abs(offsetMin).toString().padStart(2, '0');
19843
+ return `${formattedValue}T00:00:00.000${offsetSign}${offsetValue}:00`;
19844
+ }
19845
+ const _YYYMMDD = /([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))/;
19828
19846
  function date(value) {
19829
19847
  if (value == null) return new Date();
19830
19848
  if (value instanceof Date) return value;
19831
19849
  if (typeof value === 'string') {
19832
- const parsed = Date.parse(value);
19850
+ let parsed;
19851
+ if (_YYYMMDD.test(value)) {
19852
+ parsed = Date.parse(formatYyyyMmDd(value));
19853
+ } else {
19854
+ parsed = Date.parse(value);
19855
+ }
19833
19856
  if (!isNaN(parsed)) return new Date(parsed);
19834
19857
  }
19835
19858
  return null;
@@ -20160,7 +20183,7 @@
20160
20183
  date
20161
20184
  };
20162
20185
  }
20163
- const version$1 = "3.3.7";
20186
+ const version$1 = "3.3.9";
20164
20187
  createVuetify$1.version = version$1;
20165
20188
 
20166
20189
  // Vue's inject() can only be used in setup
@@ -20185,7 +20208,7 @@
20185
20208
  ...options
20186
20209
  });
20187
20210
  };
20188
- const version = "3.3.7";
20211
+ const version = "3.3.9";
20189
20212
  createVuetify.version = version;
20190
20213
 
20191
20214
  exports.components = components;