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,15 +1,15 @@
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
  */
6
6
 
7
- import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, onScopeDispose, effectScope, shallowRef, defineComponent as defineComponent$1, camelize, h, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode, warn, toHandlers, Teleport, createTextVNode, onBeforeUpdate, vModelText, onUpdated } from 'vue';
7
+ import { ref, onBeforeUnmount, watch, readonly, reactive, computed, watchEffect, toRefs, capitalize, getCurrentInstance as getCurrentInstance$1, unref, provide, inject as inject$1, onScopeDispose, effectScope, shallowRef, defineComponent as defineComponent$1, camelize, h, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, cloneVNode, warn, toHandlers, Teleport, createTextVNode, onBeforeUpdate, vModelText, withModifiers, onUpdated } from 'vue';
8
8
 
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;
@@ -3221,9 +3239,6 @@ const VToolbar = genericComponent()({
3221
3239
  };
3222
3240
  }
3223
3241
  });
3224
- function filterToolbarProps(props) {
3225
- return pick(props, Object.keys(VToolbar?.props ?? {}));
3226
- }
3227
3242
 
3228
3243
  // Utilities
3229
3244
 
@@ -3301,7 +3316,7 @@ const VAppBar = genericComponent()({
3301
3316
  absolute: toRef(props, 'absolute')
3302
3317
  });
