vuetify 3.7.2 → 3.7.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 (104) hide show
  1. package/dist/json/attributes.json +5843 -5795
  2. package/dist/json/importMap-labs.json +16 -16
  3. package/dist/json/importMap.json +150 -150
  4. package/dist/json/tags.json +14 -1
  5. package/dist/json/web-types.json +10397 -10309
  6. package/dist/vuetify-labs.css +2362 -2362
  7. package/dist/vuetify-labs.d.ts +196 -195
  8. package/dist/vuetify-labs.esm.js +68 -45
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +68 -45
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +2822 -2822
  13. package/dist/vuetify.d.ts +212 -211
  14. package/dist/vuetify.esm.js +38 -17
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +38 -17
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +28 -28
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/index.d.mts +22 -22
  22. package/lib/components/VBottomSheet/VBottomSheet.sass +2 -1
  23. package/lib/components/VBottomSheet/index.d.mts +4 -4
  24. package/lib/components/VBtn/VBtn.css +2 -2
  25. package/lib/components/VBtn/VBtn.sass +7 -8
  26. package/lib/components/VBtnToggle/VBtnToggle.css +3 -0
  27. package/lib/components/VBtnToggle/VBtnToggle.sass +3 -0
  28. package/lib/components/VCarousel/index.d.mts +2 -2
  29. package/lib/components/VCheckbox/index.d.mts +2 -2
  30. package/lib/components/VChip/VChip.mjs +2 -1
  31. package/lib/components/VChip/VChip.mjs.map +1 -1
  32. package/lib/components/VCode/index.mjs +1 -1
  33. package/lib/components/VCode/index.mjs.map +1 -1
  34. package/lib/components/VColorPicker/VColorPicker.mjs +2 -2
  35. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  36. package/lib/components/VCombobox/index.d.mts +22 -22
  37. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +87 -0
  38. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -0
  39. package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
  40. package/lib/components/VDataTable/composables/paginate.mjs +4 -2
  41. package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
  42. package/lib/components/VDataTable/index.d.mts +7 -6
  43. package/lib/components/VDatePicker/index.d.mts +2 -2
  44. package/lib/components/VDialog/VDialog.css +3 -7
  45. package/lib/components/VDialog/VDialog.mjs +8 -1
  46. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  47. package/lib/components/VDialog/VDialog.sass +6 -7
  48. package/lib/components/VDialog/index.d.mts +22 -22
  49. package/lib/components/VField/_variables.scss +2 -1
  50. package/lib/components/VFileInput/__tests__/text.txt +1 -0
  51. package/lib/components/VFileInput/index.d.mts +3 -3
  52. package/lib/components/VInput/index.d.mts +2 -2
  53. package/lib/components/VKbd/index.mjs +1 -1
  54. package/lib/components/VKbd/index.mjs.map +1 -1
  55. package/lib/components/VList/VListItem.css +8 -7
  56. package/lib/components/VList/VListItem.mjs +1 -0
  57. package/lib/components/VList/VListItem.mjs.map +1 -1
  58. package/lib/components/VList/VListItem.sass +16 -10
  59. package/lib/components/VList/_variables.scss +0 -11
  60. package/lib/components/VMenu/VMenu.mjs +15 -6
  61. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  62. package/lib/components/VMenu/index.d.mts +20 -20
  63. package/lib/components/VMessages/index.d.mts +8 -8
  64. package/lib/components/VNavigationDrawer/index.d.mts +7 -7
  65. package/lib/components/VOverflowBtn/VOverflowBtn.sass +6 -5
  66. package/lib/components/VOverlay/index.d.mts +4 -4
  67. package/lib/components/VProgressLinear/_variables.scss +2 -1
  68. package/lib/components/VRadioGroup/index.d.mts +2 -2
  69. package/lib/components/VSelect/index.d.mts +22 -22
  70. package/lib/components/VSnackbar/index.d.mts +31 -31
  71. package/lib/components/VSpeedDial/index.d.mts +2 -2
  72. package/lib/components/VSwitch/index.d.mts +2 -2
  73. package/lib/components/VTable/_mixins.scss +2 -2
  74. package/lib/components/VTabs/VTabs.sass +1 -1
  75. package/lib/components/VTextField/index.d.mts +3 -3
  76. package/lib/components/VTextarea/index.d.mts +3 -3
  77. package/lib/components/VTooltip/index.d.mts +24 -24
  78. package/lib/components/VWindow/index.d.mts +2 -2
  79. package/lib/components/index.d.mts +158 -157
  80. package/lib/composables/directiveComponent.mjs +4 -3
  81. package/lib/composables/directiveComponent.mjs.map +1 -1
  82. package/lib/composables/nested/nested.mjs +2 -2
  83. package/lib/composables/nested/nested.mjs.map +1 -1
  84. package/lib/directives/ripple/index.mjs.map +1 -1
  85. package/lib/entry-bundler.mjs +1 -1
  86. package/lib/framework.mjs +1 -1
  87. package/lib/index.d.mts +53 -53
  88. package/lib/labs/VNumberInput/index.d.mts +9 -9
  89. package/lib/labs/VSnackbarQueue/index.d.mts +52 -52
  90. package/lib/labs/VTreeview/VTreeview.mjs +2 -1
  91. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  92. package/lib/labs/VTreeview/VTreeviewChildren.mjs +29 -28
  93. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  94. package/lib/labs/VTreeview/index.d.mts +7 -7
  95. package/lib/labs/components.d.mts +68 -68
  96. package/lib/locale/el.mjs +0 -0
  97. package/lib/locale/index.mjs +0 -0
  98. package/lib/styles/settings/_colors.scss +257 -256
  99. package/lib/styles/utilities/_display.sass +2 -1
  100. package/lib/styles/utilities/_elevation.scss +2 -1
  101. package/lib/styles/utilities/_screenreaders.sass +2 -1
  102. package/package.json +23 -16
  103. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs +0 -74
  104. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.2
