@vuetify/nightly 3.6.13-3.7.0-beta.0.0-dev.2024-07-24 → 3.6.13-3.7.0-beta.0.0-dev.2024-07-25

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 (43) hide show
  1. package/dist/json/importMap-labs.json +28 -28
  2. package/dist/json/importMap.json +142 -142
  3. package/dist/json/web-types.json +1 -1
  4. package/dist/vuetify-labs.css +1853 -1853
  5. package/dist/vuetify-labs.d.ts +6 -3
  6. package/dist/vuetify-labs.esm.js +62 -42
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +62 -42
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +1851 -1851
  11. package/dist/vuetify.d.ts +57 -54
  12. package/dist/vuetify.esm.js +62 -42
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +62 -42
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +984 -985
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -8
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  21. package/lib/components/VCombobox/VCombobox.mjs +15 -8
  22. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  23. package/lib/components/VMenu/VMenu.mjs +7 -5
  24. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  25. package/lib/components/VMenu/index.d.mts +3 -3
  26. package/lib/components/VOverlay/locationStrategies.mjs +0 -6
  27. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  28. package/lib/components/VSelect/VSelect.mjs +15 -13
  29. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  30. package/lib/components/VSelect/useScrolling.mjs +3 -3
  31. package/lib/components/VSelect/useScrolling.mjs.map +1 -1
  32. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +2 -0
  33. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  34. package/lib/components/VVirtualScroll/index.d.mts +3 -0
  35. package/lib/components/index.d.mts +6 -3
  36. package/lib/composables/virtual.mjs +1 -0
  37. package/lib/composables/virtual.mjs.map +1 -1
  38. package/lib/entry-bundler.mjs +1 -1
  39. package/lib/framework.mjs +1 -1
  40. package/lib/index.d.mts +51 -51
  41. package/lib/util/helpers.mjs +5 -0
  42. package/lib/util/helpers.mjs.map +1 -1
  43. package/package.json +1 -1