3303
3318
  useRender(() => {
3304
- const [toolbarProps] = filterToolbarProps(props);
3319
+ const [toolbarProps] = VToolbar.filterProps(props);
3305
3320
  return createVNode(VToolbar, mergeProps({
3306
3321
  "ref": vToolbarRef,
3307
3322
  "class": ['v-app-bar', {
@@ -3392,8 +3407,6 @@ function useVariant(props) {
3392
3407
  };
3393
3408
  }
3394
3409
 
3395
- // Types
3396
-
3397
3410
  const makeVBtnGroupProps = propsFactory({
3398
3411
  divided: Boolean,
3399
3412
  ...makeBorderProps(),
@@ -3444,9 +3457,6 @@ const VBtnGroup = genericComponent()({
3444
3457
  });
3445
3458
  }
3446
3459
  });
3447
- function filterVBtnGroupProps(props) {
3448
- return pick(props, Object.keys(VBtnGroup.props));
3449
- }
3450
3460
 
3451
3461
  // Composables
3452
3462
 
@@ -3673,7 +3683,7 @@ const VBtnToggle = genericComponent()({
3673
3683
  selected
3674
3684
  } = useGroup(props, VBtnToggleSymbol);
3675
3685
  useRender(() => {
3676
- const [btnGroupProps] = filterVBtnGroupProps(props);
3686
+ const [btnGroupProps] = VBtnGroup.filterProps(props);
3677
3687
  return createVNode(VBtnGroup, mergeProps({
3678
3688
  "class": "v-btn-toggle"
3679
3689
  }, btnGroupProps), {
@@ -4761,49 +4771,50 @@ function useSelectLink(link, select) {
4761
4771
 
4762
4772
  // Types
4763
4773
 
4774
+ const makeVBtnProps = propsFactory({
4775
+ active: {
4776
+ type: Boolean,
4777
+ default: undefined
4778
+ },
4779
+ symbol: {
4780
+ type: null,
4781
+ default: VBtnToggleSymbol
4782
+ },
4783
+ flat: Boolean,
4784
+ icon: [Boolean, String, Function, Object],
4785
+ prependIcon: IconValue,
4786
+ appendIcon: IconValue,
4787
+ block: Boolean,
4788
+ stacked: Boolean,
4789
+ ripple: {
4790
+ type: Boolean,
4791
+ default: true
4792
+ },
4793
+ ...makeBorderProps(),
4794
+ ...makeRoundedProps(),
4795
+ ...makeDensityProps(),
4796
+ ...makeDimensionProps(),
4797
+ ...makeElevationProps(),
4798
+ ...makeGroupItemProps(),
4799
+ ...makeLoaderProps(),
4800
+ ...makeLocationProps(),
4801
+ ...makePositionProps(),
4802
+ ...makeRouterProps(),
4803
+ ...makeSizeProps(),
4804
+ ...makeTagProps({
4805
+ tag: 'button'
4806
+ }),
4807
+ ...makeThemeProps(),
4808
+ ...makeVariantProps({
4809
+ variant: 'elevated'
4810
+ })
4811
+ }, 'VBtn');
4764
4812
  const VBtn = genericComponent()({
4765
4813
  name: 'VBtn',
4766
4814
  directives: {
4767
4815
  Ripple
4768
4816
  },
4769
- props: {
4770
- active: {
4771
- type: Boolean,
4772
- default: undefined
4773
- },
4774
- symbol: {
4775
- type: null,
4776
- default: VBtnToggleSymbol
4777
- },
4778
- flat: Boolean,
4779
- icon: [Boolean, String, Function, Object],
4780
- prependIcon: IconValue,
4781
- appendIcon: IconValue,
4782
- block: Boolean,
4783
- stacked: Boolean,
4784
- ripple: {
4785
- type: Boolean,
4786
- default: true
4787
- },
4788
- ...makeBorderProps(),
4789
- ...makeRoundedProps(),
4790
- ...makeDensityProps(),
4791
- ...makeDimensionProps(),
4792
- ...makeElevationProps(),
4793
- ...makeGroupItemProps(),
4794
- ...makeLoaderProps(),
4795
- ...makeLocationProps(),
4796
- ...makePositionProps(),
4797
- ...makeRouterProps(),
4798
- ...makeSizeProps(),
4799
- ...makeTagProps({
4800
- tag: 'button'
4801
- }),
4802
- ...makeThemeProps(),
4803
- ...makeVariantProps({
4804
- variant: 'elevated'
4805
- })
4806
- },
4817
+ props: makeVBtnProps(),
4807
4818
  emits: {
4808
4819
  'group:selected': val => true
4809
4820
  },
@@ -5498,7 +5509,11 @@ const VField = genericComponent()({
5498
5509
  "key": "clear"
5499
5510
  }, {
5500
5511
  default: () => [withDirectives(createVNode("div", {
5501
- "class": "v-field__clearable"
5512
+ "class": "v-field__clearable",
5513
+ "onMousedown": e => {
5514
+ e.preventDefault();
5515
+ e.stopPropagation();
5516
+ }
5502
5517
  }, [slots.clear ? slots.clear() : createVNode(InputIcon, {
5503
5518
  "name": "clear"
5504
5519
  }, null)]), [[vShow, props.dirty]])]
@@ -6004,6 +6019,15 @@ const Refs = Symbol('Forwarded refs');
6004
6019
 
6005
6020
  /** Omit properties starting with P */
6006
6021
 
6022
+ function getDescriptor(obj, key) {
6023
+ let currentObj = obj;
6024
+ while (currentObj) {
6025
+ const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);
6026
+ if (descriptor) return descriptor;
6027
+ currentObj = Object.getPrototypeOf(currentObj);
6028
+ }
6029
+ return undefined;
6030
+ }
6007
6031
  function forwardRefs(target) {
6008
6032
  for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6009
6033
  refs[_key - 1] = arguments[_key];
@@ -6031,30 +6055,18 @@ function forwardRefs(target) {
6031
6055
  // Check each ref's own properties
6032
6056
  for (const ref of refs) {
6033
6057
  if (!ref.value) continue;
6034
- const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
6058
+ const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined);
6035
6059
  if (descriptor) return descriptor;
6036
- if ('_' in ref.value && 'setupState' in ref.value._) {
6037
- const descriptor = Reflect.getOwnPropertyDescriptor(ref.value._.setupState, key);
6038
- if (descriptor) return descriptor;
6039
- }
6040
6060
  }
6061
+
6041
6062
  // Recursive search up each ref's prototype
6042
- for (const ref of refs) {
6043
- let obj = ref.value && Object.getPrototypeOf(ref.value);
6044
- while (obj) {
6045
- const descriptor = Reflect.getOwnPropertyDescriptor(obj, key);
6046
- if (descriptor) return descriptor;
6047
- obj = Object.getPrototypeOf(obj);
6048
- }
6049
- }
6050
- // Call forwarded refs' proxies
6051
6063
  for (const ref of refs) {
6052
6064
  const childRefs = ref.value && ref.value[Refs];
6053
6065
  if (!childRefs) continue;
6054
6066
  const queue = childRefs.slice();
6055
6067
  while (queue.length) {
6056
6068
  const ref = queue.shift();
6057
- const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
6069
+ const descriptor = getDescriptor(ref.value, key);
6058
6070
  if (descriptor) return descriptor;
6059
6071
  const childRefs = ref.value && ref.value[Refs];
6060
6072
  if (childRefs) queue.push(...childRefs);
@@ -6155,7 +6167,15 @@ const VTextField = genericComponent()({
6155
6167
  });
6156
6168
  }
6157
6169
  function onInput(e) {
6158
- model.value = e.target.value;
6170
+ const el = e.target;
6171
+ model.value = el.value;
6172
+ if (['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {
6173
+ const caretPosition = [el.selectionStart, el.selectionEnd];
6174
+ nextTick(() => {
6175
+ el.selectionStart = caretPosition[0];
6176
+ el.selectionEnd = caretPosition[1];
6177
+ });
6178
+ }
6159
6179
  }
6160
6180
  useRender(() => {
6161
6181
  const hasCounter = !!(slots.counter || props.counter || props.counterValue);
@@ -6214,6 +6234,9 @@ const VTextField = genericComponent()({
6214
6234
  ...slotProps
6215
6235
  }
6216
6236
  } = _ref3;
6237
+ const placeholder = computed(() => {
6238
+ return (props.persistentPlaceholder || isFocused.value) && !isDirty.value ? props.placeholder : '';
6239
+ });
6217
6240
  const inputNode = withDirectives(createVNode("input", mergeProps({
6218
6241
  "ref": inputRef,
6219
6242
  "value": model.value,
@@ -6222,7 +6245,7 @@ const VTextField = genericComponent()({
6222
6245
  "readonly": isReadonly.value,
6223
6246
  "disabled": isDisabled.value,
6224
6247
  "name": props.name,
6225
- "placeholder": props.placeholder,
6248
+ "placeholder": placeholder.value,
6226
6249
  "size": 1,
6227
6250
  "type": props.type,
6228
6251
  "onFocus": onFocus,
@@ -6255,9 +6278,6 @@ const VTextField = genericComponent()({
6255
6278
  return forwardRefs({}, vInputRef, vFieldRef, inputRef);
6256
6279
  }
6257
6280
  });
6258
- function filterVTextFieldProps(props) {
6259
- return pick(props, Object.keys(VTextField.props));
6260
- }
6261
6281
 
6262
6282
  // Types
6263
6283
 
@@ -6515,11 +6535,6 @@ const VSelectionControl = genericComponent()({
6515
6535
  };
6516
6536
  }
6517
6537
  });
6518
- function filterControlProps(props) {
6519
- return pick(props, Object.keys(VSelectionControl.props));
6520
- }
6521
-
6522
- // Types
6523
6538
 
6524
6539
  const makeVCheckboxBtnProps = propsFactory({
6525
6540
  indeterminate: Boolean,
@@ -6569,9 +6584,6 @@ const VCheckboxBtn = genericComponent()({
6569
6584
  return {};
6570
6585
  }
6571
6586
  });
6572
- function filterCheckboxBtnProps(props) {
6573
- return pick(props, Object.keys(VCheckboxBtn.props));
6574
- }
6575
6587
 
6576
6588
  // Types
6577
6589
 
@@ -6580,7 +6592,7 @@ const VCheckbox = genericComponent()({
6580
6592
  inheritAttrs: false,
6581
6593
  props: {
6582
6594
  ...makeVInputProps(),
6583
- ...makeVCheckboxBtnProps()
6595
+ ...omit(makeVCheckboxBtnProps(), ['inline'])
6584
6596
  },
6585
6597
  emits: {
6586
6598
  'update:focused': focused => true
@@ -6600,7 +6612,7 @@ const VCheckbox = genericComponent()({
6600
6612
  useRender(() => {
6601
6613
  const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
6602
6614
  const [inputProps, _1] = filterInputProps(props);
6603
- const [checkboxProps, _2] = filterCheckboxBtnProps(props);
6615
+ const [checkboxProps, _2] = VCheckboxBtn.filterProps(props);
6604
6616
  return createVNode(VInput, mergeProps({
6605
6617
  "class": "v-checkbox"
6606
6618
  }, inputAttrs, inputProps, {
@@ -7504,8 +7516,6 @@ const useNestedGroupActivator = () => {
7504
7516
  });
7505
7517
  };
7506
7518
 
7507
- // Types
7508
-
7509
7519
  const VListGroupActivator = defineComponent({
7510
7520
  name: 'VListGroupActivator',
7511
7521
  setup(_, _ref) {
@@ -7598,9 +7608,6 @@ const VListGroup = genericComponent()({
7598
7608
  return {};
7599
7609
  }
7600
7610
  });
7601
- function filterListGroupProps(props) {
7602
- return pick(props, Object.keys(VListGroup.props));
7603
- }
7604
7611
 
7605
7612
  const VListItemSubtitle = createSimpleFunctional('v-list-item-subtitle');
7606
7613
 
@@ -7928,7 +7935,7 @@ const VListChildren = genericComponent()({
7928
7935
  item
7929
7936
  }) : undefined
7930
7937
  };
7931
- const [listGroupProps, _1] = filterListGroupProps(itemProps);
7938
+ const [listGroupProps, _1] = VListGroup.filterProps(itemProps);
7932
7939
  return children ? createVNode(VListGroup, mergeProps({
7933
7940
  "value": itemProps?.value
7934
7941
  }, listGroupProps), {
@@ -9155,6 +9162,8 @@ function bindScroll(el, onScroll) {
9155
9162
 
9156
9163
  // Types
9157
9164
 
9165
+ const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
9166
+
9158
9167
  const DisplaySymbol = Symbol.for('vuetify:display');
9159
9168
  const defaultDisplayOptions = {
9160
9169
  mobileBreakpoint: 'lg',
@@ -9710,9 +9719,6 @@ const VOverlay = genericComponent()({
9710
9719
  };
9711
9720
  }
9712
9721
  });
9713
- function filterVOverlayProps(props) {
9714
- return pick(props, Object.keys(VOverlay.props));
9715
- }
9716
9722
 
9717
9723
  // Types
9718
9724
 
@@ -9778,7 +9784,7 @@ const VMenu = genericComponent()({
9778
9784
  'aria-owns': id.value
9779
9785
  }, props.activatorProps));
9780
9786
  useRender(() => {
9781
- const [overlayProps] = filterVOverlayProps(props);
9787
+ const [overlayProps] = VOverlay.filterProps(props);
9782
9788
  return createVNode(VOverlay, mergeProps({
9783
9789
  "ref": overlay,
9784
9790
  "class": ['v-menu']
@@ -9954,7 +9960,7 @@ const VSelect = genericComponent()({
9954
9960
  useRender(() => {
9955
9961
  const hasChips = !!(props.chips || slots.chip);
9956
9962
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
9957
- const [textFieldProps] = filterVTextFieldProps(props);
9963
+ const [textFieldProps] = VTextField.filterProps(props);
9958
9964
  return createVNode(VTextField, mergeProps({
9959
9965
  "ref": vTextFieldRef
9960
9966
  }, textFieldProps, {
@@ -10347,7 +10353,7 @@ const VAutocomplete = genericComponent()({
10347
10353
  useRender(() => {
10348
10354
  const hasChips = !!(props.chips || slots.chip);
10349
10355
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
10350
- const [textFieldProps] = filterVTextFieldProps(props);
10356
+ const [textFieldProps] = VTextField.filterProps(props);
10351
10357
  return createVNode(VTextField, mergeProps({
10352
10358
  "ref": vTextFieldRef
10353
10359
  }, textFieldProps, {
@@ -12295,10 +12301,7 @@ const useSlider = _ref => {
12295
12301
  const min = computed(() => parseFloat(props.min));
12296
12302
  const max = computed(() => parseFloat(props.max));
12297
12303
  const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0);
12298
- const decimals = computed(() => {
12299
- const trimmedStep = step.value.toString().trim();
12300
- return trimmedStep.includes('.') ? trimmedStep.length - trimmedStep.indexOf('.') - 1 : 0;
12301
- });
12304
+ const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
12302
12305
  const thumbSize = computed(() => parseInt(props.thumbSize, 10));
12303
12306
  const tickSize = computed(() => parseInt(props.tickSize, 10));
12304
12307
  const trackSize = computed(() => parseInt(props.trackSize, 10));
@@ -13276,8 +13279,6 @@ const VColorPickerSwatches = defineComponent({
13276
13279
  }
13277
13280
  });
13278
13281
 
13279
- // Types
13280
-
13281
13282
  const makeVSheetProps = propsFactory({
13282
13283
  color: String,
13283
13284
  ...makeBorderProps(),
@@ -13521,6 +13522,7 @@ const VCombobox = genericComponent()({
13521
13522
  }
13522
13523
  });
13523
13524
  const selectionIndex = ref(-1);
13525
+ let cleared = false;
13524
13526
  const color = computed(() => vTextFieldRef.value?.color);
13525
13527
  const {
13526
13528
  items,
@@ -13557,11 +13559,17 @@ const VCombobox = genericComponent()({
13557
13559
  }
13558
13560
  }
13559
13561
  if (!val) selectionIndex.value = -1;
13560
- if (isFocused.value) menu.value = true;
13561
13562
  isPristine.value = !val;
13562
13563
  }
13563
13564
  });
13564
13565
  watch(_search, value => {
13566
+ if (cleared) {
13567
+ // wait for clear to finish, VTextField sets _search to null
13568
+ // then search computed triggers and updates _search to ''
13569
+ nextTick(() => cleared = false);
13570
+ } else if (isFocused.value && !menu.value) {
13571
+ menu.value = true;
13572
+ }
13565
13573
  emit('update:search', value);
13566
13574
  });
13567
13575
  watch(model, value => {
@@ -13588,6 +13596,7 @@ const VCombobox = genericComponent()({
13588
13596
  const selection = computed(() => selections.value[selectionIndex.value]);
13589
13597
  const listRef = ref();
13590
13598
  function onClear(e) {
13599
+ cleared = true;
13591
13600
  if (props.openOnClear) {
13592
13601
  menu.value = true;
13593
13602
  }
@@ -13702,7 +13711,7 @@ const VCombobox = genericComponent()({
13702
13711
  useRender(() => {
13703
13712
  const hasChips = !!(props.chips || slots.chip);
13704
13713
  const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
13705
- const [textFieldProps] = filterVTextFieldProps(props);
13714
+ const [textFieldProps] = VTextField.filterProps(props);
13706
13715
  return createVNode(VTextField, mergeProps({
13707
13716
  "ref": vTextFieldRef
13708
13717
  }, textFieldProps, {
@@ -13910,7 +13919,7 @@ const VDialog = genericComponent()({
13910
13919
  'aria-expanded': String(isActive.value)
13911
13920
  }, props.activatorProps));
13912
13921
  useRender(() => {
13913
- const [overlayProps] = filterVOverlayProps(props);
13922
+ const [overlayProps] = VOverlay.filterProps(props);
13914
13923
  return createVNode(VOverlay, mergeProps({
13915
13924
  "ref": overlay,
13916
13925
  "class": ['v-dialog', {
@@ -13920,9 +13929,9 @@ const VDialog = genericComponent()({
13920
13929
  }, overlayProps, {
13921
13930
  "modelValue": isActive.value,
13922
13931
  "onUpdate:modelValue": $event => isActive.value = $event,
13923
- "aria-role": "dialog",
13924
13932
  "aria-modal": "true",
13925
- "activatorProps": activatorProps.value
13933
+ "activatorProps": activatorProps.value,
13934
+ "role": "dialog"
13926
13935
  }, scopeId), {
13927
13936
  activator: slots.activator,
13928
13937
  default: function () {
@@ -14514,10 +14523,8 @@ const VContainer = genericComponent()({
14514
14523
 
14515
14524
  // Types
14516
14525
 
14517
- const breakpoints$1 = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
14518
-
14519
14526
  const breakpointProps = (() => {
14520
- return breakpoints$1.reduce((props, val) => {
14527
+ return breakpoints.reduce((props, val) => {
14521
14528
  props[val] = {
14522
14529
  type: [Boolean, String, Number],
14523
14530
  default: false
@@ -14526,8 +14533,9 @@ const breakpointProps = (() => {
14526
14533
  }, {});
14527
14534
  })();
14528
14535
  const offsetProps = (() => {
14529
- return breakpoints$1.reduce((props, val) => {
14530
- props['offset' + capitalize(val)] = {
14536
+ return breakpoints.reduce((props, val) => {
14537
+ const offsetKey = 'offset' + capitalize(val);
14538
+ props[offsetKey] = {
14531
14539
  type: [String, Number],
14532
14540
  default: null
14533
14541
  };
@@ -14535,8 +14543,9 @@ const offsetProps = (() => {
14535
14543
  }, {});
14536
14544
  })();
14537
14545
  const orderProps = (() => {
14538
- return breakpoints$1.reduce((props, val) => {
14539
- props['order' + capitalize(val)] = {
14546
+ return breakpoints.reduce((props, val) => {
14547
+ const orderKey = 'order' + capitalize(val);
14548
+ props[orderKey] = {
14540
14549
  type: [String, Number],
14541
14550
  default: null
14542
14551
  };
@@ -14634,13 +14643,12 @@ const VCol = genericComponent()({
14634
14643
 
14635
14644
  // Types
14636
14645
 
14637
- const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
14638
-
14639
14646
  const ALIGNMENT = ['start', 'end', 'center'];
14640
14647
  const SPACE = ['space-between', 'space-around', 'space-evenly'];
14641
14648
  function makeRowProps(prefix, def) {
14642
14649
  return breakpoints.reduce((props, val) => {
14643
- props[prefix + capitalize(val)] = def();
14650
+ const prefixKey = prefix + capitalize(val);
14651
+ props[prefixKey] = def();
14644
14652
  return props;
14645
14653
  }, {});
14646
14654
  }
@@ -14970,7 +14978,10 @@ const VLazy = genericComponent()({
14970
14978
  }, {
14971
14979
  default: () => [slots.default?.()]
14972
14980
  })]
14973
- }), [[resolveDirective("intersect"), onIntersect, props.options]]));
14981
+ }), [[resolveDirective("intersect"), {
14982
+ handler: onIntersect,
14983
+ options: props.options
14984
+ }, null]]));
14974
14985
  return {};
14975
14986
  }
14976
14987
  });
@@ -15947,9 +15958,9 @@ const VParallax = genericComponent()({
15947
15958
  frame = requestAnimationFrame(() => {
15948
15959
  const el = (root.value?.$el).querySelector('.v-img__img');
15949
15960
  if (!el) return;
15950
- const scrollHeight = scrollParent.clientHeight ?? document.documentElement.clientHeight;
15951
- const scrollPos = scrollParent.scrollTop ?? window.scrollY;
15952
- const top = intersectionRef.value.offsetTop;
15961
+ const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight;
15962
+ const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop;
15963
+ const top = intersectionRef.value.getBoundingClientRect().top + scrollPos;
15953
15964
  const height = contentRect.value.height;
15954
15965
  const center = top + (height - scrollHeight) / 2;
15955
15966
  const translate = floor((scrollPos - center) * scale.value);
@@ -16031,10 +16042,7 @@ const VRadioGroup = genericComponent()({
16031
16042
  useRender(() => {
16032
16043
  const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
16033
16044
  const [inputProps, _1] = filterInputProps(props);
16034
- const [controlProps, _2] = filterControlProps({
16035
- ...props,
16036
- multiple: false
16037
- });
16045
+ const [controlProps, _2] = VSelectionControl.filterProps(props);
16038
16046
  const label = slots.label ? slots.label({
16039
16047
  label: props.label,
16040
16048
  props: {
@@ -16069,7 +16077,8 @@ const VRadioGroup = genericComponent()({
16069
16077
  "type": props.type,
16070
16078
  "disabled": isDisabled.value,
16071
16079
  "readonly": isReadonly.value,
16072
- "aria-labelledby": label ? id.value : undefined
16080
+ "aria-labelledby": label ? id.value : undefined,
16081
+ "multiple": false
16073
16082
  }, controlAttrs, {
16074
16083
  "modelValue": model.value,
16075
16084
  "onUpdate:modelValue": $event => model.value = $event
@@ -16939,7 +16948,7 @@ const VSnackbar = genericComponent()({
16939
16948
  window.clearTimeout(activeTimeout);
16940
16949
  }
16941
16950
  useRender(() => {
16942
- const [overlayProps] = filterVOverlayProps(props);
16951
+ const [overlayProps] = VOverlay.filterProps(props);
16943
16952
  return createVNode(VOverlay, mergeProps({
16944
16953
  "ref": overlay,
16945
16954
  "class": ['v-snackbar', {
@@ -17034,7 +17043,7 @@ const VSwitch = genericComponent()({
17034
17043
  useRender(() => {
17035
17044
  const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
17036
17045
  const [inputProps, _1] = filterInputProps(props);
17037
- const [controlProps, _2] = filterControlProps(props);
17046
+ const [controlProps, _2] = VSelectionControl.filterProps(props);
17038
17047
  const control = ref();
17039
17048
  function onClick() {
17040
17049
  control.value?.input?.click();
@@ -17167,28 +17176,17 @@ const VTab = genericComponent()({
17167
17176
  name: 'VTab',
17168
17177
  props: {
17169
17178
  fixed: Boolean,
17170
- icon: [Boolean, String, Function, Object],
17171
- prependIcon: IconValue,
17172
- appendIcon: IconValue,
17173
- stacked: Boolean,
17174
17179
  title: String,
17175
- ripple: {
17176
- type: Boolean,
17177
- default: true
17178
- },
17179
- color: String,
17180
17180
  sliderColor: String,
17181
17181
  hideSlider: Boolean,
17182
17182
  direction: {
17183
17183
  type: String,
17184
17184
  default: 'horizontal'
17185
17185
  },
17186
- ...makeTagProps(),
17187
- ...makeRouterProps(),
17188
- ...makeGroupItemProps({
17189
- selectedClass: 'v-tab--selected'
17190
- }),
17191
- ...makeThemeProps()
17186
+ ...omit(makeVBtnProps({
17187
+ selectedClass: 'v-tab--selected',
17188
+ variant: 'text'
17189
+ }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])
17192
17190
  },
17193
17191
  setup(props, _ref) {
17194
17192
  let {
@@ -17238,7 +17236,7 @@ const VTab = genericComponent()({
17238
17236
  }
17239
17237
  }
17240
17238
  useRender(() => {
17241
- const [btnProps] = pick(props, ['href', 'to', 'replace', 'icon', 'stacked', 'prependIcon', 'appendIcon', 'ripple', 'theme', 'disabled', 'selectedClass', 'value', 'color']);
17239
+ const [btnProps] = VBtn.filterProps(props);
17242
17240
  return createVNode(VBtn, mergeProps({
17243
17241
  "_as": "VTab",
17244
17242
  "symbol": VTabsSymbol,
@@ -17250,7 +17248,6 @@ const VTab = genericComponent()({
17250
17248
  "active": false,
17251
17249
  "block": props.fixed,
17252
17250
  "maxWidth": props.fixed ? 300 : undefined,
17253
- "variant": "text",
17254
17251
  "rounded": 0
17255
17252
  }, btnProps, attrs, {
17256
17253
  "onGroup:selected": updateSlider
@@ -17495,7 +17492,13 @@ const VTextarea = genericComponent()({
17495
17492
  });
17496
17493
  }
17497
17494
  function onInput(e) {
17498
- model.value = e.target.value;
17495
+ const el = e.target;
17496
+ const caretPosition = [el.selectionStart, el.selectionEnd];
17497
+ model.value = el.value;
17498
+ nextTick(() => {
17499
+ el.selectionStart = caretPosition[0];
17500
+ el.selectionEnd = caretPosition[1];
17501
+ });
17499
17502
  }
17500
17503
  const sizerRef = ref();
17501
17504
  function calculateInputHeight() {
@@ -17935,7 +17938,7 @@ const VTooltip = genericComponent()({
17935
17938
  'aria-describedby': id.value
17936
17939
  }, props.activatorProps));
17937
17940
  useRender(() => {
17938
- const [overlayProps] = filterVOverlayProps(props);
17941
+ const [overlayProps] = VOverlay.filterProps(props);
17939
17942
  return createVNode(VOverlay, mergeProps({
17940
17943
  "ref": overlay,
17941
17944
  "class": ['v-tooltip'],
@@ -18753,6 +18756,7 @@ function useExpanded() {
18753
18756
  const VDataTableRow = defineComponent({
18754
18757
  name: 'VDataTableRow',
18755
18758
  props: {
18759
+ index: Number,
18756
18760
  item: Object,
18757
18761
  onClick: Function
18758
18762
  },
@@ -18790,6 +18794,7 @@ const VDataTableRow = defineComponent({
18790
18794
  const item = props.item;
18791
18795
  const slotName = `item.${column.key}`;
18792
18796
  const slotProps = {
18797
+ index: props.index,
18793
18798
  item: props.item,
18794
18799
  columns: columns.value,
18795
18800
  isSelected,
@@ -18801,7 +18806,7 @@ const VDataTableRow = defineComponent({
18801
18806
  if (column.key === 'data-table-select') {
18802
18807
  return slots['item.data-table-select']?.(slotProps) ?? createVNode(VCheckboxBtn, {
18803
18808
  "modelValue": isSelected([item]),
18804
- "onClick": () => toggleSelect(item)
18809
+ "onClick": withModifiers(() => toggleSelect(item), ['stop'])
18805
18810
  }, null);
18806
18811
  }
18807
18812
  if (column.key === 'data-table-expand') {
@@ -18809,10 +18814,10 @@ const VDataTableRow = defineComponent({
18809
18814
  "icon": isExpanded(item) ? '$collapse' : '$expand',
18810
18815
  "size": "small",
18811
18816
  "variant": "text",
18812
- "onClick": () => toggleExpand(item)
18817
+ "onClick": withModifiers(() => toggleExpand(item), ['stop'])
18813
18818
  }, null);
18814
18819
  }
18815
- return item.columns[column.key];
18820
+ return getPropertyFromItem(item.columns, column.key);
18816
18821
  }
18817
18822
  }))]));
18818
18823
  }
@@ -18912,6 +18917,7 @@ const VDataTableRows = genericComponent()({
18912
18917
  item
18913
18918
  });
18914
18919
  },
18920
+ "index": index,
18915
18921
  "item": item
18916
18922
  }, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
18917
18923
  })]));
@@ -19140,6 +19146,19 @@ const makeDataTableItemProps = propsFactory({
19140
19146
  itemValue: 'id'
19141
19147
  })
19142
19148
  }, 'v-data-table-item');
19149
+ function add(obj, key, value) {
19150
+ const path = key.split('.');
19151
+ while (path.length > 1) {
19152
+ const part = path.shift();
19153
+ if (obj[part] == null) {
19154
+ obj[part] = {};
19155
+ }
19156
+ if (typeof obj[part] === 'object') {
19157
+ obj = obj[part];
19158
+ }
19159
+ }
19160
+ obj[path[0]] = value;
19161
+ }
19143
19162
  function useDataTableItems(props, columns) {
19144
19163
  const {
19145
19164
  items
@@ -19149,7 +19168,7 @@ function useDataTableItems(props, columns) {
19149
19168
  ...item,
19150
19169
  type: 'item',
19151
19170
  columns: columns.value.reduce((obj, column) => {
19152
- obj[column.key] = getPropertyFromItem(item.raw, column.value ?? column.key);
19171
+ add(obj, column.key, getPropertyFromItem(item.raw, column.value ?? column.key));
19153
19172
  return obj;
19154
19173
  }, {})
19155
19174
  };
@@ -19687,7 +19706,9 @@ const VDataTableServer = genericComponent()({
19687
19706
  "height": props.height
19688
19707
  }, {
19689
19708
  top: slots.top,
19690
- default: slots.default ?? (() => createVNode(Fragment, null, [createVNode("thead", {
19709
+ default: slots.default ?? (() => createVNode(Fragment, null, [slots.colgroup?.({
19710
+ columns
19711
+ }), createVNode("thead", {
19691
19712
  "class": "v-data-table__thead",
19692
19713
  "role": "rowgroup"
19693
19714
  }, [slots.headers ? slots.headers() : createVNode(VDataTableHeaders, {
@@ -20230,7 +20251,7 @@ function createVuetify$1() {
20230
20251
  locale
20231
20252
  };
20232
20253
  }
20233
- const version$1 = "3.1.10";
20254
+ const version$1 = "3.1.12";
20234
20255
  createVuetify$1.version = version$1;
20235
20256
 
20236
20257
  // Vue's inject() can only be used in setup
@@ -20242,7 +20263,7 @@ function inject(key) {
20242
20263
  }
20243
20264
  }
20244
20265
 
20245
- const version = "3.1.10";
20266
+ const version = "3.1.12";
20246
20267
 
20247
20268
  const createVuetify = function () {
20248
20269
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};