vuetify 3.7.14 → 3.7.16

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 (198) hide show
  1. package/dist/json/attributes.json +3550 -3550
  2. package/dist/json/importMap-labs.json +28 -28
  3. package/dist/json/importMap.json +162 -162
  4. package/dist/json/tags.json +3 -3
  5. package/dist/json/web-types.json +6475 -6452
  6. package/dist/vuetify-labs.css +5395 -5391
  7. package/dist/vuetify-labs.d.ts +453 -215
  8. package/dist/vuetify-labs.esm.js +254 -151
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +253 -150
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +3635 -3635
  13. package/dist/vuetify.d.ts +389 -209
  14. package/dist/vuetify.esm.js +105 -70
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +104 -69
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +229 -227
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAppBar/index.d.mts +15 -6
  22. package/lib/components/VAutocomplete/index.d.mts +23 -8
  23. package/lib/components/VBadge/VBadge.mjs +2 -2
  24. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  25. package/lib/components/VBtn/VBtn.mjs +6 -3
  26. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  27. package/lib/components/VBtn/index.d.mts +15 -6
  28. package/lib/components/VCard/VCard.mjs +12 -3
  29. package/lib/components/VCard/VCard.mjs.map +1 -1
  30. package/lib/components/VCard/VCardItem.mjs +11 -4
  31. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  32. package/lib/components/VCard/index.d.mts +75 -30
  33. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  34. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  35. package/lib/components/VChip/VChip.mjs +6 -3
  36. package/lib/components/VChip/VChip.mjs.map +1 -1
  37. package/lib/components/VChip/index.d.mts +15 -6
  38. package/lib/components/VCombobox/index.d.mts +23 -8
  39. package/lib/components/VDataIterator/index.d.mts +2 -2
  40. package/lib/components/VDataTable/composables/headers.mjs +3 -1
  41. package/lib/components/VDataTable/composables/headers.mjs.map +1 -1
  42. package/lib/components/VDataTable/composables/paginate.mjs +2 -2
  43. package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
  44. package/lib/components/VDataTable/index.d.mts +34 -34
  45. package/lib/components/VDataTable/types.mjs.map +1 -1
  46. package/lib/components/VDatePicker/VDatePickerMonth.mjs +12 -21
  47. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  48. package/lib/components/VDatePicker/index.d.mts +3 -3
  49. package/lib/components/VDialog/index.d.mts +21 -6
  50. package/lib/components/VFab/index.d.mts +15 -6
  51. package/lib/components/VList/VListItem.mjs +13 -5
  52. package/lib/components/VList/VListItem.mjs.map +1 -1
  53. package/lib/components/VList/index.d.mts +32 -14
  54. package/lib/components/VMenu/index.d.mts +21 -6
  55. package/lib/components/VOtpInput/VOtpInput.mjs +1 -1
  56. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  57. package/lib/components/VOverlay/VOverlay.mjs +10 -1
  58. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  59. package/lib/components/VOverlay/index.d.mts +6 -0
  60. package/lib/components/VPagination/VPagination.mjs +3 -3
  61. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  62. package/lib/components/VParallax/VParallax.mjs +1 -1
  63. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  64. package/lib/components/VRating/VRating.mjs +1 -1
  65. package/lib/components/VRating/VRating.mjs.map +1 -1
  66. package/lib/components/VSelect/index.d.mts +23 -8
  67. package/lib/components/VSlider/slider.mjs +2 -1
  68. package/lib/components/VSlider/slider.mjs.map +1 -1
  69. package/lib/components/VSnackbar/index.d.mts +21 -6
  70. package/lib/components/VSparkline/VBarline.mjs +1 -1
  71. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  72. package/lib/components/VTabs/index.d.mts +39 -24
  73. package/lib/components/VTextarea/VTextarea.mjs +2 -2
  74. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  75. package/lib/components/VTooltip/index.d.mts +21 -6
  76. package/lib/components/index.d.mts +333 -153
  77. package/lib/composables/stack.mjs +2 -2
  78. package/lib/composables/stack.mjs.map +1 -1
  79. package/lib/composables/validation.mjs +2 -2
  80. package/lib/composables/validation.mjs.map +1 -1
  81. package/lib/entry-bundler.mjs +1 -1
  82. package/lib/framework.mjs +1 -1
  83. package/lib/index.d.mts +56 -56
  84. package/lib/labs/VDateInput/VDateInput.mjs +5 -4
  85. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  86. package/lib/labs/VDateInput/index.d.mts +10 -10
  87. package/lib/labs/VFileUpload/VFileUpload.css +5 -1
  88. package/lib/labs/VFileUpload/VFileUpload.mjs +3 -2
  89. package/lib/labs/VFileUpload/VFileUpload.mjs.map +1 -1
  90. package/lib/labs/VFileUpload/VFileUpload.sass +4 -0
  91. package/lib/labs/VFileUpload/_variables.scss +1 -1
  92. package/lib/labs/VFileUpload/index.d.mts +32 -14
  93. package/lib/labs/VNumberInput/VNumberInput.mjs +60 -24
  94. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  95. package/lib/labs/VNumberInput/hold.mjs +31 -0
  96. package/lib/labs/VNumberInput/hold.mjs.map +1 -0
  97. package/lib/labs/VNumberInput/index.d.mts +1 -7
  98. package/lib/labs/VSnackbarQueue/index.d.mts +21 -6
  99. package/lib/labs/VTimePicker/VTimePicker.mjs +30 -31
  100. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  101. package/lib/labs/VTimePicker/VTimePickerControls.mjs +14 -13
  102. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  103. package/lib/labs/VTimePicker/index.d.mts +35 -13
  104. package/lib/labs/VTimePicker/shared.mjs +2 -0
  105. package/lib/labs/VTimePicker/shared.mjs.map +1 -0
  106. package/lib/labs/VTreeview/VTreeviewItem.mjs +11 -4
  107. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  108. package/lib/labs/VTreeview/index.d.mts +46 -22
  109. package/lib/labs/components.d.mts +143 -70
  110. package/lib/locale/adapters/vuetify.mjs +1 -1
  111. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  112. package/lib/locale/af.mjs +42 -42
  113. package/lib/locale/af.mjs.map +1 -1
  114. package/lib/locale/az.mjs +7 -7
  115. package/lib/locale/az.mjs.map +1 -1
  116. package/lib/locale/bg.mjs +7 -7
  117. package/lib/locale/bg.mjs.map +1 -1
  118. package/lib/locale/ca.mjs +25 -25
  119. package/lib/locale/ca.mjs.map +1 -1
  120. package/lib/locale/ckb.mjs +29 -29
  121. package/lib/locale/ckb.mjs.map +1 -1
  122. package/lib/locale/cs.mjs +13 -13
  123. package/lib/locale/cs.mjs.map +1 -1
  124. package/lib/locale/da.mjs +22 -22
  125. package/lib/locale/da.mjs.map +1 -1
  126. package/lib/locale/el.mjs +41 -41
  127. package/lib/locale/el.mjs.map +1 -1
  128. package/lib/locale/es.mjs +26 -26
  129. package/lib/locale/es.mjs.map +1 -1
  130. package/lib/locale/et.mjs +29 -29
  131. package/lib/locale/et.mjs.map +1 -1
  132. package/lib/locale/fa.mjs +5 -5
  133. package/lib/locale/fa.mjs.map +1 -1
  134. package/lib/locale/fi.mjs +22 -22
  135. package/lib/locale/fi.mjs.map +1 -1
  136. package/lib/locale/fr.mjs +6 -6
  137. package/lib/locale/fr.mjs.map +1 -1
  138. package/lib/locale/he.mjs +29 -29
  139. package/lib/locale/he.mjs.map +1 -1
  140. package/lib/locale/hr.mjs +28 -28
  141. package/lib/locale/hr.mjs.map +1 -1
  142. package/lib/locale/hu.mjs +10 -10
  143. package/lib/locale/hu.mjs.map +1 -1
  144. package/lib/locale/id.mjs +30 -30
  145. package/lib/locale/id.mjs.map +1 -1
  146. package/lib/locale/it.mjs +7 -7
  147. package/lib/locale/it.mjs.map +1 -1
  148. package/lib/locale/ja.mjs +9 -9
  149. package/lib/locale/ja.mjs.map +1 -1
  150. package/lib/locale/km.mjs +6 -6
  151. package/lib/locale/km.mjs.map +1 -1
  152. package/lib/locale/ko.mjs +27 -27
  153. package/lib/locale/ko.mjs.map +1 -1
  154. package/lib/locale/lt.mjs +5 -5
  155. package/lib/locale/lt.mjs.map +1 -1
  156. package/lib/locale/lv.mjs +33 -33
  157. package/lib/locale/lv.mjs.map +1 -1
  158. package/lib/locale/nl.mjs +10 -10
  159. package/lib/locale/nl.mjs.map +1 -1
  160. package/lib/locale/no.mjs +11 -11
  161. package/lib/locale/no.mjs.map +1 -1
  162. package/lib/locale/pl.mjs +7 -7
  163. package/lib/locale/pl.mjs.map +1 -1
  164. package/lib/locale/pt.mjs +11 -11
  165. package/lib/locale/pt.mjs.map +1 -1
  166. package/lib/locale/ro.mjs +9 -9
  167. package/lib/locale/ro.mjs.map +1 -1
  168. package/lib/locale/ru.mjs +6 -6
  169. package/lib/locale/ru.mjs.map +1 -1
  170. package/lib/locale/sk.mjs +5 -5
  171. package/lib/locale/sk.mjs.map +1 -1
  172. package/lib/locale/sl.mjs +4 -4
  173. package/lib/locale/sl.mjs.map +1 -1
  174. package/lib/locale/sr-Cyrl.mjs +30 -30
  175. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  176. package/lib/locale/sr-Latn.mjs +28 -28
  177. package/lib/locale/sr-Latn.mjs.map +1 -1
  178. package/lib/locale/sv.mjs +17 -17
  179. package/lib/locale/sv.mjs.map +1 -1
  180. package/lib/locale/th.mjs +30 -30
  181. package/lib/locale/th.mjs.map +1 -1
  182. package/lib/locale/tr.mjs +31 -31
  183. package/lib/locale/tr.mjs.map +1 -1
  184. package/lib/locale/uk.mjs +29 -29
  185. package/lib/locale/uk.mjs.map +1 -1
  186. package/lib/locale/vi.mjs +28 -28
  187. package/lib/locale/vi.mjs.map +1 -1
  188. package/lib/locale/zh-Hans.mjs +31 -31
  189. package/lib/locale/zh-Hans.mjs.map +1 -1
  190. package/lib/locale/zh-Hant.mjs +31 -31
  191. package/lib/locale/zh-Hant.mjs.map +1 -1
  192. package/lib/util/animation.mjs +8 -8
  193. package/lib/util/animation.mjs.map +1 -1
  194. package/lib/util/helpers.mjs +6 -4
  195. package/lib/util/helpers.mjs.map +1 -1
  196. package/package.json +7 -2
  197. package/lib/labs/VTimePicker/SelectingTimes.mjs +0 -10
  198. package/lib/labs/VTimePicker/SelectingTimes.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.7.14
