vuetify 3.3.8 → 3.3.10

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 +2 -2
  2. package/dist/json/importMap.json +44 -44
  3. package/dist/json/web-types.json +152 -152
  4. package/dist/vuetify-labs.css +836 -887
  5. package/dist/vuetify-labs.d.ts +67 -65
  6. package/dist/vuetify-labs.esm.js +123 -26
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +123 -26
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +219 -276
  11. package/dist/vuetify.d.ts +13 -12
  12. package/dist/vuetify.esm.js +66 -13
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +66 -13
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +48 -39
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAutocomplete/VAutocomplete.css +2 -2
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs +9 -0
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.sass +2 -2
  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 +7 -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 +4 -8
  33. package/lib/components/VField/_variables.scss +3 -3
  34. package/lib/components/VFileInput/VFileInput.mjs +1 -0
  35. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  36. package/lib/components/VList/VListItem.css +3 -0
  37. package/lib/components/VList/VListItem.sass +10 -3
  38. package/lib/components/VNavigationDrawer/sticky.mjs +1 -1
  39. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  40. package/lib/components/VOverlay/locationStrategies.mjs +6 -0
  41. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  42. package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -2
  43. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  44. package/lib/components/VSelect/VSelect.css +1 -0
  45. package/lib/components/VSelect/VSelect.mjs +13 -5
  46. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  47. package/lib/components/VSelect/VSelect.sass +1 -0
  48. package/lib/components/VTable/VTable.css +8 -4
  49. package/lib/components/VTable/VTable.sass +4 -4
  50. package/lib/components/VTextField/VTextField.css +1 -1
  51. package/lib/components/VTextarea/VTextarea.css +0 -3
  52. package/lib/components/VTextarea/VTextarea.sass +0 -4
  53. package/lib/composables/defaults.mjs.map +1 -1
  54. package/lib/composables/forwardRefs.mjs +14 -0
  55. package/lib/composables/forwardRefs.mjs.map +1 -1
  56. package/lib/entry-bundler.mjs +1 -1
  57. package/lib/entry-bundler.mjs.map +1 -1
  58. package/lib/framework.mjs +1 -1
  59. package/lib/framework.mjs.map +1 -1
  60. package/lib/index.d.mts +13 -12
  61. package/lib/labs/VDataIterator/index.d.mts +1 -0
  62. package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
  63. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  64. package/lib/labs/VDataTable/composables/items.mjs +1 -0
  65. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  66. package/lib/labs/VDataTable/index.d.mts +47 -46
  67. package/lib/labs/VDataTable/types.mjs.map +1 -1
  68. package/lib/labs/VDateInput/composables.mjs +1 -1
  69. package/lib/labs/VDateInput/composables.mjs.map +1 -1
  70. package/lib/labs/VDateInput/index.d.mts +16 -16
  71. package/lib/labs/VDatePicker/VDatePicker.mjs +8 -7
  72. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  73. package/lib/labs/VDatePicker/VDatePickerControls.css +7 -0
  74. package/lib/labs/VDatePicker/VDatePickerControls.mjs +1 -0
  75. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
  76. package/lib/labs/VDatePicker/VDatePickerControls.sass +8 -0
  77. package/lib/labs/VDatePicker/composables.mjs +15 -2
  78. package/lib/labs/VDatePicker/composables.mjs.map +1 -1
  79. package/lib/labs/VDatePicker/index.d.mts +18 -18
  80. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs +2 -4
  81. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs.map +1 -1
  82. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +4 -5
  83. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -1
  84. package/lib/labs/VDateRangePicker/index.d.mts +59 -51
  85. package/lib/labs/VPicker/VPicker.css +0 -1
  86. package/lib/labs/VPicker/VPicker.sass +0 -1
  87. package/lib/labs/components.d.mts +65 -64
  88. package/lib/labs/date/adapters/vuetify.mjs +14 -1
  89. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  90. package/lib/labs/date/date.mjs +3 -3
  91. package/lib/labs/date/date.mjs.map +1 -1
  92. package/lib/labs/date/index.d.mts +25 -1
  93. package/package.json +2 -2
  94. package/lib/components/VField/_mixins.sass +0 -7
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.3.8
2
+ * Vuetify v3.3.10
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -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) {
@@ -9712,6 +9718,20 @@
9712
9718
  }
