@vuetify/nightly 3.2.0-dev-20230309.0 → 3.2.0-dev-20230322.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 (256) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/dist/json/attributes.json +210 -30
  3. package/dist/json/importMap.json +4 -4
  4. package/dist/json/tags.json +47 -2
  5. package/dist/json/web-types.json +529 -63
  6. package/dist/vuetify-labs.css +1186 -1146
  7. package/dist/vuetify-labs.d.ts +56928 -14280
  8. package/dist/vuetify-labs.esm.js +557 -363
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +557 -363
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +204 -179
  13. package/dist/vuetify.d.ts +55330 -15866
  14. package/dist/vuetify.esm.js +400 -306
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +400 -306
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +668 -667
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/blueprints/index.d.ts +6 -9
  22. package/lib/blueprints/md1.d.ts +6 -9
  23. package/lib/blueprints/md2.d.ts +6 -9
  24. package/lib/blueprints/md3.d.ts +6 -9
  25. package/lib/blueprints/md3.mjs +6 -0
  26. package/lib/blueprints/md3.mjs.map +1 -1
  27. package/lib/components/VAlert/VAlert.mjs +29 -15
  28. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  29. package/lib/components/VAlert/index.d.ts +510 -82
  30. package/lib/components/VApp/VApp.css +1 -0
  31. package/lib/components/VApp/VApp.sass +1 -0
  32. package/lib/components/VApp/index.d.ts +158 -20
  33. package/lib/components/VAppBar/VAppBar.mjs +2 -2
  34. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  35. package/lib/components/VAppBar/index.d.ts +616 -110
  36. package/lib/components/VAutocomplete/VAutocomplete.mjs +13 -7
  37. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  38. package/lib/components/VAutocomplete/index.d.ts +1656 -130
  39. package/lib/components/VAvatar/index.d.ts +205 -29
  40. package/lib/components/VBadge/index.d.ts +284 -42
  41. package/lib/components/VBanner/VBanner.mjs +19 -12
  42. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  43. package/lib/components/VBanner/index.d.ts +478 -84
  44. package/lib/components/VBottomNavigation/index.d.ts +321 -40
  45. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +11 -7
  46. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  47. package/lib/components/VBreadcrumbs/index.d.ts +325 -45
  48. package/lib/components/VBtn/VBtn.css +0 -5
  49. package/lib/components/VBtn/VBtn.mjs +65 -58
  50. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  51. package/lib/components/VBtn/VBtn.sass +0 -7
  52. package/lib/components/VBtn/_variables.scss +0 -2
  53. package/lib/components/VBtn/index.d.ts +452 -69
  54. package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -7
  55. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  56. package/lib/components/VBtnGroup/index.d.ts +185 -26
  57. package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -2
  58. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  59. package/lib/components/VBtnToggle/index.d.ts +245 -35
  60. package/lib/components/VCard/VCard.mjs +10 -6
  61. package/lib/components/VCard/VCard.mjs.map +1 -1
  62. package/lib/components/VCard/VCardItem.mjs +27 -23
  63. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  64. package/lib/components/VCard/index.d.ts +938 -172
  65. package/lib/components/VCarousel/index.d.ts +561 -123
  66. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  67. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  68. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -4
  69. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  70. package/lib/components/VCheckbox/index.d.ts +831 -147
  71. package/lib/components/VChip/VChip.css +110 -90
  72. package/lib/components/VChip/VChip.mjs +70 -48
  73. package/lib/components/VChip/VChip.mjs.map +1 -1
  74. package/lib/components/VChip/_mixins.scss +27 -23
  75. package/lib/components/VChip/index.d.ts +474 -76
  76. package/lib/components/VChipGroup/index.d.ts +227 -32
  77. package/lib/components/VCode/index.d.ts +109 -16
  78. package/lib/components/VColorPicker/index.d.ts +284 -20
  79. package/lib/components/VCombobox/VCombobox.mjs +13 -7
  80. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  81. package/lib/components/VCombobox/index.d.ts +1668 -130
  82. package/lib/components/VCounter/index.d.ts +1894 -87
  83. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -1
  84. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  85. package/lib/components/VDefaultsProvider/index.d.ts +133 -21
  86. package/lib/components/VDialog/VDialog.css +31 -24
  87. package/lib/components/VDialog/VDialog.mjs +2 -2
  88. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  89. package/lib/components/VDialog/VDialog.sass +19 -12
  90. package/lib/components/VDialog/index.d.ts +2362 -146
  91. package/lib/components/VDivider/index.d.ts +130 -23
  92. package/lib/components/VExpansionPanel/index.d.ts +719 -119
  93. package/lib/components/VField/index.d.ts +163 -21
  94. package/lib/components/VFileInput/index.d.ts +1038 -104
  95. package/lib/components/VFooter/VFooter.css +2 -0
  96. package/lib/components/VFooter/VFooter.sass +2 -0
  97. package/lib/components/VFooter/_variables.scss +2 -0
  98. package/lib/components/VFooter/index.d.ts +203 -28
  99. package/lib/components/VForm/index.d.ts +204 -23
  100. package/lib/components/VGrid/VCol.mjs +6 -5
  101. package/lib/components/VGrid/VCol.mjs.map +1 -1
  102. package/lib/components/VGrid/VRow.mjs +4 -4
  103. package/lib/components/VGrid/VRow.mjs.map +1 -1
  104. package/lib/components/VGrid/index.d.ts +733 -76
  105. package/lib/components/VHover/index.d.ts +182 -35
  106. package/lib/components/VIcon/index.d.ts +494 -50
  107. package/lib/components/VImg/VImg.mjs +2 -2
  108. package/lib/components/VImg/VImg.mjs.map +1 -1
  109. package/lib/components/VImg/index.d.ts +275 -46
  110. package/lib/components/VInput/index.d.ts +315 -53
  111. package/lib/components/VItemGroup/index.d.ts +308 -52
  112. package/lib/components/VKbd/VKbd.css +1 -0
  113. package/lib/components/VKbd/VKbd.sass +1 -0
  114. package/lib/components/VKbd/_variables.scss +1 -0
  115. package/lib/components/VKbd/index.d.ts +109 -16
  116. package/lib/components/VLabel/index.d.ts +113 -20
  117. package/lib/components/VLayout/index.d.ts +296 -41
  118. package/lib/components/VLazy/VLazy.mjs +4 -1
  119. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  120. package/lib/components/VLazy/index.d.ts +219 -30
  121. package/lib/components/VList/VListChildren.mjs +2 -2
  122. package/lib/components/VList/VListChildren.mjs.map +1 -1
  123. package/lib/components/VList/VListGroup.mjs +1 -4
  124. package/lib/components/VList/VListGroup.mjs.map +1 -1
  125. package/lib/components/VList/VListItem.mjs +23 -19
  126. package/lib/components/VList/VListItem.mjs.map +1 -1
  127. package/lib/components/VList/index.d.ts +1461 -223
  128. package/lib/components/VLocaleProvider/index.d.ts +121 -20
  129. package/lib/components/VMain/index.d.ts +118 -17
  130. package/lib/components/VMenu/VMenu.css +4 -4
  131. package/lib/components/VMenu/VMenu.mjs +2 -2
  132. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  133. package/lib/components/VMenu/VMenu.sass +1 -1
  134. package/lib/components/VMenu/index.d.ts +2368 -142
  135. package/lib/components/VMessages/index.d.ts +1921 -98
  136. package/lib/components/VNavigationDrawer/index.d.ts +379 -56
  137. package/lib/components/VOverlay/VOverlay.css +2 -2
  138. package/lib/components/VOverlay/VOverlay.mjs +1 -4
  139. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  140. package/lib/components/VOverlay/VOverlay.sass +1 -1
  141. package/lib/components/VOverlay/_variables.scss +1 -1
  142. package/lib/components/VOverlay/index.d.ts +519 -85
  143. package/lib/components/VPagination/index.d.ts +502 -68
  144. package/lib/components/VParallax/VParallax.mjs +3 -3
  145. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  146. package/lib/components/VParallax/index.d.ts +141 -28
  147. package/lib/components/VProgressCircular/index.d.ts +186 -25
  148. package/lib/components/VProgressLinear/index.d.ts +319 -48
  149. package/lib/components/VRadio/index.d.ts +313 -57
  150. package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -6
  151. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  152. package/lib/components/VRadioGroup/index.d.ts +463 -83
  153. package/lib/components/VRangeSlider/index.d.ts +528 -80
  154. package/lib/components/VRating/VRating.mjs.map +1 -1
  155. package/lib/components/VRating/index.d.ts +305 -43
  156. package/lib/components/VResponsive/index.d.ts +142 -27
  157. package/lib/components/VSelect/VSelect.mjs +13 -7
  158. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  159. package/lib/components/VSelect/index.d.ts +3060 -328
  160. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -4
  161. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  162. package/lib/components/VSelectionControl/index.d.ts +76 -4
  163. package/lib/components/VSelectionControlGroup/index.d.ts +242 -38
  164. package/lib/components/VSheet/VSheet.mjs +1 -7
  165. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  166. package/lib/components/VSheet/index.d.ts +194 -31
  167. package/lib/components/VSlideGroup/index.d.ts +475 -83
  168. package/lib/components/VSlider/VSliderTrack.mjs +1 -0
  169. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  170. package/lib/components/VSlider/index.d.ts +521 -79
  171. package/lib/components/VSlider/slider.mjs +5 -6
  172. package/lib/components/VSlider/slider.mjs.map +1 -1
  173. package/lib/components/VSnackbar/VSnackbar.css +2 -7
  174. package/lib/components/VSnackbar/VSnackbar.mjs +4 -3
  175. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  176. package/lib/components/VSnackbar/VSnackbar.sass +3 -8
  177. package/lib/components/VSnackbar/index.d.ts +1219 -81
  178. package/lib/components/VSwitch/VSwitch.mjs +2 -2
  179. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  180. package/lib/components/VSwitch/index.d.ts +498 -92
  181. package/lib/components/VSystemBar/index.d.ts +184 -27
  182. package/lib/components/VTable/index.d.ts +190 -35
  183. package/lib/components/VTabs/VTab.mjs +7 -23
  184. package/lib/components/VTabs/VTab.mjs.map +1 -1
  185. package/lib/components/VTabs/index.d.ts +623 -71
  186. package/lib/components/VTextField/VTextField.mjs +8 -5
  187. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  188. package/lib/components/VTextField/index.d.ts +1404 -106
  189. package/lib/components/VTextarea/VTextarea.mjs +7 -1
  190. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  191. package/lib/components/VTextarea/index.d.ts +1014 -102
  192. package/lib/components/VThemeProvider/index.d.ts +124 -19
  193. package/lib/components/VTimeline/VTimelineDivider.mjs +18 -10
  194. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  195. package/lib/components/VTimeline/index.d.ts +441 -71
  196. package/lib/components/VToolbar/VToolbar.mjs +10 -9
  197. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  198. package/lib/components/VToolbar/index.d.ts +542 -93
  199. package/lib/components/VTooltip/VTooltip.css +3 -3
  200. package/lib/components/VTooltip/VTooltip.mjs +2 -2
  201. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  202. package/lib/components/VTooltip/VTooltip.sass +1 -1
  203. package/lib/components/VTooltip/index.d.ts +1276 -82
  204. package/lib/components/VValidation/index.d.ts +201 -30
  205. package/lib/components/VWindow/index.d.ts +527 -95
  206. package/lib/components/index.d.ts +55255 -15788
  207. package/lib/components/transitions/index.d.ts +2097 -308
  208. package/lib/composables/defaults.mjs +2 -0
  209. package/lib/composables/defaults.mjs.map +1 -1
  210. package/lib/composables/display.mjs +2 -0
  211. package/lib/composables/display.mjs.map +1 -1
  212. package/lib/composables/form.mjs.map +1 -1
  213. package/lib/entry-bundler.mjs +1 -1
  214. package/lib/framework.mjs +1 -1
  215. package/lib/index.d.ts +7 -10
  216. package/lib/labs/VDataTable/VDataTable.css +15 -0
  217. package/lib/labs/VDataTable/VDataTable.mjs +41 -17
  218. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  219. package/lib/labs/VDataTable/VDataTable.sass +9 -0
  220. package/lib/labs/VDataTable/VDataTableFooter.mjs +3 -2
  221. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  222. package/lib/labs/VDataTable/VDataTableRow.mjs +8 -2
  223. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  224. package/lib/labs/VDataTable/VDataTableRows.mjs +2 -1
  225. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  226. package/lib/labs/VDataTable/VDataTableServer.mjs +39 -17
  227. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  228. package/lib/labs/VDataTable/VDataTableVirtual.mjs +23 -12
  229. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  230. package/lib/labs/VDataTable/composables/expand.mjs +1 -1
  231. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
  232. package/lib/labs/VDataTable/composables/group.mjs +12 -1
  233. package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
  234. package/lib/labs/VDataTable/composables/options.mjs +0 -12
  235. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  236. package/lib/labs/VDataTable/composables/paginate.mjs +25 -4
  237. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  238. package/lib/labs/VDataTable/composables/select.mjs +1 -1
  239. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  240. package/lib/labs/VDataTable/composables/sort.mjs +19 -3
  241. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  242. package/lib/labs/VDataTable/index.d.ts +4179 -1017
  243. package/lib/labs/VVirtualScroll/index.d.ts +32 -1
  244. package/lib/labs/components.d.ts +4214 -1026
  245. package/lib/locale/adapters/vue-i18n.d.ts +1 -1
  246. package/lib/locale/adapters/vue-i18n.mjs +1 -1
  247. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  248. package/lib/styles/main.css +4 -0
  249. package/lib/styles/settings/_utilities.scss +7 -0
  250. package/lib/util/animation.mjs +8 -1
  251. package/lib/util/animation.mjs.map +1 -1
  252. package/lib/util/defineComponent.mjs +15 -7
  253. package/lib/util/defineComponent.mjs.map +1 -1
  254. package/lib/util/helpers.mjs +4 -0
  255. package/lib/util/helpers.mjs.map +1 -1
  256. package/package.json +5 -10
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.2.0-dev-20230309.0
2
+ * Vuetify v3.2.0-dev-20230322.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -203,6 +203,10 @@ function clamp(value) {
203
203
  let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
204
204
  return Math.max(min, Math.min(max, value));
205
205
  }
