vuetify 3.7.15 → 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 (108) hide show
  1. package/dist/json/attributes.json +2932 -2928
  2. package/dist/json/importMap-labs.json +12 -12
  3. package/dist/json/importMap.json +164 -164
  4. package/dist/json/tags.json +3 -2
  5. package/dist/json/web-types.json +5470 -5438
  6. package/dist/vuetify-labs.css +2965 -2965
  7. package/dist/vuetify-labs.d.ts +438 -200
  8. package/dist/vuetify-labs.esm.js +155 -126
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +154 -125
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +4258 -4258
  13. package/dist/vuetify.d.ts +390 -210
  14. package/dist/vuetify.esm.js +101 -69
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +100 -68
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +227 -225
  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 +11 -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/VOverlay/VOverlay.mjs +10 -1
  56. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  57. package/lib/components/VOverlay/index.d.mts +6 -0
  58. package/lib/components/VPagination/VPagination.mjs +3 -3
  59. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  60. package/lib/components/VParallax/VParallax.mjs +1 -1
  61. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  62. package/lib/components/VRating/VRating.mjs +1 -1
  63. package/lib/components/VRating/VRating.mjs.map +1 -1
  64. package/lib/components/VSelect/index.d.mts +23 -8
  65. package/lib/components/VSlider/slider.mjs +1 -1
  66. package/lib/components/VSlider/slider.mjs.map +1 -1
  67. package/lib/components/VSnackbar/index.d.mts +21 -6
  68. package/lib/components/VSparkline/VBarline.mjs +1 -1
  69. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  70. package/lib/components/VTabs/index.d.mts +39 -24
  71. package/lib/components/VTextarea/VTextarea.mjs +2 -2
  72. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  73. package/lib/components/VTooltip/index.d.mts +21 -6
  74. package/lib/components/index.d.mts +333 -153
  75. package/lib/composables/stack.mjs +2 -2
  76. package/lib/composables/stack.mjs.map +1 -1
  77. package/lib/composables/validation.mjs +2 -2
  78. package/lib/composables/validation.mjs.map +1 -1
  79. package/lib/entry-bundler.mjs +1 -1
  80. package/lib/framework.mjs +1 -1
  81. package/lib/index.d.mts +57 -57
  82. package/lib/labs/VDateInput/VDateInput.mjs +3 -2
  83. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  84. package/lib/labs/VDateInput/index.d.mts +10 -10
  85. package/lib/labs/VFileUpload/VFileUpload.mjs +3 -2
  86. package/lib/labs/VFileUpload/VFileUpload.mjs.map +1 -1
  87. package/lib/labs/VFileUpload/index.d.mts +32 -14
  88. package/lib/labs/VNumberInput/VNumberInput.mjs +5 -5
  89. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  90. package/lib/labs/VSnackbarQueue/index.d.mts +21 -6
  91. package/lib/labs/VTimePicker/VTimePicker.mjs +30 -31
  92. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  93. package/lib/labs/VTimePicker/VTimePickerControls.mjs +14 -13
  94. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  95. package/lib/labs/VTimePicker/index.d.mts +35 -13
  96. package/lib/labs/VTimePicker/shared.mjs +2 -0
  97. package/lib/labs/VTimePicker/shared.mjs.map +1 -0
  98. package/lib/labs/VTreeview/index.d.mts +32 -14
  99. package/lib/labs/components.d.mts +128 -55
  100. package/lib/locale/adapters/vuetify.mjs +1 -1
  101. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  102. package/lib/util/animation.mjs +8 -8
  103. package/lib/util/animation.mjs.map +1 -1
  104. package/lib/util/helpers.mjs +6 -4
  105. package/lib/util/helpers.mjs.map +1 -1
  106. package/package.json +2 -2
  107. package/lib/labs/VTimePicker/SelectingTimes.mjs +0 -10
  108. package/lib/labs/VTimePicker/SelectingTimes.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.7.15
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, 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
  }
