vuetify 3.2.1 → 3.2.2

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 (64) hide show
  1. package/dist/json/attributes.json +775 -639
  2. package/dist/json/importMap.json +16 -16
  3. package/dist/json/tags.json +35 -1
  4. package/dist/json/web-types.json +1657 -1327
  5. package/dist/vuetify-labs.css +131 -125
  6. package/dist/vuetify-labs.d.ts +419 -86
  7. package/dist/vuetify-labs.esm.js +100 -95
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +100 -95
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +53 -47
  12. package/dist/vuetify.d.ts +524 -191
  13. package/dist/vuetify.esm.js +95 -95
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +95 -95
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +46 -48
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAppBar/VAppBar.mjs +7 -11
  21. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  22. package/lib/components/VAppBar/VAppBarNavIcon.mjs +10 -16
  23. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  24. package/lib/components/VAppBar/index.d.ts +394 -28
  25. package/lib/components/VAutocomplete/VAutocomplete.css +1 -1
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs +10 -2
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  28. package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
  29. package/lib/components/VBtn/VBtn.mjs +7 -6
  30. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  31. package/lib/components/VCheckbox/VCheckboxBtn.mjs +0 -1
  32. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  33. package/lib/components/VCombobox/VCombobox.mjs +9 -2
  34. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  35. package/lib/components/VFileInput/VFileInput.mjs +2 -1
  36. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  37. package/lib/components/VIcon/VIcon.mjs +28 -29
  38. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  39. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -8
  40. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  41. package/lib/components/VSelect/VSelect.mjs +9 -2
  42. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  43. package/lib/components/VSheet/VSheet.css +6 -0
  44. package/lib/components/VSheet/_variables.scss +1 -1
  45. package/lib/components/VTextField/VTextField.mjs +1 -1
  46. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  47. package/lib/components/VTextarea/VTextarea.mjs +1 -1
  48. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  49. package/lib/components/VTreeview/_mixins.sass +0 -0
  50. package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -0
  51. package/lib/components/index.d.ts +386 -53
  52. package/lib/composables/icons.mjs +2 -2
  53. package/lib/composables/icons.mjs.map +1 -1
  54. package/lib/composables/scroll.mjs +16 -17
  55. package/lib/composables/scroll.mjs.map +1 -1
  56. package/lib/entry-bundler.mjs +1 -1
  57. package/lib/framework.mjs +1 -1
  58. package/lib/framework.mjs.map +1 -1
  59. package/lib/index.d.ts +5 -5
  60. package/lib/labs/VDataTable/composables/paginate.mjs +6 -1
  61. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  62. package/lib/locale/el.mjs +0 -0
  63. package/lib/locale/index.mjs +0 -0
  64. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.2.1
2
+ * Vuetify v3.2.2
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -3344,14 +3344,13 @@
3344
3344
  type: String
3345
3345
  },
3346
3346
  scrollThreshold: {
3347
- type: [String, Number]
3347
+ type: [String, Number],
3348
+ default: 300
3348
3349
  }
3349
3350
  }, 'scroll');
3350
3351
  function useScroll(props) {
3351
3352
  let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3352
3353
  const {
3353
- thresholdMetCallback,
3354
- scrollThreshold,
3355
3354
  canScroll
3356
3355
  } = args;
3357
3356
  let previousScroll = 0;
@@ -3361,8 +3360,16 @@
3361
3360
  const currentThreshold = vue.ref(0);
3362
3361
  const isScrollActive = vue.ref(false);
3363
3362
  const isScrollingUp = vue.ref(false);
3364
- const computedScrollThreshold = vue.computed(() => {
3365
- return Number(props.scrollThreshold ?? scrollThreshold ?? 300);
3363
+ const scrollThreshold = vue.computed(() => {
3364
+ return Number(props.scrollThreshold);
3365
+ });
3366
+
3367
+ /**
3368
+ * 1: at top
3369
+ * 0: at threshold
3370
+ */
3371
+ const scrollRatio = vue.computed(() => {
3372
+ return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);
3366
3373
  });
3367
3374
  const onScroll = () => {
3368
3375
  const targetEl = target.value;
@@ -3370,7 +3377,7 @@
3370
3377
  previousScroll = currentScroll.value;
3371
3378
  currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
3372
3379
  isScrollingUp.value = currentScroll.value < previousScroll;
3373
- currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value);
3380
+ currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
3374
3381
  };
3375
3382
  vue.watch(isScrollingUp, () => {
3376
3383
  savedScroll.value = savedScroll.value || currentScroll.value;
@@ -3398,15 +3405,6 @@
3398
3405
  vue.onBeforeUnmount(() => {
3399
3406
  target.value?.removeEventListener('scroll', onScroll);
3400
3407
  });
3401
- thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
3402
- thresholdMet && thresholdMetCallback({
3403
- currentThreshold: currentThreshold.value,
3404
- isScrollingUp: isScrollingUp.value,
3405
- savedScroll
3406
- });
3407
- }, {
3408
- immediate: true
3409
- });
3410
3408
 
3411
3409
  // Do we need this? If yes - seems that
3412
3410
  // there's no need to expose onScroll
@@ -3414,10 +3412,11 @@
3414
3412
  immediate: true
3415
3413
  });
