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
@@ -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
  */
@@ -3409,10 +3409,10 @@ const VDialogTransition = genericComponent()({
3409
3409
  async onLeave(el, done) {
3410
3410
  await new Promise(resolve => requestAnimationFrame(resolve));
3411
3411
  let dimensions;
3412
- if (!Array.isArray(props.target) && !props.target.offsetParent && saved.has(el)) {
3413
- dimensions = saved.get(el);
3414
- } else {
3412
+ if (!saved.has(el) || Array.isArray(props.target) || props.target.offsetParent || props.target.getClientRects().length) {
3415
3413
  dimensions = getDimensions(props.target, el);
3414
+ } else {
3415
+ dimensions = saved.get(el);
3416
3416
  }
3417
3417
  const {
3418
3418
  x,
@@ -3737,7 +3737,7 @@ function useRounded(props) {
3737
3737
 
3738
3738
  const makeTransitionProps = propsFactory({
3739
3739
  transition: {
3740
- type: [Boolean, String, Object],
3740
+ type: null,
3741
3741
  default: 'fade-transition',
3742
3742
  validator: val => val !== true
3743
3743
  }
@@ -3755,16 +3755,19 @@ const MaybeTransition = (props, _ref) => {
3755
3755
  const {
3756
3756
  component = group ? TransitionGroup : Transition,
3757
3757
  ...customProps
3758
- } = typeof transition === 'object' ? transition : {};
3759
- return h(component, mergeProps(typeof transition === 'string' ? {
3760
- name: disabled ? '' : transition
3761
- } : customProps, typeof transition === 'string' ? {} : Object.fromEntries(Object.entries({
3762
- disabled,
3763
- group
3764
- }).filter(_ref2 => {
3765
- let [_, v] = _ref2;
3766
- return v !== undefined;
3767
- })), rest), slots);
3758
+ } = isObject(transition) ? transition : {};
3759
+ let transitionProps;
3760
+ if (isObject(transition)) {
3761
+ transitionProps = mergeProps(customProps, JSON.parse(JSON.stringify({
3762
+ disabled,
3763
+ group
3764
+ })), rest);
3765
+ } else {
3766
+ transitionProps = mergeProps({
3767
+ name: disabled || !transition ? '' : transition
3768
+ }, rest);
3769
+ }
3770
+ return h(component, transitionProps, slots);
3768
3771
  };
3769
3772
 
3770
3773
  // Utilities
@@ -10439,7 +10442,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
10439
10442
  observe = false;
10440
10443
  requestAnimationFrame(() => observe = true);
10441
10444
  if (!data.target.value || !data.contentEl.value) return;
10442
- if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
10445
+ if (Array.isArray(data.target.value) || data.target.value.offsetParent || data.target.value.getClientRects().length) {
10443
10446
  targetBox = getTargetBox(data.target.value);
10444
10447
  } // Otherwise target element is hidden, use last known value
10445
10448
 
@@ -12359,11 +12362,12 @@ const VTextField = genericComponent()({
12359
12362
  onFocus();
12360
12363
  emit('click:control', e);
12361
12364
  }
12362
- function onClear(e) {
12365
+ function onClear(e, reset) {
12363
12366
  e.stopPropagation();
12364
12367
  onFocus();
12365
12368
  nextTick(() => {
12366
12369
  model.value = null;
12370
+ reset();
12367
12371
  callEvent(props['onClick:clear'], e);
12368
12372
  });
12369
12373
  }
@@ -12408,13 +12412,14 @@ const VTextField = genericComponent()({
12408
12412
  isDisabled,
12409
12413
  isDirty,
12410
12414
  isReadonly,
12411
- isValid
12415
+ isValid,
12416
+ reset
12412
12417
  } = _ref2;
12413
12418
  return createVNode(VField, mergeProps({
12414
12419
  "ref": vFieldRef,
12415
12420
  "onMousedown": onControlMousedown,
12416
12421
  "onClick": onControlClick,
12417
- "onClick:clear": onClear,
12422
+ "onClick:clear": e => onClear(e, reset),
12418
12423
  "onClick:prependInner": props['onClick:prependInner'],
12419
12424
  "onClick:appendInner": props['onClick:appendInner'],
12420
12425
  "role": props.role
@@ -13775,6 +13780,11 @@ const VAutocomplete = genericComponent()({
13775
13780
  menu.value = true;
13776
13781
  }
13777
13782
  });
13783
+ watch(model, value => {
13784
+ if (!props.multiple && !hasSelectionSlot.value) {
13785
+ search.value = value[0]?.title ?? '';
13786
+ }
13787
+ });
13778
13788
  useRender(() => {
13779
13789
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
13780
13790
  const isDirty = model.value.length > 0;
@@ -14394,7 +14404,7 @@ const VDialog = genericComponent()({
14394
14404
  }
14395
14405
  function onAfterEnter() {
14396
14406
  emit('afterEnter');
14397
- if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
14407
+ if ((props.scrim || props.retainFocus) && overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {
14398
14408
  overlay.value.contentEl.focus({
14399
14409
  preventScroll: true
14400
14410
  });
@@ -19266,7 +19276,7 @@ function provideSelection(props, _ref9) {
19266
19276
  index = index ?? currentPage.value.findIndex(i => i.value === item.value);
19267
19277
  if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {
19268
19278
  const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b);
19269
- items.push(...currentPage.value.slice(start, end + 1));
19279
+ items.push(...currentPage.value.slice(start, end + 1).filter(item => item.selectable));
19270
19280
  } else {
19271
19281
  items.push(item);
19272
19282
  lastSelectedIndex.value = index;
@@ -20602,7 +20612,6 @@ const VDataTableHeaders = genericComponent()({
20602
20612
  });
20603
20613
  };
20604
20614
  const VDataTableMobileHeaderCell = () => {
20605
- const headerProps = mergeProps(props.headerProps ?? {} ?? {});
20606
20615
  const displayItems = computed(() => {
20607
20616
  return columns.value.filter(column => column?.sortable && !props.disableSort);
20608
20617
  });
@@ -20615,7 +20624,7 @@ const VDataTableHeaders = genericComponent()({
20615
20624
  "tag": "th",
20616
20625
  "class": [...headerCellClasses.value],
20617
20626
  "colspan": headers.value.length + 1
20618
- }, headerProps), {
20627
+ }, props.headerProps), {
20619
20628
  default: () => [createVNode("div", {
20620
20629
  "class": "v-data-table-header__content"
20621
20630
  }, [createVNode(VSelect, {
@@ -23538,6 +23547,7 @@ const VFileInput = genericComponent()({
23538
23547
  const inputRef = ref();
23539
23548
  const isActive = toRef(() => isFocused.value || props.active);
23540
23549
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
23550
+ const isDragging = shallowRef(false);
23541
23551
  function onFocus() {
23542
23552
  if (inputRef.value !== document.activeElement) {
23543
23553
  inputRef.value?.focus();
@@ -23564,11 +23574,26 @@ const VFileInput = genericComponent()({
23564
23574
  }
23565
23575
  function onDragover(e) {
23566
23576
  e.preventDefault();
23577
+ e.stopImmediatePropagation();
23578
+ isDragging.value = true;
23579
+ }
23580
+ function onDragleave(e) {
23581
+ e.preventDefault();
23582
+ isDragging.value = false;
23567
23583
  }
23568
23584
  function onDrop(e) {
23569
23585
  e.preventDefault();
23570
- if (!e.dataTransfer) return;
23571
- model.value = [...(e.dataTransfer.files ?? [])];
23586
+ e.stopImmediatePropagation();
23587
+ isDragging.value = false;
23588
+ if (!e.dataTransfer?.files?.length || !inputRef.value) return;
23589
+ const dataTransfer = new DataTransfer();
23590
+ for (const file of e.dataTransfer.files) {
23591
+ dataTransfer.items.add(file);
23592
+ }
23593
+ inputRef.value.files = dataTransfer.files;
23594
+ inputRef.value.dispatchEvent(new Event('change', {
23595
+ bubbles: true
23596
+ }));
23572
23597
  }
23573
23598
  watch(model, newValue => {
23574
23599
  const hasModelReset = !Array.isArray(newValue) || !newValue.length;
@@ -23590,6 +23615,7 @@ const VFileInput = genericComponent()({
23590
23615
  "modelValue": props.multiple ? model.value : model.value[0],
23591
23616
  "class": ['v-file-input', {
23592
23617
  'v-file-input--chips': !!props.chips,
23618
+ 'v-file-input--dragging': isDragging.value,
23593
23619
  'v-file-input--hide': props.hideInput,
23594
23620
  'v-input--plain-underlined': isPlainOrUnderlined.value
23595
23621
  }, props.class],
@@ -23651,6 +23677,7 @@ const VFileInput = genericComponent()({
23651
23677
  const target = e.target;
23652
23678
  model.value = [...(target.files ?? [])];
23653
23679
  },
23680
+ "onDragleave": onDragleave,
23654
23681
  "onFocus": onFocus,
23655
23682
  "onBlur": blur
23656
23683
  }, slotProps, inputAttrs), null), createVNode("div", {
@@ -28638,7 +28665,7 @@ const makeVTooltipProps = propsFactory({
28638
28665
  origin: 'auto',
28639
28666
  scrim: false,
28640
28667
  scrollStrategy: 'reposition',
28641
- transition: false
28668
+ transition: null
28642
28669
  }), ['absolute', 'persistent'])
28643
28670
  }, 'VTooltip');
28644
28671
  const VTooltip = genericComponent()({
@@ -28665,7 +28692,7 @@ const VTooltip = genericComponent()({
28665
28692
  return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';
28666
28693
  });
28667
28694
  const transition = toRef(() => {
28668
- if (props.transition) return props.transition;
28695
+ if (props.transition != null) return props.transition;
28669
28696
  return isActive.value ? 'scale-transition' : 'fade-transition';
28670
28697
  });
28671
28698
  const activatorProps = computed(() => mergeProps({
@@ -29211,7 +29238,7 @@ function createVuetify$1() {
29211
29238
  };
29212
29239
  });
29213
29240
  }
29214
- const version$1 = "3.8.3";
29241
+ const version$1 = "3.8.4";
29215
29242
  createVuetify$1.version = version$1;
29216
29243
 
29217
29244
  // Vue's inject() can only be used in setup
@@ -29236,7 +29263,7 @@ const createVuetify = function () {
29236
29263
  ...options
29237
29264
  });
29238
29265
  };
29239
- const version = "3.8.3";
29266
+ const version = "3.8.4";
29240
29267
  createVuetify.version = version;
29241
29268
 
29242
29269
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };