vuetify 3.1.10 → 3.1.12

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 (212) hide show
  1. package/dist/json/attributes.json +211 -39
  2. package/dist/json/importMap.json +82 -82
  3. package/dist/json/tags.json +46 -3
  4. package/dist/json/web-types.json +499 -73
  5. package/dist/vuetify-labs.css +330 -316
  6. package/dist/vuetify-labs.d.ts +56938 -14302
  7. package/dist/vuetify-labs.esm.js +178 -157
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +177 -156
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +71 -69
  12. package/dist/vuetify.d.ts +55237 -15799
  13. package/dist/vuetify.esm.js +154 -151
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +154 -151
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +717 -718
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.ts +6 -9
  21. package/lib/blueprints/md1.d.ts +6 -9
  22. package/lib/blueprints/md2.d.ts +6 -9
  23. package/lib/blueprints/md3.d.ts +6 -9
  24. package/lib/blueprints/md3.mjs +6 -0
  25. package/lib/blueprints/md3.mjs.map +1 -1
  26. package/lib/components/VAlert/index.d.ts +509 -83
  27. package/lib/components/VApp/VApp.css +1 -0
  28. package/lib/components/VApp/VApp.sass +1 -0
  29. package/lib/components/VApp/index.d.ts +158 -20
  30. package/lib/components/VAppBar/VAppBar.mjs +2 -2
  31. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  32. package/lib/components/VAppBar/index.d.ts +616 -110
  33. package/lib/components/VAutocomplete/VAutocomplete.mjs +2 -2
  34. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  35. package/lib/components/VAutocomplete/index.d.ts +1656 -130
  36. package/lib/components/VAvatar/index.d.ts +205 -29
  37. package/lib/components/VBadge/VBadge.css +1 -0
  38. package/lib/components/VBadge/VBadge.sass +1 -0
  39. package/lib/components/VBadge/index.d.ts +284 -42
  40. package/lib/components/VBanner/index.d.ts +478 -84
  41. package/lib/components/VBottomNavigation/index.d.ts +321 -40
  42. package/lib/components/VBreadcrumbs/index.d.ts +325 -45
  43. package/lib/components/VBtn/VBtn.css +0 -5
  44. package/lib/components/VBtn/VBtn.mjs +40 -39
  45. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  46. package/lib/components/VBtn/VBtn.sass +0 -7
  47. package/lib/components/VBtn/_variables.scss +0 -2
  48. package/lib/components/VBtn/index.d.ts +452 -69
  49. package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -7
  50. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  51. package/lib/components/VBtnGroup/index.d.ts +185 -26
  52. package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -2
  53. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  54. package/lib/components/VBtnToggle/index.d.ts +245 -35
  55. package/lib/components/VCard/index.d.ts +938 -172
  56. package/lib/components/VCarousel/index.d.ts +561 -123
  57. package/lib/components/VCheckbox/VCheckbox.mjs +4 -4
  58. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  59. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -4
  60. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  61. package/lib/components/VCheckbox/index.d.ts +824 -149
  62. package/lib/components/VChip/index.d.ts +473 -75
  63. package/lib/components/VChipGroup/index.d.ts +227 -32
  64. package/lib/components/VCode/index.d.ts +109 -16
  65. package/lib/components/VColorPicker/index.d.ts +284 -20
  66. package/lib/components/VCombobox/VCombobox.mjs +11 -3
  67. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  68. package/lib/components/VCombobox/index.d.ts +1668 -130
  69. package/lib/components/VCounter/index.d.ts +1894 -87
  70. package/lib/components/VDefaultsProvider/index.d.ts +131 -22
  71. package/lib/components/VDialog/VDialog.css +16 -16
  72. package/lib/components/VDialog/VDialog.mjs +4 -4
  73. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  74. package/lib/components/VDialog/VDialog.sass +4 -4
  75. package/lib/components/VDialog/index.d.ts +2362 -146
  76. package/lib/components/VDivider/index.d.ts +130 -23
  77. package/lib/components/VExpansionPanel/index.d.ts +719 -119
  78. package/lib/components/VField/VField.mjs +5 -1
  79. package/lib/components/VField/VField.mjs.map +1 -1
  80. package/lib/components/VField/index.d.ts +163 -21
  81. package/lib/components/VFileInput/index.d.ts +1038 -104
  82. package/lib/components/VFooter/index.d.ts +203 -28
  83. package/lib/components/VForm/index.d.ts +204 -23
  84. package/lib/components/VGrid/VCol.mjs +5 -4
  85. package/lib/components/VGrid/VCol.mjs.map +1 -1
  86. package/lib/components/VGrid/VRow.mjs +3 -3
  87. package/lib/components/VGrid/VRow.mjs.map +1 -1
  88. package/lib/components/VGrid/index.d.ts +733 -76
  89. package/lib/components/VHover/index.d.ts +182 -35
  90. package/lib/components/VIcon/index.d.ts +494 -50
  91. package/lib/components/VImg/index.d.ts +275 -46
  92. package/lib/components/VInput/index.d.ts +315 -53
  93. package/lib/components/VItemGroup/index.d.ts +308 -52
  94. package/lib/components/VKbd/VKbd.css +1 -0
  95. package/lib/components/VKbd/VKbd.sass +1 -0
  96. package/lib/components/VKbd/_variables.scss +1 -0
  97. package/lib/components/VKbd/index.d.ts +109 -16
  98. package/lib/components/VLabel/index.d.ts +113 -20
  99. package/lib/components/VLayout/index.d.ts +296 -41
  100. package/lib/components/VLazy/VLazy.mjs +4 -1
  101. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  102. package/lib/components/VLazy/index.d.ts +219 -30
  103. package/lib/components/VList/VListChildren.mjs +2 -2
  104. package/lib/components/VList/VListChildren.mjs.map +1 -1
  105. package/lib/components/VList/VListGroup.mjs +1 -4
  106. package/lib/components/VList/VListGroup.mjs.map +1 -1
  107. package/lib/components/VList/index.d.ts +1461 -223
  108. package/lib/components/VLocaleProvider/index.d.ts +121 -20
  109. package/lib/components/VMain/index.d.ts +118 -17
  110. package/lib/components/VMenu/VMenu.css +4 -4
  111. package/lib/components/VMenu/VMenu.mjs +2 -2
  112. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  113. package/lib/components/VMenu/VMenu.sass +1 -1
  114. package/lib/components/VMenu/index.d.ts +2368 -142
  115. package/lib/components/VMessages/index.d.ts +1921 -98
  116. package/lib/components/VNavigationDrawer/index.d.ts +379 -56
  117. package/lib/components/VOverlay/VOverlay.css +1 -1
  118. package/lib/components/VOverlay/VOverlay.mjs +1 -4
  119. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  120. package/lib/components/VOverlay/_variables.scss +1 -1
  121. package/lib/components/VOverlay/index.d.ts +519 -85
  122. package/lib/components/VPagination/index.d.ts +502 -68
  123. package/lib/components/VParallax/VParallax.mjs +3 -3
  124. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  125. package/lib/components/VParallax/index.d.ts +141 -28
  126. package/lib/components/VProgressCircular/index.d.ts +186 -25
  127. package/lib/components/VProgressLinear/index.d.ts +319 -48
  128. package/lib/components/VRadio/index.d.ts +313 -57
  129. package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -6
  130. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  131. package/lib/components/VRadioGroup/index.d.ts +463 -83
  132. package/lib/components/VRangeSlider/index.d.ts +528 -80
  133. package/lib/components/VRating/index.d.ts +305 -43
  134. package/lib/components/VResponsive/index.d.ts +142 -27
  135. package/lib/components/VSelect/VSelect.mjs +2 -2
  136. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  137. package/lib/components/VSelect/index.d.ts +3060 -328
  138. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -4
  139. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  140. package/lib/components/VSelectionControl/index.d.ts +76 -4
  141. package/lib/components/VSelectionControlGroup/index.d.ts +242 -38
  142. package/lib/components/VSheet/VSheet.mjs +1 -7
  143. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  144. package/lib/components/VSheet/index.d.ts +194 -31
  145. package/lib/components/VSlideGroup/index.d.ts +475 -83
  146. package/lib/components/VSlider/index.d.ts +521 -79
  147. package/lib/components/VSlider/slider.mjs +2 -5
  148. package/lib/components/VSlider/slider.mjs.map +1 -1
  149. package/lib/components/VSnackbar/VSnackbar.mjs +2 -2
  150. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  151. package/lib/components/VSnackbar/index.d.ts +1219 -81
  152. package/lib/components/VSwitch/VSwitch.mjs +2 -2
  153. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  154. package/lib/components/VSwitch/index.d.ts +498 -92
  155. package/lib/components/VSystemBar/index.d.ts +184 -27
  156. package/lib/components/VTable/index.d.ts +190 -35
  157. package/lib/components/VTabs/VTab.mjs +7 -23
  158. package/lib/components/VTabs/VTab.mjs.map +1 -1
  159. package/lib/components/VTabs/index.d.ts +623 -71
  160. package/lib/components/VTextField/VTextField.mjs +14 -6
  161. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  162. package/lib/components/VTextField/index.d.ts +1404 -106
  163. package/lib/components/VTextarea/VTextarea.mjs +7 -1
  164. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  165. package/lib/components/VTextarea/index.d.ts +1014 -102
  166. package/lib/components/VThemeProvider/index.d.ts +124 -19
  167. package/lib/components/VTimeline/index.d.ts +441 -71
  168. package/lib/components/VToolbar/VToolbar.mjs +1 -4
  169. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  170. package/lib/components/VToolbar/index.d.ts +542 -93
  171. package/lib/components/VTooltip/VTooltip.css +3 -3
  172. package/lib/components/VTooltip/VTooltip.mjs +2 -2
  173. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  174. package/lib/components/VTooltip/VTooltip.sass +1 -1
  175. package/lib/components/VTooltip/index.d.ts +1263 -81
  176. package/lib/components/VValidation/index.d.ts +201 -30
  177. package/lib/components/VWindow/index.d.ts +527 -95
  178. package/lib/components/index.d.ts +55122 -15681
  179. package/lib/components/transitions/index.d.ts +2097 -308
  180. package/lib/composables/display.mjs +2 -0
  181. package/lib/composables/display.mjs.map +1 -1
  182. package/lib/composables/form.mjs.map +1 -1
  183. package/lib/composables/forwardRefs.mjs +12 -15
  184. package/lib/composables/forwardRefs.mjs.map +1 -1
  185. package/lib/entry-bundler.mjs +1 -1
  186. package/lib/framework.mjs +1 -1
  187. package/lib/index.d.ts +30 -33
  188. package/lib/labs/VDataTable/VDataTable.css +12 -0
  189. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  190. package/lib/labs/VDataTable/VDataTable.sass +6 -0
  191. package/lib/labs/VDataTable/VDataTableRow.mjs +7 -4
  192. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  193. package/lib/labs/VDataTable/VDataTableRows.mjs +1 -0
  194. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  195. package/lib/labs/VDataTable/VDataTableServer.mjs +3 -1
  196. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  197. package/lib/labs/VDataTable/composables/items.mjs +14 -1
  198. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  199. package/lib/labs/VDataTable/index.d.ts +4196 -1020
  200. package/lib/labs/VVirtualScroll/index.d.ts +32 -1
  201. package/lib/labs/components.d.ts +4232 -1030
  202. package/lib/styles/main.css +4 -0
  203. package/lib/styles/settings/_utilities.scss +7 -0
  204. package/lib/util/animation.mjs +8 -1
  205. package/lib/util/animation.mjs.map +1 -1
  206. package/lib/util/defineComponent.mjs +12 -5
  207. package/lib/util/defineComponent.mjs.map +1 -1
  208. package/lib/util/globals.mjs +1 -1
  209. package/lib/util/globals.mjs.map +1 -1
  210. package/lib/util/helpers.mjs +4 -0
  211. package/lib/util/helpers.mjs.map +1 -1
  212. package/package.json +3 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.10
