vuetify 3.8.3 → 3.8.4

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 (95) hide show
  1. package/dist/json/attributes.json +3888 -3884
  2. package/dist/json/importMap-labs.json +12 -12
  3. package/dist/json/importMap.json +142 -142
  4. package/dist/json/tags.json +1 -0
  5. package/dist/json/web-types.json +6709 -6699
  6. package/dist/vuetify-labs.cjs +107 -71
  7. package/dist/vuetify-labs.css +5358 -5358
  8. package/dist/vuetify-labs.d.ts +4100 -1172
  9. package/dist/vuetify-labs.esm.js +107 -71
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +107 -71
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +56 -29
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3018 -3018
  16. package/dist/vuetify.d.ts +4107 -1199
  17. package/dist/vuetify.esm.js +56 -29
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +56 -29
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +30 -27
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.d.ts +795 -77
  25. package/lib/components/VAutocomplete/VAutocomplete.js +5 -0
  26. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  27. package/lib/components/VBadge/VBadge.d.ts +22 -46
  28. package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +6 -6
  29. package/lib/components/VBottomSheet/VBottomSheet.d.ts +1434 -80
  30. package/lib/components/VCombobox/VCombobox.d.ts +795 -77
  31. package/lib/components/VCounter/VCounter.d.ts +22 -46
  32. package/lib/components/VDataIterator/VDataIterator.d.ts +22 -46
  33. package/lib/components/VDataTable/VDataTable.d.ts +110 -110
  34. package/lib/components/VDataTable/VDataTableHeaders.js +1 -2
  35. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  36. package/lib/components/VDataTable/VDataTableServer.d.ts +62 -189
  37. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  38. package/lib/components/VDataTable/VDataTableVirtual.d.ts +62 -189
  39. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  40. package/lib/components/VDataTable/composables/headers.d.ts +75 -75
  41. package/lib/components/VDataTable/composables/select.js +1 -1
  42. package/lib/components/VDataTable/composables/select.js.map +1 -1
  43. package/lib/components/VDatePicker/VDatePicker.d.ts +3 -3
  44. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +6 -6
  45. package/lib/components/VDialog/VDialog.d.ts +1048 -146
  46. package/lib/components/VDialog/VDialog.js +1 -1
  47. package/lib/components/VDialog/VDialog.js.map +1 -1
  48. package/lib/components/VFab/VFab.d.ts +22 -46
  49. package/lib/components/VFileInput/VFileInput.css +4 -0
  50. package/lib/components/VFileInput/VFileInput.js +21 -3
  51. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  52. package/lib/components/VFileInput/VFileInput.sass +4 -0
  53. package/lib/components/VImg/VImg.d.ts +22 -49
  54. package/lib/components/VLazy/VLazy.d.ts +22 -46
  55. package/lib/components/VMenu/VMenu.d.ts +1048 -146
  56. package/lib/components/VMenu/VMenu.js.map +1 -1
  57. package/lib/components/VMessages/VMessages.d.ts +22 -46
  58. package/lib/components/VNumberInput/VNumberInput.d.ts +3 -3
  59. package/lib/components/VOverlay/VOverlay.d.ts +22 -49
  60. package/lib/components/VOverlay/locationStrategies.js +1 -1
  61. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  62. package/lib/components/VSelect/VSelect.d.ts +1235 -93
  63. package/lib/components/VSnackbar/VSnackbar.d.ts +58 -109
  64. package/lib/components/VSnackbarQueue/VSnackbarQueue.d.ts +22 -46
  65. package/lib/components/VSpeedDial/VSpeedDial.d.ts +1434 -80
  66. package/lib/components/VTable/VTable.css +2 -6
  67. package/lib/components/VTable/VTable.sass +4 -22
  68. package/lib/components/VTabs/VTabs.d.ts +6 -6
  69. package/lib/components/VTextField/VTextField.js +5 -3
  70. package/lib/components/VTextField/VTextField.js.map +1 -1
  71. package/lib/components/VTooltip/VTooltip.d.ts +58 -109
  72. package/lib/components/VTooltip/VTooltip.js +2 -2
  73. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  74. package/lib/components/transitions/dialog-transition.js +3 -3
  75. package/lib/components/transitions/dialog-transition.js.map +1 -1
  76. package/lib/composables/transition.d.ts +10 -20
  77. package/lib/composables/transition.js +15 -12
  78. package/lib/composables/transition.js.map +1 -1
  79. package/lib/entry-bundler.d.ts +6 -6
  80. package/lib/entry-bundler.js +1 -1
  81. package/lib/framework.d.ts +99 -138
  82. package/lib/framework.js +1 -1
  83. package/lib/labs/VCalendar/VCalendar.d.ts +3 -3
  84. package/lib/labs/VCalendar/VCalendarDay.d.ts +3 -3
  85. package/lib/labs/VCalendar/VCalendarInterval.d.ts +3 -3
  86. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +3 -3
  87. package/lib/labs/VDateInput/VDateInput.d.ts +50 -13
  88. package/lib/labs/VDateInput/VDateInput.js +30 -9
  89. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  90. package/lib/labs/VFileUpload/VFileUpload.js +19 -31
  91. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  92. package/lib/labs/VTimePicker/VTimePickerClock.js +2 -2
  93. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  94. package/lib/util/helpers.js.map +1 -1
  95. package/package.json +7 -7