2
+ * Vuetify v3.7.16
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onMounted, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onMounted, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  const IN_BROWSER = typeof window !== 'undefined';
10
10
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
@@ -80,12 +80,14 @@ function convertToUnit(str) {
80
80
  let unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';
81
81
  if (str == null || str === '') {
82
82
  return undefined;
83
- } else if (isNaN(+str)) {
83
+ }
84
+ const num = Number(str);
85
+ if (isNaN(num)) {
84
86
  return String(str);
85
- } else if (!isFinite(+str)) {
87
+ } else if (!isFinite(num)) {
86
88
  return undefined;
87
89
  } else {
88
- return `${Number(str)}${unit}`;
90
+ return `${num}${unit}`;
89
91
  }
90
92
  }
91
93
  function isObject(obj) {
@@ -613,16 +615,16 @@ function nullifyTransforms(el) {
613
615
  let ta, sx, sy, dx, dy;
614
616
  if (tx.startsWith('matrix3d(')) {
615
617
  ta = tx.slice(9, -1).split(/, /);
616
- sx = +ta[0];
617
- sy = +ta[5];
618
- dx = +ta[12];
619
- dy = +ta[13];
618
+ sx = Number(ta[0]);
619
+ sy = Number(ta[5]);
620
+ dx = Number(ta[12]);
621
+ dy = Number(ta[13]);
620
622
  } else if (tx.startsWith('matrix(')) {
621
623
  ta = tx.slice(7, -1).split(/, /);
622
- sx = +ta[0];
623
- sy = +ta[3];
624
- dx = +ta[4];
625
- dy = +ta[5];
624
+ sx = Number(ta[0]);
625
+ sy = Number(ta[3]);
626
+ dx = Number(ta[4]);
627
+ dy = Number(ta[5]);
626
628
  } else {
627
629
  return new Box(rect);
628
630
  }
@@ -2516,7 +2518,7 @@ var en = {
2516
2518
  const LANG_PREFIX = '$vuetify.';
2517
2519
  const replace = (str, params) => {
2518
2520
  return str.replace(/\{(\d+)\}/g, (match, index) => {
2519
- return String(params[+index]);
2521
+ return String(params[Number(index)]);
2520
2522
  });
2521
2523
  };
2522
2524
  const createTranslateFunction = (current, fallback, messages) => {
@@ -5805,7 +5807,10 @@ const makeVBtnProps = propsFactory({
5805
5807
  type: [Boolean, Object],
5806
5808
  default: true
5807
5809
  },
5808
- text: String,
5810
+ text: {
5811
+ type: [String, Number, Boolean],
5812
+ default: undefined
5813
+ },
5809
5814
  ...makeBorderProps(),
5810
5815
  ...makeComponentProps(),
5811
5816
  ...makeDensityProps(),
@@ -5961,7 +5966,7 @@ const VBtn = genericComponent()({
5961
5966
  }
5962
5967
  }
5963
5968
  }, {
5964
- default: () => [slots.default?.() ?? props.text]
5969
+ default: () => [slots.default?.() ?? toDisplayString(props.text)]
5965
5970
  })]), !props.icon && hasAppend && createVNode("span", {
5966
5971
  "key": "append",
5967
5972
  "class": "v-btn__append"
@@ -6969,7 +6974,7 @@ function useValidation(props) {
6969
6974
  const isPristine = shallowRef(true);
6970
6975
  const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6971
6976
  const errorMessages = computed(() => {
6972
- return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6977
+ return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, Number(props.maxErrors))) : internalErrorMessages.value;
6973
6978
  });
6974
6979
  const validateOn = computed(() => {
6975
6980
  let value = (props.validateOn ?? form.validateOn?.value) || 'input';
@@ -7060,7 +7065,7 @@ function useValidation(props) {
7060
7065
  const results = [];
7061
7066
  isValidating.value = true;
7062
7067
  for (const rule of props.rules) {
7063
- if (results.length >= +(props.maxErrors ?? 1)) {
7068
+ if (results.length >= Number(props.maxErrors ?? 1)) {
7064
7069
  break;
7065
7070
  }
7066
7071
  const handler = typeof rule === 'function' ? rule : () => rule;
@@ -8121,7 +8126,10 @@ const makeVChipProps = propsFactory({
8121
8126
  type: [Boolean, Object],
8122
8127
  default: true
8123
8128
  },
8124
- text: String,
8129
+ text: {
8130
+ type: [String, Number, Boolean],
8131
+ default: undefined
8132
+ },
8125
8133
  modelValue: {
8126
8134
  type: Boolean,
8127
8135
  default: true
@@ -8290,7 +8298,7 @@ const VChip = genericComponent()({
8290
8298
  toggle: group?.toggle,
8291
8299
  value: group?.value.value,
8292
8300
  disabled: props.disabled
8293
- }) ?? props.text]), hasAppend && createVNode("div", {
8301
+ }) ?? toDisplayString(props.text)]), hasAppend && createVNode("div", {
8294
8302
  "key": "append",
8295
8303
  "class": "v-chip__append"
8296
8304
  }, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
@@ -9169,8 +9177,14 @@ const makeVListItemProps = propsFactory({
9169
9177
  default: true
9170
9178
  },
9171
9179
  slim: Boolean,
9172
- subtitle: [String, Number],
9173
- title: [String, Number],
9180
+ subtitle: {
9181
+ type: [String, Number, Boolean],
9182
+ default: undefined
9183
+ },
9184
+ title: {
9185
+ type: [String, Number, Boolean],
9186
+ default: undefined
9187
+ },
9174
9188
  value: null,
9175
9189
  onClick: EventProp(),
9176
9190
  onClickOnce: EventProp(),
@@ -9289,6 +9303,8 @@ const VListItem = genericComponent()({
9289
9303
  }
9290
9304
  }
9291
9305
  function onKeyDown(e) {
9306
+ const target = e.target;
9307
+ if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
9292
9308
  if (e.key === 'Enter' || e.key === ' ') {
9293
9309
  e.preventDefault();
9294
9310
  e.target.dispatchEvent(new MouseEvent('click', e));
@@ -9361,13 +9377,13 @@ const VListItem = genericComponent()({
9361
9377
  }, {
9362
9378
  default: () => [slots.title?.({
9363
9379
  title: props.title
9364
- }) ?? props.title]
9380
+ }) ?? toDisplayString(props.title)]
9365
9381
  }), hasSubtitle && createVNode(VListItemSubtitle, {
9366
9382
  "key": "subtitle"
9367
9383
  }, {
9368
9384
  default: () => [slots.subtitle?.({
9369
9385
  subtitle: props.subtitle
9370
- }) ?? props.subtitle]
9386
+ }) ?? toDisplayString(props.subtitle)]
9371
9387
  }), slots.default?.(slotProps.value)]), hasAppend && createVNode("div", {
9372
9388
  "key": "append",
9373
9389
  "class": "v-list-item__append"
@@ -10968,10 +10984,10 @@ function useStack(isActive, zIndex, disableGlobalStack) {
10968
10984
  activeChildren: new Set()
10969
10985
  });
10970
10986
  provide(StackSymbol, stack);
10971
- const _zIndex = shallowRef(+zIndex.value);
10987
+ const _zIndex = shallowRef(Number(zIndex.value));
10972
10988
  useToggleScope(isActive, () => {
10973
10989
  const lastZIndex = globalStack.at(-1)?.[1];
10974
- _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;
10990
+ _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(zIndex.value);
10975
10991
  if (createStackEntry) {
10976
10992
  globalStack.push([vm.uid, _zIndex.value]);
10977
10993
  }
@@ -11180,6 +11196,7 @@ const VOverlay = genericComponent()({
11180
11196
  emits: {
11181
11197
  'click:outside': e => true,
11182
11198
  'update:modelValue': value => true,
11199
+ keydown: e => true,
11183
11200
  afterEnter: () => true,
11184
11201
  afterLeave: () => true
11185
11202
  },
@@ -11292,6 +11309,9 @@ const VOverlay = genericComponent()({
11292
11309
  });
11293
11310
  function onKeydown(e) {
11294
11311
  if (e.key === 'Escape' && globalTop.value) {
11312
+ if (!contentEl.value?.contains(document.activeElement)) {
11313
+ emit('keydown', e);
11314
+ }
11295
11315
  if (!props.persistent) {
11296
11316
  isActive.value = false;
11297
11317
  if (contentEl.value?.contains(document.activeElement)) {
@@ -11300,6 +11320,10 @@ const VOverlay = genericComponent()({
11300
11320
  } else animateClick();
11301
11321
  }
11302
11322
  }
11323
+ function onKeydownSelf(e) {
11324
+ if (e.key === 'Escape' && !globalTop.value) return;
11325
+ emit('keydown', e);
11326
+ }
11303
11327
  const router = useRouter();
11304
11328
  useToggleScope(() => props.closeOnBack, () => {
11305
11329
  useBackButton(router, next => {
@@ -11362,7 +11386,8 @@ const VOverlay = genericComponent()({
11362
11386
  '--v-overlay-opacity': props.opacity,
11363
11387
  top: convertToUnit(top.value)
11364
11388
  }, props.style],
11365
- "ref": root
11389
+ "ref": root,
11390
+ "onKeydown": onKeydownSelf
11366
11391
  }, scopeId, attrs), [createVNode(Scrim, mergeProps({
11367
11392
  "color": scrimColor,
11368
11393
  "modelValue": isActive.value && !!props.scrim,
@@ -13753,11 +13778,11 @@ const VBadge = genericComponent()({
13753
13778
  locationStyles
13754
13779
  } = useLocation(props, true, side => {
13755
13780
  const base = props.floating ? props.dot ? 2 : 4 : props.dot ? 8 : 12;
13756
- return base + (['top', 'bottom'].includes(side) ? +(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? +(props.offsetX ?? 0) : 0);
13781
+ return base + (['top', 'bottom'].includes(side) ? Number(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? Number(props.offsetX ?? 0) : 0);
13757
13782
  });
13758
13783
  useRender(() => {
13759
13784
  const value = Number(props.content);
13760
- const content = !props.max || isNaN(value) ? props.content : value <= +props.max ? value : `${props.max}+`;
13785
+ const content = !props.max || isNaN(value) ? props.content : value <= Number(props.max) ? value : `${props.max}+`;
13761
13786
  const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, ['aria-atomic', 'aria-label', 'aria-live', 'role', 'title']);
13762
13787
  return createVNode(props.tag, mergeProps({
13763
13788
  "class": ['v-badge', {
@@ -14456,8 +14481,14 @@ const makeCardItemProps = propsFactory({
14456
14481
  appendIcon: IconValue,
14457
14482
  prependAvatar: String,
14458
14483
  prependIcon: IconValue,
14459
- subtitle: [String, Number],
14460
- title: [String, Number],
14484
+ subtitle: {
14485
+ type: [String, Number, Boolean],
14486
+ default: undefined
14487
+ },
14488
+ title: {
14489
+ type: [String, Number, Boolean],
14490
+ default: undefined
14491
+ },
14461
14492
  ...makeComponentProps(),
14462
14493
  ...makeDensityProps()
14463
14494
  }, 'VCardItem');
@@ -14507,11 +14538,11 @@ const VCardItem = genericComponent()({
14507
14538
  }, [hasTitle && createVNode(VCardTitle, {
14508
14539
  "key": "title"
14509
14540
  }, {
14510
- default: () => [slots.title?.() ?? props.title]
14541
+ default: () => [slots.title?.() ?? toDisplayString(props.title)]
14511
14542
  }), hasSubtitle && createVNode(VCardSubtitle, {
14512
14543
  "key": "subtitle"
14513
14544
  }, {
14514
- default: () => [slots.subtitle?.() ?? props.subtitle]
14545
+ default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)]
14515
14546
  }), slots.default?.()]), hasAppend && createVNode("div", {
14516
14547
  "key": "append",
14517
14548
  "class": "v-card-item__append"
@@ -14583,9 +14614,18 @@ const makeVCardProps = propsFactory({
14583
14614
  type: [Boolean, Object],
14584
14615
  default: true
14585
14616
  },
14586
- subtitle: [String, Number],
14587
- text: [String, Number],
14588
- title: [String, Number],
14617
+ subtitle: {
14618
+ type: [String, Number, Boolean],
14619
+ default: undefined
14620
+ },
14621
+ text: {
14622
+ type: [String, Number, Boolean],
14623
+ default: undefined
14624
+ },
14625
+ title: {
14626
+ type: [String, Number, Boolean],
14627
+ default: undefined
14628
+ },
14589
14629
  ...makeBorderProps(),
14590
14630
  ...makeComponentProps(),
14591
14631
  ...makeDensityProps(),
@@ -15054,7 +15094,7 @@ const VCarousel = genericComponent()({
15054
15094
  onMounted(startTimeout);
15055
15095
  function startTimeout() {
15056
15096
  if (!props.cycle || !windowRef.value) return;
15057
- slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000);
15097
+ slideTimeout = window.setTimeout(windowRef.value.group.next, Number(props.interval) > 0 ? Number(props.interval) : 6000);
15058
15098
  }
15059
15099
  function restartTimeout() {
15060
15100
  window.clearTimeout(slideTimeout);
@@ -15780,7 +15820,7 @@ const makeSliderProps = propsFactory({
15780
15820
  const useSteps = props => {
15781
15821
  const min = computed(() => parseFloat(props.min));
15782
15822
  const max = computed(() => parseFloat(props.max));
15783
- const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
15823
+ const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0);
15784
15824
  const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
15785
15825
  function roundValue(value) {
15786
15826
  value = parseFloat(value);
@@ -15914,6 +15954,7 @@ const useSlider = _ref => {
15914
15954
  });
15915
15955
  }
15916
15956
  function onSliderMousedown(e) {
15957
+ if (e.button !== 0) return;
15917
15958
  e.preventDefault();
15918
15959
  handleStart(e);
15919
15960
  window.addEventListener('mousemove', onMouseMove, moveListenerOptions);
@@ -18734,8 +18775,8 @@ const makeDataTablePaginateProps = propsFactory({
18734
18775
  }, 'DataTable-paginate');
18735
18776
  const VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');
18736
18777
  function createPagination(props) {
18737
- const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));
18738
- const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10));
18778
+ const page = useProxiedModel(props, 'page', undefined, value => Number(value ?? 1));
18779
+ const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => Number(value ?? 10));
18739
18780
  return {
18740
18781
  page,
18741
18782
  itemsPerPage
@@ -19524,7 +19565,7 @@ const VPagination = genericComponent()({
19524
19565
  const minButtons = props.showFirstLastPage ? 5 : 3;
19525
19566
  return Math.max(0, Math.floor(
19526
19567
  // Round to two decimal places to avoid floating point errors
19527
- +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));
19568
+ Number(((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2))));
19528
19569
  }
19529
19570
  const range = computed(() => {
19530
19571
  if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];
@@ -19595,7 +19636,7 @@ const VPagination = genericComponent()({
19595
19636
  ref,
19596
19637
  ellipsis: false,
19597
19638
  icon: true,
19598
- disabled: !!props.disabled || +props.length < 2,
19639
+ disabled: !!props.disabled || Number(props.length) < 2,
19599
19640
  color: isActive ? props.activeColor : props.color,
19600
19641
  'aria-current': isActive,
19601
19642
  'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
@@ -19644,7 +19685,7 @@ const VPagination = genericComponent()({
19644
19685
  refs.value[currentIndex]?.$el.focus();
19645
19686
  }
19646
19687
  function onKeydown(e) {
19647
- if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {
19688
+ if (e.key === keyValues.left && !props.disabled && page.value > Number(props.start)) {
19648
19689
  page.value = page.value - 1;
19649
19690
  nextTick(updateFocus);
19650
19691
  } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {
@@ -19977,8 +20018,10 @@ function parseFixedColumns(items) {
19977
20018
  } else {
19978
20019
  if (!seenFixed) {
19979
20020
  item.lastFixed = true;
19980
- } else if (isNaN(+item.width)) {
20021
+ } else if (isNaN(Number(item.width))) {
19981
20022
  consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);
20023
+ } else {
20024
+ item.minWidth = Math.max(Number(item.width) || 0, Number(item.minWidth) || 0);
19982
20025
  }
19983
20026
  seenFixed = true;
19984
20027
  }
@@ -22111,7 +22154,7 @@ const VDatePickerMonth = genericComponent()({
22111
22154
  model.value = [value];
22112
22155
  }
22113
22156
  }
22114
- return () => createVNode("div", {
22157
+ useRender(() => createVNode("div", {
22115
22158
  "class": "v-date-picker-month"
22116
22159
  }, [props.showWeek && createVNode("div", {
22117
22160
  "key": "weeks",
@@ -22133,6 +22176,13 @@ const VDatePickerMonth = genericComponent()({
22133
22176
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22134
22177
  const slotProps = {
22135
22178
  props: {
22179
+ class: 'v-date-picker-month__day-btn',
22180
+ color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
22181
+ disabled: item.isDisabled,
22182
+ icon: true,
22183
+ ripple: false,
22184
+ text: item.localized,
22185
+ variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
22136
22186
  onClick: () => onClick(item.date)
22137
22187
  },
22138
22188
  item,
@@ -22150,24 +22200,9 @@ const VDatePickerMonth = genericComponent()({
22150
22200
  'v-date-picker-month__day--week-start': item.isWeekStart
22151
22201
  }],
22152
22202
  "data-v-date": !item.isDisabled ? item.isoDate : undefined
22153
- }, [(props.showAdjacentMonths || !item.isAdjacent) && createVNode(VDefaultsProvider, {
22154
- "defaults": {
22155
- VBtn: {
22156
- class: 'v-date-picker-month__day-btn',
22157
- color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
22158
- disabled: item.isDisabled,
22159
- icon: true,
22160
- ripple: false,
22161
- text: item.localized,
22162
- variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
22163
- onClick: () => onClick(item.date)
22164
- }
22165
- }
22166
- }, {
22167
- default: () => [slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props, null)]
22168
- })]);
22203
+ }, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props, null))]);
22169
22204
  })])]
22170
- })]);
22205
+ })]));
22171
22206
  }
22172
22207
  });
22173
22208
 
@@ -24828,7 +24863,7 @@ const VOtpInput = genericComponent()({
24828
24863
  "disabled": props.disabled,
24829
24864
  "inputmode": props.type === 'number' ? 'numeric' : 'text',
24830
24865
  "min": props.type === 'number' ? 0 : undefined,
24831
- "maxlength": "1",
24866
+ "maxlength": i === 0 ? length.value : '1',
24832
24867
  "placeholder": props.placeholder,
24833
24868
  "type": props.type === 'number' ? 'text' : props.type,
24834
24869
  "value": model.value[i],
@@ -24924,7 +24959,7 @@ const VParallax = genericComponent()({
24924
24959
  watch(displayHeight, onScroll);
24925
24960
  watch(() => contentRect.value?.height, onScroll);
24926
24961
  const scale = computed(() => {
24927
- return 1 - clamp(+props.scale);
24962
+ return 1 - clamp(Number(props.scale));
24928
24963
  });
24929
24964
  let frame = -1;
24930
24965
  function onScroll() {
@@ -25345,7 +25380,7 @@ const VRating = genericComponent()({
25345
25380
  themeClasses
25346
25381
  } = provideTheme(props);
25347
25382
  const rating = useProxiedModel(props, 'modelValue');
25348
- const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));
25383
+ const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, Number(props.length)));
25349
25384
  const range = computed(() => createRange(Number(props.length), 1));
25350
25385
  const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
25351
25386
  const hoverIndex = shallowRef(-1);
@@ -25956,7 +25991,7 @@ const VBarline = genericComponent()({
25956
25991
  const height = Math.abs(gridY * value);
25957
25992
  return {
25958
25993
  x: minX + index * gridX,
25959
- y: horizonY - height + +(value < 0) * height,
25994
+ y: horizonY - height + Number(value < 0) * height,
25960
25995
  height,
25961
25996
  value
25962
25997
  };
@@ -27394,10 +27429,10 @@ const VTextarea = genericComponent()({
27394
27429
  }
27395
27430
  }
27396
27431
  const sizerRef = ref();
27397
- const rows = ref(+props.rows);
27432
+ const rows = ref(Number(props.rows));
27398
27433
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
27399
27434
  watchEffect(() => {
27400
- if (!props.autoGrow) rows.value = +props.rows;
27435
+ if (!props.autoGrow) rows.value = Number(props.rows);
27401
27436
  });
27402
27437
  function calculateInputHeight() {
27403
27438
  if (!props.autoGrow) return;
@@ -28414,7 +28449,7 @@ function createVuetify$1() {
28414
28449
  goTo
28415
28450
  };
28416
28451
  }
28417
- const version$1 = "3.7.14";
28452
+ const version$1 = "3.7.16";
28418
28453
  createVuetify$1.version = version$1;
28419
28454
 
28420
28455
  // Vue's inject() can only be used in setup
@@ -28439,7 +28474,7 @@ const createVuetify = function () {
28439
28474
  ...options
28440
28475
  });
28441
28476
  };
28442
- const version = "3.7.14";
28477
+ const version = "3.7.16";
28443
28478
  createVuetify.version = version;
28444
28479
 
28445
28480
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };