@vuetify/nightly 3.2.0-dev-20230214.0 → 3.2.0-dev-20230309.0

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 (242) hide show
  1. package/CHANGELOG.md +5 -17
  2. package/dist/json/attributes.json +38 -34
  3. package/dist/json/importMap.json +4 -4
  4. package/dist/json/tags.json +1 -0
  5. package/dist/json/web-types.json +993 -90
  6. package/dist/vuetify-labs.css +1520 -1376
  7. package/dist/vuetify-labs.d.ts +3476 -180
  8. package/dist/vuetify-labs.esm.js +249 -177
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +249 -177
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +321 -177
  13. package/dist/vuetify.d.ts +1939 -101
  14. package/dist/vuetify.esm.js +213 -162
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +213 -162
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +700 -701
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/VAlert.css +1 -1
  22. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  23. package/lib/components/VAlert/_variables.scss +1 -1
  24. package/lib/components/VAlert/index.d.ts +22 -0
  25. package/lib/components/VApp/index.d.ts +6 -0
  26. package/lib/components/VAppBar/VAppBar.mjs +7 -2
  27. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  28. package/lib/components/VAppBar/index.d.ts +36 -0
  29. package/lib/components/VAutocomplete/VAutocomplete.mjs +10 -1
  30. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  31. package/lib/components/VAutocomplete/index.d.ts +120 -15
  32. package/lib/components/VAvatar/index.d.ts +6 -0
  33. package/lib/components/VBadge/index.d.ts +8 -0
  34. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  35. package/lib/components/VBanner/index.d.ts +24 -0
  36. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +6 -2
  37. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  38. package/lib/components/VBottomNavigation/index.d.ts +6 -0
  39. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  40. package/lib/components/VBreadcrumbs/index.d.ts +28 -4
  41. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  42. package/lib/components/VBtn/index.d.ts +12 -0
  43. package/lib/components/VBtnGroup/index.d.ts +6 -0
  44. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  45. package/lib/components/VBtnToggle/index.d.ts +6 -0
  46. package/lib/components/VCard/VCard.mjs.map +1 -1
  47. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  48. package/lib/components/VCard/index.d.ts +60 -0
  49. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  50. package/lib/components/VCarousel/index.d.ts +60 -0
  51. package/lib/components/VCheckbox/index.d.ts +38 -0
  52. package/lib/components/VChip/VChip.mjs.map +1 -1
  53. package/lib/components/VChip/index.d.ts +12 -0
  54. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  55. package/lib/components/VChipGroup/index.d.ts +6 -0
  56. package/lib/components/VCode/index.d.ts +6 -0
  57. package/lib/components/VColorPicker/VColorPicker.mjs +9 -1
  58. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  59. package/lib/components/VColorPicker/VColorPickerCanvas.css +2 -1
  60. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +36 -18
  61. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  62. package/lib/components/VColorPicker/VColorPickerCanvas.sass +2 -1
  63. package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -4
  64. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  65. package/lib/components/VColorPicker/VColorPickerPreview.mjs +2 -2
  66. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  67. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  68. package/lib/components/VColorPicker/util/index.mjs +2 -5
  69. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  70. package/lib/components/VCombobox/VCombobox.mjs +10 -1
  71. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  72. package/lib/components/VCombobox/index.d.ts +120 -15
  73. package/lib/components/VCounter/index.d.ts +24 -0
  74. package/lib/components/VDefaultsProvider/index.d.ts +6 -0
  75. package/lib/components/VDialog/index.d.ts +64 -1
  76. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  77. package/lib/components/VDivider/index.d.ts +6 -0
  78. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  79. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  80. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  81. package/lib/components/VExpansionPanel/index.d.ts +49 -12
  82. package/lib/components/VField/VField.mjs.map +1 -1
  83. package/lib/components/VField/index.d.ts +20 -6
  84. package/lib/components/VFileInput/VFileInput.mjs +1 -0
  85. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  86. package/lib/components/VFileInput/index.d.ts +43 -1
  87. package/lib/components/VFooter/index.d.ts +7 -1
  88. package/lib/components/VForm/index.d.ts +6 -0
  89. package/lib/components/VGrid/index.d.ts +24 -0
  90. package/lib/components/VHover/index.d.ts +12 -0
  91. package/lib/components/VIcon/index.d.ts +12 -0
  92. package/lib/components/VImg/index.d.ts +12 -0
  93. package/lib/components/VInput/VInput.mjs.map +1 -1
  94. package/lib/components/VInput/index.d.ts +12 -0
  95. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  96. package/lib/components/VItemGroup/index.d.ts +12 -0
  97. package/lib/components/VKbd/index.d.ts +6 -0
  98. package/lib/components/VLabel/index.d.ts +6 -0
  99. package/lib/components/VLayout/index.d.ts +12 -0
  100. package/lib/components/VLazy/index.d.ts +6 -0
  101. package/lib/components/VList/VListGroup.mjs.map +1 -1
  102. package/lib/components/VList/VListItem.mjs.map +1 -1
  103. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  104. package/lib/components/VList/index.d.ts +77 -6
  105. package/lib/components/VLocaleProvider/index.d.ts +6 -0
  106. package/lib/components/VMain/index.d.ts +6 -0
  107. package/lib/components/VMenu/VMenu.mjs +6 -5
  108. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  109. package/lib/components/VMenu/index.d.ts +65 -1
  110. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  111. package/lib/components/VMessages/index.d.ts +24 -0
  112. package/lib/components/VNavigationDrawer/index.d.ts +12 -0
  113. package/lib/components/VNoSsr/index.d.ts +6 -0
  114. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  115. package/lib/components/VOverlay/index.d.ts +18 -0
  116. package/lib/components/VOverlay/scrollStrategies.mjs +2 -2
  117. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  118. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  119. package/lib/components/VPagination/index.d.ts +14 -0
  120. package/lib/components/VParallax/index.d.ts +12 -0
  121. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  122. package/lib/components/VProgressCircular/index.d.ts +6 -0
  123. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  124. package/lib/components/VProgressLinear/index.d.ts +12 -0
  125. package/lib/components/VRadio/index.d.ts +16 -0
  126. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  127. package/lib/components/VRadioGroup/index.d.ts +22 -0
  128. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  129. package/lib/components/VRangeSlider/index.d.ts +16 -0
  130. package/lib/components/VRating/VRating.css +0 -4
  131. package/lib/components/VRating/VRating.mjs +6 -35
  132. package/lib/components/VRating/VRating.mjs.map +1 -1
  133. package/lib/components/VRating/VRating.sass +0 -5
  134. package/lib/components/VRating/index.d.ts +9 -0
  135. package/lib/components/VResponsive/index.d.ts +8 -0
  136. package/lib/components/VSelect/VSelect.mjs +10 -1
  137. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  138. package/lib/components/VSelect/index.d.ts +186 -15
  139. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  140. package/lib/components/VSelectionControl/index.d.ts +14 -6
  141. package/lib/components/VSelectionControlGroup/index.d.ts +6 -0
  142. package/lib/components/VSheet/VSheet.mjs +22 -12
  143. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  144. package/lib/components/VSheet/index.d.ts +7 -1
  145. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  146. package/lib/components/VSlideGroup/index.d.ts +26 -0
  147. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  148. package/lib/components/VSlider/index.d.ts +16 -0
  149. package/lib/components/VSnackbar/VSnackbar.css +0 -2
  150. package/lib/components/VSnackbar/VSnackbar.mjs +6 -8
  151. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  152. package/lib/components/VSnackbar/VSnackbar.sass +0 -2
  153. package/lib/components/VSnackbar/index.d.ts +44 -1
  154. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  155. package/lib/components/VSwitch/index.d.ts +22 -0
  156. package/lib/components/VSystemBar/VSystemBar.css +5 -1
  157. package/lib/components/VSystemBar/VSystemBar.mjs +6 -2
  158. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  159. package/lib/components/VSystemBar/VSystemBar.sass +5 -1
  160. package/lib/components/VSystemBar/_variables.scss +4 -1
  161. package/lib/components/VSystemBar/index.d.ts +6 -0
  162. package/lib/components/VTable/VTable.mjs.map +1 -1
  163. package/lib/components/VTable/index.d.ts +12 -0
  164. package/lib/components/VTabs/VTab.mjs.map +1 -1
  165. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  166. package/lib/components/VTabs/index.d.ts +12 -0
  167. package/lib/components/VTextField/VTextField.mjs +1 -0
  168. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  169. package/lib/components/VTextField/index.d.ts +54 -6
  170. package/lib/components/VTextarea/VTextarea.mjs +1 -0
  171. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  172. package/lib/components/VTextarea/index.d.ts +39 -1
  173. package/lib/components/VThemeProvider/index.d.ts +6 -0
  174. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  175. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  176. package/lib/components/VTimeline/index.d.ts +16 -0
  177. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  178. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  179. package/lib/components/VToolbar/index.d.ts +30 -0
  180. package/lib/components/VTooltip/VTooltip.mjs +2 -2
  181. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  182. package/lib/components/VTooltip/index.d.ts +49 -1
  183. package/lib/components/VValidation/index.d.ts +6 -0
  184. package/lib/components/VWindow/index.d.ts +34 -0
  185. package/lib/components/index.d.ts +1954 -116
  186. package/lib/components/transitions/createTransition.mjs +1 -1
  187. package/lib/components/transitions/createTransition.mjs.map +1 -1
  188. package/lib/components/transitions/index.d.ts +96 -0
  189. package/lib/composables/defaults.mjs +3 -1
  190. package/lib/composables/defaults.mjs.map +1 -1
  191. package/lib/composables/display.mjs +13 -10
  192. package/lib/composables/display.mjs.map +1 -1
  193. package/lib/composables/loader.mjs.map +1 -1
  194. package/lib/composables/nested/nested.mjs +2 -2
  195. package/lib/composables/nested/nested.mjs.map +1 -1
  196. package/lib/composables/nested/selectStrategies.mjs +7 -1
  197. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  198. package/lib/composables/proxiedModel.mjs +1 -1
  199. package/lib/composables/proxiedModel.mjs.map +1 -1
  200. package/lib/composables/resizeObserver.mjs.map +1 -1
  201. package/lib/composables/stack.mjs +2 -2
  202. package/lib/composables/stack.mjs.map +1 -1
  203. package/lib/composables/theme.mjs +28 -23
  204. package/lib/composables/theme.mjs.map +1 -1
  205. package/lib/composables/variant.mjs.map +1 -1
  206. package/lib/entry-bundler.mjs +1 -1
  207. package/lib/framework.mjs +1 -1
  208. package/lib/index.d.ts +1 -1
  209. package/lib/labs/VDataTable/VDataTable.mjs +4 -2
  210. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  211. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  212. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  213. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  214. package/lib/labs/VDataTable/VDataTableRows.mjs +4 -6
  215. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  216. package/lib/labs/VDataTable/VDataTableServer.mjs +2 -2
  217. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  218. package/lib/labs/VDataTable/VDataTableVirtual.mjs +4 -2
  219. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  220. package/lib/labs/VDataTable/composables/options.mjs +7 -1
  221. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  222. package/lib/labs/VDataTable/index.d.ts +1503 -48
  223. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +18 -5
  224. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  225. package/lib/labs/VVirtualScroll/index.d.ts +9 -6
  226. package/lib/labs/components.d.ts +1512 -54
  227. package/lib/locale/index.mjs +1 -1
  228. package/lib/locale/index.mjs.map +1 -1
  229. package/lib/styles/elements/_global.sass +0 -4
  230. package/lib/styles/generic/_index.scss +0 -1
  231. package/lib/styles/generic/_transitions.scss +111 -9
  232. package/lib/styles/main.css +312 -167
  233. package/lib/styles/tools/_sheet.sass +3 -6
  234. package/lib/styles/utilities/_display.sass +6 -5
  235. package/lib/styles/utilities/_elevation.scss +13 -0
  236. package/lib/styles/utilities/_index.sass +3 -2
  237. package/lib/styles/utilities/_screenreaders.sass +13 -11
  238. package/lib/util/colorUtils.mjs +4 -5
  239. package/lib/util/colorUtils.mjs.map +1 -1
  240. package/lib/util/defineComponent.mjs.map +1 -1
  241. package/package.json +18 -5
  242. package/lib/styles/generic/_elevation.scss +0 -10
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.2.0-dev-20230214.0
2
+ * Vuetify v3.2.0-dev-20230309.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -780,11 +780,12 @@ function RGBtoHex(_ref2) {
780
780
  b,
781
781
  a
782
782
  } = _ref2;