9713
9719
  return false;
9714
9720
  },
9721
+ set(target, key, value) {
9722
+ if (Reflect.has(target, key)) {
9723
+ return Reflect.set(target, key, value);
9724
+ }
9725
+
9726
+ // Skip internal properties
9727
+ if (typeof key === 'symbol' || key.startsWith('__')) return false;
9728
+ for (const ref of refs) {
9729
+ if (ref.value && Reflect.has(ref.value, key)) {
9730
+ return Reflect.set(ref.value, key, value);
9731
+ }
9732
+ }
9733
+ return false;
9734
+ },
9715
9735
  getOwnPropertyDescriptor(target, key) {
9716
9736
  const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
9717
9737
  if (descriptor) return descriptor;
@@ -10118,7 +10138,7 @@
10118
10138
  }, null), vue.createVNode(LoaderSlot, {
10119
10139
  "name": "v-field",
10120
10140
  "active": !!props.loading,
10121
- "color": props.error ? 'error' : props.color
10141
+ "color": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color
10122
10142
  }, {
10123
10143
  default: slots.loader
10124
10144
  }), hasPrepend && vue.createVNode("div", {
@@ -10802,7 +10822,7 @@
10802
10822
  menu.value = !menu.value;
10803
10823
  }
10804
10824
  function onKeydown(e) {
10805
- if (props.readonly || form?.isReadonly.value) return;
10825
+ if (!e.key || props.readonly || form?.isReadonly.value) return;
10806
10826
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
10807
10827
  e.preventDefault();
10808
10828
  }
@@ -10866,6 +10886,16 @@
10866
10886
  function onFocusin(e) {
10867
10887
  isFocused.value = true;
10868
10888
  }
10889
+ function onModelUpdate(v) {
10890
+ if (v == null) model.value = [];else if (vTextFieldRef.value?.matches(':autofill') || vTextFieldRef.value?.matches(':-webkit-autofill')) {
10891
+ const item = items.value.find(item => item.title === v);
10892
+ if (item) {
10893
+ select(item);
10894
+ }
10895
+ } else if (vTextFieldRef.value) {
10896
+ vTextFieldRef.value.value = '';
10897
+ }
10898
+ }
10869
10899
  useRender(() => {
10870
10900
  const hasChips = !!(props.chips || slots.chip);
10871
10901
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
@@ -10876,9 +10906,7 @@
10876
10906
  "ref": vTextFieldRef
10877
10907
  }, textFieldProps, {
10878
10908
  "modelValue": model.value.map(v => v.props.value).join(', '),
10879
- "onUpdate:modelValue": v => {
10880
- if (v == null) model.value = [];
10881
- },
10909
+ "onUpdate:modelValue": onModelUpdate,
10882
10910
  "focused": isFocused.value,
10883
10911
  "onUpdate:focused": $event => isFocused.value = $event,
10884
10912
  "validationValue": model.externalValue,
@@ -10891,7 +10919,7 @@
10891
10919
  'v-select--selection-slot': !!slots.selection
10892
10920
  }, props.class],
10893
10921
  "style": props.style,
10894
- "readonly": true,
10922
+ "inputmode": "none",
10895
10923
  "placeholder": placeholder,
10896
10924
  "onClick:clear": onClear,
10897
10925
  "onMousedown:control": onMousedownControl,
@@ -11313,6 +11341,14 @@
11313
11341
  function onInput(e) {
11314
11342
  search.value = e.target.value;
11315
11343
  }
11344
+ function onChange(e) {
11345
+ if (vTextFieldRef.value?.matches(':autofill') || vTextFieldRef.value?.matches(':-webkit-autofill')) {
11346
+ const item = items.value.find(item => item.title === e.target.value);
11347
+ if (item) {
11348
+ select(item);
11349
+ }
11350
+ }
11351
+ }
11316
11352
  function onAfterLeave() {
11317
11353
  if (isFocused.value) {
11318
11354
  isPristine.value = true;
@@ -11392,6 +11428,7 @@
11392
11428
  "validationValue": model.externalValue,
11393
11429
  "dirty": isDirty,
11394
11430
  "onInput": onInput,
11431
+ "onChange": onChange,
11395
11432
  "class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
11396
11433
  'v-autocomplete--active-menu': menu.value,
11397
11434
  'v-autocomplete--chips': !!props.chips,
@@ -15609,6 +15646,7 @@
15609
15646
  "name": props.name,
15610
15647
  "onClick": e => {
15611
15648
  e.stopPropagation();
15649
+ if (isReadonly.value) e.preventDefault();
15612
15650
  onFocus();
15613
15651
  },
15614
15652
  "onChange": e => {
@@ -16381,7 +16419,7 @@
16381
16419
  });
16382
16420
  });