2
+ * Vuetify v3.1.12
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -9,7 +9,7 @@ import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect,
9
9
  const IN_BROWSER = typeof window !== 'undefined';
10
10
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
11
11
  const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
12
- const SUPPORTS_FOCUS_VISIBLE = IN_BROWSER && typeof CSS !== 'undefined' && CSS.supports('selector(:focus-visible)');
12
+ const SUPPORTS_FOCUS_VISIBLE = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports('selector(:focus-visible)');
13
13
 
14
14
  // Utilities
15
15
  function useResizeObserver(callback) {
@@ -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 = () => {
@@ -1005,15 +1016,22 @@ function useToggleScope(source, fn) {
1005
1016
  function propIsDefined(vnode, prop) {
1006
1017
  return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
1007
1018
  }
1008
- const defineComponent = function defineComponent(options) {
1019
+
1020
+ // No props
1021
+
1022
+ // Implementation
1023
+ function defineComponent(options) {
1009
1024
  options._setup = options._setup ?? options.setup;
1010
1025
  if (!options.name) {
1011
1026
  consoleWarn('The component is missing an explicit name, unable to generate default prop value');
1012
1027
  return options;
1013
1028
  }
1014
1029
  if (options._setup) {
1015
- options.props = options.props ?? {};
1016
- 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
+ };
1017
1035
  options.props._as = String;
1018
1036
  options.setup = function setup(props, ctx) {
1019
1037
  const defaults = useDefaults();
@@ -1053,7 +1071,7 @@ const defineComponent = function defineComponent(options) {
1053
1071
  };
1054
1072
  }
1055
1073
  return options;
1056
- };
1074
+ }
1057
1075
  // Implementation
1058
1076
  function genericComponent() {
1059
1077
  let exposeDefaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -3217,9 +3235,6 @@ const VToolbar = genericComponent()({
3217
3235
  };
3218
3236
  }
3219
3237
  });
3220
- function filterToolbarProps(props) {
3221
- return pick(props, Object.keys(VToolbar?.props ?? {}));
3222
- }
3223
3238
 
3224
3239
  // Utilities
3225
3240
 
@@ -3297,7 +3312,7 @@ const VAppBar = genericComponent()({
3297
3312
  absolute: toRef(props, 'absolute')
3298
3313
  });
3299
3314
  useRender(() => {
3300
- const [toolbarProps] = filterToolbarProps(props);
3315
+ const [toolbarProps] = VToolbar.filterProps(props);
3301
3316
  return createVNode(VToolbar, mergeProps({
3302
3317
  "ref": vToolbarRef,
3303
3318
  "class": ['v-app-bar', {
@@ -3388,8 +3403,6 @@ function useVariant(props) {
3388
3403
  };
3389
3404
  }
3390
3405
 
3391
- // Types
3392
-
3393
3406
  const makeVBtnGroupProps = propsFactory({
3394
3407
  divided: Boolean,
3395
3408
  ...makeBorderProps(),
@@ -3440,9 +3453,6 @@ const VBtnGroup = genericComponent()({
3440
3453
  });
3441
3454
  }
3442
3455
  });
3443
- function filterVBtnGroupProps(props) {
3444
- return pick(props, Object.keys(VBtnGroup.props));
3445
- }
3446
3456
 
3447
3457
  // Composables
3448
3458
 
@@ -3669,7 +3679,7 @@ const VBtnToggle = genericComponent()({
3669
3679
  selected
3670
3680
  } = useGroup(props, VBtnToggleSymbol);
3671
3681
  useRender(() => {
3672
- const [btnGroupProps] = filterVBtnGroupProps(props);
3682
+ const [btnGroupProps] = VBtnGroup.filterProps(props);
3673
3683
  return createVNode(VBtnGroup, mergeProps({
3674
3684
  "class": "v-btn-toggle"
3675
3685
  }, btnGroupProps), {
@@ -4757,49 +4767,50 @@ function useSelectLink(link, select) {
4757
4767
 
4758
4768
  // Types
4759
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');
4760
4808
  const VBtn = genericComponent()({
4761
4809
  name: 'VBtn',
4762
4810
  directives: {
4763
4811
  Ripple
4764
4812
  },
4765
- props: {
4766
- active: {
4767
- type: Boolean,
4768
- default: undefined
4769
- },
4770
- symbol: {
4771
- type: null,
4772
- default: VBtnToggleSymbol
4773
- },
4774
- flat: Boolean,
4775
- icon: [Boolean, String, Function, Object],
4776
- prependIcon: IconValue,
4777
- appendIcon: IconValue,
4778
- block: Boolean,
4779
- stacked: Boolean,
4780
- ripple: {
4781
- type: Boolean,
4782
- default: true
4783
- },
4784
- ...makeBorderProps(),
4785
- ...makeRoundedProps(),
4786
- ...makeDensityProps(),
4787
- ...makeDimensionProps(),
4788
- ...makeElevationProps(),
4789
- ...makeGroupItemProps(),
4790
- ...makeLoaderProps(),
4791
- ...makeLocationProps(),
4792
- ...makePositionProps(),
4793
- ...makeRouterProps(),
4794
- ...makeSizeProps(),
4795
- ...makeTagProps({
4796
- tag: 'button'
4797
- }),
4798
- ...makeThemeProps(),
4799
- ...makeVariantProps({
4800
- variant: 'elevated'
4801
- })
4802
- },
4813
+ props: makeVBtnProps(),
4803
4814
  emits: {
4804
4815
  'group:selected': val => true
4805
4816
  },
@@ -5494,7 +5505,11 @@ const VField = genericComponent()({
5494
5505
  "key": "clear"
5495
5506
  }, {
5496
5507
  default: () => [withDirectives(createVNode("div", {
5497
- "class": "v-field__clearable"
5508
+ "class": "v-field__clearable",
5509
+ "onMousedown": e => {
5510
+ e.preventDefault();
5511
+ e.stopPropagation();
5512
+ }
5498
5513
  }, [slots.clear ? slots.clear() : createVNode(InputIcon, {
5499
5514
  "name": "clear"
5500
5515
  }, null)]), [[vShow, props.dirty]])]
@@ -6000,6 +6015,15 @@ const Refs = Symbol('Forwarded refs');
6000
6015
 
6001
6016
  /** Omit properties starting with P */
6002
6017
 
6018
+ function getDescriptor(obj, key) {
6019
+ let currentObj = obj;
6020
+ while (currentObj) {
6021
+ const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);
6022
+ if (descriptor) return descriptor;
6023
+ currentObj = Object.getPrototypeOf(currentObj);
6024
+ }
6025
+ return undefined;
6026
+ }
6003
6027
  function forwardRefs(target) {
6004
6028
  for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6005
6029
  refs[_key - 1] = arguments[_key];
@@ -6027,30 +6051,18 @@ function forwardRefs(target) {
6027
6051
  // Check each ref's own properties
6028
6052
  for (const ref of refs) {
6029
6053
  if (!ref.value) continue;
6030
- const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
6054
+ const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined);
6031
6055
  if (descriptor) return descriptor;
6032
- if ('_' in ref.value && 'setupState' in ref.value._) {
6033
- const descriptor = Reflect.getOwnPropertyDescriptor(ref.value._.setupState, key);
6034
- if (descriptor) return descriptor;
6035
- }
6036
6056
  }
6057
+
6037
6058
  // Recursive search up each ref's prototype
6038
- for (const ref of refs) {
6039
- let obj = ref.value && Object.getPrototypeOf(ref.value);
6040
- while (obj) {
6041
- const descriptor = Reflect.getOwnPropertyDescriptor(obj, key);
6042
- if (descriptor) return descriptor;
6043
- obj = Object.getPrototypeOf(obj);
6044
- }
6045
- }
6046
- // Call forwarded refs' proxies
6047
6059
  for (const ref of refs) {
6048
6060
  const childRefs = ref.value && ref.value[Refs];
6049
6061
  if (!childRefs) continue;
6050
6062
  const queue = childRefs.slice();
6051
6063
  while (queue.length) {
6052
6064
  const ref = queue.shift();
6053
- const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
6065
+ const descriptor = getDescriptor(ref.value, key);
6054
6066
  if (descriptor) return descriptor;
6055
6067
  const childRefs = ref.value && ref.value[Refs];
6056
6068
  if (childRefs) queue.push(...childRefs);
@@ -6151,7 +6163,15 @@ const VTextField = genericComponent()({
6151
6163
  });
6152
6164
  }
6153
6165
  function onInput(e) {
6154
- model.value = e.target.value;
6166
+ const el = e.target;
6167
+ model.value = el.value;
6168
+ if (['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {
6169
+ const caretPosition = [el.selectionStart, el.selectionEnd];
6170
+ nextTick(() => {
6171
+ el.selectionStart = caretPosition[0];
6172
+ el.selectionEnd = caretPosition[1];
6173
+ });
6174
+ }
6155
6175
  }
6156
6176
  useRender(() => {
6157
6177
  const hasCounter = !!(slots.counter || props.counter || props.counterValue);
@@ -6210,6 +6230,9 @@ const VTextField = genericComponent()({
6210
6230
  ...slotProps
6211
6231
  }
6212
6232
  } = _ref3;
6233
+ const placeholder = computed(() => {
6234
+ return (props.persistentPlaceholder || isFocused.value) && !isDirty.value ? props.placeholder : '';
6235
+ });
6213
6236
  const inputNode = withDirectives(createVNode("input", mergeProps({
6214
6237
  "ref": inputRef,
6215
6238
  "value": model.value,
@@ -6218,7 +6241,7 @@ const VTextField = genericComponent()({
6218
6241
  "readonly": isReadonly.value,
6219
6242
  "disabled": isDisabled.value,
6220
6243
  "name": props.name,
6221
- "placeholder": props.placeholder,
6244
+ "placeholder": placeholder.value,
6222
6245
  "size": 1,
6223
6246
  "type": props.type,
6224
6247
  "onFocus": onFocus,
@@ -6251,9 +6274,6 @@ const VTextField = genericComponent()({
6251
6274
  return forwardRefs({}, vInputRef, vFieldRef, inputRef);
6252
6275
  }
6253
6276
  });
6254
- function filterVTextFieldProps(props) {
6255
- return pick(props, Object.keys(VTextField.props));
6256
- }
6257
6277
 
6258
6278
  // Types
6259
6279
 
@@ -6511,11 +6531,6 @@ const VSelectionControl = genericComponent()({
6511
6531
  };
6512
6532
  }
6513
6533
  });
6514
- function filterControlProps(props) {
6515
- return pick(props, Object.keys(VSelectionControl.props));
6516
- }
6517
-
6518
- // Types
6519
6534
 
6520
6535
  const makeVCheckboxBtnProps = propsFactory({
6521
6536
  indeterminate: Boolean,
@@ -6565,9 +6580,6 @@ const VCheckboxBtn = genericComponent()({
6565
6580
  return {};
6566
6581
  }
6567
6582
  });
6568
- function filterCheckboxBtnProps(props) {
6569
- return pick(props, Object.keys(VCheckboxBtn.props));
6570
- }
6571
6583
 
6572
6584
  // Types
6573
6585
 
@@ -6576,7 +6588,7 @@ const VCheckbox = genericComponent()({
6576
6588
  inheritAttrs: false,
6577
6589
  props: {
6578
6590
  ...makeVInputProps(),
6579
- ...makeVCheckboxBtnProps()
6591
+ ...omit(makeVCheckboxBtnProps(), ['inline'])
6580
6592
  },
6581
6593
  emits: {
6582
6594
  'update:focused': focused => true
@@ -6596,7 +6608,7 @@ const VCheckbox = genericComponent()({
6596
6608
  useRender(() => {
6597
6609
  const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
6598
6610
  const [inputProps, _1] = filterInputProps(props);
6599
- const [checkboxProps, _2] = filterCheckboxBtnProps(props);
6611
+ const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
6600
6612
  return createVNode(VInput, mergeProps({
6601
6613
  "class": "v-checkbox"
6602
6614
  }, inputAttrs, inputProps, {
@@ -7500,8 +7512,6 @@ const useNestedGroupActivator = () => {
7500
7512
  });
7501
7513
  };
7502
7514
 
7503
- // Types
7504
-
7505
7515
  const VListGroupActivator = defineComponent({
7506
7516
  name: 'VListGroupActivator',
7507
7517
  setup(_, _ref) {
@@ -7594,9 +7604,6 @@ const VListGroup = genericComponent()({
7594
7604
  return {};
7595
7605
  }
7596
7606
  });
7597
- function filterListGroupProps(props) {
7598
- return pick(props, Object.keys(VListGroup.props));
7599
- }
7600
7607
 
7601
7608
  const VListItemSubtitle = createSimpleFunctional('v-list-item-subtitle');
7602
7609
 
@@ -7924,7 +7931,7 @@ const VListChildren = genericComponent()({
7924
7931
  item
7925
7932
  }) : undefined
7926
7933
  };
7927
- const [listGroupProps, _1] = filterListGroupProps(itemProps);
7934
+ const [listGroupProps, _1] = VListGroup.filterProps(itemProps);
7928
7935
  return children ? createVNode(VListGroup, mergeProps({
7929
7936
  "value": itemProps?.value
7930
7937
  }, listGroupProps), {
@@ -9151,6 +9158,8 @@ function bindScroll(el, onScroll) {
9151
9158
 
9152
9159
  // Types
9153
9160
 
9161
+ const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
9162
+
9154
9163
  const DisplaySymbol = Symbol.for('vuetify:display');
9155
9164
  const defaultDisplayOptions = {
9156
9165
  mobileBreakpoint: 'lg',
@@ -9706,9 +9715,6 @@ const VOverlay = genericComponent()({
9706
9715
  };
9707
9716
  }
9708
9717
  });
9709
- function filterVOverlayProps(props) {
9710
- return pick(props, Object.keys(VOverlay.props));
9711
- }
9712
9718
 
9713
9719
  // Types
9714
9720
 
@@ -9774,7 +9780,7 @@ const VMenu = genericComponent()({
9774
9780
  'aria-owns': id.value
9775
9781
  }, props.activatorProps));
9776
9782
  useRender(() => {
9777
- const [overlayProps] = filterVOverlayProps(props);
9783
+ const [overlayProps] = VOverlay.filterProps(props);
9778
9784
  return createVNode(VOverlay, mergeProps({
9779
9785
  "ref": overlay,
9780
9786
  "class": ['v-menu']
@@ -9950,7 +9956,7 @@ const VSelect = genericComponent()({
9950
9956
  useRender(() => {
9951
9957
  const hasChips = !!(props.chips || slots.chip);
9952
9958
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
9953
- const [textFieldProps] = filterVTextFieldProps(props);
9959
+ const [textFieldProps] = VTextField.filterProps(props);
9954
9960
  return createVNode(VTextField, mergeProps({
9955
9961
  "ref": vTextFieldRef
9956
9962
  }, textFieldProps, {
@@ -10343,7 +10349,7 @@ const VAutocomplete = genericComponent()({
10343
10349
  useRender(() => {
10344
10350
  const hasChips = !!(props.chips || slots.chip);
10345
10351
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
10346
- const [textFieldProps] = filterVTextFieldProps(props);
10352
+ const [textFieldProps] = VTextField.filterProps(props);
10347
10353
  return createVNode(VTextField, mergeProps({
10348
10354
  "ref": vTextFieldRef
10349
10355
  }, textFieldProps, {
@@ -12291,10 +12297,7 @@ const useSlider = _ref => {
12291
12297
  const min = computed(() => parseFloat(props.min));
12292
12298
  const max = computed(() => parseFloat(props.max));
12293
12299
  const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0);
12294
- const decimals = computed(() => {
12295
- const trimmedStep = step.value.toString().trim();
12296
- return trimmedStep.includes('.') ? trimmedStep.length - trimmedStep.indexOf('.') - 1 : 0;
12297
- });
12300
+ const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
12298
12301
  const thumbSize = computed(() => parseInt(props.thumbSize, 10));
12299
12302
  const tickSize = computed(() => parseInt(props.tickSize, 10));
12300
12303
  const trackSize = computed(() => parseInt(props.trackSize, 10));
@@ -13272,8 +13275,6 @@ const VColorPickerSwatches = defineComponent({
13272
13275
  }
13273
13276
  });
13274
13277
 
13275
- // Types
13276
-
13277
13278
  const makeVSheetProps = propsFactory({
13278
13279
  color: String,
13279
13280
  ...makeBorderProps(),
@@ -13517,6 +13518,7 @@ const VCombobox = genericComponent()({
13517
13518
  }
13518
13519
  });
13519
13520
  const selectionIndex = ref(-1);
13521
+ let cleared = false;
13520
13522
  const color = computed(() => vTextFieldRef.value?.color);
13521
13523
  const {
13522
13524
  items,
@@ -13553,11 +13555,17 @@ const VCombobox = genericComponent()({
13553
13555
  }
13554
13556
  }
13555
13557
  if (!val) selectionIndex.value = -1;
13556
- if (isFocused.value) menu.value = true;
13557
13558
  isPristine.value = !val;
13558
13559
  }
13559
13560
  });
13560
13561
  watch(_search, value => {
13562
+ if (cleared) {
13563
+ // wait for clear to finish, VTextField sets _search to null
13564
+ // then search computed triggers and updates _search to ''
13565
+ nextTick(() => cleared = false);
13566
+ } else if (isFocused.value && !menu.value) {
13567
+ menu.value = true;
13568
+ }
13561
13569
  emit('update:search', value);
13562
13570
  });
13563
13571
  watch(model, value => {
@@ -13584,6 +13592,7 @@ const VCombobox = genericComponent()({
13584
13592
  const selection = computed(() => selections.value[selectionIndex.value]);
13585
13593
  const listRef = ref();
13586
13594
  function onClear(e) {
13595
+ cleared = true;
13587
13596
  if (props.openOnClear) {
13588
13597
  menu.value = true;
13589
13598
  }
@@ -13698,7 +13707,7 @@ const VCombobox = genericComponent()({
13698
13707
  useRender(() => {
13699
13708
  const hasChips = !!(props.chips || slots.chip);
13700
13709
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
13701
- const [textFieldProps] = filterVTextFieldProps(props);
13710
+ const [textFieldProps] = VTextField.filterProps(props);
13702
13711
  return createVNode(VTextField, mergeProps({
13703
13712
  "ref": vTextFieldRef
13704
13713
  }, textFieldProps, {
@@ -13906,7 +13915,7 @@ const VDialog = genericComponent()({
13906
13915
  'aria-expanded': String(isActive.value)
13907
13916
  }, props.activatorProps));
13908
13917
  useRender(() => {
13909
- const [overlayProps] = filterVOverlayProps(props);
13918
+ const [overlayProps] = VOverlay.filterProps(props);
13910
13919
  return createVNode(VOverlay, mergeProps({
13911
13920
  "ref": overlay,
13912
13921
  "class": ['v-dialog', {
@@ -13916,9 +13925,9 @@ const VDialog = genericComponent()({
13916
13925
  }, overlayProps, {
13917
13926
  "modelValue": isActive.value,
13918
13927
  "onUpdate:modelValue": $event => isActive.value = $event,
13919
- "aria-role": "dialog",
13920
13928
  "aria-modal": "true",
13921
- "activatorProps": activatorProps.value
13929
+ "activatorProps": activatorProps.value,
13930
+ "role": "dialog"
13922
13931
  }, scopeId), {
13923
13932
  activator: slots.activator,
13924
13933
  default: function () {
@@ -14510,10 +14519,8 @@ const VContainer = genericComponent()({
14510
14519
 
14511
14520
  // Types
14512
14521
 
14513
- const breakpoints$1 = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
14514
-
14515
14522
  const breakpointProps = (() => {
14516
- return breakpoints$1.reduce((props, val) => {
14523
+ return breakpoints.reduce((props, val) => {
14517
14524
  props[val] = {
14518
14525
  type: [Boolean, String, Number],
14519
14526
  default: false
@@ -14522,8 +14529,9 @@ const breakpointProps = (() => {
14522
14529
  }, {});
14523
14530
  })();
14524
14531
  const offsetProps = (() => {
14525
- return breakpoints$1.reduce((props, val) => {
14526
- props['offset' + capitalize(val)] = {
14532
+ return breakpoints.reduce((props, val) => {
14533
+ const offsetKey = 'offset' + capitalize(val);
14534
+ props[offsetKey] = {
14527
14535
  type: [String, Number],
14528
14536
  default: null
14529
14537
  };
@@ -14531,8 +14539,9 @@ const offsetProps = (() => {
14531
14539
  }, {});
14532
14540
  })();
14533
14541
  const orderProps = (() => {
14534
- return breakpoints$1.reduce((props, val) => {
14535
- props['order' + capitalize(val)] = {
14542
+ return breakpoints.reduce((props, val) => {
14543
+ const orderKey = 'order' + capitalize(val);
14544
+ props[orderKey] = {
14536
14545
  type: [String, Number],
14537
14546
  default: null
14538
14547
  };
@@ -14630,13 +14639,12 @@ const VCol = genericComponent()({
14630
14639
 
14631
14640
  // Types
14632
14641
 
14633
- const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
14634
-
14635
14642
  const ALIGNMENT = ['start', 'end', 'center'];
14636
14643
  const SPACE = ['space-between', 'space-around', 'space-evenly'];
14637
14644
  function makeRowProps(prefix, def) {
14638
14645
  return breakpoints.reduce((props, val) => {
14639
- props[prefix + capitalize(val)] = def();
14646
+ const prefixKey = prefix + capitalize(val);
14647
+ props[prefixKey] = def();
14640
14648
  return props;
14641
14649
  }, {});
14642
14650
  }
@@ -14966,7 +14974,10 @@ const VLazy = genericComponent()({
14966
14974
  }, {
14967
14975
  default: () => [slots.default?.()]
14968
14976
  })]
14969
- }), [[resolveDirective("intersect"), onIntersect, props.options]]));
14977
+ }), [[resolveDirective("intersect"), {
14978
+ handler: onIntersect,
14979
+ options: props.options
14980
+ }, null]]));
14970
14981
  return {};
14971
14982
  }
14972
14983
  });
@@ -15943,9 +15954,9 @@ const VParallax = genericComponent()({
15943
15954
  frame = requestAnimationFrame(() => {
15944
15955
  const el = (root.value?.$el).querySelector('.v-img__img');
15945
15956
  if (!el) return;
15946
- const scrollHeight = scrollParent.clientHeight ?? document.documentElement.clientHeight;
15947
- const scrollPos = scrollParent.scrollTop ?? window.scrollY;
15948
- const top = intersectionRef.value.offsetTop;
15957
+ const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight;
15958
+ const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop;
15959
+ const top = intersectionRef.value.getBoundingClientRect().top + scrollPos;
15949
15960
  const height = contentRect.value.height;
15950
15961
  const center = top + (height - scrollHeight) / 2;
15951
15962
  const translate = floor((scrollPos - center) * scale.value);
@@ -16027,10 +16038,7 @@ const VRadioGroup = genericComponent()({
16027
16038
  useRender(() => {
16028
16039
  const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
16029
16040
  const [inputProps, _1] = filterInputProps(props);
16030
- const [controlProps, _2] = filterControlProps({
16031
- ...props,
16032
- multiple: false
16033
- });
16041
+ const [controlProps, _2] = VSelectionControl.filterProps(props);
16034
16042
  const label = slots.label ? slots.label({
16035
16043
  label: props.label,
16036
16044
  props: {
@@ -16065,7 +16073,8 @@ const VRadioGroup = genericComponent()({
16065
16073
  "type": props.type,
16066
16074
  "disabled": isDisabled.value,
16067
16075
  "readonly": isReadonly.value,
16068
- "aria-labelledby": label ? id.value : undefined
16076
+ "aria-labelledby": label ? id.value : undefined,
16077
+ "multiple": false
16069
16078
  }, controlAttrs, {
16070
16079
  "modelValue": model.value,
16071
16080
  "onUpdate:modelValue": $event => model.value = $event
@@ -16935,7 +16944,7 @@ const VSnackbar = genericComponent()({
16935
16944
  window.clearTimeout(activeTimeout);
16936
16945
  }
16937
16946
  useRender(() => {
16938
- const [overlayProps] = filterVOverlayProps(props);
16947
+ const [overlayProps] = VOverlay.filterProps(props);
16939
16948
  return createVNode(VOverlay, mergeProps({
16940
16949
  "ref": overlay,
16941
16950
  "class": ['v-snackbar', {
@@ -17030,7 +17039,7 @@ const VSwitch = genericComponent()({
17030
17039
  useRender(() => {
17031
17040
  const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
17032
17041
  const [inputProps, _1] = filterInputProps(props);
17033
- const [controlProps, _2] = filterControlProps(props);
17042
+ const [controlProps, _2] = VSelectionControl.filterProps(props);
17034
17043
  const control = ref();
17035
17044
  function onClick() {
17036
17045
  control.value?.input?.click();
@@ -17163,28 +17172,17 @@ const VTab = genericComponent()({
17163
17172
  name: 'VTab',
17164
17173
  props: {
17165
17174
  fixed: Boolean,
17166
- icon: [Boolean, String, Function, Object],
17167
- prependIcon: IconValue,
17168
- appendIcon: IconValue,
17169
- stacked: Boolean,
17170
17175
  title: String,
17171
- ripple: {
17172
- type: Boolean,
17173
- default: true
17174
- },
17175
- color: String,
17176
17176
  sliderColor: String,
17177
17177
  hideSlider: Boolean,
17178
17178
  direction: {
17179
17179
  type: String,
17180
17180
  default: 'horizontal'
17181
17181
  },
17182
- ...makeTagProps(),
17183
- ...makeRouterProps(),
17184
- ...makeGroupItemProps({
17185
- selectedClass: 'v-tab--selected'
17186
- }),
17187
- ...makeThemeProps()
17182
+ ...omit(makeVBtnProps({
17183
+ selectedClass: 'v-tab--selected',
17184
+ variant: 'text'
17185
+ }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])
17188
17186
  },
17189
17187
  setup(props, _ref) {
17190
17188
  let {
@@ -17234,7 +17232,7 @@ const VTab = genericComponent()({
17234
17232
  }
17235
17233
  }
17236
17234
  useRender(() => {
17237
- const [btnProps] = pick(props, ['href', 'to', 'replace', 'icon', 'stacked', 'prependIcon', 'appendIcon', 'ripple', 'theme', 'disabled', 'selectedClass', 'value', 'color']);
17235
+ const [btnProps] = VBtn.filterProps(props);
17238
17236
  return createVNode(VBtn, mergeProps({
17239
17237
  "_as": "VTab",
17240
17238
  "symbol": VTabsSymbol,
@@ -17246,7 +17244,6 @@ const VTab = genericComponent()({
17246
17244
  "active": false,
17247
17245
  "block": props.fixed,
17248
17246
  "maxWidth": props.fixed ? 300 : undefined,
17249
- "variant": "text",
17250
17247
  "rounded": 0
17251
17248
  }, btnProps, attrs, {
17252
17249
  "onGroup:selected": updateSlider
@@ -17491,7 +17488,13 @@ const VTextarea = genericComponent()({
17491
17488
  });
17492
17489
  }
17493
17490
  function onInput(e) {
17494
- model.value = e.target.value;
17491
+ const el = e.target;
17492
+ const caretPosition = [el.selectionStart, el.selectionEnd];
17493
+ model.value = el.value;
17494
+ nextTick(() => {
17495
+ el.selectionStart = caretPosition[0];
17496
+ el.selectionEnd = caretPosition[1];
17497
+ });
17495
17498
  }
17496
17499
  const sizerRef = ref();
17497
17500
  function calculateInputHeight() {
@@ -17931,7 +17934,7 @@ const VTooltip = genericComponent()({
17931
17934
  'aria-describedby': id.value
17932
17935
  }, props.activatorProps));
17933
17936
  useRender(() => {
17934
- const [overlayProps] = filterVOverlayProps(props);
17937
+ const [overlayProps] = VOverlay.filterProps(props);
17935
17938
  return createVNode(VOverlay, mergeProps({
17936
17939
  "ref": overlay,
17937
17940
  "class": ['v-tooltip'],
@@ -18324,7 +18327,7 @@ function createVuetify$1() {
18324
18327
  locale
18325
18328
  };
18326
18329
  }
18327
- const version$1 = "3.1.10";
18330
+ const version$1 = "3.1.12";
18328
18331
  createVuetify$1.version = version$1;
18329
18332
 
18330
18333
  // Vue's inject() can only be used in setup
@@ -18344,7 +18347,7 @@ const createVuetify = function () {
18344
18347
  ...options
18345
18348
  });
18346
18349
  };
18347
- const version = "3.1.10";
18350
+ const version = "3.1.12";
18348
18351
  createVuetify.version = version;
18349
18352
 
18350
18353
  export { components, createVuetify, directives, useDisplay, useLayout, useLocale, useRtl, useTheme, version };