3416
3414
  return {
3417
- computedScrollThreshold,
3415
+ scrollThreshold,
3418
3416
  currentScroll,
3419
3417
  currentThreshold,
3420
3418
  isScrollActive,
3419
+ scrollRatio,
3421
3420
  // required only for testing
3422
3421
  // probably can be removed
3423
3422
  // later (2 chars chlng)
@@ -3500,15 +3499,14 @@
3500
3499
  });
3501
3500
  const {
3502
3501
  currentScroll,
3503
- currentThreshold,
3504
- computedScrollThreshold,
3505
- isScrollingUp
3502
+ scrollThreshold,
3503
+ isScrollingUp,
3504
+ scrollRatio
3506
3505
  } = useScroll(props, {
3507
3506
  canScroll
3508
3507
  });
3509
- const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? currentScroll.value < 1 : currentScroll.value > 0));
3510
- const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && currentScroll.value === (scrollBehavior.value.inverted ? 1 : 0));
3511
- const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
3508
+ const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
3509
+ const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
3512
3510
  const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
3513
3511
  const height = vue.computed(() => {
3514
3512
  if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
@@ -3517,15 +3515,12 @@
3517
3515
  return height + extensionHeight;
3518
3516
  });
3519
3517
  function setActive() {
3520
- const val = currentScroll.value;
3521
3518
  if (scrollBehavior.value.hide) {
3522
3519
  if (scrollBehavior.value.inverted) {
3523
- isActive.value = val > computedScrollThreshold.value;
3520
+ isActive.value = currentScroll.value > scrollThreshold.value;
3524
3521
  } else {
3525
- isActive.value = isScrollingUp.value || val < computedScrollThreshold.value;
3522
+ isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
3526
3523
  }
3527
- } else if (scrollBehavior.value.inverted) {
3528
- isActive.value = currentScroll.value === 0;
3529
3524
  } else {
3530
3525
  isActive.value = true;
3531
3526
  }
@@ -4101,7 +4096,7 @@
4101
4096
  const icons = vue.inject(IconSymbol);
4102
4097
  if (!icons) throw new Error('Missing Vuetify Icons provide!');
4103
4098
  const iconData = vue.computed(() => {
4104
- const iconAlias = vue.isRef(props) ? props.value : props.icon;
4099
+ const iconAlias = vue.unref(props);
4105
4100
  if (!iconAlias) return {
4106
4101
  component: VComponentIcon
4107
4102
  };
@@ -4168,8 +4163,6 @@
4168
4163
  });
4169
4164
  }
4170
4165
 
4171
- // Types
4172
-
4173
4166
  const makeVIconProps = propsFactory({
4174
4167
  color: String,
4175
4168
  start: Boolean,
@@ -4190,20 +4183,13 @@
4190
4183
  attrs,
4191
4184
  slots
4192
4185
  } = _ref;
4193
- let slotIcon;
4194
- if (slots.default) {
4195
- slotIcon = vue.computed(() => {
4196
- const slot = slots.default?.();
4197
- if (!slot) return;
4198
- return slot.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
4199
- });
4200
- }
4186
+ const slotIcon = vue.ref();
4201
4187
  const {
4202
4188
  themeClasses
4203
4189
  } = provideTheme(props);
4204
4190
  const {
4205
4191
  iconData
4206
- } = useIcon(slotIcon || props);
4192
+ } = useIcon(vue.computed(() => slotIcon.value || props.icon));
4207
4193
  const {
4208
4194
  sizeClasses
4209
4195
  } = useSize(props);
