@vuetify/nightly 3.0.0-beta.10 → 3.0.0-beta.13

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 (224) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/dist/json/attributes.json +37 -29
  3. package/dist/json/importMap.json +46 -46
  4. package/dist/json/tags.json +10 -8
  5. package/dist/json/web-types.json +101 -87
  6. package/dist/vuetify.css +545 -441
  7. package/dist/vuetify.d.ts +12095 -10059
  8. package/dist/vuetify.esm.js +401 -266
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +371 -236
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +3 -3
  13. package/dist/vuetify.min.js +496 -490
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/blueprints/index.d.ts +171 -0
  16. package/lib/blueprints/md1.d.ts +167 -0
  17. package/lib/blueprints/md2.d.ts +167 -0
  18. package/lib/blueprints/md3.d.ts +167 -0
  19. package/lib/components/VAlert/index.d.ts +185 -0
  20. package/lib/components/VApp/index.d.ts +83 -0
  21. package/lib/components/VAppBar/VAppBar.css +3 -0
  22. package/lib/components/VAppBar/VAppBar.sass +3 -0
  23. package/lib/components/VAppBar/index.d.ts +156 -0
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.ts +1569 -0
  27. package/lib/components/VAvatar/VAvatar.css +44 -2
  28. package/lib/components/VAvatar/VAvatar.mjs +16 -12
  29. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  30. package/lib/components/VAvatar/VAvatar.sass +5 -1
  31. package/lib/components/VAvatar/_variables.scss +9 -4
  32. package/lib/components/VAvatar/index.d.ts +80 -0
  33. package/lib/components/VBadge/index.d.ts +123 -0
  34. package/lib/components/VBanner/index.d.ts +122 -0
  35. package/lib/components/VBottomNavigation/index.d.ts +143 -0
  36. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +2 -2
  37. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  38. package/lib/components/VBreadcrumbs/index.d.ts +301 -0
  39. package/lib/components/VBtn/VBtn.css +8 -3
  40. package/lib/components/VBtn/VBtn.mjs +16 -6
  41. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  42. package/lib/components/VBtn/index.d.ts +210 -0
  43. package/lib/components/VBtnGroup/index.d.ts +65 -0
  44. package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -3
  45. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  46. package/lib/components/VBtnToggle/index.d.ts +175 -0
  47. package/lib/components/VCard/VCard.css +8 -3
  48. package/lib/components/VCard/index.d.ts +230 -0
  49. package/lib/components/VCarousel/VCarousel.mjs +3 -3
  50. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  51. package/lib/components/VCarousel/index.d.ts +80 -0
  52. package/lib/components/VCheckbox/index.d.ts +291 -0
  53. package/lib/components/VChip/index.d.ts +195 -0
  54. package/lib/components/VChipGroup/index.d.ts +89 -0
  55. package/lib/components/VCode/index.d.ts +19 -0
  56. package/lib/components/VColorPicker/index.d.ts +116 -0
  57. package/lib/components/VCombobox/VCombobox.mjs +1 -1
  58. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  59. package/lib/components/VCombobox/index.d.ts +1590 -0
  60. package/lib/components/VCounter/index.d.ts +223 -0
  61. package/lib/components/VDefaultsProvider/index.d.ts +26 -0
  62. package/lib/components/VDialog/VDialog.css +2 -0
  63. package/lib/components/VDialog/VDialog.mjs +17 -12
  64. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  65. package/lib/components/VDialog/VDialog.sass +2 -0
  66. package/lib/components/VDialog/index.d.ts +859 -0
  67. package/lib/components/VDivider/index.d.ts +22 -0
  68. package/lib/components/VExpansionPanel/VExpansionPanel.css +8 -3
  69. package/lib/components/VExpansionPanel/index.d.ts +206 -0
  70. package/lib/components/VField/VField.css +27 -24
  71. package/lib/components/VField/VField.mjs +1 -1
  72. package/lib/components/VField/VField.mjs.map +1 -1
  73. package/lib/components/VField/VField.sass +23 -21
  74. package/lib/components/VField/index.d.ts +332 -0
  75. package/lib/components/VFileInput/VFileInput.mjs +3 -3
  76. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  77. package/lib/components/VFileInput/index.d.ts +236 -0
  78. package/lib/components/VFooter/VFooter.css +7 -0
  79. package/lib/components/VFooter/VFooter.sass +1 -1
  80. package/lib/components/VFooter/_variables.scss +11 -0
  81. package/lib/components/VFooter/index.d.ts +76 -0
  82. package/lib/components/VForm/index.d.ts +72 -0
  83. package/lib/components/VGrid/index.d.ts +154 -0
  84. package/lib/components/VHover/index.d.ts +30 -0
  85. package/lib/components/VIcon/index.d.ts +124 -0
  86. package/lib/components/VImg/VImg.mjs +29 -27
  87. package/lib/components/VImg/VImg.mjs.map +1 -1
  88. package/lib/components/VImg/index.d.ts +89 -0
  89. package/lib/components/VInput/VInput.mjs +4 -4
  90. package/lib/components/VInput/VInput.mjs.map +1 -1
  91. package/lib/components/VInput/index.d.ts +325 -0
  92. package/lib/components/VItemGroup/index.d.ts +210 -0
  93. package/lib/components/VKbd/index.d.ts +19 -0
  94. package/lib/components/VLabel/VLabel.css +4 -1
  95. package/lib/components/VLabel/VLabel.mjs +4 -1
  96. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  97. package/lib/components/VLabel/VLabel.sass +3 -1
  98. package/lib/components/VLabel/index.d.ts +16 -0
  99. package/lib/components/VLayout/index.d.ts +75 -0
  100. package/lib/components/VLazy/index.d.ts +85 -0
  101. package/lib/components/VList/VListItem.css +8 -3
  102. package/lib/components/VList/VListItem.mjs +4 -4
  103. package/lib/components/VList/VListItem.mjs.map +1 -1
  104. package/lib/components/VList/index.d.ts +1250 -0
  105. package/lib/components/VLocaleProvider/index.d.ts +23 -0
  106. package/lib/components/VMain/index.d.ts +26 -0
  107. package/lib/components/VMenu/VMenu.mjs +16 -3
  108. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  109. package/lib/components/VMenu/index.d.ts +817 -0
  110. package/lib/components/VMessages/index.d.ts +234 -0
  111. package/lib/components/VNavigationDrawer/index.d.ts +148 -0
  112. package/lib/components/VNoSsr/index.d.ts +7 -0
  113. package/lib/components/VOverlay/VOverlay.mjs +4 -3
  114. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  115. package/lib/components/VOverlay/index.d.ts +579 -0
  116. package/lib/components/VOverlay/useActivator.mjs +27 -1
  117. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  118. package/lib/components/VPagination/VPagination.mjs +6 -3
  119. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  120. package/lib/components/VPagination/index.d.ts +247 -0
  121. package/lib/components/VParallax/VParallax.mjs +24 -10
  122. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  123. package/lib/components/VParallax/index.d.ts +18 -0
  124. package/lib/components/VProgressCircular/index.d.ts +68 -0
  125. package/lib/components/VProgressLinear/index.d.ts +101 -0
  126. package/lib/components/VRadio/index.d.ts +103 -0
  127. package/lib/components/VRadioGroup/VRadioGroup.css +2 -3
  128. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -1
  129. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  130. package/lib/components/VRadioGroup/VRadioGroup.sass +2 -2
  131. package/lib/components/VRadioGroup/_variables.scss +0 -1
  132. package/lib/components/VRadioGroup/index.d.ts +186 -0
  133. package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -2
  134. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  135. package/lib/components/VRangeSlider/index.d.ts +242 -0
  136. package/lib/components/VRating/index.d.ts +356 -0
  137. package/lib/components/VResponsive/index.d.ts +23 -0
  138. package/lib/components/VSelect/VSelect.mjs +1 -1
  139. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  140. package/lib/components/VSelect/index.d.ts +1521 -0
  141. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
  142. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  143. package/lib/components/VSelectionControl/index.d.ts +275 -0
  144. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +5 -0
  145. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -1
  146. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  147. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +5 -0
  148. package/lib/components/VSelectionControlGroup/index.d.ts +47 -0
  149. package/lib/components/VSheet/index.d.ts +68 -0
  150. package/lib/components/VSlideGroup/index.d.ts +151 -0
  151. package/lib/components/VSlider/VSlider.css +7 -2
  152. package/lib/components/VSlider/VSlider.mjs +14 -4
  153. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  154. package/lib/components/VSlider/VSlider.sass +6 -2
  155. package/lib/components/VSlider/VSliderTrack.css +20 -20
  156. package/lib/components/VSlider/VSliderTrack.mjs +7 -3
  157. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  158. package/lib/components/VSlider/VSliderTrack.sass +14 -14
  159. package/lib/components/VSlider/_variables.scss +2 -2
  160. package/lib/components/VSlider/index.d.ts +239 -0
  161. package/lib/components/VSlider/slider.mjs +2 -2
  162. package/lib/components/VSlider/slider.mjs.map +1 -1
  163. package/lib/components/VSnackbar/VSnackbar.mjs +3 -2
  164. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  165. package/lib/components/VSnackbar/index.d.ts +892 -0
  166. package/lib/components/VSwitch/index.d.ts +175 -0
  167. package/lib/components/VSystemBar/index.d.ts +61 -0
  168. package/lib/components/VTable/index.d.ts +39 -0
  169. package/lib/components/VTabs/VTab.mjs +1 -0
  170. package/lib/components/VTabs/VTab.mjs.map +1 -1
  171. package/lib/components/VTabs/index.d.ts +178 -0
  172. package/lib/components/VTextField/VTextField.css +2 -3
  173. package/lib/components/VTextField/VTextField.sass +2 -4
  174. package/lib/components/VTextField/index.d.ts +582 -0
  175. package/lib/components/VTextarea/VTextarea.css +5 -3
  176. package/lib/components/VTextarea/VTextarea.mjs +2 -1
  177. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  178. package/lib/components/VTextarea/VTextarea.sass +5 -4
  179. package/lib/components/VTextarea/index.d.ts +218 -0
  180. package/lib/components/VThemeProvider/index.d.ts +24 -0
  181. package/lib/components/VTimeline/VTimeline.css +21 -6
  182. package/lib/components/VTimeline/VTimeline.mjs +6 -1
  183. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  184. package/lib/components/VTimeline/VTimeline.sass +16 -2
  185. package/lib/components/VTimeline/_variables.scss +4 -3
  186. package/lib/components/VTimeline/index.d.ts +154 -0
  187. package/lib/components/VToolbar/VToolbar.css +0 -1
  188. package/lib/components/VToolbar/VToolbar.sass +0 -1
  189. package/lib/components/VToolbar/index.d.ts +414 -0
  190. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  191. package/lib/components/VTooltip/index.d.ts +799 -0
  192. package/lib/components/VValidation/index.d.ts +61 -0
  193. package/lib/components/VWindow/index.d.ts +428 -0
  194. package/lib/components/index.d.ts +12037 -10009
  195. package/lib/components/transitions/index.d.ts +454 -0
  196. package/lib/composables/display.mjs +3 -3
  197. package/lib/composables/display.mjs.map +1 -1
  198. package/lib/composables/items.mjs.map +1 -1
  199. package/lib/composables/locale.mjs +10 -3
  200. package/lib/composables/locale.mjs.map +1 -1
  201. package/lib/composables/proxiedModel.mjs +28 -10
  202. package/lib/composables/proxiedModel.mjs.map +1 -1
  203. package/lib/composables/router.mjs +10 -2
  204. package/lib/composables/router.mjs.map +1 -1
  205. package/lib/composables/selectLink.mjs +4 -4
  206. package/lib/composables/selectLink.mjs.map +1 -1
  207. package/lib/composables/theme.mjs +37 -33
  208. package/lib/composables/theme.mjs.map +1 -1
  209. package/lib/composables/validation.mjs +1 -1
  210. package/lib/composables/validation.mjs.map +1 -1
  211. package/lib/entry-bundler.mjs +1 -1
  212. package/lib/framework.mjs +46 -51
  213. package/lib/framework.mjs.map +1 -1
  214. package/lib/index.d.ts +31 -22
  215. package/lib/locale/adapters/vue-i18n.d.ts +35 -0
  216. package/lib/locale/adapters/vue-intl.d.ts +42 -0
  217. package/lib/styles/main.css +73 -73
  218. package/lib/styles/settings/_colors.scss +84 -84
  219. package/lib/styles/tools/_states.sass +8 -3
  220. package/lib/util/getCurrentInstance.mjs +2 -3
  221. package/lib/util/getCurrentInstance.mjs.map +1 -1
  222. package/lib/util/helpers.mjs +6 -11
  223. package/lib/util/helpers.mjs.map +1 -1
  224. package/package.json +4 -2
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.0.0-beta.10
2
+ * Vuetify v3.0.0-beta.13
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -354,21 +354,16 @@
354
354
  } // Only allow a single return type