206
+ function getDecimals(value) {
207
+ const trimmedStr = value.toString().trim();
208
+ return trimmedStr.includes('.') ? trimmedStr.length - trimmedStr.indexOf('.') - 1 : 0;
209
+ }
206
210
  function padEnd(str, length) {
207
211
  let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
208
212
  return str + char.repeat(Math.max(0, length - str.length));
@@ -485,7 +489,14 @@ function animate(el, keyframes, options) {
485
489
  if (typeof el.animate === 'undefined') return {
486
490
  finished: Promise.resolve()
487
491
  };
488
- const animation = el.animate(keyframes, options);
492
+ let animation;
493
+ try {
494
+ animation = el.animate(keyframes, options);
495
+ } catch (err) {
496
+ return {
497
+ finished: Promise.resolve()
498
+ };
499
+ }
489
500
  if (typeof animation.finished === 'undefined') {
490
501
  animation.finished = new Promise(resolve => {
491
502
  animation.onfinish = () => {
@@ -949,6 +960,8 @@ function provideDefaults(defaults, options) {
949
960
  const injectedDefaults = useDefaults();
950
961
  const providedDefaults = ref(defaults);
951
962
  const newDefaults = computed(() => {
963
+ const disabled = unref(options?.disabled);
964
+ if (disabled) return injectedDefaults.value;
952
965
  const scoped = unref(options?.scoped);
953
966
  const reset = unref(options?.reset);
954
967
  const root = unref(options?.root);
@@ -1003,15 +1016,22 @@ function useToggleScope(source, fn) {
1003
1016
  function propIsDefined(vnode, prop) {
1004
1017
  return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
1005
1018
  }
1006
- const defineComponent = function defineComponent(options) {
1019
+
1020
+ // No props
1021
+
1022
+ // Implementation
1023
+ function defineComponent(options) {
1007
1024
  options._setup = options._setup ?? options.setup;
1008
1025
  if (!options.name) {
1009
1026
  consoleWarn('The component is missing an explicit name, unable to generate default prop value');
1010
1027
  return options;
1011
1028
  }
1012
1029
  if (options._setup) {
1013
- options.props = options.props ?? {};
1014
- options.props = propsFactory(options.props, toKebabCase(options.name))();
1030
+ options.props = propsFactory(options.props ?? {}, toKebabCase(options.name))();
1031
+ const propKeys = Object.keys(options.props);
1032
+ options.filterProps = function filterProps(props) {
1033
+ return pick(props, propKeys);
1034
+ };
1015
1035
  options.props._as = String;
1016
1036
  options.setup = function setup(props, ctx) {
1017
1037
  const defaults = useDefaults();
@@ -1022,10 +1042,11 @@ const defineComponent = function defineComponent(options) {
1022
1042
  const componentDefaults = computed(() => defaults.value[props._as ?? options.name]);
1023
1043
  const _props = new Proxy(props, {
1024
1044
  get(target, prop) {
1045
+ const propValue = Reflect.get(target, prop);
1025
1046
  if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
1026
- return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? target[prop];
1047
+ return componentDefaults.value?.[prop] ?? defaults.value.global?.[prop] ?? propValue;
1027
1048
  }
1028
- return Reflect.get(target, prop);
1049
+ return propValue;
1029
1050
  }
1030
1051
  });
1031
1052
  const _subcomponentDefaults = shallowRef();
@@ -1050,7 +1071,7 @@ const defineComponent = function defineComponent(options) {
1050
1071
  };
1051
1072
  }
1052
1073
  return options;
1053
- };
1074
+ }
1054
1075
  // Implementation
1055
1076
  function genericComponent() {
1056
1077
  let exposeDefaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -2149,6 +2170,7 @@ const VDefaultsProvider = genericComponent(false)({
2149
2170
  name: 'VDefaultsProvider',
2150
2171
  props: {
2151
2172
  defaults: Object,
2173
+ disabled: Boolean,
2152
2174
  reset: [Number, String],
2153
2175
  root: Boolean,
2154
2176
  scoped: Boolean
@@ -2159,6 +2181,7 @@ const VDefaultsProvider = genericComponent(false)({
2159
2181
  } = _ref;
2160
2182
  const {
2161
2183
  defaults,
2184
+ disabled,
2162
2185
  reset,
2163
2186
  root,
2164
2187
  scoped
@@ -2166,7 +2189,8 @@ const VDefaultsProvider = genericComponent(false)({
2166
2189
  provideDefaults(defaults, {
2167
2190
  reset,
2168
2191
  root,
2169
- scoped
2192
+ scoped,
2193
+ disabled
2170
2194
  });
2171
2195
  return () => slots.default?.();
2172
2196
  }
@@ -2788,7 +2812,7 @@ const VImg = genericComponent()({
2788
2812
  "class": ['v-img__img', containClasses.value],
2789
2813
  "src": normalisedSrc.value.src,
2790
2814
  "srcset": normalisedSrc.value.srcset,
2791
- "alt": "",
2815
+ "alt": props.alt,
2792
2816
  "sizes": props.sizes,
2793
2817
  "ref": image,
2794
2818
  "onLoad": onLoad,
@@ -2810,7 +2834,7 @@ const VImg = genericComponent()({
2810
2834
  default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createVNode("img", {
2811
2835
  "class": ['v-img__img', 'v-img__img--preload', containClasses.value],
2812
2836
  "src": normalisedSrc.value.lazySrc,
2813
- "alt": ""
2837
+ "alt": props.alt
2814
2838
  }, null)]
2815
2839
  });
2816
2840
  const __placeholder = () => {
@@ -3152,16 +3176,20 @@ const VToolbar = genericComponent()({
3152
3176
  default: () => [hasImage && createVNode("div", {
3153
3177
  "key": "image",
3154
3178
  "class": "v-toolbar__image"
3155
- }, [createVNode(VDefaultsProvider, {
3179
+ }, [!slots.image ? createVNode(VImg, {
3180
+ "key": "image-img",
3181
+ "cover": true,
3182
+ "src": props.image
3183
+ }, null) : createVNode(VDefaultsProvider, {
3184
+ "key": "image-defaults",
3185
+ "disabled": !props.image,
3156
3186
  "defaults": {
3157
3187
  VImg: {
3158
3188
  cover: true,
3159
3189
  src: props.image
3160
3190
  }
3161
3191
  }
3162
- }, {
3163
- default: () => [slots.image ? slots.image?.() : createVNode(VImg, null, null)]
3164
- })]), createVNode(VDefaultsProvider, {
3192
+ }, slots.image)]), createVNode(VDefaultsProvider, {
3165
3193
  "defaults": {
3166
3194
  VTabs: {
3167
3195
  height: convertToUnit(contentHeight.value)
@@ -3207,9 +3235,6 @@ const VToolbar = genericComponent()({
3207
3235
  };
3208
3236
  }
3209
3237
  });
3210
- function filterToolbarProps(props) {
3211
- return pick(props, Object.keys(VToolbar?.props ?? {}));
3212
- }
3213
3238
 
3214
3239
  // Utilities
3215
3240
 
@@ -3287,7 +3312,7 @@ const VAppBar = genericComponent()({
3287
3312
  absolute: toRef(props, 'absolute')
3288
3313
  });
3289
3314
  useRender(() => {
3290
- const [toolbarProps] = filterToolbarProps(props);
3315
+ const [toolbarProps] = VToolbar.filterProps(props);
3291
3316
  return createVNode(VToolbar, mergeProps({
3292
3317
  "ref": vToolbarRef,
3293
3318
  "class": ['v-app-bar', {
@@ -3378,8 +3403,6 @@ function useVariant(props) {
3378
3403
  };
3379
3404
  }
3380
3405
 
3381
- // Types
3382
-
3383
3406
  const makeVBtnGroupProps = propsFactory({
3384
3407
  divided: Boolean,
3385
3408
  ...makeBorderProps(),
@@ -3430,9 +3453,6 @@ const VBtnGroup = genericComponent()({
3430
3453
  });
3431
3454
  }
3432
3455
  });
3433
- function filterVBtnGroupProps(props) {
3434
- return pick(props, Object.keys(VBtnGroup.props));
3435
- }
3436
3456
 
3437
3457
  // Composables
3438
3458
 
@@ -3659,7 +3679,7 @@ const VBtnToggle = genericComponent()({
3659
3679
  selected
3660
3680
  } = useGroup(props, VBtnToggleSymbol);
3661
3681
  useRender(() => {
3662
- const [btnGroupProps] = filterVBtnGroupProps(props);
3682
+ const [btnGroupProps] = VBtnGroup.filterProps(props);
3663
3683
  return createVNode(VBtnGroup, mergeProps({
3664
3684
  "class": "v-btn-toggle"
3665
3685
  }, btnGroupProps), {
@@ -4747,49 +4767,50 @@ function useSelectLink(link, select) {
4747
4767
 
4748
4768
  // Types
4749
4769
 
4770
+ const makeVBtnProps = propsFactory({
4771
+ active: {
4772
+ type: Boolean,
4773
+ default: undefined
4774
+ },
4775
+ symbol: {
4776
+ type: null,
4777
+ default: VBtnToggleSymbol
4778
+ },
4779
+ flat: Boolean,
4780
+ icon: [Boolean, String, Function, Object],
4781
+ prependIcon: IconValue,
4782
+ appendIcon: IconValue,
4783
+ block: Boolean,
4784
+ stacked: Boolean,
4785
+ ripple: {
4786
+ type: Boolean,
4787
+ default: true
4788
+ },
4789
+ ...makeBorderProps(),
4790
+ ...makeRoundedProps(),
4791
+ ...makeDensityProps(),
4792
+ ...makeDimensionProps(),
4793
+ ...makeElevationProps(),
4794
+ ...makeGroupItemProps(),
4795
+ ...makeLoaderProps(),
4796
+ ...makeLocationProps(),
4797
+ ...makePositionProps(),
4798
+ ...makeRouterProps(),
4799
+ ...makeSizeProps(),
4800
+ ...makeTagProps({
4801
+ tag: 'button'
4802
+ }),
4803
+ ...makeThemeProps(),
4804
+ ...makeVariantProps({
4805
+ variant: 'elevated'
4806
+ })
4807
+ }, 'VBtn');
4750
4808
  const VBtn = genericComponent()({
4751
4809
  name: 'VBtn',
4752
4810
  directives: {
4753
4811
  Ripple
4754
4812
  },
4755
- props: {
4756
- active: {
4757
- type: Boolean,
4758
- default: undefined
4759
- },
4760
- symbol: {
4761
- type: null,
4762
- default: VBtnToggleSymbol
4763
- },
4764
- flat: Boolean,
4765
- icon: [Boolean, String, Function, Object],
4766
- prependIcon: IconValue,
4767
- appendIcon: IconValue,
4768
- block: Boolean,
4769
- stacked: Boolean,
4770
- ripple: {
4771
- type: Boolean,
4772
- default: true
4773
- },
4774
- ...makeBorderProps(),
4775
- ...makeRoundedProps(),
4776
- ...makeDensityProps(),
4777
- ...makeDimensionProps(),
4778
- ...makeElevationProps(),
4779
- ...makeGroupItemProps(),
4780
- ...makeLoaderProps(),
4781
- ...makeLocationProps(),
4782
- ...makePositionProps(),
4783
- ...makeRouterProps(),
4784
- ...makeSizeProps(),
4785
- ...makeTagProps({
4786
- tag: 'button'
4787
- }),
4788
- ...makeThemeProps(),
4789
- ...makeVariantProps({
4790
- variant: 'elevated'
4791
- })
4792
- },
4813
+ props: makeVBtnProps(),
4793
4814
  emits: {
4794
4815
  'group:selected': val => true
4795
4816
  },
@@ -4882,43 +4903,49 @@ const VBtn = genericComponent()({
4882
4903
  },
4883
4904
  "value": valueAttr.value
4884
4905
  }, {
4885
- default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode(VDefaultsProvider, {
4906
+ default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && createVNode("span", {
4886
4907
  "key": "prepend",
4908
+ "class": "v-btn__prepend"
4909
+ }, [!slots.prepend ? createVNode(VIcon, {
4910
+ "key": "prepend-icon",
4911
+ "icon": props.prependIcon
4912
+ }, null) : createVNode(VDefaultsProvider, {
4913
+ "key": "prepend-defaults",
4914
+ "disabled": !props.prependIcon,
4887
4915
  "defaults": {
4888
4916
  VIcon: {
4889
4917
  icon: props.prependIcon
4890
4918
  }
4891
4919
  }
4892
- }, {
4893
- default: () => [createVNode("span", {
4894
- "class": "v-btn__prepend"
4895
- }, [slots.prepend?.() ?? createVNode(VIcon, null, null)])]
4896
- }), createVNode("span", {
4920
+ }, slots.prepend)]), createVNode("span", {
4897
4921
  "class": "v-btn__content",
4898
4922
  "data-no-activator": ""
4899
- }, [createVNode(VDefaultsProvider, {
4900
- "key": "content",
4923
+ }, [!slots.default && hasIcon ? createVNode(VIcon, {
4924
+ "key": "content-icon",
4925
+ "icon": props.icon
4926
+ }, null) : createVNode(VDefaultsProvider, {
4927
+ "key": "content-defaults",
4928
+ "disabled": !hasIcon,
4901
4929
  "defaults": {
4902
4930
  VIcon: {
4903
- icon: hasIcon ? props.icon : undefined
4931
+ icon: props.icon
4904
4932
  }
4905
4933
  }
4906
- }, {
4907
- default: () => [slots.default?.() ?? (hasIcon && createVNode(VIcon, {
4908
- "key": "icon"
4909
- }, null))]
4910
- })]), !props.icon && hasAppend && createVNode(VDefaultsProvider, {
4934
+ }, slots.default)]), !props.icon && hasAppend && createVNode("span", {
4911
4935
  "key": "append",
4936
+ "class": "v-btn__append"
4937
+ }, [!slots.append ? createVNode(VIcon, {
4938
+ "key": "append-icon",
4939
+ "icon": props.appendIcon
4940
+ }, null) : createVNode(VDefaultsProvider, {
4941
+ "key": "append-defaults",
4942
+ "disabled": !props.appendIcon,
4912
4943
  "defaults": {
4913
4944
  VIcon: {
4914
4945
  icon: props.appendIcon
4915
4946
  }
4916
4947
  }
4917
- }, {
4918
- default: () => [createVNode("span", {
4919
- "class": "v-btn__append"
4920
- }, [slots.append?.() ?? createVNode(VIcon, null, null)])]
4921
- }), !!props.loading && createVNode("span", {
4948
+ }, slots.append)]), !!props.loading && createVNode("span", {
4922
4949
  "key": "loader",
4923
4950
  "class": "v-btn__loader"
4924
4951
  }, [slots.loader?.() ?? createVNode(VProgressCircular, {
@@ -5047,10 +5074,12 @@ const VAlert = genericComponent()({
5047
5074
  })
5048
5075
  },
5049
5076
  emits: {
5077
+ 'click:close': e => true,
5050
5078
  'update:modelValue': value => true
5051
5079
  },
5052
5080
  setup(props, _ref) {
5053
5081
  let {
5082
+ emit,
5054
5083
  slots
5055
5084
  } = _ref;
5056
5085
  const isActive = useProxiedModel(props, 'modelValue');
@@ -5100,6 +5129,7 @@ const VAlert = genericComponent()({
5100
5129
  'aria-label': t(props.closeLabel),
5101
5130
  onClick(e) {
5102
5131
  isActive.value = false;
5132
+ emit('click:close', e);
5103
5133
  }
5104
5134
  }));
5105
5135
  return () => {
@@ -5121,8 +5151,17 @@ const VAlert = genericComponent()({
5121
5151
  "key": "border",
5122
5152
  "class": ['v-alert__border', textColorClasses.value],
5123
5153
  "style": textColorStyles.value
5124
- }, null), hasPrepend && createVNode(VDefaultsProvider, {
5154
+ }, null), hasPrepend && createVNode("div", {
5125
5155
  "key": "prepend",
5156
+ "class": "v-alert__prepend"
5157
+ }, [!slots.prepend ? createVNode(VIcon, {
5158
+ "key": "prepend-icon",
5159
+ "density": props.density,
5160
+ "icon": icon.value,
5161
+ "size": props.prominent ? 44 : 28
5162
+ }, null) : createVNode(VDefaultsProvider, {
5163
+ "key": "prepend-defaults",
5164
+ "disabled": !icon.value,
5126
5165
  "defaults": {
5127
5166
  VIcon: {
5128
5167
  density: props.density,
@@ -5130,21 +5169,25 @@ const VAlert = genericComponent()({
5130
5169
  size: props.prominent ? 44 : 28
5131
5170
  }
5132
5171
  }
5133
- }, {
5134
- default: () => [createVNode("div", {
5135
- "class": "v-alert__prepend"
5136
- }, [slots.prepend ? slots.prepend() : icon.value && createVNode(VIcon, null, null)])]
5137
- }), createVNode("div", {
5172
+ }, slots.prepend)]), createVNode("div", {
5138
5173
  "class": "v-alert__content"
5139
5174
  }, [hasTitle && createVNode(VAlertTitle, {
5140
5175
  "key": "title"
5141
5176
  }, {
5142
- default: () => [slots.title ? slots.title() : props.title]
5143
- }), hasText && (slots.text ? slots.text() : props.text), slots.default?.()]), slots.append && createVNode("div", {
5177
+ default: () => [slots.title?.() ?? props.title]
5178
+ }), hasText && (slots.text?.() ?? props.text), slots.default?.()]), slots.append && createVNode("div", {
5144
5179
  "key": "append",
5145
5180
  "class": "v-alert__append"
5146
- }, [slots.append()]), hasClose && createVNode(VDefaultsProvider, {
5181
+ }, [slots.append()]), hasClose && createVNode("div", {
5147
5182
  "key": "close",
5183
+ "class": "v-alert__close"
5184
+ }, [!slots.close ? createVNode(VBtn, mergeProps({
5185
+ "key": "close-btn",
5186
+ "icon": props.closeIcon,
5187
+ "size": "x-small",
5188
+ "variant": "text"
5189
+ }, closeProps.value), null) : createVNode(VDefaultsProvider, {
5190
+ "key": "close-defaults",
5148
5191
  "defaults": {
5149
5192
  VBtn: {
5150
5193
  icon: props.closeIcon,
@@ -5153,12 +5196,10 @@ const VAlert = genericComponent()({
5153
5196
  }
5154
5197
  }
5155
5198
  }, {
5156
- default: () => [createVNode("div", {
5157
- "class": "v-alert__close"
5158
- }, [slots.close?.({
5199
+ default: () => [slots.close?.({
5159
5200
  props: closeProps.value
5160
- }) ?? createVNode(VBtn, closeProps.value, null)])]
5161
- })]
5201
+ })]
5202
+ })])]
5162
5203
  });
5163
5204
  };
5164
5205
  }
@@ -6121,7 +6162,13 @@ const VTextField = genericComponent()({
6121
6162
  });
6122
6163
  }
6123
6164
  function onInput(e) {
6124
- model.value = e.target.value;
6165
+ const el = e.target;
6166
+ const caretPosition = [el.selectionStart, el.selectionEnd];
6167
+ model.value = el.value;
6168
+ nextTick(() => {
6169
+ el.selectionStart = caretPosition[0];
6170
+ el.selectionEnd = caretPosition[1];
6171
+ });
6125
6172
  }
6126
6173
  useRender(() => {
6127
6174
  const hasCounter = !!(slots.counter || props.counter || props.counterValue);
@@ -6221,9 +6268,6 @@ const VTextField = genericComponent()({
6221
6268
  return forwardRefs({}, vInputRef, vFieldRef, inputRef);
6222
6269
  }
6223
6270
  });
6224
- function filterVTextFieldProps(props) {
6225
- return pick(props, Object.keys(VTextField.props));
6226
- }
6227
6271
 
6228
6272
  // Types
6229
6273
 
@@ -6481,11 +6525,6 @@ const VSelectionControl = genericComponent()({
6481
6525
  };
6482
6526
  }
6483
6527
  });
6484
- function filterControlProps(props) {
6485
- return pick(props, Object.keys(VSelectionControl.props));
6486
- }
6487
-
6488
- // Types
6489
6528
 
6490
6529
  const makeVCheckboxBtnProps = propsFactory({
6491
6530
  indeterminate: Boolean,
@@ -6535,9 +6574,6 @@ const VCheckboxBtn = genericComponent()({
6535
6574
  return {};
6536
6575
  }
6537
6576
  });
6538
- function filterCheckboxBtnProps(props) {
6539
- return pick(props, Object.keys(VCheckboxBtn.props));
6540
- }
6541
6577
 
6542
6578
  // Types
6543
6579
 
@@ -6566,7 +6602,7 @@ const VCheckbox = genericComponent()({
6566
6602
  useRender(() => {
6567
6603
  const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
6568
6604
  const [inputProps, _1] = filterInputProps(props);
6569
- const [checkboxProps, _2] = filterCheckboxBtnProps(props);
6605
+ const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
6570
6606
  return createVNode(VInput, mergeProps({
6571
6607
  "class": "v-checkbox"
6572
6608
  }, inputAttrs, inputProps, {
@@ -6823,10 +6859,13 @@ const VChip = genericComponent()({
6823
6859
  const link = useLink(props, attrs);
6824
6860
  const isLink = computed(() => props.link !== false && link.isLink.value);
6825
6861
  const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
6826
- function onCloseClick(e) {
6827
- isActive.value = false;
6828
- emit('click:close', e);
6829
- }
6862
+ const closeProps = computed(() => ({
6863
+ 'aria-label': t(props.closeLabel),
6864
+ onClick(e) {
6865
+ isActive.value = false;
6866
+ emit('click:close', e);
6867
+ }
6868
+ }));
6830
6869
  function onClick(e) {
6831
6870
  emit('click', e);
6832
6871
  if (!isClickable.value) return;
@@ -6841,10 +6880,12 @@ const VChip = genericComponent()({
6841
6880
  }
6842
6881
  return () => {
6843
6882
  const Tag = link.isLink.value ? 'a' : props.tag;
6844
- const hasAppend = !!(slots.append || props.appendIcon || props.appendAvatar);
6883
+ const hasAppendMedia = !!(props.appendIcon || props.appendAvatar);
6884
+ const hasAppend = !!(hasAppendMedia || slots.append);
6845
6885
  const hasClose = !!(slots.close || props.closable);
6846
6886
  const hasFilter = !!(slots.filter || props.filter) && group;
6847
- const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar);
6887
+ const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
6888
+ const hasPrepend = !!(hasPrependMedia || slots.prepend);
6848
6889
  const hasColor = !group || group.isSelected.value;
6849
6890
  return isActive.value && withDirectives(createVNode(Tag, {
6850
6891
  "class": ['v-chip', {
@@ -6862,77 +6903,94 @@ const VChip = genericComponent()({
6862
6903
  "onClick": onClick,
6863
6904
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
6864
6905
  }, {
6865
- default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VDefaultsProvider, {
6866
- "key": "filter",
6867
- "defaults": {
6868
- VIcon: {
6869
- icon: props.filterIcon
6870
- }
6871
- }
6906
+ default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && createVNode(VExpandXTransition, {
6907
+ "key": "filter"
6872
6908
  }, {
6873
- default: () => [createVNode(VExpandXTransition, null, {
6874
- default: () => [withDirectives(createVNode("div", {
6875
- "class": "v-chip__filter"
6876
- }, [slots.filter ? slots.filter() : createVNode(VIcon, null, null)]), [[vShow, group.isSelected.value]])]
6877
- })]
6878
- }), hasPrepend && createVNode(VDefaultsProvider, {
6909
+ default: () => [withDirectives(createVNode("div", {
6910
+ "class": "v-chip__filter"
6911
+ }, [!slots.filter ? createVNode(VIcon, {
6912
+ "key": "filter-icon",
6913
+ "icon": props.filterIcon
6914
+ }, null) : withDirectives(createVNode(VDefaultsProvider, {
6915
+ "key": "filter-defaults",
6916
+ "disabled": !props.filterIcon,
6917
+ "defaults": {
6918
+ VIcon: {
6919
+ icon: props.filterIcon
6920
+ }
6921
+ }
6922
+ }, null), [[resolveDirective("slot"), slots.filter, "default"]])]), [[vShow, group.isSelected.value]])]
6923
+ }), hasPrepend && createVNode("div", {
6879
6924
  "key": "prepend",
6925
+ "class": "v-chip__prepend"
6926
+ }, [!slots.prepend ? createVNode(Fragment, null, [props.prependIcon && createVNode(VIcon, {
6927
+ "key": "prepend-icon",
6928
+ "icon": props.prependIcon,
6929
+ "start": true
6930
+ }, null), props.prependAvatar && createVNode(VAvatar, {
6931
+ "key": "prepend-avatar",
6932
+ "image": props.prependAvatar,
6933
+ "start": true
6934
+ }, null)]) : createVNode(VDefaultsProvider, {
6935
+ "key": "prepend-defaults",
6936
+ "disabled": !hasPrependMedia,
6880
6937
  "defaults": {
6881
6938
  VAvatar: {
6882
- image: props.prependAvatar
6939
+ image: props.prependAvatar,
6940
+ start: true
6883
6941
  },
6884
6942
  VIcon: {
6885
- icon: props.prependIcon
6943
+ icon: props.prependIcon,
6944
+ start: true
6886
6945
  }
6887
6946
  }
6888
- }, {
6889
- default: () => [slots.prepend ? createVNode("div", {
6890
- "class": "v-chip__prepend"
6891
- }, [slots.prepend()]) : props.prependAvatar ? createVNode(VAvatar, {
6892
- "start": true
6893
- }, null) : props.prependIcon ? createVNode(VIcon, {
6894
- "start": true
6895
- }, null) : undefined]
6896
- }), slots.default?.({
6947
+ }, slots.prepend)]), slots.default?.({
6897
6948
  isSelected: group?.isSelected.value,
6898
6949
  selectedClass: group?.selectedClass.value,
6899
6950
  select: group?.select,
6900
6951
  toggle: group?.toggle,
6901
6952
  value: group?.value.value,
6902
6953
  disabled: props.disabled
6903
- }) ?? props.text, hasAppend && createVNode(VDefaultsProvider, {
6954
+ }) ?? props.text, hasAppend && createVNode("div", {
6904
6955
  "key": "append",
6956
+ "class": "v-chip__append"
6957
+ }, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
6958
+ "key": "append-icon",
6959
+ "end": true,
6960
+ "icon": props.appendIcon
6961
+ }, null), props.appendAvatar && createVNode(VAvatar, {
6962
+ "key": "append-avatar",
6963
+ "end": true,
6964
+ "image": props.appendAvatar
6965
+ }, null)]) : createVNode(VDefaultsProvider, {
6966
+ "key": "append-defaults",
6967
+ "disabled": !hasAppendMedia,
6905
6968
  "defaults": {
6906
6969
  VAvatar: {
6970
+ end: true,
6907
6971
  image: props.appendAvatar
6908
6972
  },
6909
6973
  VIcon: {
6974
+ end: true,
6910
6975
  icon: props.appendIcon
6911
6976
  }
6912
6977
  }
6913
- }, {
6914
- default: () => [slots.append ? createVNode("div", {
6915
- "class": "v-chip__append"
6916
- }, [slots.append()]) : props.appendAvatar ? createVNode(VAvatar, {
6917
- "end": true
6918
- }, null) : props.appendIcon ? createVNode(VIcon, {
6919
- "end": true
6920
- }, null) : undefined]
6921
- }), hasClose && createVNode(VDefaultsProvider, {
6978
+ }, slots.append)]), hasClose && createVNode("div", mergeProps({
6922
6979
  "key": "close",
6980
+ "class": "v-chip__close"
6981
+ }, closeProps.value), [!slots.close ? createVNode(VIcon, {
6982
+ "key": "close-icon",
6983
+ "icon": props.closeIcon,
6984
+ "size": "x-small"
6985
+ }, null) : createVNode(VDefaultsProvider, {
6986
+ "key": "close-defaults",
6923
6987
  "defaults": {
6924
6988
  VIcon: {
6925
6989
  icon: props.closeIcon,
6926
6990
  size: 'x-small'
6927
6991
  }
6928
6992
  }
6929
- }, {
6930
- default: () => [createVNode("div", {
6931
- "class": "v-chip__close",
6932
- "aria-label": t(props.closeLabel),
6933
- "onClick": onCloseClick
6934
- }, [slots.close ? slots.close() : createVNode(VIcon, null, null)])]
6935
- })]
6993
+ }, slots.close)])]
6936
6994
  }), [[resolveDirective("ripple"), isClickable.value && props.ripple, null]]);
6937
6995
  };
6938
6996
  }
@@ -7448,8 +7506,6 @@ const useNestedGroupActivator = () => {
7448
7506
  });
7449
7507
  };
7450
7508
 
7451
- // Types
7452
-
7453
7509
  const VListGroupActivator = defineComponent({
7454
7510
  name: 'VListGroupActivator',
7455
7511
  setup(_, _ref) {
@@ -7542,9 +7598,6 @@ const VListGroup = genericComponent()({
7542
7598
  return {};
7543
7599
  }
7544
7600
  });
7545
- function filterListGroupProps(props) {
7546
- return pick(props, Object.keys(VListGroup.props));
7547
- }
7548
7601
 
7549
7602
  const VListItemSubtitle = createSimpleFunctional('v-list-item-subtitle');
7550
7603
 
@@ -7682,8 +7735,10 @@ const VListItem = genericComponent()({
7682
7735
  const hasColor = !list || isSelected.value || isActive.value;
7683
7736
  const hasTitle = slots.title || props.title;
7684
7737
  const hasSubtitle = slots.subtitle || props.subtitle;
7685
- const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon);
7686
- const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon);
7738
+ const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);
7739
+ const hasAppend = !!(hasAppendMedia || slots.append);
7740
+ const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);
7741
+ const hasPrepend = !!(hasPrependMedia || slots.prepend);
7687
7742
  list?.updateHasPrepend(hasPrepend);
7688
7743
  return withDirectives(createVNode(Tag, {
7689
7744
  "class": ['v-list-item', {
@@ -7703,7 +7758,7 @@ const VListItem = genericComponent()({
7703
7758
  default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && createVNode("div", {
7704
7759
  "key": "prepend",
7705
7760
  "class": "v-list-item__prepend"
7706
- }, [props.prependAvatar && createVNode(VAvatar, {
7761
+ }, [!slots.prepend ? createVNode(Fragment, null, [props.prependAvatar && createVNode(VAvatar, {
7707
7762
  "key": "prepend-avatar",
7708
7763
  "density": props.density,
7709
7764
  "image": props.prependAvatar
@@ -7711,8 +7766,9 @@ const VListItem = genericComponent()({
7711
7766
  "key": "prepend-icon",
7712
7767
  "density": props.density,
7713
7768
  "icon": props.prependIcon
7714
- }, null), slots.prepend && createVNode(VDefaultsProvider, {
7715
- "key": "prepend",
7769
+ }, null)]) : createVNode(VDefaultsProvider, {
7770
+ "key": "prepend-defaults",
7771
+ "disabled": !hasPrependMedia,
7716
7772
  "defaults": {
7717
7773
  VAvatar: {
7718
7774
  density: props.density,
@@ -7727,7 +7783,7 @@ const VListItem = genericComponent()({
7727
7783
  }
7728
7784
  }
7729
7785
  }, {
7730
- default: () => [slots.prepend(slotProps.value)]
7786
+ default: () => [slots.prepend?.(slotProps.value)]
7731
7787
  })]), createVNode("div", {
7732
7788
  "class": "v-list-item__content",
7733
7789
  "data-no-activator": ""
@@ -7746,8 +7802,17 @@ const VListItem = genericComponent()({
7746
7802
  }), slots.default?.(slotProps.value)]), hasAppend && createVNode("div", {
7747
7803
  "key": "append",
7748
7804
  "class": "v-list-item__append"
7749
- }, [slots.append && createVNode(VDefaultsProvider, {
7750
- "key": "append",
7805
+ }, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
7806
+ "key": "append-icon",
7807
+ "density": props.density,
7808
+ "icon": props.appendIcon
7809
+ }, null), props.appendAvatar && createVNode(VAvatar, {
7810
+ "key": "append-avatar",
7811
+ "density": props.density,
7812
+ "image": props.appendAvatar
7813
+ }, null)]) : createVNode(VDefaultsProvider, {
7814
+ "key": "append-defaults",
7815
+ "disabled": !hasAppendMedia,
7751
7816
  "defaults": {
7752
7817
  VAvatar: {
7753
7818
  density: props.density,
@@ -7762,16 +7827,8 @@ const VListItem = genericComponent()({
7762
7827
  }
7763
7828
  }
7764
7829
  }, {
7765
- default: () => [slots.append(slotProps.value)]
7766
- }), props.appendIcon && createVNode(VIcon, {
7767
- "key": "append-icon",
7768
- "density": props.density,
7769
- "icon": props.appendIcon
7770
- }, null), props.appendAvatar && createVNode(VAvatar, {
7771
- "key": "append-avatar",
7772
- "density": props.density,
7773
- "image": props.appendAvatar
7774
- }, null)])]
7830
+ default: () => [slots.append?.(slotProps.value)]
7831
+ })])]
7775
7832
  }), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
7776
7833
  });
7777
7834
  return {};
@@ -7868,7 +7925,7 @@ const VListChildren = genericComponent()({
7868
7925
  item
7869
7926
  }) : undefined
7870
7927
  };
7871
- const [listGroupProps, _1] = filterListGroupProps(itemProps);
7928
+ const [listGroupProps, _1] = VListGroup.filterProps(itemProps);
7872
7929
  return children ? createVNode(VListGroup, mergeProps({
7873
7930
  "value": itemProps?.value
7874
7931
  }, listGroupProps), {
@@ -9095,6 +9152,8 @@ function bindScroll(el, onScroll) {
9095
9152
 
9096
9153
  // Types
9097
9154
 
9155
+ const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
9156
+
9098
9157
  const DisplaySymbol = Symbol.for('vuetify:display');
9099
9158
  const defaultDisplayOptions = {
9100
9159
  mobileBreakpoint: 'lg',
@@ -9650,9 +9709,6 @@ const VOverlay = genericComponent()({
9650
9709
  };
9651
9710
  }
9652
9711
  });
9653
- function filterVOverlayProps(props) {
9654
- return pick(props, Object.keys(VOverlay.props));
9655
- }
9656
9712
 
9657
9713
  // Types
9658
9714
 
@@ -9718,7 +9774,7 @@ const VMenu = genericComponent()({
9718
9774
  'aria-owns': id.value
9719
9775
  }, props.activatorProps));
9720
9776
  useRender(() => {
9721
- const [overlayProps] = filterVOverlayProps(props);
9777
+ const [overlayProps] = VOverlay.filterProps(props);
9722
9778
  return createVNode(VOverlay, mergeProps({
9723
9779
  "ref": overlay,
9724
9780
  "class": ['v-menu']
@@ -9894,7 +9950,7 @@ const VSelect = genericComponent()({
9894
9950
  useRender(() => {
9895
9951
  const hasChips = !!(props.chips || slots.chip);
9896
9952
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
9897
- const [textFieldProps] = filterVTextFieldProps(props);
9953
+ const [textFieldProps] = VTextField.filterProps(props);
9898
9954
  return createVNode(VTextField, mergeProps({
9899
9955
  "ref": vTextFieldRef
9900
9956
  }, textFieldProps, {
@@ -9980,7 +10036,13 @@ const VSelect = genericComponent()({
9980
10036
  return createVNode("div", {
9981
10037
  "key": item.value,
9982
10038
  "class": "v-select__selection"
9983
- }, [hasChips ? createVNode(VDefaultsProvider, {
10039
+ }, [hasChips ? !slots.chip ? createVNode(VChip, mergeProps({
10040
+ "key": "chip",
10041
+ "closable": props.closableChips,
10042
+ "size": "small",
10043
+ "text": item.title
10044
+ }, slotProps), null) : createVNode(VDefaultsProvider, {
10045
+ "key": "chip-defaults",
9984
10046
  "defaults": {
9985
10047
  VChip: {
9986
10048
  closable: props.closableChips,
@@ -9989,15 +10051,15 @@ const VSelect = genericComponent()({
9989
10051
  }
9990
10052
  }
9991
10053
  }, {
9992
- default: () => [slots.chip ? slots.chip({
10054
+ default: () => [slots.chip?.({
9993
10055
  item,
9994
10056
  index,
9995
10057
  props: slotProps
9996
- }) : createVNode(VChip, slotProps, null)]
9997
- }) : slots.selection ? slots.selection({
10058
+ })]
10059
+ }) : slots.selection?.({
9998
10060
  item,
9999
10061
  index
10000
- }) : createVNode("span", {
10062
+ }) ?? createVNode("span", {
10001
10063
  "class": "v-select__selection-text"
10002
10064
  }, [item.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
10003
10065
  "class": "v-select__selection-comma"
@@ -10281,7 +10343,7 @@ const VAutocomplete = genericComponent()({
10281
10343
  useRender(() => {
10282
10344
  const hasChips = !!(props.chips || slots.chip);
10283
10345
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
10284
- const [textFieldProps] = filterVTextFieldProps(props);
10346
+ const [textFieldProps] = VTextField.filterProps(props);
10285
10347
  return createVNode(VTextField, mergeProps({
10286
10348
  "ref": vTextFieldRef
10287
10349
  }, textFieldProps, {
@@ -10369,7 +10431,13 @@ const VAutocomplete = genericComponent()({
10369
10431
  return createVNode("div", {
10370
10432
  "key": item.value,
10371
10433
  "class": "v-autocomplete__selection"
10372
- }, [hasChips ? createVNode(VDefaultsProvider, {
10434
+ }, [hasChips ? !slots.chip ? createVNode(VChip, mergeProps({
10435
+ "key": "chip",
10436
+ "closable": props.closableChips,
10437
+ "size": "small",
10438
+ "text": item.title
10439
+ }, slotProps), null) : createVNode(VDefaultsProvider, {
10440
+ "key": "chip-defaults",
10373
10441
  "defaults": {
10374
10442
  VChip: {
10375
10443
  closable: props.closableChips,
@@ -10378,15 +10446,15 @@ const VAutocomplete = genericComponent()({
10378
10446
  }
10379
10447
  }
10380
10448
  }, {
10381
- default: () => [slots.chip ? slots.chip({
10449
+ default: () => [slots.chip?.({
10382
10450
  item,
10383
10451
  index,
10384
10452
  props: slotProps
10385
- }) : createVNode(VChip, slotProps, null)]
10386
- }) : slots.selection ? slots.selection({
10453
+ })]
10454
+ }) : slots.selection?.({
10387
10455
  item,
10388
10456
  index
10389
- }) : createVNode("span", {
10457
+ }) ?? createVNode("span", {
10390
10458
  "class": "v-autocomplete__selection-text"
10391
10459
  }, [item.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
10392
10460
  "class": "v-autocomplete__selection-comma"
@@ -10587,7 +10655,8 @@ const VBanner = genericComponent()({
10587
10655
  });
10588
10656
  useRender(() => {
10589
10657
  const hasText = !!(props.text || slots.text);
10590
- const hasPrepend = !!(slots.prepend || props.avatar || props.icon);
10658
+ const hasPrependMedia = !!(props.avatar || props.icon);
10659
+ const hasPrepend = !!(hasPrependMedia || slots.prepend);
10591
10660
  return createVNode(props.tag, {
10592
10661
  "class": ['v-banner', {
10593
10662
  'v-banner--stacked': props.stacked || mobile.value,
@@ -10597,8 +10666,18 @@ const VBanner = genericComponent()({
10597
10666
  "style": [dimensionStyles.value, locationStyles.value],
10598
10667
  "role": "banner"
10599
10668
  }, {
10600
- default: () => [hasPrepend && createVNode(VDefaultsProvider, {
10669
+ default: () => [hasPrepend && createVNode("div", {
10601
10670
  "key": "prepend",
10671
+ "class": "v-banner__prepend"
10672
+ }, [!slots.prepend ? createVNode(VAvatar, {
10673
+ "key": "prepend-avatar",
10674
+ "color": color.value,
10675
+ "density": density.value,
10676
+ "icon": props.icon,
10677
+ "image": props.avatar
10678
+ }, null) : createVNode(VDefaultsProvider, {
10679
+ "key": "prepend-defaults",
10680
+ "disabled": !hasPrependMedia,
10602
10681
  "defaults": {
10603
10682
  VAvatar: {
10604
10683
  color: color.value,
@@ -10607,19 +10686,15 @@ const VBanner = genericComponent()({
10607
10686
  image: props.avatar
10608
10687
  }
10609
10688
  }
10610
- }, {
10611
- default: () => [createVNode("div", {
10612
- "class": "v-banner__prepend"
10613
- }, [slots.prepend ? slots.prepend() : (props.avatar || props.icon) && createVNode(VAvatar, null, null)])]
10614
- }), createVNode("div", {
10689
+ }, slots.prepend)]), createVNode("div", {
10615
10690
  "class": "v-banner__content"
10616
10691
  }, [hasText && createVNode(VBannerText, {
10617
10692
  "key": "text"
10618
10693
  }, {
10619
- default: () => [slots.text ? slots.text() : props.text]
10620
- }), slots.default?.()]), slots.actions && createVNode(VBannerActions, null, {
10621
- default: () => [slots.actions()]
10622
- })]
10694
+ default: () => [slots.text?.() ?? props.text]
10695
+ }), slots.default?.()]), slots.actions && createVNode(VBannerActions, {
10696
+ "key": "actions"
10697
+ }, slots.actions)]
10623
10698
  });
10624
10699
  });
10625
10700
  }
@@ -10852,19 +10927,23 @@ const VBreadcrumbs = genericComponent()({
10852
10927
  "class": ['v-breadcrumbs', backgroundColorClasses.value, densityClasses.value, roundedClasses.value],
10853
10928
  "style": backgroundColorStyles.value
10854
10929
  }, {
10855
- default: () => [hasPrepend && createVNode(VDefaultsProvider, {
10930
+ default: () => [hasPrepend && createVNode("div", {
10856
10931
  "key": "prepend",
10932
+ "class": "v-breadcrumbs__prepend"
10933
+ }, [!slots.prepend ? createVNode(VIcon, {
10934
+ "key": "prepend-icon",
10935
+ "start": true,
10936
+ "icon": props.icon
10937
+ }, null) : createVNode(VDefaultsProvider, {
10938
+ "key": "prepend-defaults",
10939
+ "disabled": !props.icon,
10857
10940
  "defaults": {
10858
10941
  VIcon: {
10859
10942
  icon: props.icon,
10860
10943
  start: true
10861
10944
  }
10862
10945
  }
10863
- }, {
10864
- default: () => [createVNode("div", {
10865
- "class": "v-breadcrumbs__prepend"
10866
- }, [slots.prepend ? slots.prepend() : props.icon && createVNode(VIcon, null, null)])]
10867
- }), props.items.map((item, index, array) => createVNode(Fragment, null, [createVNode(VBreadcrumbsItem, mergeProps({
10946
+ }, slots.prepend)]), props.items.map((item, index, array) => createVNode(Fragment, null, [createVNode(VBreadcrumbsItem, mergeProps({
10868
10947
  "key": index,
10869
10948
  "disabled": index >= array.length - 1
10870
10949
  }, typeof item === 'string' ? {
@@ -10928,30 +11007,33 @@ const VCardItem = genericComponent()({
10928
11007
  slots
10929
11008
  } = _ref;
10930
11009
  useRender(() => {
10931
- const hasPrepend = !!(props.prependAvatar || props.prependIcon || slots.prepend);
10932
- const hasAppend = !!(props.appendAvatar || props.appendIcon || slots.append);
11010
+ const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);
11011
+ const hasPrepend = !!(hasPrependMedia || slots.prepend);
11012
+ const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);
11013
+ const hasAppend = !!(hasAppendMedia || slots.append);
10933
11014
  const hasTitle = !!(props.title || slots.title);
10934
11015
  const hasSubtitle = !!(props.subtitle || slots.subtitle);
10935
11016
  return createVNode("div", {
10936
11017
  "class": "v-card-item"
10937
- }, [hasPrepend && createVNode(VDefaultsProvider, {
11018
+ }, [hasPrepend && createVNode("div", {
10938
11019
  "key": "prepend",
11020
+ "class": "v-card-item__prepend"
11021
+ }, [!slots.prepend ? hasPrependMedia && createVNode(VAvatar, {
11022
+ "key": "prepend-avatar",
11023
+ "density": props.density,
11024
+ "icon": props.prependIcon,
11025
+ "image": props.prependAvatar
11026
+ }, null) : createVNode(VDefaultsProvider, {
11027
+ "key": "prepend-defaults",
11028
+ "disabled": !hasPrependMedia,
10939
11029
  "defaults": {
10940
11030
  VAvatar: {
10941
11031
  density: props.density,
10942
11032
  icon: props.prependIcon,
10943
11033
  image: props.prependAvatar
10944
- },
10945
- VIcon: {
10946
- density: props.density,
10947
- icon: props.prependIcon
10948
11034
  }
10949
11035
  }
10950
- }, {
10951
- default: () => [createVNode("div", {
10952
- "class": "v-card-item__prepend"
10953
- }, [slots.prepend?.() ?? createVNode(VAvatar, null, null)])]
10954
- }), createVNode("div", {
11036
+ }, slots.prepend)]), createVNode("div", {
10955
11037
  "class": "v-card-item__content"
10956
11038
  }, [hasTitle && createVNode(VCardTitle, {
10957
11039
  "key": "title"
@@ -10961,24 +11043,25 @@ const VCardItem = genericComponent()({
10961
11043
  "key": "subtitle"
10962
11044
  }, {
10963
11045
  default: () => [slots.subtitle?.() ?? props.subtitle]
10964
- }), slots.default?.()]), hasAppend && createVNode(VDefaultsProvider, {
11046
+ }), slots.default?.()]), hasAppend && createVNode("div", {
10965
11047
  "key": "append",
11048
+ "class": "v-card-item__append"
11049
+ }, [!slots.append ? hasAppendMedia && createVNode(VAvatar, {
11050
+ "key": "append-avatar",
11051
+ "density": props.density,
11052
+ "icon": props.appendIcon,
11053
+ "image": props.appendAvatar
11054
+ }, null) : createVNode(VDefaultsProvider, {
11055
+ "key": "append-defaults",
11056
+ "disabled": !hasAppendMedia,
10966
11057
  "defaults": {
10967
11058
  VAvatar: {
10968
11059
  density: props.density,
10969
11060
  icon: props.appendIcon,
10970
11061
  image: props.appendAvatar
10971
- },
10972
- VIcon: {
10973
- density: props.density,
10974
- icon: props.appendIcon
10975
11062
  }
10976
11063
  }
10977
- }, {
10978
- default: () => [createVNode("div", {
10979
- "class": "v-card-item__append"
10980
- }, [slots.append?.() ?? createVNode(VAvatar, null, null)])]
10981
- })]);
11064
+ }, slots.append)])]);
10982
11065
  });
10983
11066
  return {};
10984
11067
  }
@@ -11090,19 +11173,23 @@ const VCard = genericComponent()({
11090
11173
  "onClick": isClickable.value && link.navigate,
11091
11174
  "tabindex": props.disabled ? -1 : undefined
11092
11175
  }, {
11093
- default: () => [hasImage && createVNode(VDefaultsProvider, {
11176
+ default: () => [hasImage && createVNode("div", {
11094
11177
  "key": "image",
11178
+ "class": "v-card__image"
11179
+ }, [!slots.image ? createVNode(VImg, {
11180
+ "key": "image-img",
11181
+ "cover": true,
11182
+ "src": props.image
11183
+ }, null) : createVNode(VDefaultsProvider, {
11184
+ "key": "image-defaults",
11185
+ "disabled": !props.image,
11095
11186
  "defaults": {
11096
11187
  VImg: {
11097
11188
  cover: true,
11098
11189
  src: props.image
11099
11190
  }
11100
11191
  }
11101
- }, {
11102
- default: () => [createVNode("div", {
11103
- "class": "v-card__image"
11104
- }, [slots.image?.() ?? createVNode(VImg, null, null)])]
11105
- }), createVNode(LoaderSlot, {
11192
+ }, slots.image)]), createVNode(LoaderSlot, {
11106
11193
  "name": "v-card",
11107
11194
  "active": !!props.loading,
11108
11195
  "color": typeof props.loading === 'boolean' ? undefined : props.loading
@@ -12204,10 +12291,7 @@ const useSlider = _ref => {
12204
12291
  const min = computed(() => parseFloat(props.min));
12205
12292
  const max = computed(() => parseFloat(props.max));
12206
12293
  const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0);
12207
- const decimals = computed(() => {
12208
- const trimmedStep = step.value.toString().trim();
12209
- return trimmedStep.includes('.') ? trimmedStep.length - trimmedStep.indexOf('.') - 1 : 0;
12210
- });
12294
+ const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
12211
12295
  const thumbSize = computed(() => parseInt(props.thumbSize, 10));
12212
12296
  const tickSize = computed(() => parseInt(props.tickSize, 10));
12213
12297
  const trackSize = computed(() => parseInt(props.trackSize, 10));
@@ -12306,7 +12390,9 @@ const useSlider = _ref => {
12306
12390
  const percentage = (val - min.value) / (max.value - min.value) * 100;
12307
12391
  return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);
12308
12392
  };
12393
+ const showTicks = toRef(props, 'showTicks');
12309
12394
  const parsedTicks = computed(() => {
12395
+ if (!showTicks.value) return [];
12310
12396
  if (!props.ticks) {
12311
12397
  return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {
12312
12398
  const value = min.value + t * step.value;
@@ -12355,7 +12441,7 @@ const useSlider = _ref => {
12355
12441
  readonly: toRef(props, 'readonly'),
12356
12442
  rounded: toRef(props, 'rounded'),
12357
12443
  roundValue,
12358
- showTicks: toRef(props, 'showTicks'),
12444
+ showTicks,
12359
12445
  startOffset,
12360
12446
  step,
12361
12447
  thumbSize,
@@ -12577,6 +12663,7 @@ const VSliderTrack = genericComponent()({
12577
12663
  };
12578
12664
  });
12579
12665
  const computedTicks = computed(() => {
12666
+ if (!showTicks.value) return [];
12580
12667
  const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value;
12581
12668
  return ticks.map((tick, index) => {
12582
12669
  const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start';
@@ -13182,8 +13269,6 @@ const VColorPickerSwatches = defineComponent({
13182
13269
  }
13183
13270
  });
13184
13271
 
13185
- // Types
13186
-
13187
13272
  const makeVSheetProps = propsFactory({
13188
13273
  color: String,
13189
13274
  ...makeBorderProps(),
@@ -13608,7 +13693,7 @@ const VCombobox = genericComponent()({
13608
13693
  useRender(() => {
13609
13694
  const hasChips = !!(props.chips || slots.chip);
13610
13695
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
13611
- const [textFieldProps] = filterVTextFieldProps(props);
13696
+ const [textFieldProps] = VTextField.filterProps(props);
13612
13697
  return createVNode(VTextField, mergeProps({
13613
13698
  "ref": vTextFieldRef
13614
13699
  }, textFieldProps, {
@@ -13696,7 +13781,13 @@ const VCombobox = genericComponent()({
13696
13781
  "key": item.value,
13697
13782
  "class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
13698
13783
  "style": index === selectionIndex.value ? textColorStyles.value : {}
13699
- }, [hasChips ? createVNode(VDefaultsProvider, {
13784
+ }, [hasChips ? !slots.chip ? createVNode(VChip, mergeProps({
13785
+ "key": "chip",
13786
+ "closable": props.closableChips,
13787
+ "size": "small",
13788
+ "text": item.title
13789
+ }, slotProps), null) : createVNode(VDefaultsProvider, {
13790
+ "key": "chip-defaults",
13700
13791
  "defaults": {
13701
13792
  VChip: {
13702
13793
  closable: props.closableChips,
@@ -13705,15 +13796,15 @@ const VCombobox = genericComponent()({
13705
13796
  }
13706
13797
  }
13707
13798
  }, {
13708
- default: () => [slots.chip ? slots.chip({
13799
+ default: () => [slots.chip?.({
13709
13800
  item,
13710
13801
  index,
13711
13802
  props: slotProps
13712
- }) : createVNode(VChip, slotProps, null)]
13713
- }) : slots.selection ? slots.selection({
13803
+ })]
13804
+ }) : slots.selection?.({
13714
13805
  item,
13715
13806
  index
13716
- }) : createVNode("span", {
13807
+ }) ?? createVNode("span", {
13717
13808
  "class": "v-combobox__selection-text"
13718
13809
  }, [item.title, props.multiple && index < selections.value.length - 1 && createVNode("span", {
13719
13810
  "class": "v-combobox__selection-comma"
@@ -13810,7 +13901,7 @@ const VDialog = genericComponent()({
13810
13901
  'aria-expanded': String(isActive.value)
13811
13902
  }, props.activatorProps));
13812
13903
  useRender(() => {
13813
- const [overlayProps] = filterVOverlayProps(props);
13904
+ const [overlayProps] = VOverlay.filterProps(props);
13814
13905
  return createVNode(VOverlay, mergeProps({
13815
13906
  "ref": overlay,
13816
13907
  "class": ['v-dialog', {
@@ -14414,10 +14505,8 @@ const VContainer = genericComponent()({
14414
14505
 
14415
14506
  // Types
14416
14507
 
14417
- const breakpoints$1 = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
14418
-
14419
14508
  const breakpointProps = (() => {
14420
- return breakpoints$1.reduce((props, val) => {
14509
+ return breakpoints.reduce((props, val) => {
14421
14510
  props[val] = {
14422
14511
  type: [Boolean, String, Number],
14423
14512
  default: false
@@ -14426,8 +14515,9 @@ const breakpointProps = (() => {
14426
14515
  }, {});
14427
14516
  })();
14428
14517
  const offsetProps = (() => {
14429
- return breakpoints$1.reduce((props, val) => {
14430
- props['offset' + capitalize(val)] = {
14518
+ return breakpoints.reduce((props, val) => {
14519
+ const offsetKey = 'offset' + capitalize(val);
14520
+ props[offsetKey] = {
14431
14521
  type: [String, Number],
14432
14522
  default: null
14433
14523
  };
@@ -14435,8 +14525,9 @@ const offsetProps = (() => {
14435
14525
  }, {});
14436
14526
  })();
14437
14527
  const orderProps = (() => {
14438
- return breakpoints$1.reduce((props, val) => {
14439
- props['order' + capitalize(val)] = {
14528
+ return breakpoints.reduce((props, val) => {
14529
+ const orderKey = 'order' + capitalize(val);
14530
+ props[orderKey] = {
14440
14531
  type: [String, Number],
14441
14532
  default: null
14442
14533
  };
@@ -14534,13 +14625,12 @@ const VCol = genericComponent()({
14534
14625
 
14535
14626
  // Types
14536
14627
 
14537
- const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
14538
-
14539
14628
  const ALIGNMENT = ['start', 'end', 'center'];
14540
14629
  const SPACE = ['space-between', 'space-around', 'space-evenly'];
14541
14630
  function makeRowProps(prefix, def) {
14542
14631
  return breakpoints.reduce((props, val) => {
14543
- props[prefix + capitalize(val)] = def();
14632
+ const prefixKey = prefix + capitalize(val);
14633
+ props[prefixKey] = def();
14544
14634
  return props;
14545
14635
  }, {});
14546
14636
  }
@@ -14870,7 +14960,10 @@ const VLazy = genericComponent()({
14870
14960
  }, {
14871
14961
  default: () => [slots.default?.()]
14872
14962
  })]
14873
- }), [[resolveDirective("intersect"), onIntersect, props.options]]));
14963
+ }), [[resolveDirective("intersect"), {
14964
+ handler: onIntersect,
14965
+ options: props.options
14966
+ }, null]]));
14874
14967
  return {};
14875
14968
  }
14876
14969
  });
@@ -15847,9 +15940,9 @@ const VParallax = genericComponent()({
15847
15940
  frame = requestAnimationFrame(() => {
15848
15941
  const el = (root.value?.$el).querySelector('.v-img__img');
15849
15942
  if (!el) return;
15850
- const scrollHeight = scrollParent.clientHeight ?? document.documentElement.clientHeight;
15851
- const scrollPos = scrollParent.scrollTop ?? window.scrollY;
15852
- const top = intersectionRef.value.offsetTop;
15943
+ const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight;
15944
+ const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop;
15945
+ const top = intersectionRef.value.getBoundingClientRect().top + scrollPos;
15853
15946
  const height = contentRect.value.height;
15854
15947
  const center = top + (height - scrollHeight) / 2;
15855
15948
  const translate = floor((scrollPos - center) * scale.value);
@@ -15931,10 +16024,7 @@ const VRadioGroup = genericComponent()({
15931
16024
  useRender(() => {
15932
16025
  const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
15933
16026
  const [inputProps, _1] = filterInputProps(props);
15934
- const [controlProps, _2] = filterControlProps({
15935
- ...props,
15936
- multiple: false
15937
- });
16027
+ const [controlProps, _2] = VSelectionControl.filterProps(props);
15938
16028
  const label = slots.label ? slots.label({
15939
16029
  label: props.label,
15940
16030
  props: {
@@ -15969,7 +16059,8 @@ const VRadioGroup = genericComponent()({
15969
16059
  "type": props.type,
15970
16060
  "disabled": isDisabled.value,
15971
16061
  "readonly": isReadonly.value,
15972
- "aria-labelledby": label ? id.value : undefined
16062
+ "aria-labelledby": label ? id.value : undefined,
16063
+ "multiple": false
15973
16064
  }, controlAttrs, {
15974
16065
  "modelValue": model.value,
15975
16066
  "onUpdate:modelValue": $event => model.value = $event
@@ -16810,7 +16901,7 @@ const VSnackbar = genericComponent()({
16810
16901
  window.clearTimeout(activeTimeout);
16811
16902
  }
16812
16903
  useRender(() => {
16813
- const [overlayProps] = filterVOverlayProps(props);
16904
+ const [overlayProps] = VOverlay.filterProps(props);
16814
16905
  return createVNode(VOverlay, mergeProps({
16815
16906
  "ref": overlay,
16816
16907
  "class": ['v-snackbar', {
@@ -16830,7 +16921,8 @@ const VSnackbar = genericComponent()({
16830
16921
  "persistent": true,
16831
16922
  "noClickAnimation": true,
16832
16923
  "scrim": false,
16833
- "scrollStrategy": "none"
16924
+ "scrollStrategy": "none",
16925
+ "_disableGlobalStack": true
16834
16926
  }, scopeId), {
16835
16927
  default: () => [genOverlays(false, 'v-snackbar'), slots.default && createVNode("div", {
16836
16928
  "class": "v-snackbar__content",
@@ -16904,7 +16996,7 @@ const VSwitch = genericComponent()({
16904
16996
  useRender(() => {
16905
16997
  const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
16906
16998
  const [inputProps, _1] = filterInputProps(props);
16907
- const [controlProps, _2] = filterControlProps(props);
16999
+ const [controlProps, _2] = VSelectionControl.filterProps(props);
16908
17000
  const control = ref();
16909
17001
  function onClick() {
16910
17002
  control.value?.input?.click();
@@ -17037,28 +17129,17 @@ const VTab = genericComponent()({
17037
17129
  name: 'VTab',
17038
17130
  props: {
17039
17131
  fixed: Boolean,
17040
- icon: [Boolean, String, Function, Object],
17041
- prependIcon: IconValue,
17042
- appendIcon: IconValue,
17043
- stacked: Boolean,
17044
17132
  title: String,
17045
- ripple: {
17046
- type: Boolean,
17047
- default: true
17048
- },
17049
- color: String,
17050
17133
  sliderColor: String,
17051
17134
  hideSlider: Boolean,
17052
17135
  direction: {
17053
17136
  type: String,
17054
17137
  default: 'horizontal'
17055
17138
  },
17056
- ...makeTagProps(),
17057
- ...makeRouterProps(),
17058
- ...makeGroupItemProps({
17059
- selectedClass: 'v-tab--selected'
17060
- }),
17061
- ...makeThemeProps()
17139
+ ...omit(makeVBtnProps({
17140
+ selectedClass: 'v-tab--selected',
17141
+ variant: 'text'
17142
+ }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])
17062
17143
  },
17063
17144
  setup(props, _ref) {
17064
17145
  let {
@@ -17108,7 +17189,7 @@ const VTab = genericComponent()({
17108
17189
  }
17109
17190
  }
17110
17191
  useRender(() => {
17111
- const [btnProps] = pick(props, ['href', 'to', 'replace', 'icon', 'stacked', 'prependIcon', 'appendIcon', 'ripple', 'theme', 'disabled', 'selectedClass', 'value', 'color']);
17192
+ const [btnProps] = VBtn.filterProps(props);
17112
17193
  return createVNode(VBtn, mergeProps({
17113
17194
  "_as": "VTab",
17114
17195
  "symbol": VTabsSymbol,
@@ -17120,7 +17201,6 @@ const VTab = genericComponent()({
17120
17201
  "active": false,
17121
17202
  "block": props.fixed,
17122
17203
  "maxWidth": props.fixed ? 300 : undefined,
17123
- "variant": "text",
17124
17204
  "rounded": 0
17125
17205
  }, btnProps, attrs, {
17126
17206
  "onGroup:selected": updateSlider
@@ -17365,7 +17445,13 @@ const VTextarea = genericComponent()({
17365
17445
  });
17366
17446
  }
17367
17447
  function onInput(e) {
17368
- model.value = e.target.value;
17448
+ const el = e.target;
17449
+ const caretPosition = [el.selectionStart, el.selectionEnd];
17450
+ model.value = el.value;
17451
+ nextTick(() => {
17452
+ el.selectionStart = caretPosition[0];
17453
+ el.selectionEnd = caretPosition[1];
17454
+ });
17369
17455
  }
17370
17456
  const sizerRef = ref();
17371
17457
  function calculateInputHeight() {
@@ -17652,13 +17738,6 @@ const VTimelineDivider = genericComponent()({
17652
17738
  backgroundColorClasses: lineColorClasses,
17653
17739
  backgroundColorStyles: lineColorStyles
17654
17740
  } = useBackgroundColor(toRef(props, 'lineColor'));
17655
- provideDefaults({
17656
- VIcon: {
17657
- color: toRef(props, 'iconColor'),
17658
- icon: toRef(props, 'icon'),
17659
- size: toRef(props, 'size')
17660
- }
17661
- });
17662
17741
  useRender(() => createVNode("div", {
17663
17742
  "class": ['v-timeline-divider', {
17664
17743
  'v-timeline-divider--fill-dot': props.fillDot
@@ -17673,7 +17752,22 @@ const VTimelineDivider = genericComponent()({
17673
17752
  }, [createVNode("div", {
17674
17753
  "class": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],
17675
17754
  "style": backgroundColorStyles.value
17676
- }, [slots.default?.() ?? (props.icon ? createVNode(VIcon, null, null) : undefined)])]), createVNode("div", {
17755
+ }, [!slots.default ? createVNode(VIcon, {
17756
+ "key": "icon",
17757
+ "color": props.iconColor,
17758
+ "icon": props.icon,
17759
+ "size": props.size
17760
+ }, null) : createVNode(VDefaultsProvider, {
17761
+ "key": "icon-defaults",
17762
+ "disabled": !props.icon,
17763
+ "defaults": {
17764
+ VIcon: {
17765
+ color: props.iconColor,
17766
+ icon: props.icon,
17767
+ size: props.size
17768
+ }
17769
+ }
17770
+ }, slots.default)])]), createVNode("div", {
17677
17771
  "class": ['v-timeline-divider__after', lineColorClasses.value],
17678
17772
  "style": lineColorStyles.value
17679
17773
  }, null)]));
@@ -17798,7 +17892,7 @@ const VTooltip = genericComponent()({
17798
17892
  'aria-describedby': id.value
17799
17893
  }, props.activatorProps));
17800
17894
  useRender(() => {
17801
- const [overlayProps] = filterVOverlayProps(props);
17895
+ const [overlayProps] = VOverlay.filterProps(props);
17802
17896
  return createVNode(VOverlay, mergeProps({
17803
17897
  "ref": overlay,
17804
17898
  "class": ['v-tooltip'],
@@ -18190,7 +18284,7 @@ function createVuetify$1() {
18190
18284
  locale
18191
18285
  };
18192
18286
  }
18193
- const version$1 = "3.2.0-dev-20230309.0";
18287
+ const version$1 = "3.2.0-dev-20230322.0";
18194
18288
  createVuetify$1.version = version$1;
18195
18289
 
18196
18290
  // Vue's inject() can only be used in setup
@@ -18210,7 +18304,7 @@ const createVuetify = function () {
18210
18304
  ...options
18211
18305
  });
18212
18306
  };
18213
- const version = "3.2.0-dev-20230309.0";
18307
+ const version = "3.2.0-dev-20230322.0";
18214
18308
  createVuetify.version = version;
18215
18309
 
18216
18310
  export { components, createVuetify, directives, useDisplay, useLayout, useLocale, useRtl, useTheme, version };