@@ -4211,24 +4197,30 @@
4211
4197
  textColorClasses,
4212
4198
  textColorStyles
4213
4199
  } = useTextColor(vue.toRef(props, 'color'));
4214
- useRender(() => vue.createVNode(iconData.value.component, {
4215
- "tag": props.tag,
4216
- "icon": iconData.value.icon,
4217
- "class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
4218
- 'v-icon--clickable': !!attrs.onClick,
4219
- 'v-icon--start': props.start,
4220
- 'v-icon--end': props.end
4221
- }, props.class],
4222
- "style": [!sizeClasses.value ? {
4223
- fontSize: convertToUnit(props.size),
4224
- height: convertToUnit(props.size),
4225
- width: convertToUnit(props.size)
4226
- } : undefined, textColorStyles.value, props.style],
4227
- "role": attrs.onClick ? 'button' : undefined,
4228
- "aria-hidden": !attrs.onClick
4229
- }, {
4230
- default: () => [slots.default?.()]
4231
- }));
4200
+ useRender(() => {
4201
+ const slotValue = slots.default?.();
4202
+ if (slotValue) {
4203
+ slotIcon.value = slotValue.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
4204
+ }
4205
+ return vue.createVNode(iconData.value.component, {
4206
+ "tag": props.tag,
4207
+ "icon": iconData.value.icon,
4208
+ "class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
4209
+ 'v-icon--clickable': !!attrs.onClick,
4210
+ 'v-icon--start': props.start,
4211
+ 'v-icon--end': props.end
4212
+ }, props.class],
4213
+ "style": [!sizeClasses.value ? {
4214
+ fontSize: convertToUnit(props.size),
4215
+ height: convertToUnit(props.size),
4216
+ width: convertToUnit(props.size)
4217
+ } : undefined, textColorStyles.value, props.style],
4218
+ "role": attrs.onClick ? 'button' : undefined,
4219
+ "aria-hidden": !attrs.onClick
4220
+ }, {
4221
+ default: () => [slotValue]
4222
+ });
4223
+ });
4232
4224
  return {};
4233
4225
  }
4234
4226
  });
@@ -5065,7 +5057,7 @@
5065
5057
  ...makeVariantProps({
5066
5058
  variant: 'elevated'
5067
5059
  })