355
355
 
356
356
  function destructComputed(getter) {
357
- const refs = {};
357
+ const refs = vue.reactive({});
358
358
  const base = vue.computed(getter);
359
-
360
- for (const key in base.value) {
361
- refs[key] = vue.toRef(base.value, key);
362
- }
363
-
364
- vue.watch(base, val => {
365
- for (const key in val) {
366
- refs[key].value = val[key];
359
+ vue.watchEffect(() => {
360
+ for (const key in base.value) {
361
+ refs[key] = base.value[key];
367
362
  }
368
363
  }, {
369
364
  flush: 'sync'
370
365
  });
371
- return refs;
366
+ return vue.toRefs(refs);
372
367
  }
373
368
  /** Array.includes but value can be any type */
374
369
 
@@ -929,10 +924,9 @@
929
924
  return vm;
930
925
  }
931
926
  function getCurrentInstanceName() {
932
- var _getCurrentInstance$t;
933
-
934
927
  let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
935
- return toKebabCase((_getCurrentInstance$t = getCurrentInstance(name).type) == null ? void 0 : _getCurrentInstance$t.name);
928
+ const vm = getCurrentInstance(name).type;
929
+ return toKebabCase((vm == null ? void 0 : vm.aliasName) || (vm == null ? void 0 : vm.name));
936
930
  }
937
931
  let _uid = 0;
938
932
 
@@ -1702,8 +1696,7 @@
1702
1696
  } // Composables
1703
1697
 
1704
1698
 
1705
- function createTheme(app, options) {
1706
- const head = app._context.provides.usehead;
1699
+ function createTheme(options) {
1707
1700
  const parsedOptions = vue.reactive(parseThemeOptions(options));
1708
1701
  const name = vue.ref(parsedOptions.defaultTheme);
1709
1702
  const themes = vue.ref(parsedOptions.themes);
@@ -1790,46 +1783,51 @@
1790
1783
  return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
1791
1784
  });
1792
1785
 
1793
- if (head) {
1794
- head.addHeadObjs(vue.computed(() => {
1795
- const style = {
1796
- children: styles.value,
1797
- type: 'text/css',
1798
- id: 'vuetify-theme-stylesheet'
1799
- };
1800
- if (parsedOptions.cspNonce) style.nonce = parsedOptions.cspNonce;
1801
- return {
1802
- style: [style]
1803
- };
1804
- }));
1786
+ function install(app) {
1787
+ const head = app._context.provides.usehead;
1805
1788
 
1806
- if (IN_BROWSER) {
1807
- vue.watchEffect(() => head.updateDOM());
1808
- }
1809
- } else {
1810
- let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
1811
- vue.watch(styles, updateStyles, {
1812
- immediate: true
1813
- });
1814
-
1815
- function updateStyles() {
1816
- if (parsedOptions.isDisabled) return;
1789
+ if (head) {
1790
+ head.addHeadObjs(vue.computed(() => {
1791
+ const style = {
1792
+ children: styles.value,
1793
+ type: 'text/css',
1794
+ id: 'vuetify-theme-stylesheet'
1795
+ };
1796
+ if (parsedOptions.cspNonce) style.nonce = parsedOptions.cspNonce;
1797
+ return {
1798
+ style: [style]
1799
+ };
1800
+ }));
1817
1801
 
1818
- if (typeof document !== 'undefined' && !styleEl) {
1819
- const el = document.createElement('style');
1820
- el.type = 'text/css';
1821
- el.id = 'vuetify-theme-stylesheet';
1822
- if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce);
1823
- styleEl = el;
1824
- document.head.appendChild(styleEl);
1802
+ if (IN_BROWSER) {
1803
+ vue.watchEffect(() => head.updateDOM());
1825
1804
  }
1805
+ } else {
1806
+ let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
1807
+ vue.watch(styles, updateStyles, {
1808
+ immediate: true
1809
+ });
1810
+
1811
+ function updateStyles() {
1812
+ if (parsedOptions.isDisabled) return;
1813
+
1814
+ if (typeof document !== 'undefined' && !styleEl) {
1815
+ const el = document.createElement('style');
1816
+ el.type = 'text/css';
1817
+ el.id = 'vuetify-theme-stylesheet';
1818
+ if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce);
1819
+ styleEl = el;
1820
+ document.head.appendChild(styleEl);
1821
+ }
1826
1822
 
1827
- if (styleEl) styleEl.innerHTML = styles.value;
1823
+ if (styleEl) styleEl.innerHTML = styles.value;
1824
+ }
1828
1825
  }
1829
1826
  }
1830
1827
 
1831
1828
  const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
1832
1829
  return {
1830
+ install,
1833
1831
  isDisabled: parsedOptions.isDisabled,
1834
1832
  name,
1835
1833
  themes,
@@ -2787,20 +2785,22 @@
2787
2785
  'v-img__img--contain': !props.cover
2788
2786
  }));
