vuetify 3.8.7 → 3.8.8

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 (106) hide show
  1. package/dist/json/attributes.json +3165 -3141
  2. package/dist/json/importMap-labs.json +32 -32
  3. package/dist/json/importMap.json +136 -136
  4. package/dist/json/tags.json +6 -0
  5. package/dist/json/web-types.json +5935 -5881
  6. package/dist/vuetify-labs.cjs +192 -112
  7. package/dist/vuetify-labs.css +3773 -3767
  8. package/dist/vuetify-labs.d.ts +89 -55
  9. package/dist/vuetify-labs.esm.js +193 -113
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +192 -112
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +184 -100
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3192 -3186
  16. package/dist/vuetify.d.ts +79 -55
  17. package/dist/vuetify.esm.js +185 -101
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +184 -100
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +1077 -1064
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.css +6 -6
  25. package/lib/components/VAutocomplete/VAutocomplete.sass +3 -9
  26. package/lib/components/VCarousel/VCarousel.js +3 -3
  27. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  28. package/lib/components/VChip/VChip.js +1 -0
  29. package/lib/components/VChip/VChip.js.map +1 -1
  30. package/lib/components/VColorPicker/VColorPickerPreview.js +3 -3
  31. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  32. package/lib/components/VColorPicker/VColorPickerSwatches.js +3 -3
  33. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  34. package/lib/components/VCombobox/VCombobox.css +6 -6
  35. package/lib/components/VCombobox/VCombobox.sass +3 -9
  36. package/lib/components/VDataTable/VDataTableColumn.js +3 -3
  37. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  38. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +3 -3
  39. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
  40. package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
  41. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  42. package/lib/components/VDatePicker/VDatePicker.d.ts +20 -0
  43. package/lib/components/VDatePicker/VDatePicker.js +39 -2
  44. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  45. package/lib/components/VDatePicker/VDatePickerControls.js +4 -4
  46. package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
  47. package/lib/components/VDatePicker/VDatePickerMonth.js +4 -11
  48. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  49. package/lib/components/VDatePicker/VDatePickerMonths.d.ts +10 -0
  50. package/lib/components/VDatePicker/VDatePickerMonths.js +15 -5
  51. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  52. package/lib/components/VDatePicker/VDatePickerYears.d.ts +10 -0
  53. package/lib/components/VDatePicker/VDatePickerYears.js +17 -5
  54. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  55. package/lib/components/VEmptyState/VEmptyState.js +3 -3
  56. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  57. package/lib/components/VImg/VImg.js +7 -7
  58. package/lib/components/VImg/VImg.js.map +1 -1
  59. package/lib/components/VInfiniteScroll/VInfiniteScroll.js +3 -3
  60. package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
  61. package/lib/components/VNumberInput/VNumberInput.js +11 -10
  62. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  63. package/lib/components/VOtpInput/VOtpInput.js +2 -2
  64. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  65. package/lib/components/VProgressCircular/VProgressCircular.js +2 -2
  66. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  67. package/lib/components/VProgressLinear/VProgressLinear.js +3 -3
  68. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  69. package/lib/components/VSelect/VSelect.css +6 -0
  70. package/lib/components/VSelect/VSelect.sass +3 -0
  71. package/lib/components/VSelect/_mixins.scss +14 -0
  72. package/lib/components/VSelectionControl/VSelectionControl.js +2 -2
  73. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  74. package/lib/components/VSlider/VSliderThumb.js +16 -10
  75. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  76. package/lib/components/VSlider/VSliderTrack.js +6 -6
  77. package/lib/components/VSlider/VSliderTrack.js.map +1 -1
  78. package/lib/components/VSlider/slider.js +4 -1
  79. package/lib/components/VSlider/slider.js.map +1 -1
  80. package/lib/components/VTable/VTable.js +3 -3
  81. package/lib/components/VTable/VTable.js.map +1 -1
  82. package/lib/components/VToolbar/VToolbar.js +5 -5
  83. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  84. package/lib/components/VVirtualScroll/VVirtualScroll.js +7 -7
  85. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  86. package/lib/components/VWindow/VWindow.js +3 -3
  87. package/lib/components/VWindow/VWindow.js.map +1 -1
  88. package/lib/composables/date/date.d.ts +4 -0
  89. package/lib/composables/date/date.js +14 -1
  90. package/lib/composables/date/date.js.map +1 -1
  91. package/lib/composables/list-items.js +2 -2
  92. package/lib/composables/list-items.js.map +1 -1
  93. package/lib/entry-bundler.d.ts +3 -0
  94. package/lib/entry-bundler.js +1 -1
  95. package/lib/framework.d.ts +59 -55
  96. package/lib/framework.js +1 -1
  97. package/lib/labs/VDateInput/VDateInput.d.ts +20 -0
  98. package/lib/labs/VDateInput/VDateInput.js +3 -7
  99. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  100. package/lib/labs/VPullToRefresh/VPullToRefresh.js +7 -7
  101. package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
  102. package/lib/labs/entry-bundler.d.ts +3 -0
  103. package/lib/util/helpers.d.ts +1 -0
  104. package/lib/util/helpers.js +9 -1
  105. package/lib/util/helpers.js.map +1 -1
  106. package/package.json +3 -3
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.8.7
2
+ * Vuetify v3.8.8
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createElementVNode, normalizeStyle, normalizeClass, createVNode, TransitionGroup, Transition, mergeProps, toRefs, toValue, isRef, onBeforeMount, nextTick, withDirectives, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, normalizeProps, guardReactiveProps, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, reactive, watchEffect, toRef, capitalize, camelize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createElementVNode, normalizeStyle, normalizeClass, createVNode, TransitionGroup, Transition, mergeProps, toRefs, toValue, isRef, onBeforeMount, nextTick, withDirectives, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, normalizeProps, guardReactiveProps, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -602,6 +602,14 @@ function extractNumber(text, decimalDigitsLimit) {
602
602
  }
