@vuetify/nightly 3.7.15-master.2025-03-06 → 3.7.15-master.2025-03-08

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 (98) hide show
  1. package/CHANGELOG.md +33 -3
  2. package/dist/json/attributes.json +3107 -3103
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +164 -164
  5. package/dist/json/tags.json +3 -2
  6. package/dist/json/web-types.json +5945 -5924
  7. package/dist/vuetify-labs.css +3283 -3283
  8. package/dist/vuetify-labs.d.ts +314 -142
  9. package/dist/vuetify-labs.esm.js +144 -126
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +143 -125
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +3835 -3835
  14. package/dist/vuetify.d.ts +264 -150
  15. package/dist/vuetify.esm.js +90 -69
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +89 -68
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +221 -219
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAppBar/index.d.mts +15 -6
  23. package/lib/components/VAutocomplete/index.d.mts +2 -2
  24. package/lib/components/VBadge/VBadge.mjs +2 -2
  25. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  26. package/lib/components/VBtn/VBtn.mjs +6 -3
  27. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  28. package/lib/components/VBtn/index.d.mts +15 -6
  29. package/lib/components/VCard/VCard.mjs +12 -3
  30. package/lib/components/VCard/VCard.mjs.map +1 -1
  31. package/lib/components/VCard/VCardItem.mjs +11 -4
  32. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  33. package/lib/components/VCard/index.d.mts +75 -30
  34. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  35. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  36. package/lib/components/VChip/VChip.mjs +6 -3
  37. package/lib/components/VChip/VChip.mjs.map +1 -1
  38. package/lib/components/VChip/index.d.mts +15 -6
  39. package/lib/components/VCombobox/index.d.mts +2 -2
  40. package/lib/components/VDataTable/composables/headers.mjs +2 -2
  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/VDatePicker/VDatePickerMonth.mjs +12 -21
  45. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  46. package/lib/components/VDatePicker/index.d.mts +3 -3
  47. package/lib/components/VFab/index.d.mts +15 -6
  48. package/lib/components/VList/VListItem.mjs +11 -5
  49. package/lib/components/VList/VListItem.mjs.map +1 -1
  50. package/lib/components/VList/index.d.mts +32 -14
  51. package/lib/components/VPagination/VPagination.mjs +3 -3
  52. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  53. package/lib/components/VParallax/VParallax.mjs +1 -1
  54. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  55. package/lib/components/VRating/VRating.mjs +1 -1
  56. package/lib/components/VRating/VRating.mjs.map +1 -1
  57. package/lib/components/VSelect/index.d.mts +2 -2
  58. package/lib/components/VSlider/slider.mjs +1 -1
  59. package/lib/components/VSlider/slider.mjs.map +1 -1
  60. package/lib/components/VSparkline/VBarline.mjs +1 -1
  61. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  62. package/lib/components/VTabs/index.d.mts +39 -24
  63. package/lib/components/VTextarea/VTextarea.mjs +2 -2
  64. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  65. package/lib/components/index.d.mts +209 -95
  66. package/lib/composables/stack.mjs +2 -2
  67. package/lib/composables/stack.mjs.map +1 -1
  68. package/lib/composables/validation.mjs +2 -2
  69. package/lib/composables/validation.mjs.map +1 -1
  70. package/lib/entry-bundler.mjs +1 -1
  71. package/lib/framework.mjs +1 -1
  72. package/lib/index.d.mts +55 -55
  73. package/lib/labs/VDateInput/VDateInput.mjs +3 -2
  74. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  75. package/lib/labs/VDateInput/index.d.mts +10 -10
  76. package/lib/labs/VFileUpload/VFileUpload.mjs +3 -2
  77. package/lib/labs/VFileUpload/VFileUpload.mjs.map +1 -1
  78. package/lib/labs/VFileUpload/index.d.mts +32 -14
  79. package/lib/labs/VNumberInput/VNumberInput.mjs +5 -5
  80. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  81. package/lib/labs/VTimePicker/VTimePicker.mjs +30 -31
  82. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  83. package/lib/labs/VTimePicker/VTimePickerControls.mjs +14 -13
  84. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  85. package/lib/labs/VTimePicker/index.d.mts +35 -13
  86. package/lib/labs/VTimePicker/shared.mjs +2 -0
  87. package/lib/labs/VTimePicker/shared.mjs.map +1 -0
  88. package/lib/labs/VTreeview/index.d.mts +32 -14
  89. package/lib/labs/components.d.mts +107 -49
  90. package/lib/locale/adapters/vuetify.mjs +1 -1
  91. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  92. package/lib/util/animation.mjs +8 -8
  93. package/lib/util/animation.mjs.map +1 -1
  94. package/lib/util/helpers.mjs +6 -4
  95. package/lib/util/helpers.mjs.map +1 -1
  96. package/package.json +1 -1
  97. package/lib/labs/VTimePicker/SelectingTimes.mjs +0 -10
  98. package/lib/labs/VTimePicker/SelectingTimes.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.7.15-master.2025-03-06