2789
2787
 
2790
- const __image = vue.computed(() => {
2788
+ const __image = () => {
2791
2789
  var _slots$sources;
2792
2790
 
2793
- if (!normalisedSrc.value.src || state.value === 'idle') return;
2794
- const img = vue.h('img', {
2795
- class: ['v-img__img', containClasses.value],
2796
- src: normalisedSrc.value.src,
2797
- srcset: normalisedSrc.value.srcset,
2798
- alt: '',
2799
- sizes: props.sizes,
2800
- ref: image,
2801
- onLoad,
2802
- onError
2803
- });
2791
+ if (!normalisedSrc.value.src || state.value === 'idle') return null;
2792
+
2793
+ const img = vue.createVNode("img", {
2794
+ "class": ['v-img__img', containClasses.value],
2795
+ "src": normalisedSrc.value.src,
2796
+ "srcset": normalisedSrc.value.srcset,
2797
+ "alt": "",
2798
+ "sizes": props.sizes,
2799
+ "ref": image,
2800
+ "onLoad": onLoad,
2801
+ "onError": onError
2802
+ }, null);
2803
+
2804
2804
  const sources = (_slots$sources = slots.sources) == null ? void 0 : _slots$sources.call(slots);
2805
2805
  return vue.createVNode(MaybeTransition, {
2806
2806
  "transition": props.transition,
@@ -2810,9 +2810,9 @@
2810
2810
  "class": "v-img__picture"
2811
2811
  }, [sources, img]) : img, [[vue.vShow, state.value === 'loaded']])]
2812
2812
  });
2813
- });
2813
+ };
2814
2814
 
2815
- const __preloadImage = vue.computed(() => vue.createVNode(MaybeTransition, {
2815
+ const __preloadImage = () => vue.createVNode(MaybeTransition, {
2816
2816
  "transition": props.transition
2817
2817
  }, {
2818
2818
  default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && vue.createVNode("img", {
@@ -2820,10 +2820,10 @@
2820
2820
  "src": normalisedSrc.value.lazySrc,
2821
2821
  "alt": ""
2822
2822
  }, null)]
2823
- }));
2823
+ });
2824
2824
 
2825
- const __placeholder = vue.computed(() => {
2826
- if (!slots.placeholder) return;
2825
+ const __placeholder = () => {
2826
+ if (!slots.placeholder) return null;
2827
2827
  return vue.createVNode(MaybeTransition, {
2828
2828
  "transition": props.transition,
2829
2829
  "appear": true
@@ -2832,10 +2832,10 @@
2832
2832
  "class": "v-img__placeholder"
2833
2833
  }, [slots.placeholder()])]
2834
2834
  });
2835
- });
2835
+ };
2836
2836
 
2837
- const __error = vue.computed(() => {
2838
- if (!slots.error) return;
2837
+ const __error = () => {
2838
+ if (!slots.error) return null;
2839
2839
  return vue.createVNode(MaybeTransition, {
2840
2840
  "transition": props.transition,
2841
2841
  "appear": true
@@ -2844,17 +2844,17 @@
2844
2844
  "class": "v-img__error"
2845
2845
  }, [slots.error()])]
2846
2846
  });
2847
- });
2847
+ };
2848
2848
 
2849
- const __gradient = vue.computed(() => {
2850
- if (!props.gradient) return;
2849
+ const __gradient = () => {
2850
+ if (!props.gradient) return null;
2851
2851
  return vue.createVNode("div", {
2852
2852
  "class": "v-img__gradient",
2853
2853
  "style": {
2854
2854
  backgroundImage: `linear-gradient(${props.gradient})`
2855
2855
  }
2856
2856
  }, null);
2857
- });
2857
+ };
2858
2858
 
2859
2859
  const isBooted = vue.ref(false);
2860
2860
  {
@@ -2881,7 +2881,7 @@
2881
2881
  "aria-label": props.alt,
2882
2882
  "role": props.alt ? 'img' : undefined
2883
2883
  }, {
2884
- additional: () => [__image.value, __preloadImage.value, __gradient.value, __placeholder.value, __error.value],
2884
+ additional: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(__image, null, null), vue.createVNode(__preloadImage, null, null), vue.createVNode(__gradient, null, null), vue.createVNode(__placeholder, null, null), vue.createVNode(__error, null, null)]),
2885
2885
  default: slots.default