2
+ * Vuetify v3.7.4
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -8047,7 +8047,8 @@
8047
8047
  }, slots.append)]), hasClose && vue.createVNode("button", vue.mergeProps({
8048
8048
  "key": "close",
8049
8049
  "class": "v-chip__close",
8050
- "type": "button"
8050
+ "type": "button",
8051
+ "data-testid": "close-chip"
8051
8052
  }, closeProps.value), [!slots.close ? vue.createVNode(VIcon, {
8052
8053
  "key": "close-icon",
8053
8054
  "icon": props.closeIcon,
@@ -8589,8 +8590,8 @@
8589
8590
  }),
8590
8591
  register: (id, parentId, isGroup) => {
8591
8592
  if (nodeIds.has(id)) {
8592
- const path = getPath(id).join(' -> ');
8593
- const newPath = getPath(parentId).concat(id).join(' -> ');
8593
+ const path = getPath(id).map(String).join(' -> ');
8594
+ const newPath = getPath(parentId).concat(id).map(String).join(' -> ');
8594
8595
  consoleError(`Multiple nodes with the same ID\n\t${path}\n\t${newPath}`);
8595
8596
  return;
8596
8597
  } else {
@@ -9024,6 +9025,7 @@
9024
9025
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
9025
9026
  "style": [colorStyles.value, dimensionStyles.value, props.style],
9026
9027
  "tabindex": isClickable.value ? list ? -2 : 0 : undefined,
9028
+ "aria-selected": root.activatable.value ? isActivated.value : isSelected.value,
9027
9029
  "onClick": onClick,
9028
9030
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9029
9031
  }, link.linkProps), {
@@ -11211,7 +11213,10 @@
11211
11213
  }, 40);
11212
11214
  }
11213
11215
  });
11214
- vue.onBeforeUnmount(() => parent?.unregister());
11216
+ vue.onBeforeUnmount(() => {
11217
+ parent?.unregister();
11218
+ document.removeEventListener('focusin', onFocusIn);
11219
+ });
11215
11220
  vue.onDeactivated(() => isActive.value = false);
11216
11221
  async function onFocusIn(e) {
11217
11222
  const before = e.relatedTarget;
@@ -11231,13 +11236,19 @@
11231
11236
  vue.watch(isActive, val => {
11232
11237
  if (val) {
11233
11238
  parent?.register();
11234
- document.addEventListener('focusin', onFocusIn, {
11235
- once: true
11236
- });
11239
+ if (IN_BROWSER) {
11240
+ document.addEventListener('focusin', onFocusIn, {
11241
+ once: true
11242
+ });
11243
+ }
11237
11244
  } else {
11238
11245
  parent?.unregister();
11239
- document.removeEventListener('focusin', onFocusIn);
11246
+ if (IN_BROWSER) {
11247
+ document.removeEventListener('focusin', onFocusIn);
11248
+ }
11240
11249
  }
11250
+ }, {
11251
+ immediate: true
11241
11252
  });
11242
11253
  function onClickOutside(e) {
11243
11254
  parent?.closeParents(e);
@@ -13753,6 +13764,9 @@
13753
13764
  }
13754
13765
  }
13755
13766
  }