2
+ * Vuetify v3.7.15-master.2025-03-08
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, onBeforeUnmount, watch, readonly, onMounted, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, 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, onBeforeUnmount, watch, readonly, onMounted, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, 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
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -151,12 +151,14 @@ function convertToUnit(str) {
151
151
  let unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';
152
152
  if (str == null || str === '') {
153
153
  return undefined;
154
- } else if (isNaN(+str)) {
154
+ }
155
+ const num = Number(str);
156
+ if (isNaN(num)) {
155
157
  return String(str);
156
- } else if (!isFinite(+str)) {
158
+ } else if (!isFinite(num)) {
157
159
  return undefined;
158
160
  } else {
159
- return `${Number(str)}${unit}`;
161
+ return `${num}${unit}`;
160
162
  }
161
163
  }
162
164
  function isObject(obj) {
@@ -690,16 +692,16 @@ function nullifyTransforms(el) {
690
692
  let ta, sx, sy, dx, dy;
691
693
  if (tx.startsWith('matrix3d(')) {
692
694
  ta = tx.slice(9, -1).split(/, /);
693
- sx = +ta[0];
694
- sy = +ta[5];
695
- dx = +ta[12];
696
- dy = +ta[13];
695
+ sx = Number(ta[0]);
696
+ sy = Number(ta[5]);
697
+ dx = Number(ta[12]);
698
+ dy = Number(ta[13]);
697
699
  } else if (tx.startsWith('matrix(')) {
698
700
  ta = tx.slice(7, -1).split(/, /);
699
- sx = +ta[0];
700
- sy = +ta[3];
701
- dx = +ta[4];
702
- dy = +ta[5];
701
+ sx = Number(ta[0]);
702
+ sy = Number(ta[3]);
703
+ dx = Number(ta[4]);
704
+ dy = Number(ta[5]);
703
705
  } else {
704
706
  return new Box(rect);
705
707
  }
@@ -2075,7 +2077,7 @@ var en = {
2075
2077
  const LANG_PREFIX = '$vuetify.';
2076
2078
  const replace = (str, params) => {
2077
2079
  return str.replace(/\{(\d+)\}/g, (match, index) => {
2078
- return String(params[+index]);
2080
+ return String(params[Number(index)]);
2079
2081
  });
2080
2082
  };
2081
2083
  const createTranslateFunction = (current, fallback, messages) => {
@@ -5572,7 +5574,10 @@ const makeVBtnProps = propsFactory({
5572
5574
  type: [Boolean, Object],
5573
5575
  default: true
5574
5576
  },
5575
- text: String,
5577
+ text: {
5578
+ type: [String, Number, Boolean],
5579
+ default: undefined
5580
+ },
5576
5581
  ...makeBorderProps(),
5577
5582
  ...makeComponentProps(),
5578
5583
  ...makeDensityProps(),
@@ -5728,7 +5733,7 @@ const VBtn = genericComponent()({
5728
5733
  }
5729
5734
  }
5730
5735
  }, {
5731
- default: () => [slots.default?.() ?? props.text]
5736
+ default: () => [slots.default?.() ?? toDisplayString(props.text)]
5732
5737
  })]), !props.icon && hasAppend && createVNode("span", {
5733
5738
  "key": "append",
5734
5739
  "class": "v-btn__append"
@@ -6736,7 +6741,7 @@ function useValidation(props) {
6736
6741
  const isPristine = shallowRef(true);
6737
6742
  const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6738
6743
  const errorMessages = computed(() => {
6739
- return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6744
+ return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, Number(props.maxErrors))) : internalErrorMessages.value;
6740
6745
  });
6741
6746
  const validateOn = computed(() => {
6742
6747
  let value = (props.validateOn ?? form.validateOn?.value) || 'input';
@@ -6827,7 +6832,7 @@ function useValidation(props) {
6827
6832
  const results = [];
6828
6833
  isValidating.value = true;
6829
6834
  for (const rule of props.rules) {
6830
- if (results.length >= +(props.maxErrors ?? 1)) {
6835
+ if (results.length >= Number(props.maxErrors ?? 1)) {
6831
6836
  break;
6832
6837
  }
6833
6838
  const handler = typeof rule === 'function' ? rule : () => rule;
@@ -7888,7 +7893,10 @@ const makeVChipProps = propsFactory({
7888
7893
  type: [Boolean, Object],
7889
7894
  default: true
7890
7895
  },
7891
- text: String,
7896
+ text: {
7897
+ type: [String, Number, Boolean],
7898
+ default: undefined
7899
+ },
7892
7900
  modelValue: {
7893
7901
  type: Boolean,
7894
7902
  default: true
@@ -8057,7 +8065,7 @@ const VChip = genericComponent()({
8057
8065
  toggle: group?.toggle,
8058
8066
  value: group?.value.value,
8059
8067
  disabled: props.disabled
8060
- }) ?? props.text]), hasAppend && createVNode("div", {
8068
+ }) ?? toDisplayString(props.text)]), hasAppend && createVNode("div", {
8061
8069
  "key": "append",
8062
8070
  "class": "v-chip__append"
8063
8071
  }, [!slots.append ? createVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, {
@@ -8936,8 +8944,14 @@ const makeVListItemProps = propsFactory({
8936
8944
  default: true
8937
8945
  },
8938
8946
  slim: Boolean,
8939
- subtitle: [String, Number],
8940
- title: [String, Number],
8947
+ subtitle: {
8948
+ type: [String, Number, Boolean],
8949
+ default: undefined
8950
+ },
8951
+ title: {
8952
+ type: [String, Number, Boolean],
8953
+ default: undefined
8954
+ },
8941
8955
  value: null,
8942
8956
  onClick: EventProp(),
8943
8957
  onClickOnce: EventProp(),
@@ -9130,13 +9144,13 @@ const VListItem = genericComponent()({
9130
9144
  }, {
9131
9145
  default: () => [slots.title?.({
9132
9146
  title: props.title
9133
- }) ?? props.title]
9147
+ }) ?? toDisplayString(props.title)]
9134
9148
  }), hasSubtitle && createVNode(VListItemSubtitle, {
9135
9149
  "key": "subtitle"
9136
9150
  }, {
9137
9151
  default: () => [slots.subtitle?.({
9138
9152
  subtitle: props.subtitle
9139
- }) ?? props.subtitle]
9153
+ }) ?? toDisplayString(props.subtitle)]
9140
9154
  }), slots.default?.(slotProps.value)]), hasAppend && createVNode("div", {
9141
9155
  "key": "append",
9142
9156
  "class": "v-list-item__append"
@@ -10737,10 +10751,10 @@ function useStack(isActive, zIndex, disableGlobalStack) {
10737
10751
  activeChildren: new Set()
10738
10752
  });
10739
10753
  provide(StackSymbol, stack);
10740
- const _zIndex = shallowRef(+zIndex.value);
10754
+ const _zIndex = shallowRef(Number(zIndex.value));
10741
10755
  useToggleScope(isActive, () => {
10742
10756
  const lastZIndex = globalStack.at(-1)?.[1];
10743
- _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;
10757
+ _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(zIndex.value);
10744
10758
  if (createStackEntry) {
10745
10759
  globalStack.push([vm.uid, _zIndex.value]);
10746
10760
  }
@@ -13522,11 +13536,11 @@ const VBadge = genericComponent()({
13522
13536
  locationStyles
13523
13537
  } = useLocation(props, true, side => {
13524
13538
  const base = props.floating ? props.dot ? 2 : 4 : props.dot ? 8 : 12;
13525
- return base + (['top', 'bottom'].includes(side) ? +(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? +(props.offsetX ?? 0) : 0);
13539
+ return base + (['top', 'bottom'].includes(side) ? Number(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? Number(props.offsetX ?? 0) : 0);
13526
13540
  });
13527
13541
  useRender(() => {
13528
13542
  const value = Number(props.content);
13529
- const content = !props.max || isNaN(value) ? props.content : value <= +props.max ? value : `${props.max}+`;
13543
+ const content = !props.max || isNaN(value) ? props.content : value <= Number(props.max) ? value : `${props.max}+`;
13530
13544
  const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, ['aria-atomic', 'aria-label', 'aria-live', 'role', 'title']);
13531
13545
  return createVNode(props.tag, mergeProps({
13532
13546
  "class": ['v-badge', {
@@ -14225,8 +14239,14 @@ const makeCardItemProps = propsFactory({
14225
14239
  appendIcon: IconValue,
14226
14240
  prependAvatar: String,
14227
14241
  prependIcon: IconValue,
14228
- subtitle: [String, Number],
14229
- title: [String, Number],
14242
+ subtitle: {
14243
+ type: [String, Number, Boolean],
14244
+ default: undefined
14245
+ },
14246
+ title: {
14247
+ type: [String, Number, Boolean],
14248
+ default: undefined
14249
+ },
14230
14250
  ...makeComponentProps(),
14231
14251
  ...makeDensityProps()
14232
14252
  }, 'VCardItem');
@@ -14276,11 +14296,11 @@ const VCardItem = genericComponent()({
14276
14296
  }, [hasTitle && createVNode(VCardTitle, {
14277
14297
  "key": "title"
14278
14298
  }, {
14279
- default: () => [slots.title?.() ?? props.title]
14299
+ default: () => [slots.title?.() ?? toDisplayString(props.title)]
14280
14300
  }), hasSubtitle && createVNode(VCardSubtitle, {
14281
14301
  "key": "subtitle"
14282
14302
  }, {
14283
- default: () => [slots.subtitle?.() ?? props.subtitle]
14303
+ default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)]
14284
14304
  }), slots.default?.()]), hasAppend && createVNode("div", {
14285
14305
  "key": "append",
14286
14306
  "class": "v-card-item__append"
@@ -14352,9 +14372,18 @@ const makeVCardProps = propsFactory({
14352
14372
  type: [Boolean, Object],
14353
14373
  default: true
14354
14374
  },
14355
- subtitle: [String, Number],
14356
- text: [String, Number],
14357
- title: [String, Number],
14375
+ subtitle: {
14376
+ type: [String, Number, Boolean],
14377
+ default: undefined
14378
+ },
14379
+ text: {
14380
+ type: [String, Number, Boolean],
14381
+ default: undefined
14382
+ },
14383
+ title: {
14384
+ type: [String, Number, Boolean],
14385
+ default: undefined
14386
+ },
14358
14387
  ...makeBorderProps(),
14359
14388
  ...makeComponentProps(),
14360
14389
  ...makeDensityProps(),
@@ -14823,7 +14852,7 @@ const VCarousel = genericComponent()({
14823
14852
  onMounted(startTimeout);
14824
14853
  function startTimeout() {
14825
14854
  if (!props.cycle || !windowRef.value) return;
14826
- slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000);
14855
+ slideTimeout = window.setTimeout(windowRef.value.group.next, Number(props.interval) > 0 ? Number(props.interval) : 6000);
14827
14856
  }
14828
14857
  function restartTimeout() {
14829
14858
  window.clearTimeout(slideTimeout);
@@ -15549,7 +15578,7 @@ const makeSliderProps = propsFactory({
15549
15578
  const useSteps = props => {
15550
15579
  const min = computed(() => parseFloat(props.min));
15551
15580
  const max = computed(() => parseFloat(props.max));
15552
- const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
15581
+ const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0);
15553
15582
  const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
15554
15583
  function roundValue(value) {
15555
15584
  value = parseFloat(value);
@@ -18504,8 +18533,8 @@ const makeDataTablePaginateProps = propsFactory({
18504
18533
  }, 'DataTable-paginate');
18505
18534
  const VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');
18506
18535
  function createPagination(props) {
18507
- const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));
18508
- const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10));
18536
+ const page = useProxiedModel(props, 'page', undefined, value => Number(value ?? 1));
18537
+ const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => Number(value ?? 10));
18509
18538
  return {
18510
18539
  page,
18511
18540
  itemsPerPage
@@ -19294,7 +19323,7 @@ const VPagination = genericComponent()({
19294
19323
  const minButtons = props.showFirstLastPage ? 5 : 3;
19295
19324
  return Math.max(0, Math.floor(
19296
19325
  // Round to two decimal places to avoid floating point errors
19297
- +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));
19326
+ Number(((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2))));
19298
19327
  }
19299
19328
  const range = computed(() => {
19300
19329
  if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];
@@ -19365,7 +19394,7 @@ const VPagination = genericComponent()({
19365
19394
  ref,
19366
19395
  ellipsis: false,
19367
19396
  icon: true,
19368
- disabled: !!props.disabled || +props.length < 2,
19397
+ disabled: !!props.disabled || Number(props.length) < 2,
19369
19398
  color: isActive ? props.activeColor : props.color,
19370
19399
  'aria-current': isActive,
19371
19400
  'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
@@ -19414,7 +19443,7 @@ const VPagination = genericComponent()({
19414
19443
  refs.value[currentIndex]?.$el.focus();
19415
19444
  }
19416
19445
  function onKeydown(e) {
19417
- if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {
19446
+ if (e.key === keyValues.left && !props.disabled && page.value > Number(props.start)) {
19418
19447
  page.value = page.value - 1;
19419
19448
  nextTick(updateFocus);
19420
19449
  } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {
@@ -19747,10 +19776,10 @@ function parseFixedColumns(items) {
19747
19776
  } else {
19748
19777
  if (!seenFixed) {
19749
19778
  item.lastFixed = true;
19750
- } else if (isNaN(+item.width)) {
19779
+ } else if (isNaN(Number(item.width))) {
19751
19780
  consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);
19752
19781
  } else {
19753
- item.minWidth = Math.max(+item.width || 0, +item.minWidth || 0);
19782
+ item.minWidth = Math.max(Number(item.width) || 0, Number(item.minWidth) || 0);
19754
19783
  }
19755
19784
  seenFixed = true;
19756
19785
  }
@@ -21883,7 +21912,7 @@ const VDatePickerMonth = genericComponent()({
21883
21912
  model.value = [value];
21884
21913
  }
21885
21914
  }
21886
- return () => createVNode("div", {
21915
+ useRender(() => createVNode("div", {
21887
21916
  "class": "v-date-picker-month"
21888
21917
  }, [props.showWeek && createVNode("div", {
21889
21918
  "key": "weeks",
@@ -21905,6 +21934,13 @@ const VDatePickerMonth = genericComponent()({
21905
21934
  }, [weekDay])), daysInMonth.value.map((item, i) => {
21906
21935
  const slotProps = {
21907
21936
  props: {
21937
+ class: 'v-date-picker-month__day-btn',
21938
+ color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
21939
+ disabled: item.isDisabled,
21940
+ icon: true,
21941
+ ripple: false,
21942
+ text: item.localized,
21943
+ variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
21908
21944
  onClick: () => onClick(item.date)
21909
21945
  },
21910
21946
  item,
@@ -21922,24 +21958,9 @@ const VDatePickerMonth = genericComponent()({
21922
21958
  'v-date-picker-month__day--week-start': item.isWeekStart
21923
21959
  }],
21924
21960
  "data-v-date": !item.isDisabled ? item.isoDate : undefined
21925
- }, [(props.showAdjacentMonths || !item.isAdjacent) && createVNode(VDefaultsProvider, {
21926
- "defaults": {
21927
- VBtn: {
21928
- class: 'v-date-picker-month__day-btn',
21929
- color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
21930
- disabled: item.isDisabled,
21931
- icon: true,
21932
- ripple: false,
21933
- text: item.localized,
21934
- variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
21935
- onClick: () => onClick(item.date)
21936
- }
21937
- }
21938
- }, {
21939
- default: () => [slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props, null)]
21940
- })]);
21961
+ }, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props, null))]);
21941
21962
  })])]
21942
- })]);
21963
+ })]));
21943
21964
  }
21944
21965
  });
21945
21966
 
@@ -24696,7 +24717,7 @@ const VParallax = genericComponent()({
24696
24717
  watch(displayHeight, onScroll);
24697
24718
  watch(() => contentRect.value?.height, onScroll);
24698
24719
  const scale = computed(() => {
24699
- return 1 - clamp(+props.scale);
24720
+ return 1 - clamp(Number(props.scale));
24700
24721
  });
24701
24722
  let frame = -1;
24702
24723
  function onScroll() {
@@ -25117,7 +25138,7 @@ const VRating = genericComponent()({
25117
25138
  themeClasses
25118
25139
  } = provideTheme(props);
25119
25140
  const rating = useProxiedModel(props, 'modelValue');
25120
- const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));
25141
+ const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, Number(props.length)));
25121
25142
  const range = computed(() => createRange(Number(props.length), 1));
25122
25143
  const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
25123
25144
  const hoverIndex = shallowRef(-1);
@@ -25728,7 +25749,7 @@ const VBarline = genericComponent()({
25728
25749
  const height = Math.abs(gridY * value);
25729
25750
  return {
25730
25751
  x: minX + index * gridX,
25731
- y: horizonY - height + +(value < 0) * height,
25752
+ y: horizonY - height + Number(value < 0) * height,
25732
25753
  height,
25733
25754
  value
25734
25755
  };
@@ -27166,10 +27187,10 @@ const VTextarea = genericComponent()({
27166
27187
  }
27167
27188
  }
27168
27189
  const sizerRef = ref();
27169
- const rows = ref(+props.rows);
27190
+ const rows = ref(Number(props.rows));
27170
27191
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
27171
27192
  watchEffect(() => {
27172
- if (!props.autoGrow) rows.value = +props.rows;
27193
+ if (!props.autoGrow) rows.value = Number(props.rows);
27173
27194
  });
27174
27195
  function calculateInputHeight() {
27175
27196
  if (!props.autoGrow) return;
@@ -28216,8 +28237,8 @@ const makeVDateInputProps = propsFactory({
28216
28237
  prependIcon: '$calendar'
28217
28238
  }),
28218
28239
  ...omit(makeVDatePickerProps({
28219
- weeksInMonth: 'dynamic',
28220
- hideHeader: true
28240
+ hideHeader: true,
28241
+ showAdjacentMonths: true
28221
28242
  }), ['active', 'location', 'rounded'])
28222
28243
  }, 'VDateInput');
28223
28244
  const VDateInput = genericComponent()({
@@ -28301,6 +28322,7 @@ const VDateInput = genericComponent()({
28301
28322
  "onUpdate:modelValue": $event => menu.value = $event,
28302
28323
  "activator": "parent",
28303
28324
  "min-width": "0",
28325
+ "eager": isFocused.value,
28304
28326
  "location": props.location,
28305
28327
  "closeOnContentClick": false,
28306
28328
  "openOnClick": false
@@ -28540,8 +28562,9 @@ const VFileUpload = genericComponent()({
28540
28562
  inputRef.value?.click();
28541
28563
  }
28542
28564
  function onClickRemove(index) {
28543
- model.value = model.value.filter((_, i) => i !== index);
28544
- if (model.value.length > 0 || !inputRef.value) return;
28565
+ const newValue = model.value.filter((_, i) => i !== index);
28566
+ model.value = newValue;
28567
+ if (newValue.length > 0 || !inputRef.value) return;
28545
28568
  inputRef.value.value = '';
28546
28569
  }
28547
28570
  useRender(() => {
@@ -28752,7 +28775,7 @@ const VNumberInput = genericComponent()({
28752
28775
  return isFocused.value ? Number(fixed).toString() // trim zeros
28753
28776
  : fixed;
28754
28777
  }
28755
- const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(+val, props.min, props.max));
28778
+ const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
28756
28779
  const _inputText = shallowRef(null);
28757
28780
  watchEffect(() => {
28758
28781
  if (isFocused.value && !controlsDisabled.value) ; else if (model.value == null) {
@@ -28767,8 +28790,8 @@ const VNumberInput = genericComponent()({
28767
28790
  if (val === null || val === '') {
28768
28791
  model.value = null;
28769
28792
  _inputText.value = null;
28770
- } else if (!isNaN(+val) && +val <= props.max && +val >= props.min) {
28771
- model.value = +val;
28793
+ } else if (!isNaN(Number(val)) && Number(val) <= props.max && Number(val) >= props.min) {
28794
+ model.value = Number(val);
28772
28795
  _inputText.value = val;
28773
28796
  }
28774
28797
  }
@@ -28892,8 +28915,8 @@ const VNumberInput = genericComponent()({
28892
28915
  if (controlsDisabled.value) return;
28893
28916
  if (!vTextFieldRef.value) return;
28894
28917
  const actualText = vTextFieldRef.value.value;
28895
- if (actualText && !isNaN(+actualText)) {
28896
- inputText.value = correctPrecision(clamp(+actualText, props.min, props.max));
28918
+ if (actualText && !isNaN(Number(actualText))) {
28919
+ inputText.value = correctPrecision(clamp(Number(actualText), props.min, props.max));
28897
28920
  } else {
28898
28921
  inputText.value = null;
28899
28922
  }
@@ -29767,14 +29790,7 @@ const VTimePickerClock = genericComponent()({
29767
29790
  }
29768
29791
  });
29769
29792
 
29770
- // @ts-nocheck
29771
- /* eslint-disable */
29772
- var SelectingTimes = /*#__PURE__*/function (SelectingTimes) {
29773
- SelectingTimes[SelectingTimes["Hour"] = 1] = "Hour";
29774
- SelectingTimes[SelectingTimes["Minute"] = 2] = "Minute";
29775
- SelectingTimes[SelectingTimes["Second"] = 3] = "Second";
29776
- return SelectingTimes;
29777
- }(SelectingTimes || {});
29793
+ // Types
29778
29794
 
29779
29795
  const makeVTimePickerControlsProps = propsFactory({
29780
29796
  ampm: Boolean,
@@ -29788,15 +29804,15 @@ const makeVTimePickerControlsProps = propsFactory({
29788
29804
  period: String,
29789
29805
  readonly: Boolean,
29790
29806
  useSeconds: Boolean,
29791
- selecting: Number,
29792
- value: Number
29807
+ value: Number,
29808
+ viewMode: String
29793
29809
  }, 'VTimePickerControls');
29794
29810
  const VTimePickerControls = genericComponent()({
29795
29811
  name: 'VTimePickerControls',
29796
29812
  props: makeVTimePickerControlsProps(),
29797
29813
  emits: {
29798
29814
  'update:period': data => true,
29799
- 'update:selecting': data => true
29815
+ 'update:viewMode': data => true
29800
29816
  },
29801
29817
  setup(props, _ref) {
29802
29818
  let {
@@ -29819,8 +29835,8 @@ const VTimePickerControls = genericComponent()({
29819
29835
  'v-time-picker-controls__time--with-seconds': props.useSeconds
29820
29836
  }
29821
29837
  }, [createVNode(VBtn, {
29822
- "active": props.selecting === 1,
29823
- "color": props.selecting === 1 ? props.color : undefined,
29838
+ "active": props.viewMode === 'hour',
29839
+ "color": props.viewMode === 'hour' ? props.color : undefined,
29824
29840
  "disabled": props.disabled,
29825
29841
  "variant": "tonal",
29826
29842
  "class": {
@@ -29829,24 +29845,24 @@ const VTimePickerControls = genericComponent()({
29829
29845
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29830
29846
  },
29831
29847
  "text": props.hour == null ? '--' : pad(`${hour}`),
29832
- "onClick": () => emit('update:selecting', SelectingTimes.Hour)
29848
+ "onClick": () => emit('update:viewMode', 'hour')
29833
29849
  }, null), createVNode("span", {
29834
29850
  "class": ['v-time-picker-controls__time__separator', {
29835
29851
  'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
29836
29852
  }]
29837
29853
  }, [createTextVNode(":")]), createVNode(VBtn, {
29838
- "active": props.selecting === 2,
29839
- "color": props.selecting === 2 ? props.color : undefined,
29854
+ "active": props.viewMode === 'minute',
29855
+ "color": props.viewMode === 'minute' ? props.color : undefined,
29840
29856
  "class": {
29841
29857
  'v-time-picker-controls__time__btn': true,
29842
- 'v-time-picker-controls__time__btn__active': props.selecting === 2,
29858
+ 'v-time-picker-controls__time__btn__active': props.viewMode === 'minute',
29843
29859
  'v-time-picker-controls__time--with-ampm__btn': props.ampm,
29844
29860
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29845
29861
  },
29846
29862
  "disabled": props.disabled,
29847
29863
  "variant": "tonal",
29848
29864
  "text": props.minute == null ? '--' : pad(props.minute),
29849
- "onClick": () => emit('update:selecting', SelectingTimes.Minute)
29865
+ "onClick": () => emit('update:viewMode', 'minute')
29850
29866
  }, null), props.useSeconds && createVNode("span", {
29851
29867
  "class": ['v-time-picker-controls__time__separator', {
29852
29868
  'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
@@ -29854,11 +29870,13 @@ const VTimePickerControls = genericComponent()({
29854
29870
  "key": "secondsDivider"
29855
29871
  }, [createTextVNode(":")]), props.useSeconds && createVNode(VBtn, {
29856
29872
  "key": "secondsVal",
29873
+ "active": props.viewMode === 'second',
29874
+ "color": props.viewMode === 'second' ? props.color : undefined,
29857
29875
  "variant": "tonal",
29858
- "onClick": () => emit('update:selecting', SelectingTimes.Second),
29876
+ "onClick": () => emit('update:viewMode', 'second'),
29859
29877
  "class": {
29860
29878
  'v-time-picker-controls__time__btn': true,
29861
- 'v-time-picker-controls__time__btn__active': props.selecting === 3,
29879
+ 'v-time-picker-controls__time__btn__active': props.viewMode === 'second',
29862
29880
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29863
29881
  },
29864
29882
  "disabled": props.disabled,
@@ -29903,11 +29921,6 @@ const rangeHours24 = createRange(24);
29903
29921
  const rangeHours12am = createRange(12);
29904
29922
  const rangeHours12pm = rangeHours12am.map(v => v + 12);
29905
29923
  createRange(60);
29906
- const selectingNames = {
29907
- 1: 'hour',
29908
- 2: 'minute',
29909
- 3: 'second'
29910
- };
29911
29924
  const makeVTimePickerProps = propsFactory({
29912
29925
  allowedHours: [Function, Array],
29913
29926
  allowedMinutes: [Function, Array],
@@ -29920,6 +29933,10 @@ const makeVTimePickerProps = propsFactory({
29920
29933
  },
29921
29934
  max: String,
29922
29935
  min: String,
29936
+ viewMode: {
29937
+ type: String,
29938
+ default: 'hour'
29939
+ },
29923
29940
  modelValue: null,
29924
29941
  readonly: Boolean,
29925
29942
  scrollable: Boolean,
@@ -29936,7 +29953,8 @@ const VTimePicker = genericComponent()({
29936
29953
  'update:minute': val => true,
29937
29954
  'update:period': val => true,
29938
29955
  'update:second': val => true,
29939
- 'update:modelValue': val => true
29956
+ 'update:modelValue': val => true,
29957
+ 'update:viewMode': val => true
29940
29958
  },
29941
29959
  setup(props, _ref) {
29942
29960
  let {
@@ -29953,7 +29971,7 @@ const VTimePicker = genericComponent()({
29953
29971
  const lazyInputMinute = ref(null);
29954
29972
  const lazyInputSecond = ref(null);
29955
29973
  const period = ref('am');
29956
- const selecting = ref(SelectingTimes.Hour);
29974
+ const viewMode = useProxiedModel(props, 'viewMode', 'hour');
29957
29975
  const controlsRef = ref(null);
29958
29976
  const clockRef = ref(null);
29959
29977
  const isAllowedHourCb = computed(() => {
@@ -29967,7 +29985,7 @@ const VTimePicker = genericComponent()({
29967
29985
  const minHour = props.min ? Number(props.min.split(':')[0]) : 0;
29968
29986
  const maxHour = props.max ? Number(props.max.split(':')[0]) : 23;
29969
29987
  return val => {
29970
- return val >= minHour * 1 && val <= maxHour * 1 && (!cb || cb(val));
29988
+ return val >= Number(minHour) && val <= Number(maxHour) && (!cb || cb(val));
29971
29989
  };
29972
29990
  });
29973
29991
  const isAllowedMinuteCb = computed(() => {
@@ -29983,8 +30001,8 @@ const VTimePicker = genericComponent()({
29983
30001
  }
29984
30002
  const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0];
29985
30003
  const [maxHour, maxMinute] = props.max ? props.max.split(':').map(Number) : [23, 59];
29986
- const minTime = minHour * 60 + minMinute * 1;
29987
- const maxTime = maxHour * 60 + maxMinute * 1;
30004
+ const minTime = minHour * 60 + Number(minMinute);
30005
+ const maxTime = maxHour * 60 + Number(maxMinute);
29988
30006
  return val => {
29989
30007
  const time = 60 * inputHour.value + val;
29990
30008
  return time >= minTime && time <= maxTime && isHourAllowed && (!cb || cb(val));
@@ -30004,8 +30022,8 @@ const VTimePicker = genericComponent()({
30004
30022
  }
30005
30023
  const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0];
30006
30024
  const [maxHour, maxMinute, maxSecond] = props.max ? props.max.split(':').map(Number) : [23, 59, 59];
30007
- const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1;
30008
- const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1;
30025
+ const minTime = minHour * 3600 + minMinute * 60 + Number(minSecond || 0);
30026
+ const maxTime = maxHour * 3600 + maxMinute * 60 + Number(maxSecond || 0);
30009
30027
  return val => {
30010
30028
  const time = 3600 * inputHour.value + 60 * inputMinute.value + val;
30011
30029
  return time >= minTime && time <= maxTime && isMinuteAllowed && (!cb || cb(val));
@@ -30071,16 +30089,16 @@ const VTimePicker = genericComponent()({
30071
30089
  return true;
30072
30090
  }
30073
30091
  function onInput(value) {
30074
- if (selecting.value === SelectingTimes.Hour) {
30092
+ if (viewMode.value === 'hour') {
30075
30093
  inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value;
30076
- } else if (selecting.value === SelectingTimes.Minute) {
30094
+ } else if (viewMode.value === 'minute') {
30077
30095
  inputMinute.value = value;
30078
30096
  } else {
30079
30097
  inputSecond.value = value;
30080
30098
  }
30081
30099
  }
30082
30100
  function onChange(value) {
30083
- switch (selectingNames[selecting.value]) {
30101
+ switch (viewMode.value || 'hour') {
30084
30102
  case 'hour':
30085
30103
  emit('update:hour', value);
30086
30104
  break;
@@ -30092,10 +30110,10 @@ const VTimePicker = genericComponent()({
30092
30110
  break;
30093
30111
  }
30094
30112
  const emitChange = inputHour.value !== null && inputMinute.value !== null && (props.useSeconds ? inputSecond.value !== null : true);
30095
- if (selecting.value === SelectingTimes.Hour) {
30096
- selecting.value = SelectingTimes.Minute;
30097
- } else if (props.useSeconds && selecting.value === SelectingTimes.Minute) {
30098
- selecting.value = SelectingTimes.Second;
30113
+ if (viewMode.value === 'hour') {
30114
+ viewMode.value = 'minute';
30115
+ } else if (props.useSeconds && viewMode.value === 'minute') {
30116
+ viewMode.value = 'second';
30099
30117
  }
30100
30118
  if (inputHour.value === lazyInputHour.value && inputMinute.value === lazyInputMinute.value && (!props.useSeconds || inputSecond.value === lazyInputSecond.value)) return;
30101
30119
  const time = genValue();
@@ -30124,20 +30142,20 @@ const VTimePicker = genericComponent()({
30124
30142
  "minute": inputMinute.value,
30125
30143
  "period": period.value,
30126
30144
  "second": inputSecond.value,
30127
- "selecting": selecting.value,
30145
+ "viewMode": viewMode.value,
30128
30146
  "onUpdate:period": val => setPeriod(val),
30129
- "onUpdate:selecting": value => selecting.value = value,
30147
+ "onUpdate:viewMode": value => viewMode.value = value,
30130
30148
  "ref": controlsRef
30131
30149
  }), null),
30132
30150
  default: () => createVNode(VTimePickerClock, mergeProps(timePickerClockProps, {
30133
- "allowedValues": selecting.value === SelectingTimes.Hour ? isAllowedHourCb.value : selecting.value === SelectingTimes.Minute ? isAllowedMinuteCb.value : isAllowedSecondCb.value,
30134
- "double": selecting.value === SelectingTimes.Hour && !isAmPm.value,
30135
- "format": selecting.value === SelectingTimes.Hour ? isAmPm.value ? convert24to12 : val => val : val => pad(val, 2),
30136
- "max": selecting.value === SelectingTimes.Hour ? isAmPm.value && period.value === 'am' ? 11 : 23 : 59,
30137
- "min": selecting.value === SelectingTimes.Hour && isAmPm.value && period.value === 'pm' ? 12 : 0,
30151
+ "allowedValues": viewMode.value === 'hour' ? isAllowedHourCb.value : viewMode.value === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value,
30152
+ "double": viewMode.value === 'hour' && !isAmPm.value,
30153
+ "format": viewMode.value === 'hour' ? isAmPm.value ? convert24to12 : val => val : val => pad(val, 2),
30154
+ "max": viewMode.value === 'hour' ? isAmPm.value && period.value === 'am' ? 11 : 23 : 59,
30155
+ "min": viewMode.value === 'hour' && isAmPm.value && period.value === 'pm' ? 12 : 0,
30138
30156
  "size": 20,
30139
- "step": selecting.value === SelectingTimes.Hour ? 1 : 5,
30140
- "modelValue": selecting.value === SelectingTimes.Hour ? inputHour.value : selecting.value === SelectingTimes.Minute ? inputMinute.value : inputSecond.value,
30157
+ "step": viewMode.value === 'hour' ? 1 : 5,
30158
+ "modelValue": viewMode.value === 'hour' ? inputHour.value : viewMode.value === 'minute' ? inputMinute.value : inputSecond.value,
30141
30159
  "onChange": onChange,
30142
30160
  "onInput": onInput,
30143
30161
  "ref": clockRef
@@ -31050,7 +31068,7 @@ function createVuetify$1() {
31050
31068
  goTo
31051
31069
  };
31052
31070
  }
31053
- const version$1 = "3.7.15-master.2025-03-06";
31071
+ const version$1 = "3.7.15-master.2025-03-08";
31054
31072
  createVuetify$1.version = version$1;
31055
31073
 
31056
31074
  // Vue's inject() can only be used in setup
@@ -31303,7 +31321,7 @@ var index = /*#__PURE__*/Object.freeze({
31303
31321
 
31304
31322
  /* eslint-disable local-rules/sort-imports */
31305
31323
 
31306
- const version = "3.7.15-master.2025-03-06";
31324
+ const version = "3.7.15-master.2025-03-08";
31307
31325
 
31308
31326
  /* eslint-disable local-rules/sort-imports */
31309
31327