2886
2886
  }), [[vue.resolveDirective("intersect"), {
2887
2887
  handler: init,
@@ -3211,6 +3211,23 @@
3211
3211
  return pick(props, Object.keys((VToolbar == null ? void 0 : VToolbar.props) ?? {}));
3212
3212
  }
3213
3213
 
3214
+ function useToggleScope(source, cb) {
3215
+ let scope;
3216
+ vue.watch(source, active => {
3217
+ if (active && !scope) {
3218
+ scope = vue.effectScope();
3219
+ scope.run(cb);
3220
+ } else {
3221
+ var _scope;
3222
+
3223
+ (_scope = scope) == null ? void 0 : _scope.stop();
3224
+ scope = undefined;
3225
+ }
3226
+ }, {
3227
+ immediate: true
3228
+ });
3229
+ }
3230
+
3214
3231
  // Utilities
3215
3232
 
3216
3233
  // Composables
@@ -3218,28 +3235,45 @@
3218
3235
  let transformIn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;
3219
3236
  let transformOut = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : v => v;
3220
3237
  const vm = getCurrentInstance('useProxiedModel');
3221
- const propIsDefined = vue.computed(() => {
3222
- var _vm$vnode$props, _vm$vnode$props2;
3238
+ const internal = vue.ref(props[prop]);
3239
+ const kebabProp = toKebabCase(prop);
3240
+ const checkKebab = kebabProp !== prop;
3241
+ const isControlled = checkKebab ? vue.computed(() => {
3242
+ var _vm$vnode$props, _vm$vnode$props2, _vm$vnode$props3, _vm$vnode$props4;
3223
3243
 
3224
3244
  void props[prop];
3225
- return !!(vm != null && (_vm$vnode$props = vm.vnode.props) != null && _vm$vnode$props.hasOwnProperty(prop) || vm != null && (_vm$vnode$props2 = vm.vnode.props) != null && _vm$vnode$props2.hasOwnProperty(toKebabCase(prop)));
3245
+ return !!(((_vm$vnode$props = vm.vnode.props) != null && _vm$vnode$props.hasOwnProperty(prop) || (_vm$vnode$props2 = vm.vnode.props) != null && _vm$vnode$props2.hasOwnProperty(kebabProp)) && ((_vm$vnode$props3 = vm.vnode.props) != null && _vm$vnode$props3.hasOwnProperty(`onUpdate:${prop}`) || (_vm$vnode$props4 = vm.vnode.props) != null && _vm$vnode$props4.hasOwnProperty(`onUpdate:${kebabProp}`)));
3246
+ }) : vue.computed(() => {
3247
+ var _vm$vnode$props5, _vm$vnode$props6;
3248
+
3249
+ void props[prop];
3250
+ return !!((_vm$vnode$props5 = vm.vnode.props) != null && _vm$vnode$props5.hasOwnProperty(prop) && (_vm$vnode$props6 = vm.vnode.props) != null && _vm$vnode$props6.hasOwnProperty(`onUpdate:${prop}`));
3251
+ });
3252
+ useToggleScope(() => !isControlled.value, () => {
3253
+ vue.watch(() => props[prop], val => {
3254
+ internal.value = val;
3255
+ });
3226
3256
  });
3227
- const internal = vue.ref(transformIn(props[prop]));
3228
- return vue.computed({
3257
+ const model = vue.computed({
3229
3258
  get() {
3230
- if (propIsDefined.value) return transformIn(props[prop]);else return internal.value;
3259
+ return transformIn(isControlled.value ? props[prop] : internal.value);
3231
3260
  },
3232
3261
 
3233
3262
  set(newValue) {
3234
- if ((propIsDefined.value ? transformIn(props[prop]) : internal.value) === newValue) {
3263
+ if (transformIn(isControlled.value ? props[prop] : internal.value) === newValue) {
3235
3264
  return;
3236
3265
  }
3237
3266
 
3267
+ newValue = transformOut(newValue);
3238
3268
  internal.value = newValue;
3239
- vm == null ? void 0 : vm.emit(`update:${prop}`, transformOut(newValue));
3269
+ vm == null ? void 0 : vm.emit(`update:${prop}`, newValue);
3240
3270
  }
3241
3271
 
3242
3272
  });
3273
+ Object.defineProperty(model, 'externalValue', {
3274
+ get: () => isControlled.value ? props[prop] : internal.value
3275
+ });
3276
+ return model;
3243
3277
  }
3244
3278
 
3245
3279
  const VAppBar = defineComponent({
@@ -3654,9 +3688,7 @@
3654
3688
  const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');
3655
3689
  const VBtnToggle = genericComponent()({
3656
3690
  name: 'VBtnToggle',
3657
- props: makeGroupProps({
3658
- selectedClass: 'v-btn--selected'
3659
- }),
3691
+ props: makeGroupProps(),
3660
3692
  emits: {
3661
3693
  'update:modelValue': value => true
3662
3694
  },
@@ -4760,16 +4792,24 @@
4760
4792
  }
4761
4793
 
4762
4794
  const link = props.to ? RouterLink.useLink(props) : undefined;
4763
- return { ...link,
4795
+ return {
4764
4796
  isLink,
4765
4797
  isClickable,
4798
+ route: link == null ? void 0 : link.route,
4799
+ navigate: link == null ? void 0 : link.navigate,
4800
+ isActive: link && vue.computed(() => {
4801
+ var _link$isExactActive, _link$isActive;
4802
+
4803
+ return props.exact ? (_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value : (_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value;
4804
+ }),
4766
4805
  href: vue.computed(() => props.to ? link == null ? void 0 : link.route.value.href : props.href)
4767
4806
  };
4768
4807
  }
4769
4808
  const makeRouterProps = propsFactory({
4770
4809
  href: String,
4771
4810
  replace: Boolean,
4772
- to: [String, Object]
4811
+ to: [String, Object],
4812
+ exact: Boolean
4773
4813
  }, 'router');
4774
4814
  let inTransition = false;
4775
4815
  function useBackButton(router, cb) {
@@ -4815,11 +4855,11 @@
4815
4855
 
4816
4856
  function useSelectLink(link, select) {
4817
4857
  vue.watch(() => {
4818
- var _link$isExactActive;
4858
+ var _link$isActive;
4819
4859
 
4820
- return (_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value;
4821
- }, isExactActive => {
4822
- if (link.isLink.value && isExactActive && select) {
4860
+ return (_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value;
4861
+ }, isActive => {
4862
+ if (link.isLink.value && isActive && select) {
4823
4863
  vue.nextTick(() => {
4824
4864
  select(true);
4825
4865
  });
@@ -4835,7 +4875,10 @@
4835
4875
  Ripple
4836
4876
  },
4837
4877
  props: {
4838
- active: Boolean,
4878
+ active: {
4879
+ type: Boolean,
4880
+ default: undefined
4881
+ },
4839
4882
  symbol: {
4840
4883
  type: null,
4841
4884
  default: VBtnToggleSymbol
@@ -4911,10 +4954,16 @@
4911
4954
  roundedClasses
4912
4955
  } = useRounded(props);
4913
4956
  const {
4914
- sizeClasses
4957
+ sizeClasses,
4958
+ sizeStyles
4915
4959
  } = useSize(props);
4916
4960
  const group = useGroupItem(props, props.symbol, false);
4917
4961
  const link = useLink(props, attrs);
4962
+ const isActive = vue.computed(() => {
4963
+ var _link$isActive;
4964
+
4965
+ return props.active !== false && (props.active || ((_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value) || (group == null ? void 0 : group.isSelected.value));
4966
+ });
4918
4967
  const isDisabled = vue.computed(() => (group == null ? void 0 : group.disabled.value) || props.disabled);
4919
4968
  const isElevated = vue.computed(() => {
4920
4969
  return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
@@ -4927,10 +4976,11 @@
4927
4976
  const hasColor = !group || group.isSelected.value;
4928
4977
  const hasPrepend = !!(props.prependIcon || slots.prepend);
4929
4978
  const hasAppend = !!(props.appendIcon || slots.append);
4979
+ const hasIcon = !!(props.icon && props.icon !== true);
4930
4980
  return vue.withDirectives(vue.createVNode(Tag, {
4931
4981
  "type": Tag === 'a' ? undefined : 'button',
4932
4982
  "class": ['v-btn', group == null ? void 0 : group.selectedClass.value, {
4933
- 'v-btn--active': props.active,
4983
+ 'v-btn--active': isActive.value,
4934
4984
  'v-btn--block': props.block,
4935
4985
  'v-btn--disabled': isDisabled.value,
4936
4986
  'v-btn--elevated': isElevated.value,
@@ -4939,7 +4989,7 @@
4939
4989
  'v-btn--loading': props.loading,
4940
4990
  'v-btn--stacked': props.stacked
4941
4991
  }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
4942
- "style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value],
4992
+ "style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value],
4943
4993
  "disabled": isDisabled.value || undefined,
4944
4994
  "href": link.href.value,
4945
4995
  "onClick": e => {
@@ -4968,11 +5018,11 @@
4968
5018
  "key": "content",
4969
5019
  "defaults": {
4970
5020
  VIcon: {
4971
- icon: typeof props.icon === 'string' ? props.icon : undefined
5021
+ icon: hasIcon ? props.icon : undefined
4972
5022
  }
4973
5023
  }
4974
5024
  }, {
4975
- default: () => [((_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)) ?? (typeof props.icon === 'string' && vue.createVNode(VIcon, {
5025
+ default: () => [((_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)) ?? (hasIcon && vue.createVNode(VIcon, {
4976
5026
  "key": "icon"
4977
5027
  }, null))]
4978
5028
  })]), !props.icon && hasAppend && vue.createVNode(VDefaultsProvider, {
@@ -5094,9 +5144,16 @@
5094
5144
 
5095
5145
  function createLocale(app, options) {
5096
5146
  const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options);
5097
- const instance = adapter.createRoot(app);
5098
- app == null ? void 0 : app.provide(RtlSymbol, createRtl(instance, options));
5099
- return adapter;
5147
+
5148
+ function install(app) {
5149
+ const instance = adapter.createRoot(app);
5150
+ app.provide(RtlSymbol, createRtl(instance, options));
5151
+ }
5152
+
5153
+ return {
5154
+ adapter,
5155
+ install
5156
+ };
5100
5157
  }
5101
5158
  const LANG_PREFIX = '$vuetify.';
5102
5159
 
@@ -5570,7 +5627,7 @@
5570
5627
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
5571
5628
  let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();
5572
5629
  const model = useProxiedModel(props, 'modelValue');
5573
- const validationModel = vue.computed(() => props.validationValue ?? model.value);
5630
+ const validationModel = vue.computed(() => props.validationValue === undefined ? model.value : props.validationValue);
5574
5631
  const form = useForm();
5575
5632
  const internalErrorMessages = vue.ref([]);
5576
5633
  const isPristine = vue.ref(true);
@@ -5776,18 +5833,18 @@
5776
5833
  }, [hasPrepend && vue.createVNode("div", {
5777
5834
  "key": "prepend",
5778
5835
  "class": "v-input__prepend"
5779
- }, [props.prependIcon && vue.createVNode(InputIcon, {
5836
+ }, [(_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value), props.prependIcon && vue.createVNode(InputIcon, {
5780
5837
  "key": "prepend-icon",
5781
5838
  "name": "prepend"
5782
- }, null), (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value)]), slots.default && vue.createVNode("div", {
5839
+ }, null)]), slots.default && vue.createVNode("div", {
5783
5840
  "class": "v-input__control"
5784
5841
  }, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && vue.createVNode("div", {
5785
5842
  "key": "append",
5786
5843
  "class": "v-input__append"
5787
- }, [(_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value), props.appendIcon && vue.createVNode(InputIcon, {
5844
+ }, [props.appendIcon && vue.createVNode(InputIcon, {
5788
5845
  "key": "append-icon",
5789
5846
  "name": "append"
5790
- }, null)]), hasDetails && vue.createVNode("div", {
5847
+ }, null), (_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value)]), hasDetails && vue.createVNode("div", {
5791
5848
  "class": "v-input__details"
5792
5849
  }, [vue.createVNode(VMessages, {
5793
5850
  "active": hasMessages,
@@ -5813,6 +5870,7 @@
5813
5870
  name: 'VLabel',
5814
5871
  props: {
5815
5872
  text: String,
5873
+ clickable: Boolean,
5816
5874
  ...makeThemeProps()
5817
5875
  },
5818
5876
 
@@ -5824,7 +5882,9 @@
5824
5882
  var _slots$default;
5825
5883
 
5826
5884
  return vue.createVNode("label", {
5827
- "class": "v-label"
5885
+ "class": ['v-label', {
5886
+ 'v-label--clickable': props.clickable
5887
+ }]
5828
5888
  }, [props.text, (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]);
5829
5889
  });
5830
5890
  return {};
@@ -5877,7 +5937,9 @@
5877
5937
  var _slots$default;
5878
5938
 
5879
5939
  return vue.createVNode("div", {
5880
- "class": "v-selection-control-group",
5940
+ "class": ['v-selection-control-group', {
5941
+ 'v-selection-control-group--inline': props.inline
5942
+ }],
5881
5943
  "aria-labelled-by": props.type === 'radio' ? id.value : undefined,
5882
5944
  "role": props.type === 'radio' ? 'radiogroup' : undefined
5883
5945
  }, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]);
@@ -6068,7 +6130,8 @@
6068
6130
  id: id.value
6069
6131
  }
6070
6132
  })]), [[vue.resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && vue.createVNode(VLabel, {
6071
- "for": id.value
6133
+ "for": id.value,
6134
+ "clickable": true
6072
6135
  }, {
6073
6136
  default: () => [label]
6074
6137
  })]);
@@ -6184,7 +6247,6 @@
6184
6247
  });
6185
6248
 
6186
6249
  const makeVAvatarProps = propsFactory({
6187
- color: String,
6188
6250
  start: Boolean,
6189
6251
  end: Boolean,
6190
6252
  icon: IconValue,
@@ -6192,7 +6254,10 @@
6192
6254
  ...makeDensityProps(),
6193
6255
  ...makeRoundedProps(),
6194
6256
  ...makeSizeProps(),
6195
- ...makeTagProps()
6257
+ ...makeTagProps(),
6258
+ ...makeVariantProps({
6259
+ variant: 'flat'
6260
+ })
6196
6261
  });
6197
6262
  const VAvatar = defineComponent({
6198
6263
  name: 'VAvatar',
@@ -6203,9 +6268,10 @@
6203
6268
  slots
6204
6269
  } = _ref;
6205
6270
  const {
6206
- backgroundColorClasses,
6207
- backgroundColorStyles
6208
- } = useBackgroundColor(vue.toRef(props, 'color'));
6271
+ colorClasses,
6272
+ colorStyles,
6273
+ variantClasses
6274
+ } = useVariant(props);
6209
6275
  const {
6210
6276
  densityClasses
6211
6277
  } = useDensity(props);
@@ -6223,15 +6289,17 @@
6223
6289
  "class": ['v-avatar', {
6224
6290
  'v-avatar--start': props.start,
6225
6291
  'v-avatar--end': props.end
6226
- }, backgroundColorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value],
6227
- "style": [backgroundColorStyles.value, sizeStyles.value]
6292
+ }, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value],
6293
+ "style": [colorStyles.value, sizeStyles.value]
6228
6294
  }, {
6229
6295
  default: () => [props.image ? vue.createVNode(VImg, {
6296
+ "key": "image",
6230
6297
  "src": props.image,
6231
6298
  "alt": ""
6232
6299
  }, null) : props.icon ? vue.createVNode(VIcon, {
6300
+ "key": "icon",
6233
6301
  "icon": props.icon
6234
- }, null) : (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
6302
+ }, null) : (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), genOverlays(false, 'v-avatar')]
6235
6303
  });
6236
6304
  });
6237
6305
  return {};
@@ -7214,9 +7282,9 @@
7214
7282
  } = useNestedItem(id, false);
7215
7283
  const list = useList();
7216
7284
  const isActive = vue.computed(() => {
7217
- var _link$isExactActive;
7285
+ var _link$isActive;
7218
7286
 
7219
- return props.active !== false && (props.active || ((_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value) || isSelected.value);
7287
+ return props.active !== false && (props.active || ((_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value) || isSelected.value);
7220
7288
  });
7221
7289
  const isLink = vue.computed(() => props.link !== false && link.isLink.value);
7222
7290
  const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!list));
@@ -7226,9 +7294,9 @@
7226
7294
  variant: props.variant
7227
7295
  }));
7228
7296
  vue.watch(() => {
7229
- var _link$isExactActive2;
7297
+ var _link$isActive2;
7230
7298
 
7231
- return (_link$isExactActive2 = link.isExactActive) == null ? void 0 : _link$isExactActive2.value;
7299
+ return (_link$isActive2 = link.isActive) == null ? void 0 : _link$isActive2.value;
7232
7300
  }, val => {
7233
7301
  if (val && parent.value != null) {
7234
7302
  root.open(parent.value, true);
@@ -7852,6 +7920,7 @@
7852
7920
  const activatorEl = vue.ref();
7853
7921
  let isHovered = false;
7854
7922
  let isFocused = false;
7923
+ let firstEnter = true;
7855
7924
  const openOnFocus = vue.computed(() => props.openOnFocus || props.openOnFocus == null && props.openOnHover);
7856
7925
  const openOnClick = vue.computed(() => props.openOnClick || props.openOnClick == null && !props.openOnHover && !openOnFocus.value);
7857
7926
  const {
@@ -7859,6 +7928,10 @@
7859
7928
  runCloseDelay
7860
7929
  } = useDelay(props, value => {
7861
7930
  if (value === (props.openOnHover && isHovered || openOnFocus.value && isFocused) && !(props.openOnHover && isActive.value && !isTop.value)) {
7931
+ if (isActive.value !== value) {
7932
+ firstEnter = true;
7933
+ }
7934
+
7862
7935
  isActive.value = value;
7863
7936
  }
7864
7937
  });
@@ -7935,6 +8008,26 @@
7935
8008
 
7936
8009
  return events;
7937
8010
  });
8011
+ const scrimEvents = vue.computed(() => {
8012
+ const events = {};
8013
+
8014
+ if (props.openOnHover) {
8015
+ events.mouseenter = () => {
8016
+ if (firstEnter) {
8017
+ isHovered = true;
8018
+ firstEnter = false;
8019
+ runOpenDelay();
8020
+ }
8021
+ };
8022
+
8023
+ events.mouseleave = () => {
8024
+ isHovered = false;
8025
+ runCloseDelay();
8026
+ };
8027
+ }
8028
+
8029
+ return events;
8030
+ });
7938
8031
  vue.watch(isTop, val => {
7939
8032
  if (val && (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused) || openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))) {
7940
8033
  isActive.value = false;
@@ -7970,7 +8063,8 @@
7970
8063
  activatorEl,
7971
8064
  activatorRef,
7972
8065
  activatorEvents,
7973
- contentEvents
8066
+ contentEvents,
8067
+ scrimEvents
7974
8068
  };
7975
8069
  }
7976
8070
 
@@ -8694,23 +8788,6 @@
8694
8788
  });
8695
8789
  }
8696
8790
 
8697
- function useToggleScope(source, cb) {
8698
- let scope;
8699
- vue.watch(source, active => {
8700
- if (active && !scope) {
8701
- scope = vue.effectScope();
8702
- scope.run(cb);
8703
- } else {
8704
- var _scope;
8705
-
8706
- (_scope = scope) == null ? void 0 : _scope.stop();
8707
- scope = undefined;
8708
- }
8709
- }, {
8710
- immediate: true
8711
- });
8712
- }
8713
-
8714
8791
  const StackSymbol = Symbol.for('vuetify:stack');
8715
8792
  const globalStack = vue.reactive([]);
8716
8793
  function useStack(isActive, zIndex) {
@@ -8978,7 +9055,8 @@
8978
9055
  activatorEl,
8979
9056
  activatorRef,
8980
9057
  activatorEvents,
8981
- contentEvents
9058
+ contentEvents,
9059
+ scrimEvents
8982
9060
  } = useActivator(props, {
8983
9061
  isActive,
8984
9062
  isTop: localTop
@@ -9093,10 +9171,10 @@
9093
9171
  top: convertToUnit(top.value)
9094
9172
  }],
9095
9173
  "ref": root
9096
- }, attrs), [vue.createVNode(Scrim, {
9174
+ }, attrs), [vue.createVNode(Scrim, vue.mergeProps({
9097
9175
  "color": scrimColor,
9098
9176
  "modelValue": isActive.value && !!props.scrim
9099
- }, null), vue.createVNode(MaybeTransition, {
9177
+ }, vue.toHandlers(scrimEvents.value)), null), vue.createVNode(MaybeTransition, {
9100
9178
  "appear": true,
9101
9179
  "persisted": true,
9102
9180
  "transition": props.transition,
@@ -9293,8 +9371,20 @@
9293
9371
  },
9294
9372
  "onClick:outside": onClickOutside
9295
9373
  }, scopeId, attrs), {
9296
- default: slots.default,
9297
- activator: slots.activator
9374
+ activator: slots.activator,
9375
+ default: function () {
9376
+ var _slots$default;
9377
+
9378
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
9379
+ args[_key] = arguments[_key];
9380
+ }
9381
+
9382
+ return vue.createVNode(VDefaultsProvider, {
9383
+ "root": true
9384
+ }, {
9385
+ default: () => [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, ...args)]
9386
+ });
9387
+ }
9298
9388
  }));
9299
9389
  return forwardRefs({
9300
9390
  id
@@ -9513,7 +9603,7 @@
9513
9603
  'v-field--prepended': hasPrepend,
9514
9604
  'v-field--reverse': props.reverse,
9515
9605
  'v-field--single-line': props.singleLine,
9516
- 'v-field--has-label': !!label,
9606
+ 'v-field--no-label': !label,
9517
9607
  [`v-field--variant-${props.variant}`]: true
9518
9608
  }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value],
9519
9609
  "style": [backgroundColorStyles.value, textColorStyles.value],
@@ -9953,7 +10043,7 @@
9953
10043
  "onUpdate:modelValue": v => {
9954
10044
  if (v == null) model.value = [];
9955
10045
  },
9956
- "validationValue": props.modelValue ?? model.value,
10046
+ "validationValue": model.externalValue,
9957
10047
  "dirty": model.value.length > 0,
9958
10048
  "class": ['v-select', {
9959
10049
  'v-select--active-menu': menu.value,
@@ -10313,7 +10403,7 @@
10313
10403
  "onUpdate:modelValue": v => {
10314
10404
  if (v == null) model.value = [];
10315
10405
  },
10316
- "validationValue": props.modelValue ?? model.value,
10406
+ "validationValue": model.externalValue,
10317
10407
  "dirty": model.value.length > 0,
10318
10408
  "onInput": onInput,
10319
10409
  "class": ['v-autocomplete', {
@@ -10644,8 +10734,8 @@
10644
10734
  width.value = getClientWidth();
10645
10735
  }
10646
10736
 
10647
- if (isHydrate) {
10648
- vue.nextTick(() => onResize());
10737
+ if (isHydrate && IN_BROWSER) {
10738
+ requestAnimationFrame(() => onResize());
10649
10739
  } // eslint-disable-next-line max-statements
10650
10740
 
10651
10741
 
@@ -10926,9 +11016,9 @@
10926
11016
  } = _ref;
10927
11017
  const link = useLink(props, attrs);
10928
11018
  const isActive = vue.computed(() => {
10929
- var _link$isExactActive;
11019
+ var _link$isActive;
10930
11020
 
10931
- return props.active || ((_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value);
11021
+ return props.active || ((_link$isActive = link.isActive) == null ? void 0 : _link$isActive.value);
10932
11022
  });
10933
11023
  const color = vue.computed(() => isActive.value ? props.activeColor : props.color);
10934
11024
  const {
@@ -11849,10 +11939,10 @@
11849
11939
  },
11850
11940
  "scoped": true
11851
11941
  }, {
11852
- default: () => [group.items.value.map(item => {
11942
+ default: () => [group.items.value.map((item, index) => {
11853
11943
  const props = {
11854
- 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter'),
11855
- class: [group.isSelected(item.id) && 'v-btn--selected'],
11944
+ 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),
11945
+ class: [group.isSelected(item.id) && 'v-btn--active'],
11856
11946
  onClick: () => group.select(item.id, true)
11857
11947
  };
11858
11948
  return slots.item ? slots.item({
@@ -12579,8 +12669,8 @@
12579
12669
  label: t.toString()
12580
12670
  }));
12581
12671
  return Object.keys(props.ticks).map(key => ({
12582
- value: parseInt(key, 10),
12583
- position: position(parseInt(key, 10)),
12672
+ value: parseFloat(key),
12673
+ position: position(parseFloat(key)),
12584
12674
  label: props.ticks[key]
12585
12675
  }));
12586
12676
  });
@@ -12812,7 +12902,9 @@
12812
12902
  trackColor,
12813
12903
  trackFillColor,
12814
12904
  trackSize,
12815
- vertical
12905
+ vertical,
12906
+ min,
12907
+ max
12816
12908
  } = slider;
12817
12909
  const {
12818
12910
  roundedClasses
@@ -12846,11 +12938,13 @@
12846
12938
  var _slots$tickLabel;
12847
12939
 
12848
12940
  const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start';
12849
- const directionValue = tick.position > 0 && tick.position < 100 ? convertToUnit(tick.position, '%') : undefined;
12941
+ const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;
12850
12942
  return vue.createVNode("div", {
12851
12943
  "key": tick.value,
12852
12944
  "class": ['v-slider-track__tick', {
12853
- 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop
12945
+ 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,
12946
+ 'v-slider-track__tick--first': tick.value === min.value,
12947
+ 'v-slider-track__tick--last': tick.value === max.value
12854
12948
  }],
12855
12949
  "style": {
12856
12950
  [directionProperty]: directionValue
@@ -12949,6 +13043,7 @@
12949
13043
  const trackStop = vue.computed(() => position(model.value));
12950
13044
  useRender(() => {
12951
13045
  const [inputProps, _] = filterInputProps(props);
13046
+ const hasPrepend = !!(props.label || slots.label || slots.prepend);
12952
13047
  return vue.createVNode(VInput, vue.mergeProps({
12953
13048
  "class": ['v-slider', {
12954
13049
  'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,
@@ -12959,6 +13054,14 @@
12959
13054
  }, inputProps, {
12960
13055
  "focused": isFocused.value
12961
13056
  }), { ...slots,
13057
+ prepend: hasPrepend ? slotProps => {
13058
+ var _slots$label, _slots$prepend;
13059
+
13060
+ return vue.createVNode(vue.Fragment, null, [((_slots$label = slots.label) == null ? void 0 : _slots$label.call(slots, slotProps)) ?? props.label ? vue.createVNode(VLabel, {
13061
+ "class": "v-slider__label",
13062
+ "text": props.label
13063
+ }, null) : undefined, (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps)]);
13064
+ } : undefined,
12962
13065
  default: _ref2 => {
12963
13066
  let {
12964
13067
  id
@@ -13856,7 +13959,7 @@
13856
13959
  "onUpdate:modelValue": [$event => search.value = $event, v => {
13857
13960
  if (v == null) model.value = [];
13858
13961
  }],
13859
- "validationValue": props.modelValue ?? model.value,
13962
+ "validationValue": model.externalValue,
13860
13963
  "dirty": model.value.length > 0,
13861
13964
  "class": ['v-combobox', {
13862
13965
  'v-combobox--active-menu': menu.value,
@@ -13998,9 +14101,6 @@
13998
14101
  },
13999
14102
  scrollable: Boolean,
14000
14103
  modelValue: Boolean,
14001
- ...makeDimensionProps({
14002
- width: 'auto'
14003
- }),
14004
14104
  ...makeTransitionProps({
14005
14105
  transition: {
14006
14106
  component: VDialogTransition
@@ -14017,9 +14117,6 @@
14017
14117
  slots
14018
14118
  } = _ref;
14019
14119
  const isActive = useProxiedModel(props, 'modelValue');
14020
- const {
14021
- dimensionStyles
14022
- } = useDimension(props);
14023
14120
  const {
14024
14121
  scopeId
14025
14122
  } = useScopeId();
@@ -14035,7 +14132,7 @@
14035
14132
  (_overlay$value2 = overlay.value) != null && _overlay$value2.globalTop && // It isn't the document or the dialog body
14036
14133
  ![document, overlay.value.contentEl].includes(after) && // It isn't inside the dialog body
14037
14134
  !overlay.value.contentEl.contains(after)) {
14038
- const focusable = [...overlay.value.contentEl.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')].filter(el => !el.hasAttribute('disabled'));
14135
+ const focusable = [...overlay.value.contentEl.querySelectorAll('button, [href], input:not([type="hidden"]), select, textarea, [tabindex]:not([tabindex="-1"])')].filter(el => !el.hasAttribute('disabled') && !el.matches('[tabindex="-1"]'));
14039
14136
  if (!focusable.length) return;
14040
14137
  const firstElement = focusable[0];
14041
14138
  const lastElement = focusable[focusable.length - 1];
@@ -14080,7 +14177,6 @@
14080
14177
  'v-dialog--fullscreen': props.fullscreen,
14081
14178
  'v-dialog--scrollable': props.scrollable
14082
14179
  }],
14083
- "style": dimensionStyles.value,
14084
14180
  "transition": props.transition,
14085
14181
  "scrollStrategy": "block",
14086
14182
  "ref": overlay,
@@ -14092,8 +14188,20 @@
14092
14188
  },
14093
14189
  "z-index": 2400
14094
14190
  }, scopeId, attrs), {
14095
- default: slots.default,
14096
- activator: slots.activator
14191
+ activator: slots.activator,
14192
+ default: function () {
14193
+ var _slots$default;
14194
+
14195
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
14196
+ args[_key] = arguments[_key];
14197
+ }
14198
+
14199
+ return vue.createVNode(VDefaultsProvider, {
14200
+ "root": true
14201
+ }, {
14202
+ default: () => [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, ...args)]
14203
+ });
14204
+ }
14097
14205
  }));
14098
14206
  return forwardRefs({}, overlay);
14099
14207
  }
@@ -14516,9 +14624,9 @@
14516
14624
  },
14517
14625
  "onFocus": onFocus,
14518
14626
  "onBlur": () => isFocused.value = false
14519
- }, slotProps, inputAttrs), null), model.value.length > 0 && vue.createVNode("div", {
14627
+ }, slotProps, inputAttrs), null), vue.createVNode("div", {
14520
14628
  "class": fieldClass
14521
- }, [slots.selection ? slots.selection({
14629
+ }, [model.value.length > 0 && (slots.selection ? slots.selection({
14522
14630
  fileNames: fileNames.value,
14523
14631
  totalBytes: totalBytes.value,
14524
14632
  totalBytesReadable: totalBytesReadable.value
@@ -14528,7 +14636,7 @@
14528
14636
  "color": props.color
14529
14637
  }, {
14530
14638
  default: () => [text]
14531
- })) : fileNames.value.join(', ')])]);
14639
+ })) : fileNames.value.join(', '))])]);
14532
14640
  }
14533
14641
  });