13767
+ vue.onBeforeUnmount(() => {
13768
+ document.removeEventListener('focusin', onFocusin);
13769
+ });
13756
13770
  if (IN_BROWSER) {
13757
13771
  vue.watch(() => isActive.value && props.retainFocus, val => {
13758
13772
  val ? document.addEventListener('focusin', onFocusin) : document.removeEventListener('focusin', onFocusin);
@@ -13800,6 +13814,10 @@
13800
13814
  "aria-modal": "true",
13801
13815
  "activatorProps": activatorProps,
13802
13816
  "contentProps": contentProps,
13817
+ "height": !props.fullscreen ? props.height : undefined,
13818
+ "width": !props.fullscreen ? props.width : undefined,
13819
+ "maxHeight": !props.fullscreen ? props.maxHeight : undefined,
13820
+ "maxWidth": !props.fullscreen ? props.maxWidth : undefined,
13803
13821
  "role": "dialog",
13804
13822
  "onAfterEnter": onAfterEnter,
13805
13823
  "onAfterLeave": onAfterLeave
@@ -14896,7 +14914,7 @@
14896
14914
  });
14897
14915
 
14898
14916
  // Styles
14899
- const VCode = createSimpleFunctional('v-code');
14917
+ const VCode = createSimpleFunctional('v-code', 'code');
14900
14918
 
14901
14919
  // Types
14902
14920
 
@@ -16633,7 +16651,7 @@
16633
16651
  hue.value = hsva.h;
16634
16652
  model.value = hsva;
16635
16653
  };