16383
16421
  vue.onBeforeUnmount(() => {
16384
- document.removeEventListener('scroll', onScroll);
16422
+ window.removeEventListener('scroll', onScroll);
16385
16423
  });
16386
16424
  let lastScrollTop = 0;
16387
16425
  function onScroll() {
@@ -17484,8 +17522,10 @@
17484
17522
  value
17485
17523
  } = _ref2;
17486
17524
  const newValue = activeThumbRef.value === startThumbRef.value?.$el ? [value, model.value[1]] : [model.value[0], value];
17487
- model.value = newValue;
17488
- emit('end', newValue);
17525
+ if (!props.strict && newValue[0] < newValue[1]) {
17526
+ model.value = newValue;
17527
+ }
17528
+ emit('end', model.value);
17489
17529
  },
17490
17530
  onSliderMove: _ref3 => {
17491
17531
  let {
@@ -19827,11 +19867,24 @@
19827
19867
  function endOfMonth(date) {
19828
19868
  return new Date(date.getFullYear(), date.getMonth() + 1, 0);
19829
19869
  }
19870
+ function formatYyyyMmDd(value) {
19871
+ const formattedValue = value.split('-').map(d => d.padStart(2, '0')).join('-');
19872
+ const offsetMin = new Date().getTimezoneOffset() / -60;
19873
+ const offsetSign = offsetMin < 0 ? '-' : '+';
19874
+ const offsetValue = Math.abs(offsetMin).toString().padStart(2, '0');
19875
+ return `${formattedValue}T00:00:00.000${offsetSign}${offsetValue}:00`;
19876
+ }
19877
+ const _YYYMMDD = /([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))/;
19830
19878
  function date(value) {
19831
19879
  if (value == null) return new Date();
19832
19880
  if (value instanceof Date) return value;
19833
19881
  if (typeof value === 'string') {
19834
- const parsed = Date.parse(value);
19882
+ let parsed;
19883
+ if (_YYYMMDD.test(value)) {
19884
+ parsed = Date.parse(formatYyyyMmDd(value));
19885
+ } else {
19886
+ parsed = Date.parse(value);
19887
+ }
19835
19888
  if (!isNaN(parsed)) return new Date(parsed);
19836
19889
  }
19837
19890
  return null;
@@ -20162,7 +20215,7 @@
20162
20215
  date
20163
20216
  };
20164
20217
  }
20165
- const version$1 = "3.3.8";
20218
+ const version$1 = "3.3.10";
20166
20219
  createVuetify$1.version = version$1;
20167
20220
 
20168
20221
  // Vue's inject() can only be used in setup
@@ -20187,7 +20240,7 @@
20187
20240
  ...options
20188
20241
  });
20189
20242
  };
20190
- const version = "3.3.8";
20243
+ const version = "3.3.10";
20191
20244
  createVuetify.version = version;
20192
20245
 
20193
20246
  exports.components = components;