783
- return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : 'FF'].join('')}`;
783
+ return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : ''].join('')}`;
784
784
  }
785
785
  function HexToRGB(hex) {
786
+ hex = parseHex(hex);
786
787
  let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));
787
- a = a === undefined ? a : Math.round(a / 255 * 100) / 100;
788
+ a = a === undefined ? a : a / 255;
788
789
  return {
789
790
  r,
790
791
  g,
@@ -807,9 +808,7 @@ function parseHex(hex) {
807
808
  if (hex.length === 3 || hex.length === 4) {
808
809
  hex = hex.split('').map(x => x + x).join('');
809
810
  }
810
- if (hex.length === 6) {
811
- hex = padEnd(hex, 8, 'F');
812
- } else {
811
+ if (hex.length !== 6) {
813
812
  hex = padEnd(padEnd(hex, 6), 8, 'F');
814
813
  }
815
814
  return hex;
@@ -960,7 +959,9 @@ function provideDefaults(defaults, options) {
960
959
  if (reset || root) {
961
960
  const len = Number(reset || Infinity);
962
961
  for (let i = 0; i <= len; i++) {
963
- if (!properties.prev) break;
962
+ if (!properties || !('prev' in properties)) {
963
+ break;
964
+ }
964
965
  properties = properties.prev;
965
966
  }
966
967
  return properties;
@@ -1666,17 +1667,9 @@ function createTheme(options) {
1666
1667
  if (current.value.dark) {
1667
1668
  createCssClass(lines, ':root', ['color-scheme: dark']);
1668
1669
  }
1670
+ createCssClass(lines, ':root', genCssVariables(current.value));
1669
1671
  for (const [themeName, theme] of Object.entries(computedThemes.value)) {
1670
- const {
1671
- variables,
1672
- dark
1673
- } = theme;
1674
- createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${dark ? 'dark' : 'normal'}`, ...genCssVariables(theme), ...Object.keys(variables).map(key => {
1675
- const value = variables[key];
1676
- const color = typeof value === 'string' && value.startsWith('#') ? parseColor$1(value) : undefined;
1677
- const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
1678
- return `--v-${key}: ${rgb ?? value}`;
1679
- })]);
1672
+ createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)]);
1680
1673
  }
1681
1674
  const bgLines = [];
1682
1675
  const fgLines = [];
@@ -1693,22 +1686,30 @@ function createTheme(options) {
1693
1686
  lines.push(...bgLines, ...fgLines);
1694
1687
  return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
1695
1688
  });
1689
+ function getHead() {
1690
+ return {
1691
+ style: [{
1692
+ children: styles.value,
1693
+ id: 'vuetify-theme-stylesheet',
1694
+ nonce: parsedOptions.cspNonce || false
1695
+ }]
1696
+ };
1697
+ }
1696
1698
  function install(app) {
1697
1699
  const head = app._context.provides.usehead;
1698
1700
  if (head) {
1699
- head.addHeadObjs(computed(() => {
1700
- const style = {
1701
- children: styles.value,
1702
- type: 'text/css',
1703
- id: 'vuetify-theme-stylesheet'
1704
- };
1705
- if (parsedOptions.cspNonce) style.nonce = parsedOptions.cspNonce;
1706
- return {
1707
- style: [style]
1708
- };
1709
- }));
1710
- if (IN_BROWSER) {
1711
- watchEffect(() => head.updateDOM());
1701
+ if (head.push) {
1702
+ const entry = head.push(getHead);
1703
+ watch(styles, () => {
1704
+ entry.patch(getHead);
1705
+ });
1706
+ } else {
1707
+ if (IN_BROWSER) {
1708
+ head.addHeadObjs(computed(getHead));
1709
+ watchEffect(() => head.updateDOM());
1710
+ } else {
1711
+ head.addHeadObjs(getHead());
1712
+ }
1712
1713
  }
1713
1714
  } else {
1714
1715
  let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
@@ -1781,6 +1782,11 @@ function genCssVariables(theme) {
1781
1782
  variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
1782
1783
  }
1783
1784
  }
1785
+ for (const [key, value] of Object.entries(theme.variables)) {
1786
+ const color = typeof value === 'string' && value.startsWith('#') ? parseColor$1(value) : undefined;
1787
+ const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
1788
+ variables.push(`--v-${key}: ${rgb ?? value}`);
1789
+ }
1784
1790
  return variables;
1785
1791
  }
1786
1792
 
@@ -1810,7 +1816,7 @@ function useProxiedModel(props, prop, defaultValue) {
1810
1816
  });
1811
1817
  const model = computed({
1812
1818
  get() {
1813
- return transformIn(toRaw(isControlled.value ? props[prop] : internal.value));
1819
+ return transformIn(isControlled.value ? props[prop] : internal.value);
1814
1820
  },
1815
1821
  set(internalValue) {
1816
1822
  const newValue = transformOut(internalValue);
@@ -2010,7 +2016,7 @@ const defaultRtl = {
2010
2016
  en: false,
2011
2017
  es: false,
2012
2018
  et: false,
2013
- fa: false,
2019
+ fa: true,
2014
2020
  fi: false,
2015
2021
  fr: false,
2016
2022
  hr: false,
@@ -2171,7 +2177,7 @@ const VDefaultsProvider = genericComponent(false)({
2171
2177
  // Types
2172
2178
 
2173
2179
  function createCssTransition(name) {
2174
- let origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top center 0';
2180
+ let origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'center center';
2175
2181
  let mode = arguments.length > 2 ? arguments[2] : undefined;
2176
2182
  return genericComponent()({
2177
2183
  name,
@@ -3205,6 +3211,25 @@ function filterToolbarProps(props) {
3205
3211
  return pick(props, Object.keys(VToolbar?.props ?? {}));
3206
3212
  }
3207
3213
 
3214
+ // Utilities
3215
+
3216
+ // Composables
3217
+ function useSsrBoot() {
3218
+ const isBooted = ref(false);
3219
+ onMounted(() => {
3220
+ window.requestAnimationFrame(() => {
3221
+ isBooted.value = true;
3222
+ });
3223
+ });
3224
+ const ssrBootStyles = computed(() => !isBooted.value ? {
3225
+ transition: 'none !important'
3226
+ } : undefined);
3227
+ return {
3228
+ ssrBootStyles,
3229
+ isBooted: readonly(isBooted)
3230
+ };
3231
+ }
3232
+
3208
3233
  // Types
3209
3234
 
3210
3235
  const VAppBar = genericComponent()({
@@ -3247,6 +3272,9 @@ const VAppBar = genericComponent()({
3247
3272
  const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
3248
3273
  return height + extensionHeight;
3249
3274
  });
3275
+ const {
3276
+ ssrBootStyles
3277
+ } = useSsrBoot();
3250
3278
  const {
3251
3279
  layoutItemStyles
3252
3280
  } = useLayoutItem({
@@ -3267,7 +3295,8 @@ const VAppBar = genericComponent()({
3267
3295
  }],
3268
3296
  "style": {
3269
3297
  ...layoutItemStyles.value,
3270
- height: undefined
3298
+ height: undefined,
3299
+ ...ssrBootStyles.value
3271
3300
  }
3272
3301
  }, toolbarProps), slots);
3273
3302
  });
@@ -6139,6 +6168,7 @@ const VTextField = genericComponent()({
6139
6168
  "id": id.value,
6140
6169
  "active": isActive.value || isDirty.value,
6141
6170
  "dirty": isDirty.value || props.dirty,
6171
+ "disabled": isDisabled.value,
6142
6172
  "focused": isFocused.value,
6143
6173
  "error": isValid.value === false
6144
6174
  }), {
@@ -7043,7 +7073,6 @@ const listOpenStrategy = {
7043
7073
  };
7044
7074
 
7045
7075
  /* eslint-disable sonarjs/no-identical-functions */
7046
-
7047
7076
  const independentSelectStrategy = mandatory => {
7048
7077
  const strategy = {
7049
7078
  select: _ref => {
@@ -7052,6 +7081,8 @@ const independentSelectStrategy = mandatory => {
7052
7081
  value,
7053
7082
  selected
7054
7083
  } = _ref;
7084
+ id = toRaw(id);
7085
+
7055
7086
  // When mandatory and we're trying to deselect when id
7056
7087
  // is the only currently selected item then do nothing
7057
7088
  if (mandatory && !value) {
@@ -7096,6 +7127,7 @@ const independentSingleSelectStrategy = mandatory => {
7096
7127
  id,
7097
7128
  ...rest
7098
7129
  } = _ref3;
7130
+ id = toRaw(id);
7099
7131
  const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();
7100
7132
  return parentStrategy.select({
7101
7133
  ...rest,
@@ -7126,6 +7158,7 @@ const leafSelectStrategy = mandatory => {
7126
7158
  children,
7127
7159
  ...rest
7128
7160
  } = _ref4;
7161
+ id = toRaw(id);
7129
7162
  if (children.has(id)) return selected;
7130
7163
  return parentStrategy.select({
7131
7164
  id,
@@ -7149,6 +7182,7 @@ const leafSingleSelectStrategy = mandatory => {
7149
7182
  children,
7150
7183
  ...rest
7151
7184
  } = _ref5;
7185
+ id = toRaw(id);
7152
7186
  if (children.has(id)) return selected;
7153
7187
  return parentStrategy.select({
7154
7188
  id,
@@ -7172,6 +7206,7 @@ const classicSelectStrategy = mandatory => {
7172
7206
  children,
7173
7207
  parents
7174
7208
  } = _ref6;
7209
+ id = toRaw(id);
7175
7210
  const original = new Map(selected);
7176
7211
  const items = [id];
7177
7212
  while (items.length) {
@@ -7393,7 +7428,7 @@ const useNestedItem = (id, isGroup) => {
7393
7428
  isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
7394
7429
  parent: computed(() => parent.root.parents.value.get(computedId.value)),
7395
7430
  select: (selected, e) => parent.root.select(computedId.value, selected, e),
7396
- isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),
7431
+ isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),
7397
7432
  isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
7398
7433
  isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),
7399
7434
  isGroupActivator: parent.isGroupActivator
@@ -8955,7 +8990,7 @@ function useScrollStrategies(props, data) {
8955
8990
  if (!(data.isActive.value && props.scrollStrategy)) return;
8956
8991
  scope = effectScope();
8957
8992
  await nextTick();
8958
- scope.run(() => {
8993
+ scope.active && scope.run(() => {
8959
8994
  if (typeof props.scrollStrategy === 'function') {
8960
8995
  props.scrollStrategy(data, props, scope);
8961
8996
  } else {
@@ -9036,7 +9071,7 @@ function repositionScrollStrategy(data, props, scope) {
9036
9071
  });
9037
9072
  });
9038
9073
  onScopeDispose(() => {
9039
- cancelIdleCallback(ric);
9074
+ typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric);
9040
9075
  cancelAnimationFrame(raf);
9041
9076
  });
9042
9077
  }
@@ -9082,8 +9117,8 @@ function getClientWidth(isHydrate) {
9082
9117
  function getClientHeight(isHydrate) {
9083
9118
  return IN_BROWSER && !isHydrate ? window.innerHeight : 0;
9084
9119
  }
9085
- function getPlatform() {
9086
- const userAgent = IN_BROWSER ? window.navigator.userAgent : 'ssr';
9120
+ function getPlatform(isHydrate) {
9121
+ const userAgent = IN_BROWSER && !isHydrate ? window.navigator.userAgent : 'ssr';
9087
9122
  function match(regexp) {
9088
9123
  return Boolean(userAgent.match(regexp));
9089
9124
  }
@@ -9098,7 +9133,6 @@ function getPlatform() {
9098
9133
  const win = match(/win/i);
9099
9134
  const mac = match(/mac/i);
9100
9135
  const linux = match(/linux/i);
9101
- const ssr = match(/ssr/i);
9102
9136
  return {
9103
9137
  android,
9104
9138
  ios,
@@ -9112,7 +9146,7 @@ function getPlatform() {
9112
9146
  mac,
9113
9147
  linux,
9114
9148
  touch: SUPPORTS_TOUCH,
9115
- ssr
9149
+ ssr: userAgent === 'ssr'
9116
9150
  };
9117
9151
  }
9118
9152
  function createDisplay(options, ssr) {
@@ -9121,13 +9155,17 @@ function createDisplay(options, ssr) {
9121
9155
  mobileBreakpoint
9122
9156
  } = parseDisplayOptions(options);
9123
9157
  const height = ref(getClientHeight(ssr));
9124
- const platform = getPlatform();
9158
+ const platform = shallowRef(getPlatform(ssr));
9125
9159
  const state = reactive({});
9126
9160
  const width = ref(getClientWidth(ssr));
9127
- function update() {
9161
+ function updateSize() {
9128
9162
  height.value = getClientHeight();
9129
9163
  width.value = getClientWidth();
9130
9164
  }
9165
+ function update() {
9166
+ updateSize();
9167
+ platform.value = getPlatform();
9168
+ }
9131
9169
 
9132
9170
  // eslint-disable-next-line max-statements
9133
9171
  watchEffect(() => {
@@ -9139,7 +9177,7 @@ function createDisplay(options, ssr) {
9139
9177
  const xxl = width.value >= thresholds.xxl;
9140
9178
  const name = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl';
9141
9179
  const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint];
9142
- const mobile = !platform.ssr ? width.value < breakpointValue : platform.android || platform.ios || platform.opera;
9180
+ const mobile = width.value < breakpointValue;
9143
9181
  state.xs = xs;
9144
9182
  state.sm = sm;
9145
9183
  state.md = md;
@@ -9159,11 +9197,11 @@ function createDisplay(options, ssr) {
9159
9197
  state.width = width.value;
9160
9198
  state.mobile = mobile;
9161
9199
  state.mobileBreakpoint = mobileBreakpoint;
9162
- state.platform = platform;
9200
+ state.platform = platform.value;
9163
9201
  state.thresholds = thresholds;
9164
9202
  });
9165
9203
  if (IN_BROWSER) {
9166
- window.addEventListener('resize', update, {
9204
+ window.addEventListener('resize', updateSize, {
9167
9205
  passive: true
9168
9206
  });
9169
9207
  }
@@ -9228,7 +9266,7 @@ function useStack(isActive, zIndex, disableGlobalStack) {
9228
9266
  parent?.activeChildren.add(vm.uid);
9229
9267
  onScopeDispose(() => {
9230
9268
  if (createStackEntry) {
9231
- const idx = globalStack.findIndex(v => v[0] === vm.uid);
9269
+ const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid);
9232
9270
  globalStack.splice(idx, 1);
9233
9271
  }
9234
9272
  parent?.activeChildren.delete(vm.uid);
@@ -9651,17 +9689,17 @@ const VMenu = genericComponent()({
9651
9689
  const id = computed(() => props.id || `v-menu-${uid}`);
9652
9690
  const overlay = ref();
9653
9691
  const parent = inject$1(VMenuSymbol, null);
9654
- let openChildren = 0;
9692
+ const openChildren = ref(0);
9655
9693
  provide(VMenuSymbol, {
9656
9694
  register() {
9657
- ++openChildren;
9695
+ ++openChildren.value;
9658
9696
  },
9659
9697
  unregister() {
9660
- --openChildren;
9698
+ --openChildren.value;
9661
9699
  },
9662
9700
  closeParents() {
9663
9701
  setTimeout(() => {
9664
- if (!openChildren) {
9702
+ if (!openChildren.value) {
9665
9703
  isActive.value = false;
9666
9704
  parent?.closeParents();
9667
9705
  }
@@ -9705,7 +9743,8 @@ const VMenu = genericComponent()({
9705
9743
  });
9706
9744
  });
9707
9745
  return forwardRefs({
9708
- id
9746
+ id,
9747
+ ΨopenChildren: openChildren
9709
9748
  }, overlay);
9710
9749
  }
9711
9750
  });
@@ -9765,7 +9804,15 @@ const VSelect = genericComponent()({
9765
9804
  t
9766
9805
  } = useLocale();
9767
9806
  const vTextFieldRef = ref();
9768
- const menu = useProxiedModel(props, 'menu');
9807
+ const vMenuRef = ref();
9808
+ const _menu = useProxiedModel(props, 'menu');
9809
+ const menu = computed({
9810
+ get: () => _menu.value,
9811
+ set: v => {
9812
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
9813
+ _menu.value = v;
9814
+ }
9815
+ });
9769
9816
  const {
9770
9817
  items,
9771
9818
  transformIn,
@@ -9872,6 +9919,7 @@ const VSelect = genericComponent()({
9872
9919
  }), {
9873
9920
  ...slots,
9874
9921
  default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
9922
+ "ref": vMenuRef,
9875
9923
  "modelValue": menu.value,
9876
9924
  "onUpdate:modelValue": $event => menu.value = $event,
9877
9925
  "activator": "parent",
@@ -10110,7 +10158,15 @@ const VAutocomplete = genericComponent()({
10110
10158
  const vTextFieldRef = ref();
10111
10159
  const isFocused = ref(false);
10112
10160
  const isPristine = ref(true);
10113
- const menu = useProxiedModel(props, 'menu');
10161
+ const vMenuRef = ref();
10162
+ const _menu = useProxiedModel(props, 'menu');
10163
+ const menu = computed({
10164
+ get: () => _menu.value,
10165
+ set: v => {
10166
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
10167
+ _menu.value = v;
10168
+ }
10169
+ });
10114
10170
  const {
10115
10171
  items,
10116
10172
  transformIn,
@@ -10252,6 +10308,7 @@ const VAutocomplete = genericComponent()({
10252
10308
  }), {
10253
10309
  ...slots,
10254
10310
  default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
10311
+ "ref": vMenuRef,
10255
10312
  "modelValue": menu.value,
10256
10313
  "onUpdate:modelValue": $event => menu.value = $event,
10257
10314
  "activator": "parent",
@@ -10628,6 +10685,9 @@ const VBottomNavigation = genericComponent()({
10628
10685
  const {
10629
10686
  roundedClasses
10630
10687
  } = useRounded(props);
10688
+ const {
10689
+ ssrBootStyles
10690
+ } = useSsrBoot();
10631
10691
  const height = computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));
10632
10692
  const isActive = toRef(props, 'active');
10633
10693
  const {
@@ -10662,7 +10722,7 @@ const VBottomNavigation = genericComponent()({
10662
10722
  "style": [backgroundColorStyles.value, layoutItemStyles.value, {
10663
10723
  height: convertToUnit(height.value),
10664
10724
  transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
10665
- }]
10725
+ }, ssrBootStyles.value]
10666
10726
  }, {
10667
10727
  default: () => [slots.default && createVNode("div", {
10668
10728
  "class": "v-bottom-navigation__content"
@@ -11352,25 +11412,6 @@ const VWindow = genericComponent()({
11352
11412
  }
11353
11413
  });
11354
11414
 
11355
- // Utilities
11356
-
11357
- // Composables
11358
- function useSsrBoot() {
11359
- const isBooted = ref(false);
11360
- onMounted(() => {
11361
- window.requestAnimationFrame(() => {
11362
- isBooted.value = true;
11363
- });
11364
- });
11365
- const ssrBootStyles = computed(() => !isBooted.value ? {
11366
- transition: 'none !important'
11367
- } : undefined);
11368
- return {
11369
- ssrBootStyles,
11370
- isBooted: readonly(isBooted)
11371
- };
11372
- }
11373
-
11374
11415
  const VWindowItem = genericComponent()({
11375
11416
  name: 'VWindowItem',
11376
11417
  directives: {
@@ -11669,6 +11710,19 @@ const VColorPickerCanvas = defineComponent({
11669
11710
  };
11670
11711
  });
11671
11712
  const canvasRef = ref();
11713
+ const canvasWidth = ref(parseFloat(props.width));
11714
+ const canvasHeight = ref(parseFloat(props.height));
11715
+ const {
11716
+ resizeRef
11717
+ } = useResizeObserver(entries => {
11718
+ if (!resizeRef.value?.offsetParent) return;
11719
+ const {
11720
+ width,
11721
+ height
11722
+ } = entries[0].contentRect;
11723
+ canvasWidth.value = width;
11724
+ canvasHeight.value = height;
11725
+ });
11672
11726
  function updateDotPosition(x, y, rect) {
11673
11727
  const {
11674
11728
  left,
@@ -11713,18 +11767,14 @@ const VColorPickerCanvas = defineComponent({
11713
11767
  return;
11714
11768
  }
11715
11769
  if (!canvasRef.value) return;
11716
- const {
11717
- width,
11718
- height
11719
- } = canvasRef.value.getBoundingClientRect();
11720
11770
  const {
11721
11771
  x,
11722
11772
  y
11723
11773
  } = dotPosition.value;
11724
11774
  emit('update:color', {
11725
11775
  h: props.color?.h ?? 0,
11726
- s: clamp(x, 0, width) / width,
11727
- v: 1 - clamp(y, 0, height) / height,
11776
+ s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,
11777
+ v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,
11728
11778
  a: props.color?.a ?? 1
11729
11779
  });
11730
11780
  });
@@ -11747,16 +11797,27 @@ const VColorPickerCanvas = defineComponent({
11747
11797
  watch(() => props.color?.h, updateCanvas, {
11748
11798
  immediate: true
11749
11799
  });
11800
+ watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {
11801
+ updateCanvas();
11802
+ dotPosition.value = {
11803
+ x: dotPosition.value.x * newVal[0] / oldVal[0],
11804
+ y: dotPosition.value.y * newVal[1] / oldVal[1]
11805
+ };
11806
+ }, {
11807
+ flush: 'post'
11808
+ });
11750
11809
  watch(() => props.color, () => {
11751
11810
  if (isInteracting.value) {
11752
11811
  isInteracting.value = false;
11753
11812
  return;
11754
11813
  }
11755
- if (!props.color) return;
11756
11814
  isOutsideUpdate.value = true;
11757
- dotPosition.value = {
11758
- x: props.color.s * parseInt(props.width, 10),
11759
- y: (1 - props.color.v) * parseInt(props.height, 10)
11815
+ dotPosition.value = props.color ? {
11816
+ x: props.color.s * canvasWidth.value,
11817
+ y: (1 - props.color.v) * canvasHeight.value
11818
+ } : {
11819
+ x: 0,
11820
+ y: 0
11760
11821
  };
11761
11822
  }, {
11762
11823
  deep: true,
@@ -11764,19 +11825,16 @@ const VColorPickerCanvas = defineComponent({
11764
11825
  });
11765
11826
  onMounted(() => updateCanvas());
11766
11827
  useRender(() => createVNode("div", {
11828
+ "ref": resizeRef,
11767
11829
  "class": "v-color-picker-canvas",
11768
- "style": {
11769
- width: convertToUnit(props.width),
11770
- height: convertToUnit(props.height)
11771
- },
11772
11830
  "onClick": handleClick,
11773
11831
  "onMousedown": handleMouseDown,
11774
11832
  "onTouchstart": handleMouseDown
11775
11833
  }, [createVNode("canvas", {
11776
11834
  "ref": canvasRef,
11777
- "width": props.width,
11778
- "height": props.height
11779
- }, null), createVNode("div", {
11835
+ "width": canvasWidth.value,
11836
+ "height": canvasHeight.value
11837
+ }, null), props.color && createVNode("div", {
11780
11838
  "class": ['v-color-picker-canvas__dot', {
11781
11839
  'v-color-picker-canvas__dot--disabled': props.disabled
11782
11840
  }],
@@ -11809,10 +11867,7 @@ function parseColor(color) {
11809
11867
  hsva = color;
11810
11868
  }
11811
11869
  }
11812
- return hsva != null ? {
11813
- ...hsva,
11814
- a: hsva.a ?? 1
11815
- } : null;
11870
+ return hsva;
11816
11871
  }
11817
11872
  function stripAlpha(color, stripAlpha) {
11818
11873
  if (stripAlpha) {
@@ -11832,7 +11887,7 @@ function extractColor(color, input) {
11832
11887
  if (typeof input === 'object') {
11833
11888
  let converted;
11834
11889
  if (has(input, ['r', 'g', 'b'])) converted = HSVtoRGB(color);else if (has(input, ['h', 's', 'l'])) converted = HSVtoHSL(color);else if (has(input, ['h', 's', 'v'])) converted = color;
11835
- return stripAlpha(converted, !has(input, ['a']));
11890
+ return stripAlpha(converted, !has(input, ['a']) && color.a === 1);
11836
11891
  }
11837
11892
  return color;
11838
11893
  }
@@ -12023,7 +12078,7 @@ const VColorPickerEdit = defineComponent({
12023
12078
  const inputs = computed(() => {
12024
12079
  const mode = enabledModes.value.find(m => m.name === props.mode);
12025
12080
  if (!mode) return [];
12026
- const color = props.color ? mode.to(props.color) : {};
12081
+ const color = props.color ? mode.to(props.color) : null;
12027
12082
  return mode.inputs?.map(_ref3 => {
12028
12083
  let {
12029
12084
  getValue,
@@ -12034,11 +12089,11 @@ const VColorPickerEdit = defineComponent({
12034
12089
  ...mode.inputProps,
12035
12090
  ...inputProps,
12036
12091
  disabled: props.disabled,
12037
- value: getValue(color),
12092
+ value: color && getValue(color),
12038
12093
  onChange: e => {
12039
12094
  const target = e.target;
12040
12095
  if (!target) return;
12041
- emit('update:color', mode.from(getColor(color, target.value)));
12096
+ emit('update:color', mode.from(getColor(color ?? nullColor, target.value)));
12042
12097
  }
12043
12098
  };
12044
12099
  });
@@ -12737,12 +12792,12 @@ const VColorPickerPreview = defineComponent({
12737
12792
  "hideDetails": true
12738
12793
  }, null), !props.hideAlpha && createVNode(VSlider, {
12739
12794
  "class": "v-color-picker-preview__track v-color-picker-preview__alpha",
12740
- "modelValue": props.color?.a,
12795
+ "modelValue": props.color?.a ?? 1,
12741
12796
  "onUpdate:modelValue": a => emit('update:color', {
12742
12797
  ...(props.color ?? nullColor),
12743
12798
  a
12744
12799
  }),
12745
- "step": 0,
12800
+ "step": 1 / 256,
12746
12801
  "min": 0,
12747
12802
  "max": 1,
12748
12803
  "disabled": props.disabled,
@@ -13127,18 +13182,23 @@ const VColorPickerSwatches = defineComponent({
13127
13182
  }
13128
13183
  });
13129
13184
 
13185
+ // Types
13186
+
13187
+ const makeVSheetProps = propsFactory({
13188
+ color: String,
13189
+ ...makeBorderProps(),
13190
+ ...makeDimensionProps(),
13191
+ ...makeElevationProps(),
13192
+ ...makeLocationProps(),
13193
+ ...makePositionProps(),
13194
+ ...makeRoundedProps(),
13195
+ ...makeTagProps(),
13196
+ ...makeThemeProps()
13197
+ }, 'v-sheet');
13130
13198
  const VSheet = genericComponent()({
13131
13199
  name: 'VSheet',
13132
13200
  props: {
13133
- color: String,
13134
- ...makeBorderProps(),
13135
- ...makeDimensionProps(),
13136
- ...makeElevationProps(),
13137
- ...makeLocationProps(),
13138
- ...makePositionProps(),
13139
- ...makeRoundedProps(),
13140
- ...makeTagProps(),
13141
- ...makeThemeProps()
13201
+ ...makeVSheetProps()
13142
13202
  },
13143
13203
  setup(props, _ref) {
13144
13204
  let {
@@ -13169,10 +13229,11 @@ const VSheet = genericComponent()({
13169
13229
  const {
13170
13230
  roundedClasses
13171
13231
  } = useRounded(props);
13172
- return () => createVNode(props.tag, {
13232
+ useRender(() => createVNode(props.tag, {
13173
13233
  "class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
13174
13234
  "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
13175
- }, slots);
13235
+ }, slots));
13236
+ return {};
13176
13237
  }
13177
13238
  });
13178
13239
 
@@ -13249,6 +13310,13 @@ const VColorPicker = defineComponent({
13249
13310
  onMounted(() => {
13250
13311
  if (!props.modes.includes(mode.value)) mode.value = props.modes[0];
13251
13312
  });
13313
+ provideDefaults({
13314
+ VSlider: {
13315
+ color: undefined,
13316
+ trackColor: undefined,
13317
+ trackFillColor: undefined
13318
+ }
13319
+ });
13252
13320
  useRender(() => createVNode(VSheet, {
13253
13321
  "rounded": props.rounded,
13254
13322
  "elevation": props.elevation,
@@ -13349,7 +13417,15 @@ const VCombobox = genericComponent()({
13349
13417
  const vTextFieldRef = ref();
13350
13418
  const isFocused = ref(false);
13351
13419
  const isPristine = ref(true);
13352
- const menu = useProxiedModel(props, 'menu');
13420
+ const vMenuRef = ref();
13421
+ const _menu = useProxiedModel(props, 'menu');
13422
+ const menu = computed({
13423
+ get: () => _menu.value,
13424
+ set: v => {
13425
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
13426
+ _menu.value = v;
13427
+ }
13428
+ });
13353
13429
  const selectionIndex = ref(-1);
13354
13430
  const color = computed(() => vTextFieldRef.value?.color);
13355
13431
  const {
@@ -13558,6 +13634,7 @@ const VCombobox = genericComponent()({
13558
13634
  }), {
13559
13635
  ...slots,
13560
13636
  default: () => createVNode(Fragment, null, [createVNode(VMenu, mergeProps({
13637
+ "ref": vMenuRef,
13561
13638
  "modelValue": menu.value,
13562
13639
  "onUpdate:modelValue": $event => menu.value = $event,
13563
13640
  "activator": "parent",
@@ -14137,6 +14214,7 @@ const VFileInput = genericComponent()({
14137
14214
  "id": id.value,
14138
14215
  "active": isDirty.value || isFocused.value,
14139
14216
  "dirty": isDirty.value,
14217
+ "disabled": isDisabled.value,
14140
14218
  "focused": isFocused.value,
14141
14219
  "error": isValid.value === false
14142
14220
  }), {
@@ -16156,9 +16234,6 @@ const VRating = genericComponent()({
16156
16234
  const range = computed(() => createRange(Number(props.length), 1));
16157
16235
  const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
16158
16236
  const hoverIndex = ref(-1);
16159
- const focusIndex = ref(-1);
16160
- const firstRef = ref();
16161
- let isClicking = false;
16162
16237
  const itemState = computed(() => increments.value.map(value => {
16163
16238
  const isHovering = props.hover && hoverIndex.value > -1;
16164
16239
  const isFilled = normalizedValue.value >= value;
@@ -16181,16 +16256,6 @@ const VRating = genericComponent()({
16181
16256
  function onMouseleave() {
16182
16257
  hoverIndex.value = -1;
16183
16258
  }
16184
- function onFocus() {
16185
- if (value === 0 && normalizedValue.value === 0) {
16186
- firstRef.value?.focus();
16187
- } else {
16188
- focusIndex.value = value;
16189
- }
16190
- }
16191
- function onBlur() {
16192
- if (!isClicking) focusIndex.value = -1;
16193
- }
16194
16259
  function onClick() {
16195
16260
  if (props.disabled || props.readonly) return;
16196
16261
  rating.value = normalizedValue.value === value && props.clearable ? 0 : value;
@@ -16198,17 +16263,9 @@ const VRating = genericComponent()({
16198
16263
  return {
16199
16264
  onMouseenter: props.hover ? onMouseenter : undefined,
16200
16265
  onMouseleave: props.hover ? onMouseleave : undefined,
16201
- onFocus,
16202
- onBlur,
16203
16266
  onClick
16204
16267
  };
16205
16268
  }));
16206
- function onMousedown() {
16207
- isClicking = true;
16208
- }
16209
- function onMouseup() {
16210
- isClicking = false;
16211
- }
16212
16269
  const name = computed(() => props.name ?? `v-rating-${getUid()}`);
16213
16270
  function VRatingItem(_ref2) {
16214
16271
  let {
@@ -16219,8 +16276,6 @@ const VRating = genericComponent()({
16219
16276
  const {
16220
16277
  onMouseenter,
16221
16278
  onMouseleave,
16222
- onFocus,
16223
- onBlur,
16224
16279
  onClick
16225
16280
  } = eventState.value[index + 1];
16226
16281
  const id = `${name.value}-${String(value).replace('.', '-')}`;
@@ -16231,7 +16286,6 @@ const VRating = genericComponent()({
16231
16286
  icon: itemState.value[index]?.icon,
16232
16287
  ripple: props.ripple,
16233
16288
  size: props.size,
16234
- tag: 'span',
16235
16289
  variant: 'plain'
16236
16290
  };
16237
16291
  return createVNode(Fragment, null, [createVNode("label", {
@@ -16240,17 +16294,17 @@ const VRating = genericComponent()({
16240
16294
  'v-rating__item--half': props.halfIncrements && value % 1 > 0,
16241
16295
  'v-rating__item--full': props.halfIncrements && value % 1 === 0
16242
16296
  },
16243
- "onMousedown": onMousedown,
16244
- "onMouseup": onMouseup,
16245
16297
  "onMouseenter": onMouseenter,
16246
- "onMouseleave": onMouseleave
16298
+ "onMouseleave": onMouseleave,
16299
+ "onClick": onClick
16247
16300
  }, [createVNode("span", {
16248
16301
  "class": "v-rating__hidden"
16249
16302
  }, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
16250
16303
  ...itemState.value[index],
16251
16304
  props: btnProps,
16252
16305
  value,
16253
- index
16306
+ index,
16307
+ rating: normalizedValue.value
16254
16308
  }) : createVNode(VBtn, btnProps, null)]), createVNode("input", {
16255
16309
  "class": "v-rating__hidden",
16256
16310
  "name": name.value,
@@ -16258,10 +16312,7 @@ const VRating = genericComponent()({
16258
16312
  "type": "radio",
16259
16313
  "value": value,
16260
16314
  "checked": normalizedValue.value === value,
16261
- "onClick": onClick,
16262
- "onFocus": onFocus,
16263
- "onBlur": onBlur,
16264
- "ref": index === 0 ? firstRef : undefined,
16315
+ "tabindex": -1,
16265
16316
  "readonly": props.readonly,
16266
16317
  "disabled": props.disabled
16267
16318
  }, null)]);
@@ -16290,9 +16341,7 @@ const VRating = genericComponent()({
16290
16341
  index: i,
16291
16342
  label: props.itemLabels?.[i]
16292
16343
  }) : undefined, createVNode("div", {
16293
- "class": ['v-rating__item', {
16294
- 'v-rating__item--focused': Math.ceil(focusIndex.value) === value
16295
- }]
16344
+ "class": "v-rating__item"
16296
16345
  }, [props.halfIncrements ? createVNode(Fragment, null, [createVNode(VRatingItem, {
16297
16346
  "value": value - 0.5,
16298
16347
  "index": i * 2
@@ -16773,19 +16822,17 @@ const VSnackbar = genericComponent()({
16773
16822
  "modelValue": isActive.value,
16774
16823
  "onUpdate:modelValue": $event => isActive.value = $event,
16775
16824
  "contentProps": mergeProps({
16776
- style: locationStyles.value
16825
+ class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
16826
+ style: [locationStyles.value, colorStyles.value],
16827
+ onPointerenter,
16828
+ onPointerleave: startTimeout
16777
16829
  }, overlayProps.contentProps),
16778
16830
  "persistent": true,
16779
16831
  "noClickAnimation": true,
16780
16832
  "scrim": false,
16781
16833
  "scrollStrategy": "none"
16782
16834
  }, scopeId), {
16783
- default: () => [createVNode("div", {
16784
- "class": ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
16785
- "style": [colorStyles.value],
16786
- "onPointerenter": onPointerenter,
16787
- "onPointerleave": startTimeout
16788
- }, [genOverlays(false, 'v-snackbar'), slots.default && createVNode("div", {
16835
+ default: () => [genOverlays(false, 'v-snackbar'), slots.default && createVNode("div", {
16789
16836
  "class": "v-snackbar__content",
16790
16837
  "role": "status",
16791
16838
  "aria-live": "polite"
@@ -16800,7 +16847,7 @@ const VSnackbar = genericComponent()({
16800
16847
  default: () => [createVNode("div", {
16801
16848
  "class": "v-snackbar__actions"
16802
16849
  }, [slots.actions()])]
16803
- })])],
16850
+ })],
16804
16851
  activator: slots.activator
16805
16852
  });
16806
16853
  });
@@ -16959,6 +17006,9 @@ const VSystemBar = genericComponent()({
16959
17006
  const {
16960
17007
  roundedClasses
16961
17008
  } = useRounded(props);
17009
+ const {
17010
+ ssrBootStyles
17011
+ } = useSsrBoot();
16962
17012
  const height = computed(() => props.height ?? (props.window ? 32 : 24));
16963
17013
  const {
16964
17014
  layoutItemStyles
@@ -16975,7 +17025,7 @@ const VSystemBar = genericComponent()({
16975
17025
  "class": ['v-system-bar', {
16976
17026
  'v-system-bar--window': props.window
16977
17027
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
16978
- "style": [backgroundColorStyles.value, layoutItemStyles.value]
17028
+ "style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
16979
17029
  }, slots));
16980
17030
  return {};
16981
17031
  }
@@ -17399,6 +17449,7 @@ const VTextarea = genericComponent()({
17399
17449
  }, fieldProps, {
17400
17450
  "active": isActive.value || isDirty.value,
17401
17451
  "dirty": isDirty.value || props.dirty,
17452
+ "disabled": isDisabled.value,
17402
17453
  "focused": isFocused.value,
17403
17454
  "error": isValid.value === false
17404
17455
  }), {
@@ -17708,6 +17759,7 @@ const VTooltip = genericComponent()({
17708
17759
  closeOnBack: false,
17709
17760
  location: 'end',
17710
17761
  locationStrategy: 'connected',
17762
+ eager: true,
17711
17763
  minWidth: 0,
17712
17764
  offset: 10,
17713
17765
  openOnClick: false,
@@ -17716,7 +17768,7 @@ const VTooltip = genericComponent()({
17716
17768
  scrim: false,
17717
17769
  scrollStrategy: 'reposition',
17718
17770
  transition: false
17719
- }), ['absolute', 'persistent', 'eager'])
17771
+ }), ['absolute', 'persistent'])
17720
17772
  },
17721
17773
  emits: {
17722
17774
  'update:modelValue': value => true
@@ -17760,7 +17812,6 @@ const VTooltip = genericComponent()({
17760
17812
  "origin": origin.value,
17761
17813
  "persistent": true,
17762
17814
  "role": "tooltip",
17763
- "eager": true,
17764
17815
  "activatorProps": activatorProps.value,
17765
17816
  "_disableGlobalStack": true
17766
17817
  }, scopeId), {
@@ -18139,7 +18190,7 @@ function createVuetify$1() {
18139
18190
  locale
18140
18191
  };
18141
18192
  }
18142
- const version$1 = "3.2.0-dev-20230214.0";
18193
+ const version$1 = "3.2.0-dev-20230309.0";
18143
18194
  createVuetify$1.version = version$1;
18144
18195
 
18145
18196
  // Vue's inject() can only be used in setup
@@ -18159,7 +18210,7 @@ const createVuetify = function () {
18159
18210
  ...options
18160
18211
  });
18161
18212
  };
18162
- const version = "3.2.0-dev-20230214.0";
18213
+ const version = "3.2.0-dev-20230309.0";
18163
18214
  createVuetify.version = version;
18164
18215
 
18165
18216
  export { components, createVuetify, directives, useDisplay, useLayout, useLocale, useRtl, useTheme, version };