16636
- vue.onMounted(() => {
16654
+ vue.onBeforeMount(() => {
16637
16655
  if (!props.modes.includes(mode.value)) mode.value = props.modes[0];
16638
16656
  });
16639
16657
  provideDefaults({
@@ -18392,7 +18410,9 @@
18392
18410
  if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
18393
18411
  return Math.ceil(itemsLength.value / itemsPerPage.value);
18394
18412
  });
18395
- vue.watchEffect(() => {
18413
+
18414
+ // Don't run immediately, items may not have been loaded yet: #17966
18415
+ vue.watch([page, pageCount], () => {
18396
18416
  if (page.value > pageCount.value) {
18397
18417
  page.value = pageCount.value;
18398
18418
  }
@@ -23463,7 +23483,7 @@
23463
23483
  });
23464
23484
 
23465
23485
  // Styles
23466
- const VKbd = createSimpleFunctional('v-kbd');
23486
+ const VKbd = createSimpleFunctional('v-kbd', 'kbd');
23467
23487
 
23468
23488
  const makeVLayoutProps = propsFactory({
23469
23489
  ...makeComponentProps(),
@@ -29650,36 +29670,32 @@
29650
29670
  props: makeVTreeviewChildrenProps(),
29651
29671
  setup(props, _ref) {
29652
29672
  let {
29653
- emit,
29654
29673
  slots
29655
29674
  } = _ref;
29656
- const isLoading = vue.shallowRef(null);
29675
+ const isLoading = vue.reactive(new Set());
29657
29676
  const isClickOnOpen = vue.computed(() => props.openOnClick != null ? props.openOnClick : props.selectable);
29658
- function checkChildren(item) {
29659
- return new Promise(resolve => {
29660
- if (!props.items?.length || !props.loadChildren) return resolve();
29677
+ async function checkChildren(item) {
29678
+ try {
29679
+ if (!props.items?.length || !props.loadChildren) return;
29661
29680
  if (item?.children?.length === 0) {
29662
- isLoading.value = item.value;
29663
- props.loadChildren(item).then(resolve);
29664
- return;
29681
+ isLoading.add(item.value);
29682
+ await props.loadChildren(item.raw);
29665
29683
  }
29666
- resolve();
29667
- }).finally(() => {
29668
- isLoading.value = null;
29669
- });
29684
+ } finally {
29685
+ isLoading.delete(item.value);
29686
+ }
29670
29687
  }
29671
29688
  function selectItem(select, isSelected) {
29672
29689
  if (props.selectable) {
29673
29690
  select(!isSelected);
29674
29691
  }
29675
29692
  }
29676
- return () => slots.default?.() ?? props.items?.map(_ref2 => {
29677
- let {
29693
+ return () => slots.default?.() ?? props.items?.map(item => {
29694
+ const {
29678
29695
  children,
29679
- props: itemProps,
29680
- raw: item
29681
- } = _ref2;
29682
- const loading = isLoading.value === item.value;
29696
+ props: itemProps
29697
+ } = item;
29698
+ const loading = isLoading.has(item.value);
29683
29699
  const slotsWithItem = {
29684
29700
  prepend: slotProps => vue.createVNode(vue.Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && vue.createVNode("div", null, [vue.createVNode(VCheckboxBtn, {
29685
29701
  "key": item.value,
@@ -29698,26 +29714,29 @@
29698
29714
  }
29699
29715
  }, null)]), slots.prepend?.({
29700
29716
  ...slotProps,
29701
- item
29717
+ item: item.raw,
29718
+ internalItem: item
29702
29719
  })]),
29703
29720
  append: slots.append ? slotProps => slots.append?.({
29704
29721
  ...slotProps,
29705
- item
29722
+ item: item.raw,
29723
+ internalItem: item
29706
29724
  }) : undefined,
29707
29725
  title: slots.title ? slotProps => slots.title?.({
29708
29726
  ...slotProps,
29709
- item
29727
+ item: item.raw,
29728
+ internalItem: item
29710
29729
  }) : undefined
29711
29730
  };
29712
29731
  const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
29713
29732
  const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
29714
29733
  return children ? vue.createVNode(VTreeviewGroup, vue.mergeProps(treeviewGroupProps, {
29715
- "value": props.returnObject ? item : treeviewGroupProps?.value
29734
+ "value": props.returnObject ? item.raw : treeviewGroupProps?.value
29716
29735
  }), {
29717
- activator: _ref3 => {
29736
+ activator: _ref2 => {
29718
29737
  let {
29719
29738
  props: activatorProps
29720
- } = _ref3;
29739
+ } = _ref2;
29721
29740
  const listItemProps = {
29722
29741
  ...itemProps,
29723
29742
  ...activatorProps,
@@ -29726,7 +29745,7 @@
29726
29745
  onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : undefined
29727
29746
  };
29728
29747
  return vue.createVNode(VTreeviewItem, vue.mergeProps(listItemProps, {
29729
- "value": props.returnObject ? vue.toRaw(item) : itemProps.value,
29748
+ "value": props.returnObject ? vue.toRaw(item.raw) : itemProps.value,
29730
29749
  "loading": loading
29731
29750
  }), slotsWithItem);
29732
29751
  },
@@ -29735,9 +29754,11 @@
29735
29754
  "returnObject": props.returnObject
29736
29755
  }), slots)
29737
29756
  }) : slots.item?.({
29738
- props: itemProps
29757
+ props: itemProps,
29758
+ item: item.raw,
29759
+ internalItem: item
29739
29760
  }) ?? vue.createVNode(VTreeviewItem, vue.mergeProps(itemProps, {
29740
- "value": props.returnObject ? vue.toRaw(item) : itemProps.value
29761
+ "value": props.returnObject ? vue.toRaw(item.raw) : itemProps.value
29741
29762
  }), slotsWithItem);
29742
29763
  });
29743
29764
  }
@@ -29811,7 +29832,8 @@
29811
29832
  const getPath = vListRef.value?.getPath;
29812
29833
  if (!getPath) return null;
29813
29834
  return new Set(filteredItems.value.flatMap(item => {
29814
- return [...getPath(item.props.value), ...getChildren(item.props.value)];
29835
+ const itemVal = props.returnObject ? item.raw : item.props.value;
29836
+ return [...getPath(itemVal), ...getChildren(itemVal)].map(vue.toRaw);
29815
29837
  }));
29816
29838
  });
29817
29839
  function getChildren(id) {
@@ -30232,7 +30254,7 @@
30232
30254
  const walk = children => {
30233
30255
  for (const child of children) {
30234
30256
  if (!child) continue;
30235
- if (child === vnode) {
30257
+ if (child === vnode || child.el && vnode.el && child.el === vnode.el) {
30236
30258
  return true;
30237
30259
  }
30238
30260
  stack.add(child);
@@ -30252,7 +30274,8 @@
30252
30274
  return false;
30253
30275
  };
30254
30276
  if (!walk([root.subTree])) {
30255
- throw new Error('Could not find original vnode');
30277
+ consoleError('Could not find original vnode, component will not inherit provides');
30278
+ return root;
30256
30279
  }
30257
30280
 
30258
30281
  // Return the first component parent
@@ -30378,7 +30401,7 @@
30378
30401
  goTo
30379
30402
  };
30380
30403
  }
30381
- const version$1 = "3.7.2";
30404
+ const version$1 = "3.7.4";
30382
30405
  createVuetify$1.version = version$1;
30383
30406
 
30384
30407
  // Vue's inject() can only be used in setup
@@ -30631,7 +30654,7 @@
30631
30654
 
30632
30655
  /* eslint-disable local-rules/sort-imports */
30633
30656
 
30634
- const version = "3.7.2";
30657
+ const version = "3.7.4";
30635
30658
 
30636
30659
  /* eslint-disable local-rules/sort-imports */
30637
30660