@@ -41969,7 +41969,7 @@ declare const VMenu: {
41969
41969
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
41970
41970
  }, {
41971
41971
  id: vue.ComputedRef<string>;
41972
- ΨopenChildren: vue.ShallowRef<number>;
41972
+ ΨopenChildren: vue.ShallowRef<Set<number>>;
41973
41973
  } & Omit<Omit<{
41974
41974
  $: vue.ComponentInternalInstance;
41975
41975
  $data: {};
@@ -42645,7 +42645,7 @@ declare const VMenu: {
42645
42645
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
42646
42646
  }, {
42647
42647
  id: vue.ComputedRef<string>;
42648
- ΨopenChildren: vue.ShallowRef<number>;
42648
+ ΨopenChildren: vue.ShallowRef<Set<number>>;
42649
42649
  } & Omit<Omit<{
42650
42650
  $: vue.ComponentInternalInstance;
42651
42651
  $data: {};
@@ -43223,7 +43223,7 @@ declare const VMenu: {
43223
43223
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
43224
43224
  }, {
43225
43225
  id: vue.ComputedRef<string>;
43226
- ΨopenChildren: vue.ShallowRef<number>;
43226
+ ΨopenChildren: vue.ShallowRef<Set<number>>;
43227
43227
  } & Omit<Omit<{
43228
43228
  $: vue.ComponentInternalInstance;
43229
43229
  $data: {};
@@ -70467,6 +70467,7 @@ declare const VVirtualScroll: {
70467
70467
  minWidth?: string | number | undefined;
70468
70468
  class?: any;
70469
70469
  }, {
70470
+ calculateVisibleItems: () => void;
70470
70471
  scrollToIndex: (index: number) => void;
70471
70472
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slot:default" | "v-slots" | "items" | "renderless">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
70472
70473
  style: vue.StyleValue;
@@ -70507,6 +70508,7 @@ declare const VVirtualScroll: {
70507
70508
  minWidth?: string | number | undefined;
70508
70509
  class?: any;
70509
70510
  }, {
70511
+ calculateVisibleItems: () => void;
70510
70512
  scrollToIndex: (index: number) => void;
70511
70513
  }, {}, {}, {}, {
70512
70514
  style: vue.StyleValue;
@@ -70527,6 +70529,7 @@ declare const VVirtualScroll: {
70527
70529
  minWidth?: string | number | undefined;
70528
70530
  class?: any;
70529
70531
  }, {
70532
+ calculateVisibleItems: () => void;
70530
70533
  scrollToIndex: (index: number) => void;
70531
70534
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slot:default" | "v-slots" | "items" | "renderless">, string, {
70532
70535
  style: vue.StyleValue;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.13-3.7.0-beta.0.0-dev.2024-07-24
2
+ * Vuetify v3.6.13-3.7.0-beta.0.0-dev.2024-07-25
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -575,6 +575,11 @@ function templateRef() {
575
575
  });
576
576
  return fn;
577
577
  }
578
+ function checkPrintable(e) {
579
+ const isPrintableChar = e.key.length === 1;
580
+ const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
581
+ return isPrintableChar && noModifier;
582
+ }
578
583
 
579
584
  // Utilities
580
585
  const block = ['top', 'bottom'];
@@ -9743,12 +9748,6 @@ function getIntrinsicSize(el, isRtl) {
9743
9748
  // el.style.removeProperty('max-width')
9744
9749
  // el.style.removeProperty('max-height')
9745
9750
 
9746
- if (isRtl) {
9747
- el.style.removeProperty('left');
9748
- } else {
9749
- el.style.removeProperty('right');
9750
- }
9751
-
9752
9751
  /* eslint-disable-next-line sonarjs/prefer-immediate-return */
9753
9752
  const contentBox = nullifyTransforms(el);
9754
9753
  if (isRtl) {
@@ -11140,23 +11139,25 @@ const VMenu = genericComponent()({
11140
11139
  const id = computed(() => props.id || `v-menu-${uid}`);
11141
11140
  const overlay = ref();
11142
11141
  const parent = inject$1(VMenuSymbol, null);
11143
- const openChildren = shallowRef(0);
11142
+ const openChildren = shallowRef(new Set());
11144
11143
  provide(VMenuSymbol, {
11145
11144
  register() {
11146
- ++openChildren.value;
11145
+ openChildren.value.add(uid);
11147
11146
  },
11148
11147
  unregister() {
11149
- --openChildren.value;
11148
+ openChildren.value.delete(uid);
11150
11149
  },
11151
11150
  closeParents(e) {
11152
11151
  setTimeout(() => {
11153
- if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11152
+ if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11154
11153
  isActive.value = false;
11155
11154
  parent?.closeParents();
11156
11155
  }
11157
11156
  }, 40);
11158
11157
  }
11159
11158
  });
11159
+ onBeforeUnmount(() => parent?.unregister());
11160
+ onDeactivated(() => isActive.value = false);
11160
11161
  async function onFocusIn(e) {
11161
11162
  const before = e.relatedTarget;
11162
11163
  const after = e.target;
@@ -12068,6 +12069,7 @@ function useVirtual(props, items) {
12068
12069
  deep: true
12069
12070
  });
12070
12071
  return {
12072
+ calculateVisibleItems,
12071
12073
  containerRef,
12072
12074
  markerRef,
12073
12075
  computedItems,
@@ -12131,6 +12133,7 @@ const VVirtualScroll = genericComponent()({
12131
12133
  dimensionStyles
12132
12134
  } = useDimension(props);
12133
12135
  const {
12136
+ calculateVisibleItems,
12134
12137
  containerRef,
12135
12138
  markerRef,
12136
12139
  handleScroll,
@@ -12202,6 +12205,7 @@ const VVirtualScroll = genericComponent()({
12202
12205
  }, [children])]);
12203
12206
  });
12204
12207
  return {
12208
+ calculateVisibleItems,
12205
12209
  scrollToIndex
12206
12210
  };
12207
12211
  }
@@ -12270,9 +12274,9 @@ function useScrolling(listRef, textFieldRef) {
12270
12274
  }
12271
12275
  }
12272
12276
  return {
12273
- onListScroll,
12274
- onListKeydown
12275
- };
12277
+ onScrollPassive: onListScroll,
12278
+ onKeydown: onListKeydown
12279
+ }; // typescript doesn't know about vue's event merging
12276
12280
  }
12277
12281
 
12278
12282
  // Types
@@ -12347,7 +12351,7 @@ const VSelect = genericComponent()({
12347
12351
  const menu = computed({
12348
12352
  get: () => _menu.value,
12349
12353
  set: v => {
12350
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
12354
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
12351
12355
  _menu.value = v;
12352
12356
  }
12353
12357
  });
@@ -12386,10 +12390,7 @@ const VSelect = genericComponent()({
12386
12390
  };
12387
12391
  });
12388
12392
  const listRef = ref();
12389
- const {
12390
- onListScroll,
12391
- onListKeydown
12392
- } = useScrolling(listRef, vTextFieldRef);
12393
+ const listEvents = useScrolling(listRef, vTextFieldRef);
12393
12394
  function onClear(e) {
12394
12395
  if (props.openOnClear) {
12395
12396
  menu.value = true;
@@ -12399,6 +12400,11 @@ const VSelect = genericComponent()({
12399
12400
  if (menuDisabled.value) return;
12400
12401
  menu.value = !menu.value;
12401
12402
  }
12403
+ function onListKeydown(e) {
12404
+ if (checkPrintable(e)) {
12405
+ onKeydown(e);
12406
+ }
12407
+ }
12402
12408
  function onKeydown(e) {
12403
12409
  if (!e.key || props.readonly || form?.isReadonly.value) return;
12404
12410
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
@@ -12419,11 +12425,6 @@ const VSelect = genericComponent()({
12419
12425
  // html select hotkeys
12420
12426
  const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
12421
12427
 
12422
- function checkPrintable(e) {
12423
- const isPrintableChar = e.key.length === 1;
12424
- const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
12425
- return isPrintableChar && noModifier;
12426
- }
12427
12428
  if (props.multiple || !checkPrintable(e)) return;
12428
12429
  const now = performance.now();
12429
12430
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
@@ -12468,6 +12469,11 @@ const VSelect = genericComponent()({
12468
12469
  menu.value = false;
12469
12470
  }
12470
12471
  }
12472
+ function onAfterEnter() {
12473
+ if (props.eager) {
12474
+ vVirtualScrollRef.value?.calculateVisibleItems();
12475
+ }
12476
+ }
12471
12477
  function onAfterLeave() {
12472
12478
  if (isFocused.value) {
12473
12479
  vTextFieldRef.value?.focus();
@@ -12546,6 +12552,7 @@ const VSelect = genericComponent()({
12546
12552
  "openOnClick": false,
12547
12553
  "closeOnContentClick": false,
12548
12554
  "transition": props.transition,
12555
+ "onAfterEnter": onAfterEnter,
12549
12556
  "onAfterLeave": onAfterLeave
12550
12557
  }, computedMenuProps.value), {
12551
12558
  default: () => [hasList && createVNode(VList, mergeProps({
@@ -12555,11 +12562,10 @@ const VSelect = genericComponent()({
12555
12562
  "onMousedown": e => e.preventDefault(),
12556
12563
  "onKeydown": onListKeydown,
12557
12564
  "onFocusin": onFocusin,
12558
- "onScrollPassive": onListScroll,
12559
12565
  "tabindex": "-1",
12560
12566
  "aria-live": "polite",
12561
12567
  "color": props.itemColor ?? props.color
12562
- }, props.listProps), {
12568
+ }, listEvents, props.listProps), {
12563
12569
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
12564
12570
  "title": t(props.noDataText)
12565
12571
  }, null)), createVNode(VVirtualScroll, {
@@ -12854,7 +12860,7 @@ const VAutocomplete = genericComponent()({
12854
12860
  const menu = computed({
12855
12861
  get: () => _menu.value,
12856
12862
  set: v => {
12857
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
12863
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
12858
12864
  _menu.value = v;
12859
12865
  }
12860
12866
  });
@@ -12898,10 +12904,7 @@ const VAutocomplete = genericComponent()({
12898
12904
  });
12899
12905
  const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12900
12906
  const listRef = ref();
12901
- const {
12902
- onListScroll,
12903
- onListKeydown
12904
- } = useScrolling(listRef, vTextFieldRef);
12907
+ const listEvents = useScrolling(listRef, vTextFieldRef);
12905
12908
  function onClear(e) {
12906
12909
  if (props.openOnClear) {
12907
12910
  menu.value = true;
@@ -12920,6 +12923,11 @@ const VAutocomplete = genericComponent()({
12920
12923
  }
12921
12924
  menu.value = !menu.value;
12922
12925
  }
12926
+ function onListKeydown(e) {
12927
+ if (checkPrintable(e)) {
12928
+ vTextFieldRef.value?.focus();
12929
+ }
12930
+ }
12923
12931
  function onKeydown(e) {
12924
12932
  if (props.readonly || form?.isReadonly.value) return;
12925
12933
  const selectionStart = vTextFieldRef.value.selectionStart;
@@ -12984,6 +12992,11 @@ const VAutocomplete = genericComponent()({
12984
12992
  }
12985
12993
  }
12986
12994
  }
12995
+ function onAfterEnter() {
12996
+ if (props.eager) {
12997
+ vVirtualScrollRef.value?.calculateVisibleItems();
12998
+ }
12999
+ }
12987
13000
  function onAfterLeave() {
12988
13001
  if (isFocused.value) {
12989
13002
  isPristine.value = true;
@@ -13112,6 +13125,7 @@ const VAutocomplete = genericComponent()({
13112
13125
  "openOnClick": false,
13113
13126
  "closeOnContentClick": false,
13114
13127
  "transition": props.transition,
13128
+ "onAfterEnter": onAfterEnter,
13115
13129
  "onAfterLeave": onAfterLeave
13116
13130
  }, props.menuProps), {
13117
13131
  default: () => [hasList && createVNode(VList, mergeProps({
@@ -13122,11 +13136,10 @@ const VAutocomplete = genericComponent()({
13122
13136
  "onKeydown": onListKeydown,
13123
13137
  "onFocusin": onFocusin,
13124
13138
  "onFocusout": onFocusout,
13125
- "onScrollPassive": onListScroll,
13126
13139
  "tabindex": "-1",
13127
13140
  "aria-live": "polite",
13128
13141
  "color": props.itemColor ?? props.color
13129
- }, props.listProps), {
13142
+ }, listEvents, props.listProps), {
13130
13143
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
13131
13144
  "title": t(props.noDataText)
13132
13145
  }, null)), createVNode(VVirtualScroll, {
@@ -16687,7 +16700,7 @@ const VCombobox = genericComponent()({
16687
16700
  const menu = computed({
16688
16701
  get: () => _menu.value,
16689
16702
  set: v => {
16690
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
16703
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
16691
16704
  _menu.value = v;
16692
16705
  }
16693
16706
  });
@@ -16770,10 +16783,7 @@ const VCombobox = genericComponent()({
16770
16783
  });
16771
16784
  const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
16772
16785
  const listRef = ref();
16773
- const {
16774
- onListScroll,
16775
- onListKeydown
16776
- } = useScrolling(listRef, vTextFieldRef);
16786
+ const listEvents = useScrolling(listRef, vTextFieldRef);
16777
16787
  function onClear(e) {
16778
16788
  cleared = true;
16779
16789
  if (props.openOnClear) {
@@ -16792,6 +16802,11 @@ const VCombobox = genericComponent()({
16792
16802
  }
16793
16803
  menu.value = !menu.value;
16794
16804
  }
16805
+ function onListKeydown(e) {
16806
+ if (checkPrintable(e)) {
16807
+ vTextFieldRef.value?.focus();
16808
+ }
16809
+ }
16795
16810
  // eslint-disable-next-line complexity
16796
16811
  function onKeydown(e) {
16797
16812
  if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
@@ -16856,6 +16871,11 @@ const VCombobox = genericComponent()({
16856
16871
  }
16857
16872
  }
16858
16873
  }
16874
+ function onAfterEnter() {
16875
+ if (props.eager) {
16876
+ vVirtualScrollRef.value?.calculateVisibleItems();
16877
+ }
16878
+ }
16859
16879
  function onAfterLeave() {
16860
16880
  if (isFocused.value) {
16861
16881
  isPristine.value = true;
@@ -16980,6 +17000,7 @@ const VCombobox = genericComponent()({
16980
17000
  "openOnClick": false,
16981
17001
  "closeOnContentClick": false,
16982
17002
  "transition": props.transition,
17003
+ "onAfterEnter": onAfterEnter,
16983
17004
  "onAfterLeave": onAfterLeave
16984
17005
  }, props.menuProps), {
16985
17006
  default: () => [hasList && createVNode(VList, mergeProps({
@@ -16990,11 +17011,10 @@ const VCombobox = genericComponent()({
16990
17011
  "onKeydown": onListKeydown,
16991
17012
  "onFocusin": onFocusin,
16992
17013
  "onFocusout": onFocusout,
16993
- "onScrollPassive": onListScroll,
16994
17014
  "tabindex": "-1",
16995
17015
  "aria-live": "polite",
16996
17016
  "color": props.itemColor ?? props.color
16997
- }, props.listProps), {
17017
+ }, listEvents, props.listProps), {
16998
17018
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
16999
17019
  "title": t(props.noDataText)
17000
17020
  }, null)), createVNode(VVirtualScroll, {
@@ -30288,7 +30308,7 @@ function createVuetify$1() {
30288
30308
  goTo
30289
30309
  };
30290
30310
  }
30291
- const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-24";
30311
+ const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
30292
30312
  createVuetify$1.version = version$1;
30293
30313
 
30294
30314
  // Vue's inject() can only be used in setup
@@ -30541,7 +30561,7 @@ var index = /*#__PURE__*/Object.freeze({
30541
30561
 
30542
30562
  /* eslint-disable local-rules/sort-imports */
30543
30563
 
30544
- const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-24";
30564
+ const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
30545
30565
 
30546
30566
  /* eslint-disable local-rules/sort-imports */
30547
30567