5068
- }, 'VBtn');
5060
+ }, 'v-btn');
5069
5061
  const VBtn = genericComponent()({
5070
5062
  name: 'VBtn',
5071
5063
  directives: {
@@ -5135,6 +5127,11 @@
5135
5127
  if (props.value === undefined) return undefined;
5136
5128
  return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
5137
5129
  });
5130
+ function onClick(e) {
5131
+ if (isDisabled.value) return;
5132
+ link.navigate?.(e);
5133
+ group?.toggle();
5134
+ }
5138
5135
  useSelectLink(link, group?.select);
5139
5136
  useRender(() => {
5140
5137
  const Tag = link.isLink.value ? 'a' : props.tag;
@@ -5157,11 +5154,7 @@
5157
5154
  "style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
5158
5155
  "disabled": isDisabled.value || undefined,
5159
5156
  "href": link.href.value,
5160
- "onClick": e => {
5161
- if (isDisabled.value) return;
5162
- link.navigate?.(e);
5163
- group?.toggle();
5164
- },
5157
+ "onClick": onClick,
5165
5158
  "value": valueAttr.value
5166
5159
  }, {
5167
5160
  default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode("span", {
@@ -5227,22 +5220,17 @@
5227
5220
 
5228
5221
  const VAppBarNavIcon = genericComponent()({
5229
5222
  name: 'VAppBarNavIcon',
5230
- props: {
5231
- icon: {
5232
- type: IconValue,
5233
- default: '$menu'
5234
- },
5235
- ...makeComponentProps()
5236
- },
5223
+ props: makeVBtnProps({
5224
+ icon: '$menu',
5225
+ variant: 'text'
5226
+ }),
5237
5227
  setup(props, _ref) {
5238
5228
  let {
5239
5229
  slots
5240
5230
  } = _ref;
5241
- useRender(() => vue.createVNode(VBtn, {
5242
- "class": ['v-app-bar-nav-icon', props.class],
5243
- "icon": props.icon,
5244
- "style": props.style
5245
- }, slots));
5231
+ useRender(() => vue.createVNode(VBtn, vue.mergeProps(props, {
5232
+ "class": ['v-app-bar-nav-icon']
5233
+ }), slots));
5246
5234
  return {};
5247
5235
  }
5248
5236
  });
@@ -6445,7 +6433,7 @@
6445
6433
  const vInputRef = vue.ref();
6446
6434
  const vFieldRef = vue.ref();
6447
6435
  const inputRef = vue.ref();
6448
- const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value);
6436
+ const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);
6449
6437
  function onFocus() {
6450
6438
  if (inputRef.value !== document.activeElement) {
6451
6439
  inputRef.value?.focus();
@@ -6881,7 +6869,6 @@
6881
6869
  "class": ['v-checkbox-btn', props.class],
6882
6870
  "style": props.style,
6883
6871
  "type": "checkbox",
6884
- "inline": true,
6885
6872
  "falseIcon": falseIcon.value,
6886
6873
  "trueIcon": trueIcon.value,
6887
6874
  "aria-checked": props.indeterminate ? 'mixed' : undefined
@@ -10380,11 +10367,13 @@
10380
10367
  let {
10381
10368
  isSelected
10382
10369
  } = _ref2;
10383
- return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
10370
+ return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
10384
10371
  "modelValue": isSelected,
10385
10372
  "ripple": false,
10386
10373
  "tabindex": "-1"
10387
- }, null) : undefined;
10374
+ }, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
10375
+ "icon": item.props.prependIcon
10376
+ }, null)]);
10388
10377
  }
10389
10378
  });
10390
10379
  }), slots['append-item']?.()]
@@ -10397,6 +10386,10 @@
10397
10386
  }
10398
10387
  const slotProps = {
10399
10388
  'onClick:close': onChipClose,
10389
+ onMousedown(e) {
10390
+ e.preventDefault();
10391
+ e.stopPropagation();
10392
+ },
10400
10393
  modelValue: true,
10401
10394
  'onUpdate:modelValue': undefined
10402
10395
  };
@@ -10740,6 +10733,7 @@
10740
10733
  isPristine.value = true;
10741
10734
  vue.nextTick(() => isSelecting.value = false);
10742
10735
  } else {
10736
+ if (!props.multiple && !search.value) model.value = [];
10743
10737
  menu.value = false;
10744
10738
  search.value = '';
10745
10739
  }
@@ -10819,11 +10813,13 @@
10819
10813
  let {
10820
10814
  isSelected
10821
10815
  } = _ref2;
10822
- return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
10816
+ return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
10823
10817
  "modelValue": isSelected,
10824
10818
  "ripple": false,
10825
10819
  "tabindex": "-1"
10826
- }, null) : undefined;
10820
+ }, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
10821
+ "icon": item.props.prependIcon
10822
+ }, null)]);
10827
10823
  },
10828
10824
  title: () => {
10829
10825
  return isPristine.value ? item.title : highlightResult$1(item.title, getMatches(item)?.title, search.value?.length ?? 0);
@@ -10838,6 +10834,10 @@
10838
10834
  }
10839
10835
  const slotProps = {
10840
10836
  'onClick:close': onChipClose,
10837
+ onMousedown(e) {
10838
+ e.preventDefault();
10839
+ e.stopPropagation();
10840
+ },
10841
10841
  modelValue: true,
10842
10842
  'onUpdate:modelValue': undefined
10843
10843
  };
@@ -14264,11 +14264,13 @@
14264
14264
  let {
14265
14265
  isSelected
14266
14266
  } = _ref2;
14267
- return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
14267
+ return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
14268
14268
  "modelValue": isSelected,
