@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
package/dist/vuetify.js CHANGED
@@ -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
  */
@@ -784,11 +784,12 @@
784
784
  b,
785
785
  a
786
786
  } = _ref2;
787
- return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : 'FF'].join('')}`;
787
+ return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : ''].join('')}`;
788
788
  }
789
789
  function HexToRGB(hex) {
790
+ hex = parseHex(hex);
790
791
  let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));
791
- a = a === undefined ? a : Math.round(a / 255 * 100) / 100;
792
+ a = a === undefined ? a : a / 255;
792
793
  return {
793
794
  r,
794
795
  g,
@@ -811,9 +812,7 @@
811
812
  if (hex.length === 3 || hex.length === 4) {
812
813
  hex = hex.split('').map(x => x + x).join('');
813
814
  }
814
- if (hex.length === 6) {
815
- hex = padEnd(hex, 8, 'F');
816
- } else {
815
+ if (hex.length !== 6) {
817
816
  hex = padEnd(padEnd(hex, 6), 8, 'F');
818
817
  }
819
818
  return hex;
@@ -964,7 +963,9 @@
964
963
  if (reset || root) {
965
964
  const len = Number(reset || Infinity);
966
965
  for (let i = 0; i <= len; i++) {
967
- if (!properties.prev) break;
966
+ if (!properties || !('prev' in properties)) {
967
+ break;
968
+ }
968
969
  properties = properties.prev;
969
970
  }
970
971
  return properties;
@@ -1670,17 +1671,9 @@
1670
1671
  if (current.value.dark) {
1671
1672
  createCssClass(lines, ':root', ['color-scheme: dark']);
1672
1673
  }
1674
+ createCssClass(lines, ':root', genCssVariables(current.value));
1673
1675
  for (const [themeName, theme] of Object.entries(computedThemes.value)) {
1674
- const {
1675
- variables,
1676
- dark
1677
- } = theme;
1678
- createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${dark ? 'dark' : 'normal'}`, ...genCssVariables(theme), ...Object.keys(variables).map(key => {
1679
- const value = variables[key];
1680
- const color = typeof value === 'string' && value.startsWith('#') ? parseColor$1(value) : undefined;
1681
- const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
1682
- return `--v-${key}: ${rgb ?? value}`;
1683
- })]);
1676
+ createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)]);
1684
1677
  }
1685
1678
  const bgLines = [];
1686
1679
  const fgLines = [];
@@ -1697,22 +1690,30 @@
1697
1690
  lines.push(...bgLines, ...fgLines);
1698
1691
  return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
1699
1692
  });
1693
+ function getHead() {
1694
+ return {
1695
+ style: [{
1696
+ children: styles.value,
1697
+ id: 'vuetify-theme-stylesheet',
1698
+ nonce: parsedOptions.cspNonce || false
1699
+ }]
1700
+ };
1701
+ }
1700
1702
  function install(app) {
1701
1703
  const head = app._context.provides.usehead;
1702
1704
  if (head) {
1703
- head.addHeadObjs(vue.computed(() => {
1704
- const style = {
1705
- children: styles.value,
1706
- type: 'text/css',
1707
- id: 'vuetify-theme-stylesheet'
1708
- };
1709
- if (parsedOptions.cspNonce) style.nonce = parsedOptions.cspNonce;
1710
- return {
1711
- style: [style]
1712
- };
1713
- }));
1714
- if (IN_BROWSER) {
1715
- vue.watchEffect(() => head.updateDOM());
1705
+ if (head.push) {
1706
+ const entry = head.push(getHead);
1707
+ vue.watch(styles, () => {
1708
+ entry.patch(getHead);
1709
+ });
1710
+ } else {
1711
+ if (IN_BROWSER) {
1712
+ head.addHeadObjs(vue.computed(getHead));
1713
+ vue.watchEffect(() => head.updateDOM());
1714
+ } else {
1715
+ head.addHeadObjs(getHead());
1716
+ }
1716
1717
  }
1717
1718
  } else {
1718
1719
  let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
@@ -1785,6 +1786,11 @@
1785
1786
  variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
1786
1787
  }
1787
1788
  }
1789
+ for (const [key, value] of Object.entries(theme.variables)) {
1790
+ const color = typeof value === 'string' && value.startsWith('#') ? parseColor$1(value) : undefined;
1791
+ const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
1792
+ variables.push(`--v-${key}: ${rgb ?? value}`);
1793
+ }
1788
1794
  return variables;
1789
1795
  }
1790
1796
 
@@ -1814,7 +1820,7 @@
1814
1820
  });
1815
1821
  const model = vue.computed({
1816
1822
  get() {
1817
- return transformIn(vue.toRaw(isControlled.value ? props[prop] : internal.value));
1823
+ return transformIn(isControlled.value ? props[prop] : internal.value);
1818
1824
  },
1819
1825
  set(internalValue) {
1820
1826
  const newValue = transformOut(internalValue);
@@ -2014,7 +2020,7 @@
2014
2020
  en: false,
2015
2021
  es: false,
2016
2022
  et: false,
2017
- fa: false,
2023
+ fa: true,
2018
2024
  fi: false,
2019
2025
  fr: false,
2020
2026
  hr: false,
@@ -2175,7 +2181,7 @@
2175
2181
  // Types
2176
2182
 
2177
2183
  function createCssTransition(name) {
2178
- let origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top center 0';
2184
+ let origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'center center';
2179
2185
  let mode = arguments.length > 2 ? arguments[2] : undefined;
2180
2186
  return genericComponent()({
2181
2187
  name,
@@ -3209,6 +3215,25 @@
3209
3215
  return pick(props, Object.keys(VToolbar?.props ?? {}));
3210
3216
  }
3211
3217
 
3218
+ // Utilities
3219
+
3220
+ // Composables
3221
+ function useSsrBoot() {
3222
+ const isBooted = vue.ref(false);
3223
+ vue.onMounted(() => {
3224
+ window.requestAnimationFrame(() => {
3225
+ isBooted.value = true;
3226
+ });
3227
+ });
3228
+ const ssrBootStyles = vue.computed(() => !isBooted.value ? {
3229
+ transition: 'none !important'
3230
+ } : undefined);
3231
+ return {
3232
+ ssrBootStyles,
3233
+ isBooted: vue.readonly(isBooted)
3234
+ };
3235
+ }
3236
+
3212
3237
  // Types
3213
3238
 
3214
3239
  const VAppBar = genericComponent()({
@@ -3251,6 +3276,9 @@
3251
3276
  const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
3252
3277
  return height + extensionHeight;
3253
3278
  });
3279
+ const {
3280
+ ssrBootStyles
3281
+ } = useSsrBoot();
3254
3282
  const {
3255
3283
  layoutItemStyles
3256
3284
  } = useLayoutItem({
@@ -3271,7 +3299,8 @@
3271
3299
  }],
3272
3300
  "style": {
3273
3301
  ...layoutItemStyles.value,
3274
- height: undefined
3302
+ height: undefined,
3303
+ ...ssrBootStyles.value
3275
3304
  }
3276
3305
  }, toolbarProps), slots);
3277
3306
  });
@@ -6143,6 +6172,7 @@
6143
6172
  "id": id.value,
6144
6173
  "active": isActive.value || isDirty.value,
6145
6174
  "dirty": isDirty.value || props.dirty,
6175
+ "disabled": isDisabled.value,
6146
6176
  "focused": isFocused.value,
6147
6177
  "error": isValid.value === false
6148
6178
  }), {
@@ -7047,7 +7077,6 @@
7047
7077
  };
7048
7078
 
7049
7079
  /* eslint-disable sonarjs/no-identical-functions */
7050
-
7051
7080
  const independentSelectStrategy = mandatory => {
7052
7081
  const strategy = {
7053
7082
  select: _ref => {
@@ -7056,6 +7085,8 @@
7056
7085
  value,
7057
7086
  selected
7058
7087
  } = _ref;
7088
+ id = vue.toRaw(id);
7089
+
7059
7090
  // When mandatory and we're trying to deselect when id
7060
7091
  // is the only currently selected item then do nothing
7061
7092
  if (mandatory && !value) {
@@ -7100,6 +7131,7 @@
7100
7131
  id,
7101
7132
  ...rest
7102
7133
  } = _ref3;
7134
+ id = vue.toRaw(id);
7103
7135
  const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();
7104
7136
  return parentStrategy.select({
7105
7137
  ...rest,
@@ -7130,6 +7162,7 @@
7130
7162
  children,
7131
7163
  ...rest
7132
7164
  } = _ref4;
7165
+ id = vue.toRaw(id);
7133
7166
  if (children.has(id)) return selected;
7134
7167
  return parentStrategy.select({
7135
7168
  id,
@@ -7153,6 +7186,7 @@
7153
7186
  children,
7154
7187
  ...rest
7155
7188
  } = _ref5;
7189
+ id = vue.toRaw(id);
7156
7190
  if (children.has(id)) return selected;
7157
7191
  return parentStrategy.select({
7158
7192
  id,
@@ -7176,6 +7210,7 @@
7176
7210
  children,
7177
7211
  parents
7178
7212
  } = _ref6;
7213
+ id = vue.toRaw(id);
7179
7214
  const original = new Map(selected);
7180
7215
  const items = [id];
7181
7216
  while (items.length) {
@@ -7397,7 +7432,7 @@
7397
7432
  isOpen: vue.computed(() => parent.root.opened.value.has(computedId.value)),
7398
7433
  parent: vue.computed(() => parent.root.parents.value.get(computedId.value)),
7399
7434
  select: (selected, e) => parent.root.select(computedId.value, selected, e),
7400
- isSelected: vue.computed(() => parent.root.selected.value.get(computedId.value) === 'on'),
7435
+ isSelected: vue.computed(() => parent.root.selected.value.get(vue.toRaw(computedId.value)) === 'on'),
7401
7436
  isIndeterminate: vue.computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
7402
7437
  isLeaf: vue.computed(() => !parent.root.children.value.get(computedId.value)),
7403
7438
  isGroupActivator: parent.isGroupActivator
@@ -8959,7 +8994,7 @@
8959
8994
  if (!(data.isActive.value && props.scrollStrategy)) return;
8960
8995
  scope = vue.effectScope();
8961
8996
  await vue.nextTick();
8962
- scope.run(() => {
8997
+ scope.active && scope.run(() => {
8963
8998
  if (typeof props.scrollStrategy === 'function') {
8964
8999
  props.scrollStrategy(data, props, scope);
8965
9000
  } else {
@@ -9040,7 +9075,7 @@
9040
9075
  });
9041
9076
  });
9042
9077
  vue.onScopeDispose(() => {
9043
- cancelIdleCallback(ric);
9078
+ typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric);
9044
9079
  cancelAnimationFrame(raf);
9045
9080
  });
9046
9081
  }
@@ -9086,8 +9121,8 @@
9086
9121
  function getClientHeight(isHydrate) {
9087
9122
  return IN_BROWSER && !isHydrate ? window.innerHeight : 0;
9088
9123
  }
9089
- function getPlatform() {
9090
- const userAgent = IN_BROWSER ? window.navigator.userAgent : 'ssr';
9124
+ function getPlatform(isHydrate) {
9125
+ const userAgent = IN_BROWSER && !isHydrate ? window.navigator.userAgent : 'ssr';
9091
9126
  function match(regexp) {
9092
9127
  return Boolean(userAgent.match(regexp));
9093
9128
  }
@@ -9102,7 +9137,6 @@
9102
9137
  const win = match(/win/i);
9103
9138
  const mac = match(/mac/i);
9104
9139
  const linux = match(/linux/i);
9105
- const ssr = match(/ssr/i);
9106
9140
  return {
9107
9141
  android,
9108
9142
  ios,
@@ -9116,7 +9150,7 @@
9116
9150
  mac,
9117
9151
  linux,
9118
9152
  touch: SUPPORTS_TOUCH,
9119
- ssr
9153
+ ssr: userAgent === 'ssr'
9120
9154
  };
9121
9155
  }
9122
9156
  function createDisplay(options, ssr) {
@@ -9125,13 +9159,17 @@
9125
9159
  mobileBreakpoint
9126
9160
  } = parseDisplayOptions(options);
9127
9161
  const height = vue.ref(getClientHeight(ssr));
9128
- const platform = getPlatform();
9162
+ const platform = vue.shallowRef(getPlatform(ssr));
9129
9163
  const state = vue.reactive({});
9130
9164
  const width = vue.ref(getClientWidth(ssr));
9131
- function update() {
9165
+ function updateSize() {
9132
9166
  height.value = getClientHeight();
9133
9167
  width.value = getClientWidth();
9134
9168
  }
9169
+ function update() {
9170
+ updateSize();
9171
+ platform.value = getPlatform();
9172
+ }
9135
9173
 
9136
9174
  // eslint-disable-next-line max-statements
9137
9175
  vue.watchEffect(() => {
@@ -9143,7 +9181,7 @@
9143
9181
  const xxl = width.value >= thresholds.xxl;
9144
9182
  const name = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl';
9145
9183
  const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint];
9146
- const mobile = !platform.ssr ? width.value < breakpointValue : platform.android || platform.ios || platform.opera;
9184
+ const mobile = width.value < breakpointValue;
9147
9185
  state.xs = xs;
9148
9186
  state.sm = sm;
9149
9187
  state.md = md;
@@ -9163,11 +9201,11 @@
9163
9201
  state.width = width.value;
9164
9202
  state.mobile = mobile;
9165
9203
  state.mobileBreakpoint = mobileBreakpoint;
9166
- state.platform = platform;
9204
+ state.platform = platform.value;
9167
9205
  state.thresholds = thresholds;
9168
9206
  });
9169
9207
  if (IN_BROWSER) {
9170
- window.addEventListener('resize', update, {
9208
+ window.addEventListener('resize', updateSize, {
9171
9209
  passive: true
9172
9210
  });
9173
9211
  }
@@ -9232,7 +9270,7 @@
9232
9270
  parent?.activeChildren.add(vm.uid);
9233
9271
  vue.onScopeDispose(() => {
9234
9272
  if (createStackEntry) {
9235
- const idx = globalStack.findIndex(v => v[0] === vm.uid);
9273
+ const idx = vue.toRaw(globalStack).findIndex(v => v[0] === vm.uid);
9236
9274
  globalStack.splice(idx, 1);
9237
9275
  }
9238
9276
  parent?.activeChildren.delete(vm.uid);
@@ -9655,17 +9693,17 @@
9655
9693
  const id = vue.computed(() => props.id || `v-menu-${uid}`);
9656
9694
  const overlay = vue.ref();
9657
9695
  const parent = vue.inject(VMenuSymbol, null);
9658
- let openChildren = 0;
9696
+ const openChildren = vue.ref(0);
9659
9697
  vue.provide(VMenuSymbol, {
9660
9698
  register() {
9661
- ++openChildren;
9699
+ ++openChildren.value;
9662
9700
  },
9663
9701
  unregister() {
9664
- --openChildren;
9702
+ --openChildren.value;
9665
9703
  },
9666
9704
  closeParents() {
9667
9705
  setTimeout(() => {
9668
- if (!openChildren) {
9706
+ if (!openChildren.value) {
9669
9707
  isActive.value = false;
9670
9708
  parent?.closeParents();
9671
9709
  }
@@ -9709,7 +9747,8 @@
9709
9747
  });
9710
9748
  });
9711
9749
  return forwardRefs({
9712
- id
9750
+ id,
9751
+ ΨopenChildren: openChildren
9713
9752
  }, overlay);
9714
9753
  }
9715
9754
  });
@@ -9769,7 +9808,15 @@
9769
9808
  t
9770
9809
  } = useLocale();
9771
9810
  const vTextFieldRef = vue.ref();
9772
- const menu = useProxiedModel(props, 'menu');
9811
+ const vMenuRef = vue.ref();
9812
+ const _menu = useProxiedModel(props, 'menu');
9813
+ const menu = vue.computed({
9814
+ get: () => _menu.value,
9815
+ set: v => {
9816
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
9817
+ _menu.value = v;
9818
+ }
9819
+ });
9773
9820
  const {
9774
9821
  items,
9775
9822
  transformIn,
@@ -9876,6 +9923,7 @@
9876
9923
  }), {
9877
9924
  ...slots,
9878
9925
  default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
9926
+ "ref": vMenuRef,
9879
9927
  "modelValue": menu.value,
9880
9928
  "onUpdate:modelValue": $event => menu.value = $event,
9881
9929
  "activator": "parent",
@@ -10114,7 +10162,15 @@
10114
10162
  const vTextFieldRef = vue.ref();
10115
10163
  const isFocused = vue.ref(false);
10116
10164
  const isPristine = vue.ref(true);
10117
- const menu = useProxiedModel(props, 'menu');
10165
+ const vMenuRef = vue.ref();
10166
+ const _menu = useProxiedModel(props, 'menu');
10167
+ const menu = vue.computed({
10168
+ get: () => _menu.value,
10169
+ set: v => {
10170
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
10171
+ _menu.value = v;
10172
+ }
10173
+ });
10118
10174
  const {
10119
10175
  items,
10120
10176
  transformIn,
@@ -10256,6 +10312,7 @@
10256
10312
  }), {
10257
10313
  ...slots,
10258
10314
  default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
10315
+ "ref": vMenuRef,
10259
10316
  "modelValue": menu.value,
10260
10317
  "onUpdate:modelValue": $event => menu.value = $event,
10261
10318
  "activator": "parent",
@@ -10632,6 +10689,9 @@
10632
10689
  const {
10633
10690
  roundedClasses
10634
10691
  } = useRounded(props);
10692
+ const {
10693
+ ssrBootStyles
10694
+ } = useSsrBoot();
10635
10695
  const height = vue.computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));
10636
10696
  const isActive = vue.toRef(props, 'active');
10637
10697
  const {
@@ -10666,7 +10726,7 @@
10666
10726
  "style": [backgroundColorStyles.value, layoutItemStyles.value, {
10667
10727
  height: convertToUnit(height.value),
10668
10728
  transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`
10669
- }]
10729
+ }, ssrBootStyles.value]
10670
10730
  }, {
10671
10731
  default: () => [slots.default && vue.createVNode("div", {
10672
10732
  "class": "v-bottom-navigation__content"
@@ -11356,25 +11416,6 @@
11356
11416
  }
11357
11417
  });
11358
11418
 
11359
- // Utilities
11360
-
11361
- // Composables
11362
- function useSsrBoot() {
11363
- const isBooted = vue.ref(false);
11364
- vue.onMounted(() => {
11365
- window.requestAnimationFrame(() => {
11366
- isBooted.value = true;
11367
- });
11368
- });
11369
- const ssrBootStyles = vue.computed(() => !isBooted.value ? {
11370
- transition: 'none !important'
11371
- } : undefined);
11372
- return {
11373
- ssrBootStyles,
11374
- isBooted: vue.readonly(isBooted)
11375
- };
11376
- }
11377
-
11378
11419
  const VWindowItem = genericComponent()({
11379
11420
  name: 'VWindowItem',
11380
11421
  directives: {
@@ -11673,6 +11714,19 @@
11673
11714
  };
11674
11715
  });
11675
11716
  const canvasRef = vue.ref();
11717
+ const canvasWidth = vue.ref(parseFloat(props.width));
11718
+ const canvasHeight = vue.ref(parseFloat(props.height));
11719
+ const {
11720
+ resizeRef
11721
+ } = useResizeObserver(entries => {
11722
+ if (!resizeRef.value?.offsetParent) return;
11723
+ const {
11724
+ width,
11725
+ height
11726
+ } = entries[0].contentRect;
11727
+ canvasWidth.value = width;
11728
+ canvasHeight.value = height;
11729
+ });
11676
11730
  function updateDotPosition(x, y, rect) {
11677
11731
  const {
11678
11732
  left,
@@ -11717,18 +11771,14 @@
11717
11771
  return;
11718
11772
  }
11719
11773
  if (!canvasRef.value) return;
11720
- const {
11721
- width,
11722
- height
11723
- } = canvasRef.value.getBoundingClientRect();
11724
11774
  const {
11725
11775
  x,
11726
11776
  y
11727
11777
  } = dotPosition.value;
11728
11778
  emit('update:color', {
11729
11779
  h: props.color?.h ?? 0,
11730
- s: clamp(x, 0, width) / width,
11731
- v: 1 - clamp(y, 0, height) / height,
11780
+ s: clamp(x, 0, canvasWidth.value) / canvasWidth.value,
11781
+ v: 1 - clamp(y, 0, canvasHeight.value) / canvasHeight.value,
11732
11782
  a: props.color?.a ?? 1
11733
11783
  });
11734
11784
  });