package/dist/vuetify.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.3
2
+ * Vuetify v3.8.4
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -3413,10 +3413,10 @@
3413
3413
  async onLeave(el, done) {
3414
3414
  await new Promise(resolve => requestAnimationFrame(resolve));
3415
3415
  let dimensions;
3416
- if (!Array.isArray(props.target) && !props.target.offsetParent && saved.has(el)) {
3417
- dimensions = saved.get(el);
3418
- } else {
3416
+ if (!saved.has(el) || Array.isArray(props.target) || props.target.offsetParent || props.target.getClientRects().length) {
3419
3417
  dimensions = getDimensions(props.target, el);
3418
+ } else {
3419
+ dimensions = saved.get(el);
3420
3420
  }
3421
3421
  const {
3422
3422
  x,
@@ -3741,7 +3741,7 @@
3741
3741
 
3742
3742
  const makeTransitionProps = propsFactory({
3743
3743
  transition: {
3744
- type: [Boolean, String, Object],
3744
+ type: null,
3745
3745
  default: 'fade-transition',
3746
3746
  validator: val => val !== true
3747
3747
  }
@@ -3759,16 +3759,19 @@
3759
3759
  const {
3760
3760
  component = group ? vue.TransitionGroup : vue.Transition,
3761
3761
  ...customProps
3762
- } = typeof transition === 'object' ? transition : {};
3763
- return vue.h(component, vue.mergeProps(typeof transition === 'string' ? {
3764
- name: disabled ? '' : transition
3765
- } : customProps, typeof transition === 'string' ? {} : Object.fromEntries(Object.entries({
3766
- disabled,
3767
- group
3768
- }).filter(_ref2 => {
3769
- let [_, v] = _ref2;
3770
- return v !== undefined;
3771
- })), rest), slots);
3762
+ } = isObject(transition) ? transition : {};
3763
+ let transitionProps;
3764
+ if (isObject(transition)) {
3765
+ transitionProps = vue.mergeProps(customProps, JSON.parse(JSON.stringify({
3766
+ disabled,
3767
+ group
3768
+ })), rest);
3769
+ } else {
3770
+ transitionProps = vue.mergeProps({
3771
+ name: disabled || !transition ? '' : transition
3772
+ }, rest);
3773
+ }
3774
+ return vue.h(component, transitionProps, slots);
3772
3775
  };
3773
3776
 
3774
3777
  // Utilities
@@ -10443,7 +10446,7 @@
10443
10446
  observe = false;
10444
10447
  requestAnimationFrame(() => observe = true);
10445
10448
  if (!data.target.value || !data.contentEl.value) return;
10446
- if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
10449
+ if (Array.isArray(data.target.value) || data.target.value.offsetParent || data.target.value.getClientRects().length) {
10447
10450
  targetBox = getTargetBox(data.target.value);
10448
10451
  } // Otherwise target element is hidden, use last known value
10449
10452
 
@@ -12363,11 +12366,12 @@
12363
12366
  onFocus();
12364
12367
  emit('click:control', e);
12365
12368
  }
12366
- function onClear(e) {
12369
+ function onClear(e, reset) {
12367
12370
  e.stopPropagation();
12368
12371
  onFocus();
12369
12372
  vue.nextTick(() => {
12370
12373
  model.value = null;
12374
+ reset();
12371
12375
  callEvent(props['onClick:clear'], e);
12372
12376
  });
12373
12377
  }
@@ -12412,13 +12416,14 @@
12412
12416
  isDisabled,
12413
12417
  isDirty,
12414
12418
  isReadonly,
12415
- isValid
12419
+ isValid,
12420
+ reset
12416
12421
  } = _ref2;
12417
12422
  return vue.createVNode(VField, vue.mergeProps({
12418
12423
  "ref": vFieldRef,
12419
12424
  "onMousedown": onControlMousedown,
12420
12425
  "onClick": onControlClick,
12421
- "onClick:clear": onClear,
12426
+ "onClick:clear": e => onClear(e, reset),
12422
12427
  "onClick:prependInner": props['onClick:prependInner'],
12423
12428
  "onClick:appendInner": props['onClick:appendInner'],
12424
12429
  "role": props.role
@@ -13779,6 +13784,11 @@
13779
13784
  menu.value = true;
13780
13785
  }
13781
13786
  });
13787
+ vue.watch(model, value => {
13788
+ if (!props.multiple && !hasSelectionSlot.value) {
13789
+ search.value = value[0]?.title ?? '';
13790
+ }
13791
+ });
13782
13792
  useRender(() => {
13783
13793
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
13784
13794
  const isDirty = model.value.length > 0;
@@ -14398,7 +14408,7 @@
14398
14408
  }
14399
14409
  function onAfterEnter() {
14400
14410
  emit('afterEnter');
14401
- if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
14411
+ if ((props.scrim || props.retainFocus) && overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
14402
14412
  overlay.value.contentEl.focus({
14403
14413
  preventScroll: true
14404
14414
  });
@@ -19270,7 +19280,7 @@
19270
19280
  index = index ?? currentPage.value.findIndex(i => i.value === item.value);
19271
19281
  if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {
19272
19282
  const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b);
19273
- items.push(...currentPage.value.slice(start, end + 1));
19283
+ items.push(...currentPage.value.slice(start, end + 1).filter(item => item.selectable));
19274
19284
  } else {
19275
19285
  items.push(item);
19276
19286
  lastSelectedIndex.value = index;
@@ -20606,7 +20616,6 @@
20606
20616
  });
20607
20617
  };
20608
20618
  const VDataTableMobileHeaderCell = () => {
20609
- const headerProps = vue.mergeProps(props.headerProps ?? {} ?? {});
20610
20619
  const displayItems = vue.computed(() => {
20611
20620
  return columns.value.filter(column => column?.sortable && !props.disableSort);
20612
20621
  });
@@ -20619,7 +20628,7 @@
20619
20628
  "tag": "th",
20620
20629
  "class": [...headerCellClasses.value],
20621
20630
  "colspan": headers.value.length + 1
20622
- }, headerProps), {
20631
+ }, props.headerProps), {
20623
20632
  default: () => [vue.createVNode("div", {
20624
20633
  "class": "v-data-table-header__content"
20625
20634
  }, [vue.createVNode(VSelect, {
@@ -23542,6 +23551,7 @@
23542
23551
  const inputRef = vue.ref();
23543
23552
  const isActive = vue.toRef(() => isFocused.value || props.active);
23544
23553
  const isPlainOrUnderlined = vue.computed(() => ['plain', 'underlined'].includes(props.variant));
23554
+ const isDragging = vue.shallowRef(false);
23545
23555
  function onFocus() {
23546
23556
  if (inputRef.value !== document.activeElement) {
23547
23557
  inputRef.value?.focus();
@@ -23568,11 +23578,26 @@
23568
23578
  }
23569
23579
  function onDragover(e) {
23570
23580
  e.preventDefault();
23581
+ e.stopImmediatePropagation();
23582
+ isDragging.value = true;
23583
+ }
23584
+ function onDragleave(e) {
23585
+ e.preventDefault();
23586
+ isDragging.value = false;
23571
23587
  }
23572
23588
  function onDrop(e) {
23573
23589
  e.preventDefault();
23574
- if (!e.dataTransfer) return;
23575
- model.value = [...(e.dataTransfer.files ?? [])];
23590
+ e.stopImmediatePropagation();
23591
+ isDragging.value = false;
23592
+ if (!e.dataTransfer?.files?.length || !inputRef.value) return;
23593
+ const dataTransfer = new DataTransfer();
23594
+ for (const file of e.dataTransfer.files) {
23595
+ dataTransfer.items.add(file);
23596
+ }
23597
+ inputRef.value.files = dataTransfer.files;
23598
+ inputRef.value.dispatchEvent(new Event('change', {
23599
+ bubbles: true
23600
+ }));
23576
23601
  }
23577
23602
  vue.watch(model, newValue => {
23578
23603
  const hasModelReset = !Array.isArray(newValue) || !newValue.length;
@@ -23594,6 +23619,7 @@
23594
23619
  "modelValue": props.multiple ? model.value : model.value[0],
23595
23620
  "class": ['v-file-input', {
23596
23621
  'v-file-input--chips': !!props.chips,
23622
+ 'v-file-input--dragging': isDragging.value,
23597
23623
  'v-file-input--hide': props.hideInput,
23598
23624
  'v-input--plain-underlined': isPlainOrUnderlined.value
23599
23625
  }, props.class],
@@ -23655,6 +23681,7 @@
23655
23681
  const target = e.target;
23656
23682
  model.value = [...(target.files ?? [])];
23657
23683
  },
23684
+ "onDragleave": onDragleave,
23658
23685
  "onFocus": onFocus,
23659
23686
  "onBlur": blur
23660
23687
  }, slotProps, inputAttrs), null), vue.createVNode("div", {
@@ -28642,7 +28669,7 @@
28642
28669
  origin: 'auto',
28643
28670
  scrim: false,
28644
28671
  scrollStrategy: 'reposition',
28645
- transition: false
28672
+ transition: null
28646
28673
  }), ['absolute', 'persistent'])
28647
28674
  }, 'VTooltip');
28648
28675
  const VTooltip = genericComponent()({
@@ -28669,7 +28696,7 @@
28669
28696
  return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';
28670
28697
  });
28671
28698
  const transition = vue.toRef(() => {
28672
- if (props.transition) return props.transition;
28699
+ if (props.transition != null) return props.transition;
28673
28700
  return isActive.value ? 'scale-transition' : 'fade-transition';
28674
28701
  });
28675
28702
  const activatorProps = vue.computed(() => vue.mergeProps({
@@ -29215,7 +29242,7 @@
29215
29242
  };
29216
29243
  });
29217
29244
  }
29218
- const version$1 = "3.8.3";
29245
+ const version$1 = "3.8.4";
29219
29246
  createVuetify$1.version = version$1;
29220
29247
 
29221
29248
  // Vue's inject() can only be used in setup
@@ -29240,7 +29267,7 @@
29240
29267
  ...options
29241
29268
  });
29242
29269
  };
29243
- const version = "3.8.3";
29270
+ const version = "3.8.4";
29244
29271
  createVuetify.version = version;
29245
29272
 
29246
29273
  exports.blueprints = index;