@@ -10949,6 +10963,7 @@ const VOverlay = genericComponent()({
10949
10963
  emits: {
10950
10964
  'click:outside': e => true,
10951
10965
  'update:modelValue': value => true,
10966
+ keydown: e => true,
10952
10967
  afterEnter: () => true,
10953
10968
  afterLeave: () => true
10954
10969
  },
@@ -11061,6 +11076,9 @@ const VOverlay = genericComponent()({
11061
11076
  });
11062
11077
  function onKeydown(e) {
11063
11078
  if (e.key === 'Escape' && globalTop.value) {
11079
+ if (!contentEl.value?.contains(document.activeElement)) {
11080
+ emit('keydown', e);
11081
+ }
11064
11082
  if (!props.persistent) {
11065
11083
  isActive.value = false;
11066
11084
  if (contentEl.value?.contains(document.activeElement)) {
@@ -11069,6 +11087,10 @@ const VOverlay = genericComponent()({
11069
11087
  } else animateClick();
11070
11088
  }
11071
11089
  }
11090
+ function onKeydownSelf(e) {
11091
+ if (e.key === 'Escape' && !globalTop.value) return;
11092
+ emit('keydown', e);
11093
+ }
11072
11094
  const router = useRouter();
11073
11095
  useToggleScope(() => props.closeOnBack, () => {
11074
11096
  useBackButton(router, next => {
@@ -11131,7 +11153,8 @@ const VOverlay = genericComponent()({
11131
11153
  '--v-overlay-opacity': props.opacity,
11132
11154
  top: convertToUnit(top.value)
11133
11155
  }, props.style],
11134
- "ref": root
11156
+ "ref": root,
11157
+ "onKeydown": onKeydownSelf
11135
11158
  }, scopeId, attrs), [createVNode(Scrim, mergeProps({
11136
11159
  "color": scrimColor,
11137
11160
  "modelValue": isActive.value && !!props.scrim,
@@ -13522,11 +13545,11 @@ const VBadge = genericComponent()({
13522
13545
  locationStyles
13523
13546
  } = useLocation(props, true, side => {
13524
13547
  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);
13548
+ return base + (['top', 'bottom'].includes(side) ? Number(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? Number(props.offsetX ?? 0) : 0);
13526
13549
  });
13527
13550
  useRender(() => {
13528
13551
  const value = Number(props.content);
13529
- const content = !props.max || isNaN(value) ? props.content : value <= +props.max ? value : `${props.max}+`;
13552
+ const content = !props.max || isNaN(value) ? props.content : value <= Number(props.max) ? value : `${props.max}+`;
13530
13553
  const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, ['aria-atomic', 'aria-label', 'aria-live', 'role', 'title']);
13531
13554
  return createVNode(props.tag, mergeProps({
13532
13555
  "class": ['v-badge', {
@@ -14225,8 +14248,14 @@ const makeCardItemProps = propsFactory({
14225
14248
  appendIcon: IconValue,
14226
14249
  prependAvatar: String,
14227
14250
  prependIcon: IconValue,
14228
- subtitle: [String, Number],
14229
- title: [String, Number],
14251
+ subtitle: {
14252
+ type: [String, Number, Boolean],
14253
+ default: undefined
14254
+ },
14255
+ title: {
14256
+ type: [String, Number, Boolean],
14257
+ default: undefined
14258
+ },
14230
14259
  ...makeComponentProps(),
14231
14260
  ...makeDensityProps()
14232
14261
  }, 'VCardItem');
@@ -14276,11 +14305,11 @@ const VCardItem = genericComponent()({
14276
14305
  }, [hasTitle && createVNode(VCardTitle, {
14277
14306
  "key": "title"
14278
14307
  }, {
14279
- default: () => [slots.title?.() ?? props.title]
14308
+ default: () => [slots.title?.() ?? toDisplayString(props.title)]
14280
14309
  }), hasSubtitle && createVNode(VCardSubtitle, {
14281
14310
  "key": "subtitle"
14282
14311
  }, {
14283
- default: () => [slots.subtitle?.() ?? props.subtitle]
14312
+ default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)]
14284
14313
  }), slots.default?.()]), hasAppend && createVNode("div", {
14285
14314
  "key": "append",
14286
14315
  "class": "v-card-item__append"
@@ -14352,9 +14381,18 @@ const makeVCardProps = propsFactory({
14352
14381
  type: [Boolean, Object],
14353
14382
  default: true
14354
14383
  },
14355
- subtitle: [String, Number],
14356
- text: [String, Number],
14357
- title: [String, Number],
14384
+ subtitle: {
14385
+ type: [String, Number, Boolean],
14386
+ default: undefined
14387
+ },
14388
+ text: {
14389
+ type: [String, Number, Boolean],
14390
+ default: undefined
14391
+ },
14392
+ title: {
14393
+ type: [String, Number, Boolean],
14394
+ default: undefined
14395
+ },
14358
14396
  ...makeBorderProps(),
14359
14397
  ...makeComponentProps(),
14360
14398
  ...makeDensityProps(),
@@ -14823,7 +14861,7 @@ const VCarousel = genericComponent()({
14823
14861
  onMounted(startTimeout);
14824
14862
  function startTimeout() {
14825
14863
  if (!props.cycle || !windowRef.value) return;
14826
- slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000);
14864
+ slideTimeout = window.setTimeout(windowRef.value.group.next, Number(props.interval) > 0 ? Number(props.interval) : 6000);
14827
14865
  }
14828
14866
  function restartTimeout() {
14829
14867
  window.clearTimeout(slideTimeout);
@@ -15549,7 +15587,7 @@ const makeSliderProps = propsFactory({
15549
15587
  const useSteps = props => {
15550
15588
  const min = computed(() => parseFloat(props.min));
15551
15589
  const max = computed(() => parseFloat(props.max));
15552
- const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
15590
+ const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0);
15553
15591
  const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
15554
15592
  function roundValue(value) {
15555
15593
  value = parseFloat(value);
@@ -18504,8 +18542,8 @@ const makeDataTablePaginateProps = propsFactory({
18504
18542
  }, 'DataTable-paginate');
18505
18543
  const VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');
18506
18544
  function createPagination(props) {
18507
- const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1));
18508
- const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10));
18545
+ const page = useProxiedModel(props, 'page', undefined, value => Number(value ?? 1));
18546
+ const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => Number(value ?? 10));
18509
18547
  return {
18510
18548
  page,
18511
18549
  itemsPerPage
@@ -19294,7 +19332,7 @@ const VPagination = genericComponent()({
19294
19332
  const minButtons = props.showFirstLastPage ? 5 : 3;
19295
19333
  return Math.max(0, Math.floor(
19296
19334
  // Round to two decimal places to avoid floating point errors
19297
- +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)));
19335
+ Number(((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2))));
19298
19336
  }
19299
19337
  const range = computed(() => {
19300
19338
  if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];
@@ -19365,7 +19403,7 @@ const VPagination = genericComponent()({
19365
19403
  ref,
19366
19404
  ellipsis: false,
19367
19405
  icon: true,
19368
- disabled: !!props.disabled || +props.length < 2,
19406
+ disabled: !!props.disabled || Number(props.length) < 2,
19369
19407
  color: isActive ? props.activeColor : props.color,
19370
19408
  'aria-current': isActive,
19371
19409
  'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
@@ -19414,7 +19452,7 @@ const VPagination = genericComponent()({
19414
19452
  refs.value[currentIndex]?.$el.focus();
19415
19453
  }
19416
19454
  function onKeydown(e) {
19417
- if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {
19455
+ if (e.key === keyValues.left && !props.disabled && page.value > Number(props.start)) {
19418
19456
  page.value = page.value - 1;
19419
19457
  nextTick(updateFocus);
19420
19458
  } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {
@@ -19747,8 +19785,10 @@ function parseFixedColumns(items) {
19747
19785
  } else {
19748
19786
  if (!seenFixed) {
19749
19787
  item.lastFixed = true;
19750
- } else if (isNaN(+item.width)) {
19788
+ } else if (isNaN(Number(item.width))) {
19751
19789
  consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);
19790
+ } else {
19791
+ item.minWidth = Math.max(Number(item.width) || 0, Number(item.minWidth) || 0);
19752
19792
  }
19753
19793
  seenFixed = true;
19754
19794
  }
@@ -21881,7 +21921,7 @@ const VDatePickerMonth = genericComponent()({
21881
21921
  model.value = [value];
21882
21922
  }
21883
21923
  }
21884
- return () => createVNode("div", {
21924
+ useRender(() => createVNode("div", {
21885
21925
  "class": "v-date-picker-month"
21886
21926
  }, [props.showWeek && createVNode("div", {
21887
21927
  "key": "weeks",
@@ -21903,6 +21943,13 @@ const VDatePickerMonth = genericComponent()({
21903
21943
  }, [weekDay])), daysInMonth.value.map((item, i) => {
21904
21944
  const slotProps = {
21905
21945
  props: {
21946
+ class: 'v-date-picker-month__day-btn',
21947
+ color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
21948
+ disabled: item.isDisabled,
21949
+ icon: true,
21950
+ ripple: false,
21951
+ text: item.localized,
21952
+ variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
21906
21953
  onClick: () => onClick(item.date)
21907
21954
  },
21908
21955
  item,
@@ -21920,24 +21967,9 @@ const VDatePickerMonth = genericComponent()({
21920
21967
  'v-date-picker-month__day--week-start': item.isWeekStart
21921
21968
  }],
21922
21969
  "data-v-date": !item.isDisabled ? item.isoDate : undefined
21923
- }, [(props.showAdjacentMonths || !item.isAdjacent) && createVNode(VDefaultsProvider, {
21924
- "defaults": {
21925
- VBtn: {
21926
- class: 'v-date-picker-month__day-btn',
21927
- color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
21928
- disabled: item.isDisabled,
21929
- icon: true,
21930
- ripple: false,
21931
- text: item.localized,
21932
- variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
21933
- onClick: () => onClick(item.date)
21934
- }
21935
- }
21936
- }, {
21937
- default: () => [slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props, null)]
21938
- })]);
21970
+ }, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props, null))]);
21939
21971
  })])]
21940
- })]);
21972
+ })]));
21941
21973
  }
21942
21974
  });
21943
21975
 
@@ -24694,7 +24726,7 @@ const VParallax = genericComponent()({
24694
24726
  watch(displayHeight, onScroll);
24695
24727
  watch(() => contentRect.value?.height, onScroll);
24696
24728
  const scale = computed(() => {
24697
- return 1 - clamp(+props.scale);
24729
+ return 1 - clamp(Number(props.scale));
24698
24730
  });
24699
24731
  let frame = -1;
24700
24732
  function onScroll() {
@@ -25115,7 +25147,7 @@ const VRating = genericComponent()({
25115
25147
  themeClasses
25116
25148
  } = provideTheme(props);
25117
25149
  const rating = useProxiedModel(props, 'modelValue');
25118
- const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));
25150
+ const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, Number(props.length)));
25119
25151
  const range = computed(() => createRange(Number(props.length), 1));
25120
25152
  const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
25121
25153
  const hoverIndex = shallowRef(-1);
@@ -25726,7 +25758,7 @@ const VBarline = genericComponent()({
25726
25758
  const height = Math.abs(gridY * value);
25727
25759
  return {
25728
25760
  x: minX + index * gridX,
25729
- y: horizonY - height + +(value < 0) * height,
25761
+ y: horizonY - height + Number(value < 0) * height,
25730
25762
  height,
25731
25763
  value
25732
25764
  };
@@ -27164,10 +27196,10 @@ const VTextarea = genericComponent()({
27164
27196
  }
27165
27197
  }
27166
27198
  const sizerRef = ref();
27167
- const rows = ref(+props.rows);
27199
+ const rows = ref(Number(props.rows));
27168
27200
  const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
27169
27201
  watchEffect(() => {
27170
- if (!props.autoGrow) rows.value = +props.rows;
27202
+ if (!props.autoGrow) rows.value = Number(props.rows);
27171
27203
  });
27172
27204
  function calculateInputHeight() {
27173
27205
  if (!props.autoGrow) return;
@@ -28214,8 +28246,8 @@ const makeVDateInputProps = propsFactory({
28214
28246
  prependIcon: '$calendar'
28215
28247
  }),
28216
28248
  ...omit(makeVDatePickerProps({
28217
- weeksInMonth: 'dynamic',
28218
- hideHeader: true
28249
+ hideHeader: true,
28250
+ showAdjacentMonths: true
28219
28251
  }), ['active', 'location', 'rounded'])
28220
28252
  }, 'VDateInput');
28221
28253
  const VDateInput = genericComponent()({
@@ -28299,6 +28331,7 @@ const VDateInput = genericComponent()({
28299
28331
  "onUpdate:modelValue": $event => menu.value = $event,
28300
28332
  "activator": "parent",
28301
28333
  "min-width": "0",
28334
+ "eager": isFocused.value,
28302
28335
  "location": props.location,
28303
28336
  "closeOnContentClick": false,
28304
28337
  "openOnClick": false
@@ -28538,8 +28571,9 @@ const VFileUpload = genericComponent()({
28538
28571
  inputRef.value?.click();
28539
28572
  }
28540
28573
  function onClickRemove(index) {
28541
- model.value = model.value.filter((_, i) => i !== index);
28542
- if (model.value.length > 0 || !inputRef.value) return;
28574
+ const newValue = model.value.filter((_, i) => i !== index);
28575
+ model.value = newValue;
28576
+ if (newValue.length > 0 || !inputRef.value) return;
28543
28577
  inputRef.value.value = '';
28544
28578
  }
28545
28579
  useRender(() => {
@@ -28750,7 +28784,7 @@ const VNumberInput = genericComponent()({
28750
28784
  return isFocused.value ? Number(fixed).toString() // trim zeros
28751
28785
  : fixed;
28752
28786
  }
28753
- const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(+val, props.min, props.max));
28787
+ const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
28754
28788
  const _inputText = shallowRef(null);
28755
28789
  watchEffect(() => {
28756
28790
  if (isFocused.value && !controlsDisabled.value) ; else if (model.value == null) {
@@ -28765,8 +28799,8 @@ const VNumberInput = genericComponent()({
28765
28799
  if (val === null || val === '') {
28766
28800
  model.value = null;
28767
28801
  _inputText.value = null;
28768
- } else if (!isNaN(+val) && +val <= props.max && +val >= props.min) {
28769
- model.value = +val;
28802
+ } else if (!isNaN(Number(val)) && Number(val) <= props.max && Number(val) >= props.min) {
28803
+ model.value = Number(val);
28770
28804
  _inputText.value = val;
28771
28805
  }
28772
28806
  }
@@ -28890,8 +28924,8 @@ const VNumberInput = genericComponent()({
28890
28924
  if (controlsDisabled.value) return;
28891
28925
  if (!vTextFieldRef.value) return;
28892
28926
  const actualText = vTextFieldRef.value.value;
28893
- if (actualText && !isNaN(+actualText)) {
28894
- inputText.value = correctPrecision(clamp(+actualText, props.min, props.max));
28927
+ if (actualText && !isNaN(Number(actualText))) {
28928
+ inputText.value = correctPrecision(clamp(Number(actualText), props.min, props.max));
28895
28929
  } else {
28896
28930
  inputText.value = null;
28897
28931
  }
@@ -29765,14 +29799,7 @@ const VTimePickerClock = genericComponent()({
29765
29799
  }
29766
29800
  });
29767
29801
 
29768
- // @ts-nocheck
29769
- /* eslint-disable */
29770
- var SelectingTimes = /*#__PURE__*/function (SelectingTimes) {
29771
- SelectingTimes[SelectingTimes["Hour"] = 1] = "Hour";
29772
- SelectingTimes[SelectingTimes["Minute"] = 2] = "Minute";
29773
- SelectingTimes[SelectingTimes["Second"] = 3] = "Second";
29774
- return SelectingTimes;
29775
- }(SelectingTimes || {});
29802
+ // Types
29776
29803
 
29777
29804
  const makeVTimePickerControlsProps = propsFactory({
29778
29805
  ampm: Boolean,
@@ -29786,15 +29813,15 @@ const makeVTimePickerControlsProps = propsFactory({
29786
29813
  period: String,
29787
29814
  readonly: Boolean,
29788
29815
  useSeconds: Boolean,
29789
- selecting: Number,
29790
- value: Number
29816
+ value: Number,
29817
+ viewMode: String
29791
29818
  }, 'VTimePickerControls');
29792
29819
  const VTimePickerControls = genericComponent()({
29793
29820
  name: 'VTimePickerControls',
29794
29821
  props: makeVTimePickerControlsProps(),
29795
29822
  emits: {
29796
29823
  'update:period': data => true,
29797
- 'update:selecting': data => true
29824
+ 'update:viewMode': data => true
29798
29825
  },
29799
29826
  setup(props, _ref) {
29800
29827
  let {
@@ -29817,8 +29844,8 @@ const VTimePickerControls = genericComponent()({
29817
29844
  'v-time-picker-controls__time--with-seconds': props.useSeconds
29818
29845
  }
29819
29846
  }, [createVNode(VBtn, {
29820
- "active": props.selecting === 1,
29821
- "color": props.selecting === 1 ? props.color : undefined,
29847
+ "active": props.viewMode === 'hour',
29848
+ "color": props.viewMode === 'hour' ? props.color : undefined,
29822
29849
  "disabled": props.disabled,
29823
29850
  "variant": "tonal",
29824
29851
  "class": {
@@ -29827,24 +29854,24 @@ const VTimePickerControls = genericComponent()({
29827
29854
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29828
29855
  },
29829
29856
  "text": props.hour == null ? '--' : pad(`${hour}`),
29830
- "onClick": () => emit('update:selecting', SelectingTimes.Hour)
29857
+ "onClick": () => emit('update:viewMode', 'hour')
29831
29858
  }, null), createVNode("span", {
29832
29859
  "class": ['v-time-picker-controls__time__separator', {
29833
29860
  'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
29834
29861
  }]
29835
29862
  }, [createTextVNode(":")]), createVNode(VBtn, {
29836
- "active": props.selecting === 2,
29837
- "color": props.selecting === 2 ? props.color : undefined,
29863
+ "active": props.viewMode === 'minute',
29864
+ "color": props.viewMode === 'minute' ? props.color : undefined,
29838
29865
  "class": {
29839
29866
  'v-time-picker-controls__time__btn': true,
29840
- 'v-time-picker-controls__time__btn__active': props.selecting === 2,
29867
+ 'v-time-picker-controls__time__btn__active': props.viewMode === 'minute',
29841
29868
  'v-time-picker-controls__time--with-ampm__btn': props.ampm,
29842
29869
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29843
29870
  },
29844
29871
  "disabled": props.disabled,
29845
29872
  "variant": "tonal",
29846
29873
  "text": props.minute == null ? '--' : pad(props.minute),
29847
- "onClick": () => emit('update:selecting', SelectingTimes.Minute)
29874
+ "onClick": () => emit('update:viewMode', 'minute')
29848
29875
  }, null), props.useSeconds && createVNode("span", {
29849
29876
  "class": ['v-time-picker-controls__time__separator', {
29850
29877
  'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
@@ -29852,11 +29879,13 @@ const VTimePickerControls = genericComponent()({
29852
29879
  "key": "secondsDivider"
29853
29880
  }, [createTextVNode(":")]), props.useSeconds && createVNode(VBtn, {
29854
29881
  "key": "secondsVal",
29882
+ "active": props.viewMode === 'second',
29883
+ "color": props.viewMode === 'second' ? props.color : undefined,
29855
29884
  "variant": "tonal",
29856
- "onClick": () => emit('update:selecting', SelectingTimes.Second),
29885
+ "onClick": () => emit('update:viewMode', 'second'),
29857
29886
  "class": {
29858
29887
  'v-time-picker-controls__time__btn': true,
29859
- 'v-time-picker-controls__time__btn__active': props.selecting === 3,
29888
+ 'v-time-picker-controls__time__btn__active': props.viewMode === 'second',
29860
29889
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29861
29890
  },
29862
29891
  "disabled": props.disabled,
@@ -29901,11 +29930,6 @@ const rangeHours24 = createRange(24);
29901
29930
  const rangeHours12am = createRange(12);
29902
29931
  const rangeHours12pm = rangeHours12am.map(v => v + 12);
29903
29932
  createRange(60);
29904
- const selectingNames = {
29905
- 1: 'hour',
29906
- 2: 'minute',
29907
- 3: 'second'
29908
- };
29909
29933
  const makeVTimePickerProps = propsFactory({
29910
29934
  allowedHours: [Function, Array],
29911
29935
  allowedMinutes: [Function, Array],
@@ -29918,6 +29942,10 @@ const makeVTimePickerProps = propsFactory({
29918
29942
  },
29919
29943
  max: String,
29920
29944
  min: String,
29945
+ viewMode: {
29946
+ type: String,
29947
+ default: 'hour'
29948
+ },
29921
29949
  modelValue: null,
29922
29950
  readonly: Boolean,
29923
29951
  scrollable: Boolean,
@@ -29934,7 +29962,8 @@ const VTimePicker = genericComponent()({
29934
29962
  'update:minute': val => true,
29935
29963
  'update:period': val => true,
29936
29964
  'update:second': val => true,
29937
- 'update:modelValue': val => true
29965
+ 'update:modelValue': val => true,
29966
+ 'update:viewMode': val => true
29938
29967
  },
29939
29968
  setup(props, _ref) {
29940
29969
  let {
@@ -29951,7 +29980,7 @@ const VTimePicker = genericComponent()({
29951
29980
  const lazyInputMinute = ref(null);
29952
29981
  const lazyInputSecond = ref(null);
29953
29982
  const period = ref('am');
29954
- const selecting = ref(SelectingTimes.Hour);
29983
+ const viewMode = useProxiedModel(props, 'viewMode', 'hour');
29955
29984
  const controlsRef = ref(null);
29956
29985
  const clockRef = ref(null);
29957
29986
  const isAllowedHourCb = computed(() => {
@@ -29965,7 +29994,7 @@ const VTimePicker = genericComponent()({
29965
29994
  const minHour = props.min ? Number(props.min.split(':')[0]) : 0;
29966
29995
  const maxHour = props.max ? Number(props.max.split(':')[0]) : 23;
29967
29996
  return val => {
29968
- return val >= minHour * 1 && val <= maxHour * 1 && (!cb || cb(val));
29997
+ return val >= Number(minHour) && val <= Number(maxHour) && (!cb || cb(val));
29969
29998
  };
29970
29999
  });
29971
30000
  const isAllowedMinuteCb = computed(() => {
@@ -29981,8 +30010,8 @@ const VTimePicker = genericComponent()({
29981
30010
  }
29982
30011
  const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0];
29983
30012
  const [maxHour, maxMinute] = props.max ? props.max.split(':').map(Number) : [23, 59];
29984
- const minTime = minHour * 60 + minMinute * 1;
29985
- const maxTime = maxHour * 60 + maxMinute * 1;
30013
+ const minTime = minHour * 60 + Number(minMinute);
30014
+ const maxTime = maxHour * 60 + Number(maxMinute);
29986
30015
  return val => {
29987
30016
  const time = 60 * inputHour.value + val;
29988
30017
  return time >= minTime && time <= maxTime && isHourAllowed && (!cb || cb(val));
@@ -30002,8 +30031,8 @@ const VTimePicker = genericComponent()({
30002
30031
  }
30003
30032
  const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0];
30004
30033
  const [maxHour, maxMinute, maxSecond] = props.max ? props.max.split(':').map(Number) : [23, 59, 59];
30005
- const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1;
30006
- const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1;
30034
+ const minTime = minHour * 3600 + minMinute * 60 + Number(minSecond || 0);
30035
+ const maxTime = maxHour * 3600 + maxMinute * 60 + Number(maxSecond || 0);
30007
30036
  return val => {
30008
30037
  const time = 3600 * inputHour.value + 60 * inputMinute.value + val;
30009
30038
  return time >= minTime && time <= maxTime && isMinuteAllowed && (!cb || cb(val));
@@ -30069,16 +30098,16 @@ const VTimePicker = genericComponent()({
30069
30098
  return true;
30070
30099
  }
30071
30100
  function onInput(value) {
30072
- if (selecting.value === SelectingTimes.Hour) {
30101
+ if (viewMode.value === 'hour') {
30073
30102
  inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value;
30074
- } else if (selecting.value === SelectingTimes.Minute) {
30103
+ } else if (viewMode.value === 'minute') {
30075
30104
  inputMinute.value = value;
30076
30105
  } else {
30077
30106
  inputSecond.value = value;
30078
30107
  }
30079
30108
  }
30080
30109
  function onChange(value) {
30081
- switch (selectingNames[selecting.value]) {
30110
+ switch (viewMode.value || 'hour') {
30082
30111
  case 'hour':
30083
30112
  emit('update:hour', value);
30084
30113
  break;
@@ -30090,10 +30119,10 @@ const VTimePicker = genericComponent()({
30090
30119
  break;
30091
30120
  }
30092
30121
  const emitChange = inputHour.value !== null && inputMinute.value !== null && (props.useSeconds ? inputSecond.value !== null : true);
30093
- if (selecting.value === SelectingTimes.Hour) {
30094
- selecting.value = SelectingTimes.Minute;
30095
- } else if (props.useSeconds && selecting.value === SelectingTimes.Minute) {
30096
- selecting.value = SelectingTimes.Second;
30122
+ if (viewMode.value === 'hour') {
30123
+ viewMode.value = 'minute';
30124
+ } else if (props.useSeconds && viewMode.value === 'minute') {
30125
+ viewMode.value = 'second';
30097
30126
  }
30098
30127
  if (inputHour.value === lazyInputHour.value && inputMinute.value === lazyInputMinute.value && (!props.useSeconds || inputSecond.value === lazyInputSecond.value)) return;
30099
30128
  const time = genValue();
@@ -30122,20 +30151,20 @@ const VTimePicker = genericComponent()({
30122
30151
  "minute": inputMinute.value,
30123
30152
  "period": period.value,
30124
30153
  "second": inputSecond.value,
30125
- "selecting": selecting.value,
30154
+ "viewMode": viewMode.value,
30126
30155
  "onUpdate:period": val => setPeriod(val),
30127
- "onUpdate:selecting": value => selecting.value = value,
30156
+ "onUpdate:viewMode": value => viewMode.value = value,
30128
30157
  "ref": controlsRef
30129
30158
  }), null),
30130
30159
  default: () => createVNode(VTimePickerClock, mergeProps(timePickerClockProps, {
30131
- "allowedValues": selecting.value === SelectingTimes.Hour ? isAllowedHourCb.value : selecting.value === SelectingTimes.Minute ? isAllowedMinuteCb.value : isAllowedSecondCb.value,
30132
- "double": selecting.value === SelectingTimes.Hour && !isAmPm.value,
30133
- "format": selecting.value === SelectingTimes.Hour ? isAmPm.value ? convert24to12 : val => val : val => pad(val, 2),
30134
- "max": selecting.value === SelectingTimes.Hour ? isAmPm.value && period.value === 'am' ? 11 : 23 : 59,
30135
- "min": selecting.value === SelectingTimes.Hour && isAmPm.value && period.value === 'pm' ? 12 : 0,
30160
+ "allowedValues": viewMode.value === 'hour' ? isAllowedHourCb.value : viewMode.value === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value,
30161
+ "double": viewMode.value === 'hour' && !isAmPm.value,
30162
+ "format": viewMode.value === 'hour' ? isAmPm.value ? convert24to12 : val => val : val => pad(val, 2),
30163
+ "max": viewMode.value === 'hour' ? isAmPm.value && period.value === 'am' ? 11 : 23 : 59,
30164
+ "min": viewMode.value === 'hour' && isAmPm.value && period.value === 'pm' ? 12 : 0,
30136
30165
  "size": 20,
30137
- "step": selecting.value === SelectingTimes.Hour ? 1 : 5,
30138
- "modelValue": selecting.value === SelectingTimes.Hour ? inputHour.value : selecting.value === SelectingTimes.Minute ? inputMinute.value : inputSecond.value,
30166
+ "step": viewMode.value === 'hour' ? 1 : 5,
30167
+ "modelValue": viewMode.value === 'hour' ? inputHour.value : viewMode.value === 'minute' ? inputMinute.value : inputSecond.value,
30139
30168
  "onChange": onChange,
30140
30169
  "onInput": onInput,
30141
30170
  "ref": clockRef
@@ -31048,7 +31077,7 @@ function createVuetify$1() {
31048
31077
  goTo
31049
31078
  };
31050
31079
  }
31051
- const version$1 = "3.7.15";
31080
+ const version$1 = "3.7.16";
31052
31081
  createVuetify$1.version = version$1;
31053
31082
 
31054
31083
  // Vue's inject() can only be used in setup
@@ -31301,7 +31330,7 @@ var index = /*#__PURE__*/Object.freeze({
31301
31330
 
31302
31331
  /* eslint-disable local-rules/sort-imports */
31303
31332
 
31304
- const version = "3.7.15";
31333
+ const version = "3.7.16";
31305
31334
 
31306
31335
  /* eslint-disable local-rules/sort-imports */
31307
31336