603
603
  return cleanText;
604
604
  }
605
+ function camelizeProps(props) {
606
+ if (!props) return;
607
+ const out = {};
608
+ for (const prop in props) {
609
+ out[camelize(prop)] = props[prop];
610
+ }
611
+ return out;
612
+ }
605
613
 
606
614
  // Utilities
607
615
  const block = ['top', 'bottom'];
@@ -3548,9 +3556,9 @@ const VImg = genericComponent()({
3548
3556
  if (!normalisedSrc.value.src || state.value === 'idle') return null;
3549
3557
  const img = createElementVNode("img", {
3550
3558
  "class": normalizeClass(['v-img__img', containClasses.value]),
3551
- "style": normalizeStyle({
3559
+ "style": {
3552
3560
  objectPosition: props.position
3553
- }),
3561
+ },
3554
3562
  "crossorigin": props.crossorigin,
3555
3563
  "src": normalisedSrc.value.src,
3556
3564
  "srcset": normalisedSrc.value.srcset,
@@ -3577,9 +3585,9 @@ const VImg = genericComponent()({
3577
3585
  }, {
3578
3586
  default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createElementVNode("img", {
3579
3587
  "class": normalizeClass(['v-img__img', 'v-img__img--preload', containClasses.value]),
3580
- "style": normalizeStyle({
3588
+ "style": {
3581
3589
  objectPosition: props.position
3582
- }),
3590
+ },
3583
3591
  "crossorigin": props.crossorigin,
3584
3592
  "src": normalisedSrc.value.lazySrc,
3585
3593
  "alt": props.alt,
@@ -3613,9 +3621,9 @@ const VImg = genericComponent()({
3613
3621
  if (!props.gradient) return null;
3614
3622
  return createElementVNode("div", {
3615
3623
  "class": "v-img__gradient",
3616
- "style": normalizeStyle({
3624
+ "style": {
3617
3625
  backgroundImage: `linear-gradient(${props.gradient})`
3618
- })
3626
+ }
3619
3627
  }, null);
3620
3628
  };
3621
3629
  const isBooted = shallowRef(false);
@@ -3826,9 +3834,9 @@ const VToolbar = genericComponent()({
3826
3834
  }, {
3827
3835
  default: () => [createElementVNode("div", {
3828
3836
  "class": "v-toolbar__content",
3829
- "style": normalizeStyle({
3837
+ "style": {
3830
3838
  height: convertToUnit(contentHeight.value)
3831
- })
3839
+ }
3832
3840
  }, [slots.prepend && createElementVNode("div", {
3833
3841
  "class": "v-toolbar__prepend"
3834
3842
  }, [slots.prepend?.()]), hasTitle && createVNode(VToolbarTitle, {
@@ -3849,9 +3857,9 @@ const VToolbar = genericComponent()({
3849
3857
  default: () => [createVNode(VExpandTransition, null, {
3850
3858
  default: () => [isExtended.value && createElementVNode("div", {
3851
3859
  "class": "v-toolbar__extension",
3852
- "style": normalizeStyle({
3860
+ "style": {
3853
3861
  height: convertToUnit(extensionHeight.value)
3854
- })
3862
+ }
3855
3863
  }, [extension])]
3856
3864
  })]
3857
3865
  })]
@@ -4924,9 +4932,9 @@ const VProgressCircular = genericComponent()({
4924
4932
  "aria-valuenow": props.indeterminate ? undefined : normalizedValue.value
4925
4933
  }, {
4926
4934
  default: () => [createElementVNode("svg", {
4927
- "style": normalizeStyle({
4935
+ "style": {
4928
4936
  transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`
4929
- }),
4937
+ },
4930
4938
  "xmlns": "http://www.w3.org/2000/svg",
4931
4939
  "viewBox": `0 0 ${diameter.value} ${diameter.value}`
4932
4940
  }, [createElementVNode("circle", {
@@ -5147,7 +5155,7 @@ const VProgressLinear = genericComponent()({
5147
5155
  default: () => [props.stream && createElementVNode("div", {
5148
5156
  "key": "stream",
5149
5157
  "class": normalizeClass(['v-progress-linear__stream', textColorClasses.value]),
5150
- "style": normalizeStyle({
5158
+ "style": {
5151
5159
  ...textColorStyles.value,
5152
5160
  [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),
5153
5161
  borderTop: `${convertToUnit(height.value / 2)} dotted`,
@@ -5155,7 +5163,7 @@ const VProgressLinear = genericComponent()({
5155
5163
  top: `calc(50% - ${convertToUnit(height.value / 4)})`,
5156
5164
  width: convertToUnit(100 - normalizedBuffer.value, '%'),
5157
5165
  '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1))
5158
- })
5166
+ }
5159
5167
  }, null), createElementVNode("div", {
5160
5168
  "class": normalizeClass(['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined]),
5161
5169
  "style": normalizeStyle([backgroundColorStyles.value, {
@@ -6463,7 +6471,7 @@ const VSelectionControl = genericComponent()({
6463
6471
  backgroundColorClasses,
6464
6472
  backgroundColorStyles
6465
6473
  }), withDirectives(createElementVNode("div", {
6466
- "class": ['v-selection-control__input']
6474
+ "class": normalizeClass(['v-selection-control__input'])
6467
6475
  }, [slots.input?.({
6468
6476
  model,
6469
6477
  textColorClasses,
@@ -8096,6 +8104,7 @@ const VChip = genericComponent()({
8096
8104
  const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
8097
8105
  const closeProps = toRef(() => ({
8098
8106
  'aria-label': t(props.closeLabel),
8107
+ disabled: props.disabled,
8099
8108
  onClick(e) {
8100
8109
  e.preventDefault();
8101
8110
  e.stopPropagation();
@@ -9577,7 +9586,7 @@ function transformItem$3(props, item) {
9577
9586
  const _props = {
9578
9587
  title,
9579
9588
  value,
9580
- ...itemProps
9589
+ ...camelizeProps(itemProps)
9581
9590
  };
9582
9591
  return {
9583
9592
  title: String(_props.title ?? ''),
@@ -12610,14 +12619,14 @@ const VVirtualScroll = genericComponent()({
12610
12619
  return props.renderless ? createElementVNode(Fragment, null, [createElementVNode("div", {
12611
12620
  "ref": markerRef,
12612
12621
  "class": "v-virtual-scroll__spacer",
12613
- "style": normalizeStyle({
12622
+ "style": {
12614
12623
  paddingTop: convertToUnit(paddingTop.value)
12615
- })
12624
+ }
12616
12625
  }, null), children, createElementVNode("div", {
12617
12626
  "class": "v-virtual-scroll__spacer",
12618
- "style": normalizeStyle({
12627
+ "style": {
12619
12628
  paddingBottom: convertToUnit(paddingBottom.value)
12620
- })
12629
+ }
12621
12630
  }, null)]) : createElementVNode("div", {
12622
12631
  "ref": containerRef,
12623
12632
  "class": normalizeClass(['v-virtual-scroll', props.class]),
@@ -12627,10 +12636,10 @@ const VVirtualScroll = genericComponent()({
12627
12636
  }, [createElementVNode("div", {
12628
12637
  "ref": markerRef,
12629
12638
  "class": "v-virtual-scroll__container",
12630
- "style": normalizeStyle({
12639
+ "style": {
12631
12640
  paddingTop: convertToUnit(paddingTop.value),
12632
12641
  paddingBottom: convertToUnit(paddingBottom.value)
12633
- })
12642
+ }
12634
12643
  }, [children])]);
12635
12644
  });
12636
12645
  return {
@@ -15064,9 +15073,9 @@ const VWindow = genericComponent()({
15064
15073
  }, {
15065
15074
  default: () => [createElementVNode("div", {
15066
15075
  "class": "v-window__container",
15067
- "style": normalizeStyle({
15076
+ "style": {
15068
15077
  height: transitionHeight.value
15069
- })
15078
+ }
15070
15079
  }, [slots.default?.({
15071
15080
  group
15072
15081
  }), props.showArrows !== false && createElementVNode("div", {
@@ -15161,10 +15170,10 @@ const VCarousel = genericComponent()({
15161
15170
  } = _ref2;
15162
15171
  return createElementVNode(Fragment, null, [!props.hideDelimiters && createElementVNode("div", {
15163
15172
  "class": "v-carousel__controls",
15164
- "style": normalizeStyle({
15173
+ "style": {
15165
15174
  left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',
15166
15175
  right: props.verticalDelimiters === 'right' ? 0 : 'auto'
15167
- })
15176
+ }
15168
15177
  }, [group.items.value.length > 0 && createVNode(VDefaultsProvider, {
15169
15178
  "defaults": {
15170
15179
  VBtn: {
@@ -15884,7 +15893,10 @@ const useSteps = props => {
15884
15893
  if (step.value <= 0) return value;
15885
15894
  const clamped = clamp(value, min.value, max.value);
15886
15895
  const offset = min.value % step.value;
15887
- const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
15896
+ let newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
15897
+ if (clamped > newValue && newValue + step.value > max.value) {
15898
+ newValue = max.value;
15899
+ }
15888
15900
  return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
15889
15901
  }
15890
15902
  return {
@@ -16140,6 +16152,8 @@ const VSliderThumb = genericComponent()({
16140
16152
  } = useRtl();
16141
16153
  if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');
16142
16154
  const {
16155
+ min,
16156
+ max,
16143
16157
  thumbColor,
16144
16158
  step,
16145
16159
  disabled,
@@ -16180,16 +16194,20 @@ const VSliderThumb = genericComponent()({
16180
16194
  if (!relevantKeys.includes(e.key)) return;
16181
16195
  e.preventDefault();
16182
16196
  const _step = step.value || 0.1;
16183
- const steps = (props.max - props.min) / _step;
16197
+ const steps = (max.value - min.value) / _step;
16184
16198
  if ([left, right, down, up].includes(e.key)) {
16185
16199
  const increase = vertical.value ? [isRtl.value ? left : right, isReversed.value ? down : up] : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up];
16186
16200
  const direction = increase.includes(e.key) ? 1 : -1;
16187
16201
  const multiplier = e.shiftKey ? 2 : e.ctrlKey ? 1 : 0;
16188
- value = value + direction * _step * multipliers.value[multiplier];
16202
+ if (direction === -1 && value === max.value && !multiplier && !Number.isInteger(steps)) {
16203
+ value = value - steps % 1 * _step;
16204
+ } else {
16205
+ value = value + direction * _step * multipliers.value[multiplier];
16206
+ }
16189
16207
  } else if (e.key === home) {
16190
- value = props.min;
16208
+ value = min.value;
16191
16209
  } else if (e.key === end) {
16192
- value = props.max;
16210
+ value = max.value;
16193
16211
  } else {
16194
16212
  const direction = e.key === pagedown ? 1 : -1;
16195
16213
  value = value - direction * _step * (steps > 100 ? steps / 10 : 10);
@@ -16214,17 +16232,17 @@ const VSliderThumb = genericComponent()({
16214
16232
  "role": "slider",
16215
16233
  "tabindex": disabled.value ? -1 : 0,
16216
16234
  "aria-label": props.name,
16217
- "aria-valuemin": props.min,
16218
- "aria-valuemax": props.max,
16235
+ "aria-valuemin": min.value,
16236
+ "aria-valuemax": max.value,
16219
16237
  "aria-valuenow": props.modelValue,
16220
16238
  "aria-readonly": !!readonly.value,
16221
16239
  "aria-orientation": direction.value,
16222
16240
  "onKeydown": !readonly.value ? onKeydown : undefined
16223
16241
  }, [createElementVNode("div", {
16224
16242
  "class": normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
16225
- "style": normalizeStyle({
16243
+ "style": {
16226
16244
  ...textColorStyles.value
16227
- })
16245
+ }
16228
16246
  }, null), withDirectives(createElementVNode("div", {
16229
16247
  "class": normalizeClass(['v-slider-thumb__ripple', textColorClasses.value]),
16230
16248
  "style": normalizeStyle(textColorStyles.value)
@@ -16237,7 +16255,7 @@ const VSliderThumb = genericComponent()({
16237
16255
  default: () => [withDirectives(createElementVNode("div", {
16238
16256
  "class": "v-slider-thumb__label-container"
16239
16257
  }, [createElementVNode("div", {
16240
- "class": ['v-slider-thumb__label']
16258
+ "class": normalizeClass(['v-slider-thumb__label'])
16241
16259
  }, [createElementVNode("div", null, [slots['thumb-label']?.({
16242
16260
  modelValue: props.modelValue
16243
16261
  }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
@@ -16322,9 +16340,9 @@ const VSliderTrack = genericComponent()({
16322
16340
  'v-slider-track__tick--first': tick.value === min.value,
16323
16341
  'v-slider-track__tick--last': tick.value === max.value
16324
16342
  }]),
16325
- "style": normalizeStyle({
16343
+ "style": {
16326
16344
  [startDir.value]: directionValue
16327
- })
16345
+ }
16328
16346
  }, [(tick.label || slots['tick-label']) && createElementVNode("div", {
16329
16347
  "class": "v-slider-track__tick-label"
16330
16348
  }, [slots['tick-label']?.({
@@ -16344,16 +16362,16 @@ const VSliderTrack = genericComponent()({
16344
16362
  "class": normalizeClass(['v-slider-track__background', trackColorClasses.value, {
16345
16363
  'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
16346
16364
  }]),
16347
- "style": normalizeStyle({
16365
+ "style": {
16348
16366
  ...backgroundStyles.value,
16349
16367
  ...trackColorStyles.value
16350
- })
16368
+ }
16351
16369
  }, null), createElementVNode("div", {
16352
16370
  "class": normalizeClass(['v-slider-track__fill', trackFillColorClasses.value]),
16353
- "style": normalizeStyle({
16371
+ "style": {
16354
16372
  ...trackFillStyles.value,
16355
16373
  ...trackFillColorStyles.value
16356
- })
16374
+ }
16357
16375
  }, null), showTicks.value && createElementVNode("div", {
16358
16376
  "class": normalizeClass(['v-slider-track__ticks', {
16359
16377
  'v-slider-track__ticks--always-show': showTicks.value === 'always'
@@ -16555,9 +16573,9 @@ const VColorPickerPreview = defineComponent({
16555
16573
  }, null)]), createElementVNode("div", {
16556
16574
  "class": "v-color-picker-preview__dot"
16557
16575
  }, [createElementVNode("div", {
16558
- "style": normalizeStyle({
16576
+ "style": {
16559
16577
  background: HSVtoCSS(props.color ?? nullColor)
16560
- })
16578
+ }
16561
16579
  }, null)]), createElementVNode("div", {
16562
16580
  "class": "v-color-picker-preview__sliders"
16563
16581
  }, [createVNode(VSlider, {
@@ -16958,9 +16976,9 @@ const VColorPickerSwatches = defineComponent({
16958
16976
  "class": "v-color-picker-swatches__color",
16959
16977
  "onClick": () => hsva && emit('update:color', hsva)
16960
16978
  }, [createElementVNode("div", {
16961
- "style": normalizeStyle({
16979
+ "style": {
16962
16980
  background
16963
- })
16981
+ }
16964
16982
  }, [props.color && deepEqual(props.color, hsva) ? createVNode(VIcon, {
16965
16983
  "size": "x-small",
16966
16984
  "icon": "$success",
@@ -17819,7 +17837,20 @@ function createInstance(options, locale) {
17819
17837
  watch(locale.current, value => {
17820
17838
  instance.locale = options.locale[value] ?? value ?? instance.locale;
17821
17839
  });
17822
- return instance;
17840
+ return Object.assign(instance, {
17841
+ createDateRange(start, stop) {
17842
+ const diff = instance.getDiff(stop ?? start, start, 'days');
17843
+ const datesInRange = [start];
17844
+ for (let i = 1; i < diff; i++) {
17845
+ const nextDate = instance.addDays(start, i);
17846
+ datesInRange.push(nextDate);
17847
+ }
17848
+ if (stop) {
17849
+ datesInRange.push(instance.endOfDay(stop));
17850
+ }
17851
+ return datesInRange;
17852
+ }
17853
+ });
17823
17854
  }
17824
17855
  function useDate() {
17825
17856
  const options = inject$1(DateOptionsSymbol);
@@ -19966,12 +19997,12 @@ const VDataTableColumn = defineFunctionalComponent({
19966
19997
  'v-data-table-column--no-padding': props.noPadding,
19967
19998
  'v-data-table-column--nowrap': props.nowrap
19968
19999
  }, `v-data-table-column--align-${props.align}`]),
19969
- "style": normalizeStyle({
20000
+ "style": {
19970
20001
  height: convertToUnit(props.height),
19971
20002
  width: convertToUnit(props.width),
19972
20003
  maxWidth: convertToUnit(props.maxWidth),
19973
20004
  left: convertToUnit(props.fixedOffset || null)
19974
- })
20005
+ }
19975
20006
  }, {
19976
20007
  default: () => [slots.default?.()]
19977
20008
  });
@@ -20496,9 +20527,9 @@ const VDataTableGroupHeaderRow = genericComponent()({
20496
20527
  });
20497
20528
  return () => createElementVNode("tr", {
20498
20529
  "class": "v-data-table-group-header-row",
20499
- "style": normalizeStyle({
20530
+ "style": {
20500
20531
  '--v-data-table-group-header-row-depth': props.item.depth
20501
- })
20532
+ }
20502
20533
  }, [columns.value.map(column => {
20503
20534
  if (column.key === 'data-table-group') {
20504
20535
  const icon = isGroupOpen(props.item) ? '$expand' : '$next';
@@ -20846,9 +20877,9 @@ const VTable = genericComponent()({
20846
20877
  }, {
20847
20878
  default: () => [slots.top?.(), slots.default ? createElementVNode("div", {
20848
20879
  "class": "v-table__wrapper",
20849
- "style": normalizeStyle({
20880
+ "style": {
20850
20881
  height: convertToUnit(props.height)
20851
- })
20882
+ }
20852
20883
  }, [createElementVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
20853
20884
  }));
20854
20885
  return {};
@@ -21283,19 +21314,19 @@ const VDataTableVirtual = genericComponent()({
21283
21314
  "onScrollPassive": handleScroll,
21284
21315
  "onScrollend": handleScrollend,
21285
21316
  "class": "v-table__wrapper",
21286
- "style": normalizeStyle({
21317
+ "style": {
21287
21318
  height: convertToUnit(props.height)
21288
- })
21319
+ }
21289
21320
  }, [createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
21290
21321
  "key": "thead"
21291
21322
  }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
21292
21323
  "key": "tbody"
21293
21324
  }, [createElementVNode("tr", {
21294
21325
  "ref": markerRef,
21295
- "style": normalizeStyle({
21326
+ "style": {
21296
21327
  height: convertToUnit(paddingTop.value),
21297
21328
  border: 0
21298
- })
21329
+ }
21299
21330
  }, [createElementVNode("td", {
21300
21331
  "colspan": columns.value.length,
21301
21332
  "style": {
@@ -21326,10 +21357,10 @@ const VDataTableVirtual = genericComponent()({
21326
21357
  }
21327
21358
  })
21328
21359
  }), slots['body.append']?.(slotProps.value), createElementVNode("tr", {
21329
- "style": normalizeStyle({
21360
+ "style": {
21330
21361
  height: convertToUnit(paddingBottom.value),
21331
21362
  border: 0
21332
- })
21363
+ }
21333
21364
  }, [createElementVNode("td", {
21334
21365
  "colspan": columns.value.length,
21335
21366
  "style": {
@@ -21867,10 +21898,10 @@ const VDatePickerControls = genericComponent()({
21867
21898
  useRender(() => {
21868
21899
  // TODO: add slot support and scope defaults
21869
21900
  return createElementVNode("div", {
21870
- "class": ['v-date-picker-controls'],
21871
- "style": normalizeStyle({
21901
+ "class": normalizeClass(['v-date-picker-controls']),
21902
+ "style": {
21872
21903
  '--v-date-picker-controls-height': convertToUnit(props.controlHeight)
21873
- })
21904
+ }
21874
21905
  }, [createVNode(VBtn, {
21875
21906
  "class": "v-date-picker-controls__month-btn",
21876
21907
  "data-testid": "month-btn",
@@ -22213,14 +22244,7 @@ const VDatePickerMonth = genericComponent()({
22213
22244
  } else {
22214
22245
  rangeStop.value = adapter.endOfDay(_value);
22215
22246
  }
22216
- const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');
22217
- const datesInRange = [rangeStart.value];
22218
- for (let i = 1; i < diff; i++) {
22219
- const nextDate = adapter.addDays(rangeStart.value, i);
22220
- datesInRange.push(nextDate);
22221
- }
22222
- datesInRange.push(rangeStop.value);
22223
- model.value = datesInRange;
22247
+ model.value = adapter.createDateRange(rangeStart.value, rangeStop.value);
22224
22248
  } else {
22225
22249
  rangeStart.value = value;
22226
22250
  rangeStop.value = undefined;
@@ -22255,7 +22279,7 @@ const VDatePickerMonth = genericComponent()({
22255
22279
  "key": "hide-week-days",
22256
22280
  "class": "v-date-picker-month__day"
22257
22281
  }, [createTextVNode("\xA0")]), weekNumbers.value.map(week => createElementVNode("div", {
22258
- "class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
22282
+ "class": normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__day--adjacent'])
22259
22283
  }, [week]))]), createVNode(MaybeTransition, {
22260
22284
  "name": transition.value
22261
22285
  }, {
@@ -22264,7 +22288,7 @@ const VDatePickerMonth = genericComponent()({
22264
22288
  "key": daysInMonth.value[0].date?.toString(),
22265
22289
  "class": "v-date-picker-month__days"
22266
22290
  }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => createElementVNode("div", {
22267
- "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
22291
+ "class": normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
22268
22292
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22269
22293
  const slotProps = {
22270
22294
  props: {
@@ -22306,7 +22330,8 @@ const makeVDatePickerMonthsProps = propsFactory({
22306
22330
  min: null,
22307
22331
  max: null,
22308
22332
  modelValue: Number,
22309
- year: Number
22333
+ year: Number,
22334
+ allowedMonths: [Array, Function]
22310
22335
  }, 'VDatePickerMonths');
22311
22336
  const VDatePickerMonths = genericComponent()({
22312
22337
  name: 'VDatePickerMonths',
@@ -22328,7 +22353,7 @@ const VDatePickerMonths = genericComponent()({
22328
22353
  }
22329
22354
  return createRange(12).map(i => {
22330
22355
  const text = adapter.format(date, 'monthShort');
22331
- const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
22356
+ const isDisabled = !!(!isMonthAllowed(i) || props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
22332
22357
  date = adapter.getNextMonth(date);
22333
22358
  return {
22334
22359
  isDisabled,
@@ -22340,11 +22365,20 @@ const VDatePickerMonths = genericComponent()({
22340
22365
  watchEffect(() => {
22341
22366
  model.value = model.value ?? adapter.getMonth(adapter.date());
22342
22367
  });
22368
+ function isMonthAllowed(month) {
22369
+ if (Array.isArray(props.allowedMonths) && props.allowedMonths.length) {
22370
+ return props.allowedMonths.includes(month);
22371
+ }
22372
+ if (typeof props.allowedMonths === 'function') {
22373
+ return props.allowedMonths(month);
22374
+ }
22375
+ return true;
22376
+ }
22343
22377
  useRender(() => createElementVNode("div", {
22344
22378
  "class": "v-date-picker-months",
22345
- "style": normalizeStyle({
22379
+ "style": {
22346
22380
  height: convertToUnit(props.height)
22347
- })
22381
+ }
22348
22382
  }, [createElementVNode("div", {
22349
22383
  "class": "v-date-picker-months__content"
22350
22384
  }, [months.value.map((month, i) => {
@@ -22385,7 +22419,8 @@ const makeVDatePickerYearsProps = propsFactory({
22385
22419
  height: [String, Number],
22386
22420
  min: null,
22387
22421
  max: null,
22388
- modelValue: Number
22422
+ modelValue: Number,
22423
+ allowedYears: [Array, Function]
22389
22424
  }, 'VDatePickerYears');
22390
22425
  const VDatePickerYears = genericComponent()({
22391
22426
  name: 'VDatePickerYears',
@@ -22417,7 +22452,8 @@ const VDatePickerYears = genericComponent()({
22417
22452
  date = adapter.setYear(date, adapter.getYear(date) + 1);
22418
22453
  return {
22419
22454
  text,
22420
- value: i
22455
+ value: i,
22456
+ isDisabled: !isYearAllowed(i)
22421
22457
  };
22422
22458
  });
22423
22459
  });
@@ -22431,11 +22467,20 @@ const VDatePickerYears = genericComponent()({
22431
22467
  block: 'center'
22432
22468
  });
22433
22469
  });
22470
+ function isYearAllowed(year) {
22471
+ if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
22472
+ return props.allowedYears.includes(year);
22473
+ }
22474
+ if (typeof props.allowedYears === 'function') {
22475
+ return props.allowedYears(year);
22476
+ }
22477
+ return true;
22478
+ }
22434
22479
  useRender(() => createElementVNode("div", {
22435
22480
  "class": "v-date-picker-years",
22436
- "style": normalizeStyle({
22481
+ "style": {
22437
22482
  height: convertToUnit(props.height)
22438
- })
22483
+ }
22439
22484
  }, [createElementVNode("div", {
22440
22485
  "class": "v-date-picker-years__content"
22441
22486
  }, [years.value.map((year, i) => {
@@ -22445,6 +22490,7 @@ const VDatePickerYears = genericComponent()({
22445
22490
  color: model.value === year.value ? props.color : undefined,
22446
22491
  rounded: true,
22447
22492
  text: year.text,
22493
+ disabled: year.isDisabled,
22448
22494
  variant: model.value === year.value ? 'flat' : 'text',
22449
22495
  onClick: () => {
22450
22496
  if (model.value === year.value) {
@@ -22594,6 +22640,41 @@ const VDatePicker = genericComponent()({
22594
22640
  }
22595
22641
  return targets;
22596
22642
  });
22643
+ function isAllowedInRange(start, end) {
22644
+ const allowedDates = props.allowedDates;
22645
+ if (typeof allowedDates !== 'function') return true;
22646
+ const days = adapter.getDiff(end, start, 'days');
22647
+ for (let i = 0; i < days; i++) {
22648
+ if (allowedDates(adapter.addDays(start, i))) return true;
22649
+ }
22650
+ return false;
22651
+ }
22652
+ function allowedYears(year) {
22653
+ if (typeof props.allowedDates === 'function') {
22654
+ const startOfYear = adapter.parseISO(`${year}-01-01`);
22655
+ return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear));
22656
+ }
22657
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22658
+ for (const date of props.allowedDates) {
22659
+ if (adapter.getYear(adapter.date(date)) === year) return true;
22660
+ }
22661
+ return false;
22662
+ }
22663
+ return true;
22664
+ }
22665
+ function allowedMonths(month) {
22666
+ if (typeof props.allowedDates === 'function') {
22667
+ const startOfMonth = adapter.parseISO(`${year.value}-${month + 1}-01`);
22668
+ return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
22669
+ }
22670
+ if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
22671
+ for (const date of props.allowedDates) {
22672
+ if (adapter.getYear(adapter.date(date)) === year.value && adapter.getMonth(adapter.date(date)) === month) return true;
22673
+ }
22674
+ return false;
22675
+ }
22676
+ return true;
22677
+ }
22597
22678
 
22598
22679
  // function onClickAppend () {
22599
22680
  // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'
@@ -22709,14 +22790,16 @@ const VDatePicker = genericComponent()({
22709
22790
  "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
22710
22791
  "min": minDate.value,
22711
22792
  "max": maxDate.value,
22712
- "year": year.value
22793
+ "year": year.value,
22794
+ "allowedMonths": allowedMonths
22713
22795
  }), null) : viewMode.value === 'year' ? createVNode(VDatePickerYears, mergeProps({
22714
22796
  "key": "date-picker-years"
22715
22797
  }, datePickerYearsProps, {
22716
22798
  "modelValue": year.value,
22717
22799
  "onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
22718
22800
  "min": minDate.value,
22719
- "max": maxDate.value
22801
+ "max": maxDate.value,
22802
+ "allowedYears": allowedYears
22720
22803
  }), null) : createVNode(VDatePickerMonth, mergeProps({
22721
22804
  "key": "date-picker-month"
22722
22805
  }, datePickerMonthProps, {
@@ -22841,9 +22924,9 @@ const VEmptyState = genericComponent()({
22841
22924
  }, [slots.title?.() ?? props.title]), hasText && createElementVNode("div", {
22842
22925
  "key": "text",
22843
22926
  "class": "v-empty-state__text",
22844
- "style": normalizeStyle({
22927
+ "style": {
22845
22928
  maxWidth: convertToUnit(props.textWidth)
22846
- })
22929
+ }
22847
22930
  }, [slots.text?.() ?? props.text]), slots.default && createElementVNode("div", {
22848
22931
  "key": "content",
22849
22932
  "class": "v-empty-state__content"
@@ -23708,9 +23791,9 @@ const VInfiniteScrollIntersect = defineComponent({
23708
23791
  });
23709
23792
  useRender(() => createElementVNode("div", {
23710
23793
  "class": "v-infinite-scroll-intersect",
23711
- "style": normalizeStyle({
23794
+ "style": {
23712
23795
  '--v-infinite-margin-size': props.rootMargin
23713
- }),
23796
+ },
23714
23797
  "ref": intersectionRef
23715
23798
  }, [createTextVNode("\xA0")]));
23716
23799
  return {};
@@ -24866,22 +24949,18 @@ const VNumberInput = genericComponent()({
24866
24949
  const controlNodeDefaultHeight = toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
24867
24950
  const incrementSlotProps = {
24868
24951
  props: {
24869
- style: {
24870
- touchAction: 'none'
24871
- },
24872
24952
  onClick: onControlClick,
24873
24953
  onPointerup: onControlMouseup,
24874
- onPointerdown: onUpControlMousedown
24954
+ onPointerdown: onUpControlMousedown,
24955
+ onPointercancel: onControlPointerCancel
24875
24956
  }
24876
24957
  };
24877
24958
  const decrementSlotProps = {
24878
24959
  props: {
24879
- style: {
24880
- touchAction: 'none'
24881
- },
24882
24960
  onClick: onControlClick,
24883
24961
  onPointerup: onControlMouseup,
24884
- onPointerdown: onDownControlMousedown
24962
+ onPointerdown: onDownControlMousedown,
24963
+ onPointercancel: onControlPointerCancel
24885
24964
  }
24886
24965
  };
24887
24966
  watch(() => props.precision, () => formatInputValue());
@@ -24978,6 +25057,11 @@ const VNumberInput = genericComponent()({
24978
25057
  e.stopPropagation();
24979
25058
  holdStart('down');
24980
25059
  }
25060
+ function onControlPointerCancel(e) {
25061
+ const el = e.currentTarget;
25062
+ el?.releasePointerCapture(e.pointerId);
25063
+ holdStop();
25064
+ }
24981
25065
  function clampModel() {
24982
25066
  if (controlsDisabled.value) return;
24983
25067
  if (!vTextFieldRef.value) return;
@@ -25029,8 +25113,8 @@ const VNumberInput = genericComponent()({
25029
25113
  "onClick": onControlClick,
25030
25114
  "onPointerdown": onUpControlMousedown,
25031
25115
  "onPointerup": onControlMouseup,
25116
+ "onPointercancel": onControlPointerCancel,
25032
25117
  "size": controlNodeSize.value,
25033
- "style": "touch-action: none",
25034
25118
  "tabindex": "-1"
25035
25119
  }, null) : createVNode(VDefaultsProvider, {
25036
25120
  "key": "increment-defaults",
@@ -25059,8 +25143,8 @@ const VNumberInput = genericComponent()({
25059
25143
  "onClick": onControlClick,
25060
25144
  "onPointerdown": onDownControlMousedown,
25061
25145
  "onPointerup": onControlMouseup,
25146
+ "onPointercancel": onControlPointerCancel,
25062
25147
  "size": controlNodeSize.value,
25063
- "style": "touch-action: none",
25064
25148
  "tabindex": "-1"
25065
25149
  }, null) : createVNode(VDefaultsProvider, {
25066
25150
  "key": "decrement-defaults",
@@ -25320,7 +25404,7 @@ const VOtpInput = genericComponent()({
25320
25404
  "aria-label": t(props.label, i + 1),
25321
25405
  "autofocus": i === 0 && props.autofocus,
25322
25406
  "autocomplete": "one-time-code",
25323
- "class": ['v-otp-input__field'],
25407
+ "class": normalizeClass(['v-otp-input__field']),
25324
25408
  "disabled": props.disabled,
25325
25409
  "inputmode": props.type === 'number' ? 'numeric' : 'text',
25326
25410
  "min": props.type === 'number' ? 0 : undefined,
@@ -29548,18 +29632,14 @@ const VDateInput = genericComponent()({
29548
29632
  const parts = value.trim().split(/\D+-\D+|[^\d\-/.]+/);
29549
29633
  if (parts.every(isValid)) {
29550
29634
  if (props.multiple === 'range') {
29551
- model.value = getRange(parts);
29635
+ const [start, stop] = parts.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
29636
+ model.value = adapter.createDateRange(start, stop);
29552
29637
  } else {
29553
29638
  model.value = parts.map(parseDate);
29554
29639
  }
29555
29640
  }
29556
29641
  }
29557
29642
  }
29558
- function getRange(inputDates) {
29559
- const [start, stop] = inputDates.map(parseDate).toSorted((a, b) => adapter.isAfter(a, b) ? 1 : -1);
29560
- const diff = adapter.getDiff(stop ?? start, start, 'days');
29561
- return [start, ...createRange(diff, 1).map(i => adapter.addDays(start, i))];
29562
- }
29563
29643
  useRender(() => {
29564
29644
  const confirmEditProps = VConfirmEdit.filterProps(props);
29565
29645
  const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
@@ -30436,7 +30516,7 @@ const VPullToRefresh = genericComponent()({
30436
30516
  });
30437
30517
  useRender(() => {
30438
30518
  return createElementVNode("div", {
30439
- "class": ['v-pull-to-refresh'],
30519
+ "class": normalizeClass(['v-pull-to-refresh']),
30440
30520
  "onTouchstart": onTouchstart,
30441
30521
  "onTouchmove": onTouchmove,
30442
30522
  "onTouchend": onTouchend,
@@ -30449,16 +30529,16 @@ const VPullToRefresh = genericComponent()({
30449
30529
  "class": normalizeClass(['v-pull-to-refresh__pull-down', {
30450
30530
  'v-pull-to-refresh__pull-down--touching': touching.value
30451
30531
  }]),
30452
- "style": normalizeStyle({
30532
+ "style": {
30453
30533
  top: convertToUnit(-1 * props.pullDownThreshold + topOffset.value),
30454
30534
  height: convertToUnit(props.pullDownThreshold)
30455
- })
30535
+ }
30456
30536
  }, [slots.pullDownPanel ? slots.pullDownPanel({
30457
30537
  canRefresh: canRefresh.value,
30458
30538
  goingUp: goingUp.value,
30459
30539
  refreshing: refreshing.value
30460
30540
  }) : createElementVNode("div", {
30461
- "class": ['v-pull-to-refresh__pull-down-default']
30541
+ "class": normalizeClass(['v-pull-to-refresh__pull-down-default'])
30462
30542
  }, [refreshing.value ? createVNode(VProgressCircular, {
30463
30543
  "indeterminate": true,
30464
30544
  "active": false
@@ -30468,9 +30548,9 @@ const VPullToRefresh = genericComponent()({
30468
30548
  "class": normalizeClass(['v-pull-to-refresh__scroll-container', {
30469
30549
  'v-pull-to-refresh__scroll-container--touching': touching.value
30470
30550
  }]),
30471
- "style": normalizeStyle({
30551
+ "style": {
30472
30552
  top: convertToUnit(topOffset.value)
30473
- })
30553
+ }
30474
30554
  }, [slots.default?.()])]);
30475
30555
  });
30476
30556
  }
@@ -32011,7 +32091,7 @@ function createVuetify$1() {
32011
32091
  };
32012
32092
  });
32013
32093
  }
32014
- const version$1 = "3.8.7";
32094
+ const version$1 = "3.8.8";
32015
32095
  createVuetify$1.version = version$1;
32016
32096
 
32017
32097
  // Vue's inject() can only be used in setup
@@ -32309,7 +32389,7 @@ var index = /*#__PURE__*/Object.freeze({
32309
32389
 
32310
32390
  /* eslint-disable local-rules/sort-imports */
32311
32391
 
32312
- const version = "3.8.7";
32392
+ const version = "3.8.8";
32313
32393
 
32314
32394
  /* eslint-disable local-rules/sort-imports */
32315
32395