14534
14642
  },
@@ -16013,9 +16121,10 @@
16013
16121
  const firstItem = target.querySelector('.v-pagination__list > *');
16014
16122
  if (!firstItem) return;
16015
16123
  const totalWidth = contentRect.width;
16016
- const itemWidth = firstItem.getBoundingClientRect().width + parseFloat(getComputedStyle(firstItem).marginRight) * 2;
16124
+ const itemWidth = firstItem.offsetWidth + parseFloat(getComputedStyle(firstItem).marginRight) * 2;
16017
16125
  const minButtons = props.showFirstLastPage ? 5 : 3;
16018
- maxButtons.value = Math.max(0, Math.floor((totalWidth - itemWidth * minButtons) / itemWidth));
16126
+ maxButtons.value = Math.max(0, Math.floor( // Round to two decimal places to avoid floating point errors
16127
+ +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));
16019
16128
  });
16020
16129
  const length = vue.computed(() => parseInt(props.length, 10));
16021
16130
  const start = vue.computed(() => parseInt(props.start, 10));
@@ -16075,6 +16184,7 @@
16075
16184
  if (typeof item === 'string') {
16076
16185
  return {
16077
16186
  isActive: false,
16187
+ key: `ellipsis-${index}`,
16078
16188
  page: item,
16079
16189
  props: {
16080
16190
  ref,
@@ -16087,6 +16197,7 @@
16087
16197
  const isActive = item === page.value;
16088
16198
  return {
16089
16199
  isActive,
16200
+ key: item,
16090
16201
  page: n(item),
16091
16202
  props: {
16092
16203
  ref,
@@ -16179,7 +16290,7 @@
16179
16290
  }, [slots.prev ? slots.prev(controls.value.prev) : vue.createVNode(VBtn, vue.mergeProps({
16180
16291
  "_as": "VPaginationBtn"
16181
16292
  }, controls.value.prev), null)]), items.value.map((item, index) => vue.createVNode("li", {
16182
- "key": item.page,
16293
+ "key": item.key,
16183
16294
  "class": ['v-pagination__item', {
16184
16295
  'v-pagination__item--is-active': item.isActive
16185
16296
  }],
@@ -16216,7 +16327,7 @@
16216
16327
  props: {
16217
16328
  scale: {
16218
16329
  type: [Number, String],
16219
- default: 1.3
16330
+ default: 0.5
16220
16331
  }
16221
16332
  },
16222
16333
 
@@ -16228,11 +16339,18 @@
16228
16339
  intersectionRef,
16229
16340
  isIntersecting
16230
16341
  } = useIntersectionObserver();
16342
+ const {
16343
+ resizeRef,
16344
+ contentRect
16345
+ } = useResizeObserver();
16346
+ const {
16347
+ height: displayHeight
16348
+ } = useDisplay();
16231
16349
  const root = vue.ref();
16232
16350
  vue.watchEffect(() => {
16233
16351
  var _root$value;
16234
16352
 
16235
- intersectionRef.value = (_root$value = root.value) == null ? void 0 : _root$value.$el;
16353
+ intersectionRef.value = resizeRef.value = (_root$value = root.value) == null ? void 0 : _root$value.$el;
16236
16354
  });
16237
16355
  let scrollParent;
16238
16356
  vue.watch(isIntersecting, val => {
@@ -16252,6 +16370,10 @@
16252
16370
 
16253
16371
  (_scrollParent = scrollParent) == null ? void 0 : _scrollParent.removeEventListener('scroll', onScroll);
16254
16372
  });
16373
+ vue.watch(displayHeight, onScroll);
16374
+ const scale = vue.computed(() => {
16375
+ return 1 - clamp(+props.scale);
16376
+ });
16255
16377
  let frame = -1;
16256
16378
 
16257
16379
  function onScroll() {
@@ -16262,13 +16384,14 @@
16262
16384
 
16263
16385
  const el = ((_root$value2 = root.value) == null ? void 0 : _root$value2.$el).querySelector('.v-img__img');
16264
16386
  if (!el) return;
16265
- const rect = intersectionRef.value.getBoundingClientRect();
16266
- const scrollHeight = scrollParent.clientHeight ?? window.innerHeight;
16387
+ const scrollHeight = scrollParent.clientHeight ?? document.documentElement.clientHeight;
16267
16388
  const scrollPos = scrollParent.scrollTop ?? window.scrollY;
16268
- const top = rect.top + scrollPos;
16269
- const progress = (scrollPos + scrollHeight - top) / (rect.height + scrollHeight);
16270
- const translate = floor((rect.height * +props.scale - rect.height) * (-progress + 0.5));
16271
- el.style.setProperty('transform', `translateY(${translate}px) scale(${props.scale})`);
16389
+ const top = intersectionRef.value.offsetTop;
16390
+ const height = contentRect.value.height;
16391
+ const center = top + (height - scrollHeight) / 2;
16392
+ const translate = floor((scrollPos - center) * scale.value);
16393
+ const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height);
16394
+ el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`);
16272
16395
  });
16273
16396
  }
16274
16397
 
@@ -16372,7 +16495,8 @@
16372
16495
  isReadonly
16373
16496
  } = _ref2;
16374
16497
  return vue.createVNode(vue.Fragment, null, [label && vue.createVNode(VLabel, {
16375
- "for": id.value
16498
+ "for": id.value,
16499
+ "clickable": true
16376
16500
  }, {
16377
16501
  default: () => [label]
16378
16502
  }), vue.createVNode(VSelectionControlGroup, vue.mergeProps(controlProps, {
@@ -16481,6 +16605,7 @@
16481
16605
  const trackStop = vue.computed(() => position(model.value[1]));
16482
16606
  useRender(() => {
16483
16607
  const [inputProps, _] = filterInputProps(props);
16608
+ const hasPrepend = !!(props.label || slots.label || slots.prepend);
16484
16609
  return vue.createVNode(VInput, vue.mergeProps({
16485
16610
  "class": ['v-slider', 'v-range-slider', {
16486
16611
  'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,
@@ -16492,6 +16617,14 @@
16492
16617
  }, inputProps, {
16493
16618
  "focused": isFocused.value
16494
16619
  }), { ...slots,
16620
+ prepend: hasPrepend ? slotProps => {
16621
+ var _slots$label, _slots$prepend;
16622
+
16623
+ return vue.createVNode(vue.Fragment, null, [((_slots$label = slots.label) == null ? void 0 : _slots$label.call(slots, slotProps)) ?? props.label ? vue.createVNode(VLabel, {
16624
+ "class": "v-slider__label",
16625
+ "text": props.label
16626
+ }, null) : undefined, (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps)]);
16627
+ } : undefined,
16495
16628
  default: _ref2 => {
16496
16629
  var _startThumbRef$value4, _stopThumbRef$value4;
16497
16630
 
@@ -17252,7 +17385,7 @@
17252
17385
 
17253
17386
  });
17254
17387
 
17255
- const VSnackbar = defineComponent({
17388
+ const VSnackbar = genericComponent()({
17256
17389
  name: 'VSnackbar',
17257
17390
  props: {
17258
17391
  contentClass: {
@@ -17625,6 +17758,7 @@
17625
17758
  "tabindex": isSelected.value ? 0 : -1,
17626
17759
  "role": "tab",
17627
17760
  "aria-selected": String(isSelected.value),
17761
+ "active": false,
17628
17762
  "block": props.fixed,
17629
17763
  "maxWidth": props.fixed ? 300 : undefined,
17630
17764
  "variant": "text",
@@ -17938,7 +18072,8 @@
17938
18072
  'v-text-field--prefixed': props.prefix,
17939
18073
  'v-text-field--suffixed': props.suffix,
17940
18074
  'v-textarea--auto-grow': props.autoGrow,
17941
- 'v-textarea--no-resize': props.noResize || props.autoGrow
18075
+ 'v-textarea--no-resize': props.noResize || props.autoGrow,
18076
+ 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant)
17942
18077
  }],
17943
18078
  "onClick:prepend": props['onClick:prepend'],
17944
18079
  "onClick:append": props['onClick:append']
@@ -18064,6 +18199,11 @@
18064
18199
  default: 'vertical',
18065
18200
  validator: v => ['vertical', 'horizontal'].includes(v)
18066
18201
  },
18202
+ justify: {
18203
+ type: String,
18204
+ default: 'auto',
18205
+ validator: v => ['auto', 'center'].includes(v)
18206
+ },
18067
18207
  side: {
18068
18208
  type: String,
18069
18209
  validator: v => v == null || ['start', 'end'].includes(v)
@@ -18127,7 +18267,7 @@
18127
18267
  }
18128
18268
  });
18129
18269
  useRender(() => vue.createVNode(props.tag, {
18130
- "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, truncateClasses.value, {
18270
+ "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
18131
18271
  'v-timeline--inset-line': !!props.lineInset
18132
18272
  }, themeClasses.value, densityClasses.value, sideClasses.value],
18133
18273
  "style": {
@@ -18672,21 +18812,25 @@
18672
18812
  });
18673
18813
 
18674
18814
  // Composables
18675
- const createVuetify$1 = function () {
18815
+ function createVuetify$1() {
18676
18816
  let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
18817
+ const {
18818
+ blueprint,
18819
+ ...rest
18820
+ } = vuetify;
18821
+ const options = mergeDeep(blueprint, rest);
18822
+ const {
18823
+ aliases = {},
18824
+ components = {},
18825
+ directives = {}
18826
+ } = options;
18827
+ const defaults = createDefaults(options.defaults);
18828
+ const display = createDisplay(options.display, options.ssr);
18829
+ const theme = createTheme(options.theme);
18830
+ const icons = createIcons(options.icons);
18831
+ const locale = createLocale(options.locale);
18677
18832
 
18678
18833
  const install = app => {
18679
- const {
18680
- blueprint,
18681
- ...rest
18682
- } = vuetify;
18683
- const options = mergeDeep(blueprint, rest);
18684
- const {
18685
- aliases = {},
18686
- components = {},
18687
- directives = {}
18688
- } = options;
18689
-
18690
18834
  for (const key in directives) {
18691
18835
  app.directive(key, directives[key]);
18692
18836
  }
@@ -18697,44 +18841,19 @@
18697
18841
 
18698
18842
  for (const key in aliases) {
18699
18843
  app.component(key, defineComponent({ ...aliases[key],
18700
- name: key
18844
+ name: key,
18845
+ aliasName: aliases[key].name
18701
18846
  }));
18702
18847
  }
18703
18848
 
18704
- function provideApp(isHydrate) {
18705
- app.provide(DefaultsSymbol, createDefaults(options.defaults));
18706
- app.provide(DisplaySymbol, createDisplay(options.display, isHydrate));
18707
- app.provide(ThemeSymbol, createTheme(app, options.theme));
18708
- app.provide(IconSymbol, createIcons(options.icons));
18709
- app.provide(LocaleAdapterSymbol, createLocale(app, options.locale));
18710
- }
18711
-
18712
- if (!IN_BROWSER) {
18713
- provideApp();
18714
- }
18715
-
18849
+ theme.install(app);
18850
+ locale.install(app);
18851
+ app.provide(DefaultsSymbol, defaults);
18852
+ app.provide(DisplaySymbol, display);
18853
+ app.provide(ThemeSymbol, theme);
18854
+ app.provide(IconSymbol, icons);
18855
+ app.provide(LocaleAdapterSymbol, locale.adapter);
18716
18856
  getUid.reset();
18717
- const mount = app.mount;
18718
-
18719
- app.mount = (rootContainer, isHydrate, isSVG) => {
18720
- provideApp(isHydrate);
18721
- const ret = mount(rootContainer, isHydrate, isSVG);
18722
- app.mount = mount;
18723
- return ret;
18724
- }; // Vue's inject() can only be used in setup
18725
-
18726
-
18727
- function inject(key) {
18728
- var _vm$parent, _vm$vnode$appContext;
18729
-
18730
- const vm = this.$;
18731
- const provides = ((_vm$parent = vm.parent) == null ? void 0 : _vm$parent.provides) ?? ((_vm$vnode$appContext = vm.vnode.appContext) == null ? void 0 : _vm$vnode$appContext.provides);
18732
-
18733
- if (provides && key in provides) {
18734
- return provides[key];
18735
- }
18736
- }
18737
-
18738
18857
  app.mixin({
18739
18858
  computed: {
18740
18859
  $vuetify() {
@@ -18753,11 +18872,27 @@
18753
18872
  };
18754
18873
 
18755
18874
  return {
18756
- install
18875
+ install,
18876
+ defaults,
18877
+ display,
18878
+ theme,
18879
+ icons,
18880
+ locale: locale.adapter
18757
18881
  };
18758
- };
18759
- const version$1 = "3.0.0-beta.10";
18760
- createVuetify$1.version = version$1;
18882
+ }
18883
+ const version$1 = "3.0.0-beta.13";
18884
+ createVuetify$1.version = version$1; // Vue's inject() can only be used in setup
18885
+
18886
+ function inject(key) {
18887
+ var _vm$parent, _vm$vnode$appContext;
18888
+
18889
+ const vm = this.$;
18890
+ const provides = ((_vm$parent = vm.parent) == null ? void 0 : _vm$parent.provides) ?? ((_vm$vnode$appContext = vm.vnode.appContext) == null ? void 0 : _vm$vnode$appContext.provides);
18891
+
18892
+ if (provides && key in provides) {
18893
+ return provides[key];
18894
+ }
18895
+ }
18761
18896
 
18762
18897
  const createVuetify = function () {
18763
18898
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -18767,7 +18902,7 @@
18767
18902
  ...options
18768
18903
  });
18769
18904
  };
18770
- const version = "3.0.0-beta.10";
18905
+ const version = "3.0.0-beta.13";
18771
18906
  createVuetify.version = version;
18772
18907
 
18773
18908
  exports.components = components;