14269
14269
  "ripple": false,
14270
14270
  "tabindex": "-1"
14271
- }, null) : undefined;
14271
+ }, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
14272
+ "icon": item.props.prependIcon
14273
+ }, null)]);
14272
14274
  },
14273
14275
  title: () => {
14274
14276
  return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);
@@ -14283,6 +14285,10 @@
14283
14285
  }
14284
14286
  const slotProps = {
14285
14287
  'onClick:close': onChipClose,
14288
+ onMousedown(e) {
14289
+ e.preventDefault();
14290
+ e.stopPropagation();
14291
+ },
14286
14292
  modelValue: true,
14287
14293
  'onUpdate:modelValue': undefined
14288
14294
  };
@@ -14746,6 +14752,7 @@
14746
14752
  const vInputRef = vue.ref();
14747
14753
  const vFieldRef = vue.ref();
14748
14754
  const inputRef = vue.ref();
14755
+ const isActive = vue.computed(() => isFocused.value || props.active);
14749
14756
  function onFocus() {
14750
14757
  if (inputRef.value !== document.activeElement) {
14751
14758
  inputRef.value?.focus();
@@ -14814,7 +14821,7 @@
14814
14821
  "onClick:appendInner": props['onClick:appendInner']
14815
14822
  }, fieldProps, {
14816
14823
  "id": id.value,
14817
- "active": isDirty.value || isFocused.value,
14824
+ "active": isActive.value || isDirty.value,
14818
14825
  "dirty": isDirty.value,
14819
14826
  "disabled": isDisabled.value,
14820
14827
  "focused": isFocused.value,
@@ -15980,7 +15987,6 @@
15980
15987
  });
15981
15988
  const {
15982
15989
  layoutItemStyles,
15983
- layoutRect,
15984
15990
  layoutItemScrimStyles
15985
15991
  } = useLayoutItem({
15986
15992
  id: props.name,
@@ -16010,12 +16016,6 @@
16010
16016
  opacity: dragProgress.value * 0.2,
16011
16017
  transition: 'none'
16012
16018
  } : undefined),
16013
- ...(layoutRect.value ? {
16014
- left: convertToUnit(layoutRect.value.left),
16015
- right: convertToUnit(layoutRect.value.right),
16016
- top: convertToUnit(layoutRect.value.top),
16017
- bottom: convertToUnit(layoutRect.value.bottom)
16018
- } : undefined),
16019
16019
  ...layoutItemScrimStyles.value
16020
16020
  }));
16021
16021
  provideDefaults({
@@ -17979,7 +17979,7 @@
17979
17979
  const vFieldRef = vue.ref();
17980
17980
  const controlHeight = vue.ref('');
17981
17981
  const textareaRef = vue.ref();
17982
- const isActive = vue.computed(() => isFocused.value || props.persistentPlaceholder);
17982
+ const isActive = vue.computed(() => props.persistentPlaceholder || isFocused.value || props.active);
17983
17983
  function onFocus() {
17984
17984
  if (textareaRef.value !== document.activeElement) {
17985
17985
  textareaRef.value?.focus();
@@ -19670,6 +19670,11 @@
19670
19670
  if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
19671
19671
  return Math.ceil(itemsLength.value / itemsPerPage.value);
19672
19672
  });
19673
+ vue.watchEffect(() => {
19674
+ if (page.value > pageCount.value) {
19675
+ page.value = pageCount.value;
19676
+ }
19677
+ });
19673
19678
  function setItemsPerPage(value) {
19674
19679
  itemsPerPage.value = value;
19675
19680
  page.value = 1;
@@ -21545,7 +21550,7 @@
21545
21550
  date
21546
21551
  };
21547
21552
  }
21548
- const version$1 = "3.2.1";
21553
+ const version$1 = "3.2.2";
21549
21554
  createVuetify$1.version = version$1;
21550
21555
 
21551
21556
  // Vue's inject() can only be used in setup
@@ -21557,7 +21562,7 @@
21557
21562
  }
21558
21563
  }
21559
21564
 
21560
- const version = "3.2.1";
21565
+ const version = "3.2.2";
21561
21566
 
21562
21567
  const createVuetify = function () {
21563
21568
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};