@@ -11751,16 +11801,27 @@
11751
11801
  vue.watch(() => props.color?.h, updateCanvas, {
11752
11802
  immediate: true
11753
11803
  });
11804
+ vue.watch(() => [canvasWidth.value, canvasHeight.value], (newVal, oldVal) => {
11805
+ updateCanvas();
11806
+ dotPosition.value = {
11807
+ x: dotPosition.value.x * newVal[0] / oldVal[0],
11808
+ y: dotPosition.value.y * newVal[1] / oldVal[1]
11809
+ };
11810
+ }, {
11811
+ flush: 'post'
11812
+ });
11754
11813
  vue.watch(() => props.color, () => {
11755
11814
  if (isInteracting.value) {
11756
11815
  isInteracting.value = false;
11757
11816
  return;
11758
11817
  }
11759
- if (!props.color) return;
11760
11818
  isOutsideUpdate.value = true;
11761
- dotPosition.value = {
11762
- x: props.color.s * parseInt(props.width, 10),
11763
- y: (1 - props.color.v) * parseInt(props.height, 10)
11819
+ dotPosition.value = props.color ? {
11820
+ x: props.color.s * canvasWidth.value,
11821
+ y: (1 - props.color.v) * canvasHeight.value
11822
+ } : {
11823
+ x: 0,
11824
+ y: 0
11764
11825
  };
11765
11826
  }, {
11766
11827
  deep: true,
@@ -11768,19 +11829,16 @@
11768
11829
  });
11769
11830
  vue.onMounted(() => updateCanvas());
11770
11831
  useRender(() => vue.createVNode("div", {
11832
+ "ref": resizeRef,
11771
11833
  "class": "v-color-picker-canvas",
11772
- "style": {
11773
- width: convertToUnit(props.width),
11774
- height: convertToUnit(props.height)
11775
- },
11776
11834
  "onClick": handleClick,
11777
11835
  "onMousedown": handleMouseDown,
11778
11836
  "onTouchstart": handleMouseDown
11779
11837
  }, [vue.createVNode("canvas", {
11780
11838
  "ref": canvasRef,
11781
- "width": props.width,
11782
- "height": props.height
11783
- }, null), vue.createVNode("div", {
11839
+ "width": canvasWidth.value,
11840
+ "height": canvasHeight.value
11841
+ }, null), props.color && vue.createVNode("div", {
11784
11842
  "class": ['v-color-picker-canvas__dot', {
11785
11843
  'v-color-picker-canvas__dot--disabled': props.disabled
11786
11844
  }],
@@ -11813,10 +11871,7 @@
11813
11871
  hsva = color;
11814
11872
  }
11815
11873
  }
11816
- return hsva != null ? {
11817
- ...hsva,
11818
- a: hsva.a ?? 1
11819
- } : null;
11874
+ return hsva;
11820
11875
  }
11821
11876
  function stripAlpha(color, stripAlpha) {
11822
11877
  if (stripAlpha) {
@@ -11836,7 +11891,7 @@
11836
11891
  if (typeof input === 'object') {
11837
11892
  let converted;
11838
11893
  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;
11839
- return stripAlpha(converted, !has(input, ['a']));
11894
+ return stripAlpha(converted, !has(input, ['a']) && color.a === 1);
11840
11895
  }
11841
11896
  return color;
11842
11897
  }
@@ -12027,7 +12082,7 @@
12027
12082
  const inputs = vue.computed(() => {
12028
12083
  const mode = enabledModes.value.find(m => m.name === props.mode);
12029
12084
  if (!mode) return [];
12030
- const color = props.color ? mode.to(props.color) : {};
12085
+ const color = props.color ? mode.to(props.color) : null;
12031
12086
  return mode.inputs?.map(_ref3 => {
12032
12087
  let {
12033
12088
  getValue,
@@ -12038,11 +12093,11 @@
12038
12093
  ...mode.inputProps,
12039
12094
  ...inputProps,
12040
12095
  disabled: props.disabled,
12041
- value: getValue(color),
12096
+ value: color && getValue(color),
12042
12097
  onChange: e => {
12043
12098
  const target = e.target;
12044
12099
  if (!target) return;
12045
- emit('update:color', mode.from(getColor(color, target.value)));
12100
+ emit('update:color', mode.from(getColor(color ?? nullColor, target.value)));
12046
12101
  }
12047
12102
  };
12048
12103
  });
@@ -12741,12 +12796,12 @@
12741
12796
  "hideDetails": true
12742
12797
  }, null), !props.hideAlpha && vue.createVNode(VSlider, {
12743
12798
  "class": "v-color-picker-preview__track v-color-picker-preview__alpha",
12744
- "modelValue": props.color?.a,
12799
+ "modelValue": props.color?.a ?? 1,
12745
12800
  "onUpdate:modelValue": a => emit('update:color', {
12746
12801
  ...(props.color ?? nullColor),
12747
12802
  a
12748
12803
  }),
12749
- "step": 0,
12804
+ "step": 1 / 256,
12750
12805
  "min": 0,
12751
12806
  "max": 1,
12752
12807
  "disabled": props.disabled,
@@ -13131,18 +13186,23 @@
13131
13186
  }
13132
13187
  });
13133
13188
 
13189
+ // Types
13190
+
13191
+ const makeVSheetProps = propsFactory({
13192
+ color: String,
13193
+ ...makeBorderProps(),
13194
+ ...makeDimensionProps(),
13195
+ ...makeElevationProps(),
13196
+ ...makeLocationProps(),
13197
+ ...makePositionProps(),
13198
+ ...makeRoundedProps(),
13199
+ ...makeTagProps(),
13200
+ ...makeThemeProps()
13201
+ }, 'v-sheet');
13134
13202
  const VSheet = genericComponent()({
13135
13203
  name: 'VSheet',
13136
13204
  props: {
13137
- color: String,
13138
- ...makeBorderProps(),
13139
- ...makeDimensionProps(),
13140
- ...makeElevationProps(),
13141
- ...makeLocationProps(),
13142
- ...makePositionProps(),
13143
- ...makeRoundedProps(),
13144
- ...makeTagProps(),
13145
- ...makeThemeProps()
13205
+ ...makeVSheetProps()
13146
13206
  },
13147
13207
  setup(props, _ref) {
13148
13208
  let {
@@ -13173,10 +13233,11 @@
13173
13233
  const {
13174
13234
  roundedClasses
13175
13235
  } = useRounded(props);
13176
- return () => vue.createVNode(props.tag, {
13236
+ useRender(() => vue.createVNode(props.tag, {
13177
13237
  "class": ['v-sheet', themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value],
13178
13238
  "style": [backgroundColorStyles.value, dimensionStyles.value, locationStyles.value]
13179
- }, slots);
13239
+ }, slots));
13240
+ return {};
13180
13241
  }
13181
13242
  });
13182
13243
 
@@ -13253,6 +13314,13 @@
13253
13314
  vue.onMounted(() => {
13254
13315
  if (!props.modes.includes(mode.value)) mode.value = props.modes[0];
13255
13316
  });
13317
+ provideDefaults({
13318
+ VSlider: {
13319
+ color: undefined,
13320
+ trackColor: undefined,
13321
+ trackFillColor: undefined
13322
+ }
13323
+ });
13256
13324
  useRender(() => vue.createVNode(VSheet, {
13257
13325
  "rounded": props.rounded,
13258
13326
  "elevation": props.elevation,
@@ -13353,7 +13421,15 @@
13353
13421
  const vTextFieldRef = vue.ref();
13354
13422
  const isFocused = vue.ref(false);
13355
13423
  const isPristine = vue.ref(true);
13356
- const menu = useProxiedModel(props, 'menu');
13424
+ const vMenuRef = vue.ref();
13425
+ const _menu = useProxiedModel(props, 'menu');
13426
+ const menu = vue.computed({
13427
+ get: () => _menu.value,
13428
+ set: v => {
13429
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
13430
+ _menu.value = v;
13431
+ }
13432
+ });
13357
13433
  const selectionIndex = vue.ref(-1);
13358
13434
  const color = vue.computed(() => vTextFieldRef.value?.color);
13359
13435
  const {
@@ -13562,6 +13638,7 @@
13562
13638
  }), {
13563
13639
  ...slots,
13564
13640
  default: () => vue.createVNode(vue.Fragment, null, [vue.createVNode(VMenu, vue.mergeProps({
13641
+ "ref": vMenuRef,
13565
13642
  "modelValue": menu.value,
13566
13643
  "onUpdate:modelValue": $event => menu.value = $event,
13567
13644
  "activator": "parent",
@@ -14141,6 +14218,7 @@
14141
14218
  "id": id.value,
14142
14219
  "active": isDirty.value || isFocused.value,
14143
14220
  "dirty": isDirty.value,
14221
+ "disabled": isDisabled.value,
14144
14222
  "focused": isFocused.value,
14145
14223
  "error": isValid.value === false
14146
14224
  }), {
@@ -16160,9 +16238,6 @@
16160
16238
  const range = vue.computed(() => createRange(Number(props.length), 1));
16161
16239
  const increments = vue.computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
16162
16240
  const hoverIndex = vue.ref(-1);
16163
- const focusIndex = vue.ref(-1);
16164
- const firstRef = vue.ref();
16165
- let isClicking = false;
16166
16241
  const itemState = vue.computed(() => increments.value.map(value => {
16167
16242
  const isHovering = props.hover && hoverIndex.value > -1;
16168
16243
  const isFilled = normalizedValue.value >= value;
@@ -16185,16 +16260,6 @@
16185
16260
  function onMouseleave() {
16186
16261
  hoverIndex.value = -1;
16187
16262
  }
16188
- function onFocus() {
16189
- if (value === 0 && normalizedValue.value === 0) {
16190
- firstRef.value?.focus();
16191
- } else {
16192
- focusIndex.value = value;
16193
- }
16194
- }
16195
- function onBlur() {
16196
- if (!isClicking) focusIndex.value = -1;
16197
- }
16198
16263
  function onClick() {
16199
16264
  if (props.disabled || props.readonly) return;
16200
16265
  rating.value = normalizedValue.value === value && props.clearable ? 0 : value;
@@ -16202,17 +16267,9 @@
16202
16267
  return {
16203
16268
  onMouseenter: props.hover ? onMouseenter : undefined,
16204
16269
  onMouseleave: props.hover ? onMouseleave : undefined,
16205
- onFocus,
16206
- onBlur,
16207
16270
  onClick
16208
16271
  };
16209
16272
  }));
16210
- function onMousedown() {
16211
- isClicking = true;
16212
- }
16213
- function onMouseup() {
16214
- isClicking = false;
16215
- }
16216
16273
  const name = vue.computed(() => props.name ?? `v-rating-${getUid()}`);
16217
16274
  function VRatingItem(_ref2) {
16218
16275
  let {
@@ -16223,8 +16280,6 @@
16223
16280
  const {
16224
16281
  onMouseenter,
16225
16282
  onMouseleave,
16226
- onFocus,
16227
- onBlur,
16228
16283
  onClick
16229
16284
  } = eventState.value[index + 1];
16230
16285
  const id = `${name.value}-${String(value).replace('.', '-')}`;
@@ -16235,7 +16290,6 @@
16235
16290
  icon: itemState.value[index]?.icon,
16236
16291
  ripple: props.ripple,
16237
16292
  size: props.size,
16238
- tag: 'span',
16239
16293
  variant: 'plain'
16240
16294
  };
16241
16295
  return vue.createVNode(vue.Fragment, null, [vue.createVNode("label", {
@@ -16244,17 +16298,17 @@
16244
16298
  'v-rating__item--half': props.halfIncrements && value % 1 > 0,
16245
16299
  'v-rating__item--full': props.halfIncrements && value % 1 === 0
16246
16300
  },
16247
- "onMousedown": onMousedown,
16248
- "onMouseup": onMouseup,
16249
16301
  "onMouseenter": onMouseenter,
16250
- "onMouseleave": onMouseleave
16302
+ "onMouseleave": onMouseleave,
16303
+ "onClick": onClick
16251
16304
  }, [vue.createVNode("span", {
16252
16305
  "class": "v-rating__hidden"
16253
16306
  }, [t(props.itemAriaLabel, value, props.length)]), !showStar ? undefined : slots.item ? slots.item({
16254
16307
  ...itemState.value[index],
16255
16308
  props: btnProps,
16256
16309
  value,
16257
- index
16310
+ index,
16311
+ rating: normalizedValue.value
16258
16312
  }) : vue.createVNode(VBtn, btnProps, null)]), vue.createVNode("input", {
16259
16313
  "class": "v-rating__hidden",
16260
16314
  "name": name.value,
@@ -16262,10 +16316,7 @@
16262
16316
  "type": "radio",
16263
16317
  "value": value,
16264
16318
  "checked": normalizedValue.value === value,
16265
- "onClick": onClick,
16266
- "onFocus": onFocus,
16267
- "onBlur": onBlur,
16268
- "ref": index === 0 ? firstRef : undefined,
16319
+ "tabindex": -1,
16269
16320
  "readonly": props.readonly,
16270
16321
  "disabled": props.disabled
16271
16322
  }, null)]);
@@ -16294,9 +16345,7 @@
16294
16345
  index: i,
16295
16346
  label: props.itemLabels?.[i]
16296
16347
  }) : undefined, vue.createVNode("div", {
16297
- "class": ['v-rating__item', {
16298
- 'v-rating__item--focused': Math.ceil(focusIndex.value) === value
16299
- }]
16348
+ "class": "v-rating__item"
16300
16349
  }, [props.halfIncrements ? vue.createVNode(vue.Fragment, null, [vue.createVNode(VRatingItem, {
16301
16350
  "value": value - 0.5,
16302
16351
  "index": i * 2
@@ -16777,19 +16826,17 @@
16777
16826
  "modelValue": isActive.value,
16778
16827
  "onUpdate:modelValue": $event => isActive.value = $event,
16779
16828
  "contentProps": vue.mergeProps({
16780
- style: locationStyles.value
16829
+ class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
16830
+ style: [locationStyles.value, colorStyles.value],
16831
+ onPointerenter,
16832
+ onPointerleave: startTimeout
16781
16833
  }, overlayProps.contentProps),
16782
16834
  "persistent": true,
16783
16835
  "noClickAnimation": true,
16784
16836
  "scrim": false,
16785
16837
  "scrollStrategy": "none"
16786
16838
  }, scopeId), {
16787
- default: () => [vue.createVNode("div", {
16788
- "class": ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
16789
- "style": [colorStyles.value],
16790
- "onPointerenter": onPointerenter,
16791
- "onPointerleave": startTimeout
16792
- }, [genOverlays(false, 'v-snackbar'), slots.default && vue.createVNode("div", {
16839
+ default: () => [genOverlays(false, 'v-snackbar'), slots.default && vue.createVNode("div", {
16793
16840
  "class": "v-snackbar__content",
16794
16841
  "role": "status",
16795
16842
  "aria-live": "polite"
@@ -16804,7 +16851,7 @@
16804
16851
  default: () => [vue.createVNode("div", {
16805
16852
  "class": "v-snackbar__actions"
16806
16853
  }, [slots.actions()])]
16807
- })])],
16854
+ })],
16808
16855
  activator: slots.activator
16809
16856
  });
16810
16857
  });
@@ -16963,6 +17010,9 @@
16963
17010
  const {
16964
17011
  roundedClasses
16965
17012
  } = useRounded(props);
17013
+ const {
17014
+ ssrBootStyles
17015
+ } = useSsrBoot();
16966
17016
  const height = vue.computed(() => props.height ?? (props.window ? 32 : 24));
16967
17017
  const {
16968
17018
  layoutItemStyles
@@ -16979,7 +17029,7 @@
16979
17029
  "class": ['v-system-bar', {
16980
17030
  'v-system-bar--window': props.window
16981
17031
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value, roundedClasses.value],
16982
- "style": [backgroundColorStyles.value, layoutItemStyles.value]
17032
+ "style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value]
16983
17033
  }, slots));
16984
17034
  return {};
16985
17035
  }
@@ -17403,6 +17453,7 @@
17403
17453
  }, fieldProps, {
17404
17454
  "active": isActive.value || isDirty.value,
17405
17455
  "dirty": isDirty.value || props.dirty,
17456
+ "disabled": isDisabled.value,
17406
17457
  "focused": isFocused.value,
17407
17458
  "error": isValid.value === false
17408
17459
  }), {
@@ -17712,6 +17763,7 @@
17712
17763
  closeOnBack: false,
17713
17764
  location: 'end',
17714
17765
  locationStrategy: 'connected',
17766
+ eager: true,
17715
17767
  minWidth: 0,
17716
17768
  offset: 10,
17717
17769
  openOnClick: false,
@@ -17720,7 +17772,7 @@
17720
17772
  scrim: false,
17721
17773
  scrollStrategy: 'reposition',
17722
17774
  transition: false
17723
- }), ['absolute', 'persistent', 'eager'])
17775
+ }), ['absolute', 'persistent'])
17724
17776
  },
17725
17777
  emits: {
17726
17778
  'update:modelValue': value => true
@@ -17764,7 +17816,6 @@
17764
17816
  "origin": origin.value,
17765
17817
  "persistent": true,
17766
17818
  "role": "tooltip",
17767
- "eager": true,
17768
17819
  "activatorProps": activatorProps.value,
17769
17820
  "_disableGlobalStack": true
17770
17821
  }, scopeId), {
@@ -18143,7 +18194,7 @@
18143
18194
  locale
18144
18195
  };
18145
18196
  }
18146
- const version$1 = "3.2.0-dev-20230214.0";
18197
+ const version$1 = "3.2.0-dev-20230309.0";
18147
18198
  createVuetify$1.version = version$1;
18148
18199
 
18149
18200
  // Vue's inject() can only be used in setup
@@ -18163,7 +18214,7 @@
18163
18214
  ...options
18164
18215
  });
18165
18216
  };
18166
- const version = "3.2.0-dev-20230214.0";
18217
+ const version = "3.2.0-dev-20230309.0";
18167
18218
  createVuetify.version = version;
18168
18219
 
18169
18220
  exports.components = components;