@vuetify/nightly 3.8.3-master.2025-05-05 → 3.8.4-master.2025-05-07

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 (62) hide show
  1. package/CHANGELOG.md +3 -35
  2. package/dist/json/attributes.json +3324 -3324
  3. package/dist/json/importMap-labs.json +28 -28
  4. package/dist/json/importMap.json +162 -162
  5. package/dist/json/web-types.json +6199 -6199
  6. package/dist/vuetify-labs.cjs +54 -44
  7. package/dist/vuetify-labs.css +3363 -3359
  8. package/dist/vuetify-labs.d.ts +98 -98
  9. package/dist/vuetify-labs.esm.js +54 -44
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +54 -44
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +33 -11
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4003 -3999
  16. package/dist/vuetify.d.ts +127 -127
  17. package/dist/vuetify.esm.js +33 -11
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +33 -11
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +17 -14
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.d.ts +3 -3
  25. package/lib/components/VAutocomplete/VAutocomplete.js +5 -0
  26. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  27. package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +6 -6
  28. package/lib/components/VCombobox/VCombobox.d.ts +3 -3
  29. package/lib/components/VDataTable/VDataTable.d.ts +110 -110
  30. package/lib/components/VDataTable/VDataTableHeaders.js +1 -2
  31. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  32. package/lib/components/VDataTable/VDataTableServer.d.ts +55 -55
  33. package/lib/components/VDataTable/VDataTableVirtual.d.ts +55 -55
  34. package/lib/components/VDataTable/composables/headers.d.ts +75 -75
  35. package/lib/components/VDatePicker/VDatePicker.d.ts +3 -3
  36. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +6 -6
  37. package/lib/components/VFileInput/VFileInput.css +4 -0
  38. package/lib/components/VFileInput/VFileInput.js +21 -3
  39. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  40. package/lib/components/VFileInput/VFileInput.sass +4 -0
  41. package/lib/components/VNumberInput/VNumberInput.d.ts +3 -3
  42. package/lib/components/VOverlay/locationStrategies.js +1 -1
  43. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  44. package/lib/components/VSelect/VSelect.d.ts +3 -3
  45. package/lib/components/VTabs/VTabs.d.ts +6 -6
  46. package/lib/components/transitions/dialog-transition.js +3 -3
  47. package/lib/components/transitions/dialog-transition.js.map +1 -1
  48. package/lib/entry-bundler.d.ts +6 -6
  49. package/lib/entry-bundler.js +1 -1
  50. package/lib/framework.d.ts +57 -57
  51. package/lib/framework.js +1 -1
  52. package/lib/labs/VCalendar/VCalendar.d.ts +3 -3
  53. package/lib/labs/VCalendar/VCalendarDay.d.ts +3 -3
  54. package/lib/labs/VCalendar/VCalendarInterval.d.ts +3 -3
  55. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +3 -3
  56. package/lib/labs/VDateInput/VDateInput.d.ts +9 -9
  57. package/lib/labs/VFileUpload/VFileUpload.js +19 -31
  58. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  59. package/lib/labs/VTimePicker/VTimePickerClock.js +2 -2
  60. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  61. package/lib/util/helpers.js.map +1 -1
  62. package/package.json +6 -6
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.3-master.2025-05-05
2
+ * Vuetify v3.8.4-master.2025-05-07
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -2923,10 +2923,10 @@ const VDialogTransition = genericComponent()({
2923
2923
  async onLeave(el, done) {
2924
2924
  await new Promise(resolve => requestAnimationFrame(resolve));
2925
2925
  let dimensions;
2926
- if (!Array.isArray(props.target) && !props.target.offsetParent && saved.has(el)) {
2927
- dimensions = saved.get(el);
2928
- } else {
2926
+ if (!saved.has(el) || Array.isArray(props.target) || props.target.offsetParent || props.target.getClientRects().length) {
2929
2927
  dimensions = getDimensions(props.target, el);
2928
+ } else {
2929
+ dimensions = saved.get(el);
2930
2930
  }
2931
2931
  const {
2932
2932
  x,
@@ -10164,7 +10164,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
10164
10164
  observe = false;
10165
10165
  requestAnimationFrame(() => observe = true);
10166
10166
  if (!data.target.value || !data.contentEl.value) return;
10167
- if (Array.isArray(data.target.value) || data.target.value.offsetParent) {
10167
+ if (Array.isArray(data.target.value) || data.target.value.offsetParent || data.target.value.getClientRects().length) {
10168
10168
  targetBox = getTargetBox(data.target.value);
10169
10169
  } // Otherwise target element is hidden, use last known value
10170
10170
 
@@ -13502,6 +13502,11 @@ const VAutocomplete = genericComponent()({
13502
13502
  menu.value = true;
13503
13503
  }
13504
13504
  });
13505
+ watch(model, value => {
13506
+ if (!props.multiple && !hasSelectionSlot.value) {
13507
+ search.value = value[0]?.title ?? '';
13508
+ }
13509
+ });
13505
13510
  useRender(() => {
13506
13511
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
13507
13512
  const isDirty = model.value.length > 0;
@@ -20329,7 +20334,6 @@ const VDataTableHeaders = genericComponent()({
20329
20334
  });
20330
20335
  };
20331
20336
  const VDataTableMobileHeaderCell = () => {
20332
- const headerProps = mergeProps(props.headerProps ?? {} ?? {});
20333
20337
  const displayItems = computed(() => {
20334
20338
  return columns.value.filter(column => column?.sortable && !props.disableSort);
20335
20339
  });
@@ -20342,7 +20346,7 @@ const VDataTableHeaders = genericComponent()({
20342
20346
  "tag": "th",
20343
20347
  "class": [...headerCellClasses.value],
20344
20348
  "colspan": headers.value.length + 1
20345
- }, headerProps), {
20349
+ }, props.headerProps), {
20346
20350
  default: () => [createVNode("div", {
20347
20351
  "class": "v-data-table-header__content"
20348
20352
  }, [createVNode(VSelect, {
@@ -23265,6 +23269,7 @@ const VFileInput = genericComponent()({
23265
23269
  const inputRef = ref();
23266
23270
  const isActive = toRef(() => isFocused.value || props.active);
23267
23271
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
23272
+ const isDragging = shallowRef(false);
23268
23273
  function onFocus() {
23269
23274
  if (inputRef.value !== document.activeElement) {
23270
23275
  inputRef.value?.focus();
@@ -23291,11 +23296,26 @@ const VFileInput = genericComponent()({
23291
23296
  }
23292
23297
  function onDragover(e) {
23293
23298
  e.preventDefault();
23299
+ e.stopImmediatePropagation();
23300
+ isDragging.value = true;
23301
+ }
23302
+ function onDragleave(e) {
23303
+ e.preventDefault();
23304
+ isDragging.value = false;
23294
23305
  }
23295
23306
  function onDrop(e) {
23296
23307
  e.preventDefault();
23297
- if (!e.dataTransfer) return;
23298
- model.value = [...(e.dataTransfer.files ?? [])];
23308
+ e.stopImmediatePropagation();
23309
+ isDragging.value = false;
23310
+ if (!e.dataTransfer?.files?.length || !inputRef.value) return;
23311
+ const dataTransfer = new DataTransfer();
23312
+ for (const file of e.dataTransfer.files) {
23313
+ dataTransfer.items.add(file);
23314
+ }
23315
+ inputRef.value.files = dataTransfer.files;
23316
+ inputRef.value.dispatchEvent(new Event('change', {
23317
+ bubbles: true
23318
+ }));
23299
23319
  }
23300
23320
  watch(model, newValue => {
23301
23321
  const hasModelReset = !Array.isArray(newValue) || !newValue.length;
@@ -23317,6 +23337,7 @@ const VFileInput = genericComponent()({
23317
23337
  "modelValue": props.multiple ? model.value : model.value[0],
23318
23338
  "class": ['v-file-input', {
23319
23339
  'v-file-input--chips': !!props.chips,
23340
+ 'v-file-input--dragging': isDragging.value,
23320
23341
  'v-file-input--hide': props.hideInput,
23321
23342
  'v-input--plain-underlined': isPlainOrUnderlined.value
23322
23343
  }, props.class],
@@ -23378,6 +23399,7 @@ const VFileInput = genericComponent()({
23378
23399
  const target = e.target;
23379
23400
  model.value = [...(target.files ?? [])];
23380
23401
  },
23402
+ "onDragleave": onDragleave,
23381
23403
  "onFocus": onFocus,
23382
23404
  "onBlur": blur
23383
23405
  }, slotProps, inputAttrs), null), createVNode("div", {
@@ -29430,43 +29452,31 @@ const VFileUpload = genericComponent()({
29430
29452
  densityClasses
29431
29453
  } = useDensity(props);
29432
29454
  const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
29433
- const dragOver = shallowRef(false);
29455
+ const isDragging = shallowRef(false);
29434
29456
  const vSheetRef = ref(null);
29435
29457
  const inputRef = ref(null);
29436
- onMounted(() => {
29437
- vSheetRef.value?.$el.addEventListener('dragover', onDragOver);
29438
- vSheetRef.value?.$el.addEventListener('drop', onDrop);
29439
- });
29440
- onUnmounted(() => {
29441
- vSheetRef.value?.$el.removeEventListener('dragover', onDragOver);
29442
- vSheetRef.value?.$el.removeEventListener('drop', onDrop);
29443
- });
29444
- function onDragOver(e) {
29458
+ function onDragover(e) {
29445
29459
  e.preventDefault();
29446
29460
  e.stopImmediatePropagation();
29447
- dragOver.value = true;
29461
+ isDragging.value = true;
29448
29462
  }
29449
- function onDragLeave(e) {
29463
+ function onDragleave(e) {
29450
29464
  e.preventDefault();
29451
- dragOver.value = false;
29465
+ isDragging.value = false;
29452
29466
  }
29453
29467
  function onDrop(e) {
29454
29468
  e.preventDefault();
29455
29469
  e.stopImmediatePropagation();
29456
- dragOver.value = false;
29457
- const files = Array.from(e.dataTransfer?.files ?? []);
29458
- if (!files.length) return;
29459
- if (!props.multiple) {
29460
- model.value = [files[0]];
29461
- return;
29462
- }
29463
- const array = model.value.slice();
29464
- for (const file of files) {
29465
- if (!array.some(f => f.name === file.name)) {
29466
- array.push(file);
29467
- }
29468
- }
29469
- model.value = array;
29470
+ isDragging.value = false;
29471
+ if (!e.dataTransfer?.files?.length || !inputRef.value) return;
29472
+ const dataTransfer = new DataTransfer();
29473
+ for (const file of e.dataTransfer.files) {
29474
+ dataTransfer.items.add(file);
29475
+ }
29476
+ inputRef.value.files = dataTransfer.files;
29477
+ inputRef.value.dispatchEvent(new Event('change', {
29478
+ bubbles: true
29479
+ }));
29470
29480
  }
29471
29481
  function onClick() {
29472
29482
  inputRef.value?.click();
@@ -29502,11 +29512,11 @@ const VFileUpload = genericComponent()({
29502
29512
  "class": ['v-file-upload', {
29503
29513
  'v-file-upload--clickable': !hasBrowse,
29504
29514
  'v-file-upload--disabled': props.disabled,
29505
- 'v-file-upload--dragging': dragOver.value
29515
+ 'v-file-upload--dragging': isDragging.value
29506
29516
  }, densityClasses.value, props.class],
29507
29517
  "style": [props.style],
29508
- "onDragleave": onDragLeave,
29509
- "onDragover": onDragOver,
29518
+ "onDragleave": onDragleave,
29519
+ "onDragover": onDragover,
29510
29520
  "onDrop": onDrop,
29511
29521
  "onClick": !hasBrowse ? onClick : undefined
29512
29522
  }, rootAttrs), {
@@ -29557,7 +29567,7 @@ const VFileUpload = genericComponent()({
29557
29567
  })]), props.subtitle && createVNode("div", {
29558
29568
  "class": "v-file-upload-subtitle"
29559
29569
  }, [props.subtitle])]), createVNode(VOverlay, {
29560
- "model-value": dragOver.value,
29570
+ "model-value": isDragging.value,
29561
29571
  "contained": true,
29562
29572
  "scrim": props.scrim
29563
29573
  }, null), slots.input?.({
@@ -30255,8 +30265,8 @@ const VTimePickerClock = genericComponent()({
30255
30265
  y
30256
30266
  } = getPosition(i);
30257
30267
  return {
30258
- left: `${50 + x * 50}%`,
30259
- top: `${50 + y * 50}%`
30268
+ left: `${Math.round(50 + x * 50)}%`,
30269
+ top: `${Math.round(50 + y * 50)}%`
30260
30270
  };
30261
30271
  }
30262
30272
  function euclidean(p0, p1) {
@@ -31660,7 +31670,7 @@ function createVuetify$1() {
31660
31670
  };
31661
31671
  });
31662
31672
  }
31663
- const version$1 = "3.8.3-master.2025-05-05";
31673
+ const version$1 = "3.8.4-master.2025-05-07";
31664
31674
  createVuetify$1.version = version$1;
31665
31675
 
31666
31676
  // Vue's inject() can only be used in setup
@@ -31958,7 +31968,7 @@ var index = /*#__PURE__*/Object.freeze({
31958
31968
 
31959
31969
  /* eslint-disable local-rules/sort-imports */
31960
31970
 
31961
- const version = "3.8.3-master.2025-05-05";
31971
+ const version = "3.8.4-master.2025-05-07";
31962
31972
 
31963
31973
  /* eslint-disable local-rules/sort-imports */
31964
31974