vuetify 3.2.0 → 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 (68) hide show
  1. package/dist/json/attributes.json +775 -639
  2. package/dist/json/importMap.json +8 -8
  3. package/dist/json/tags.json +35 -1
  4. package/dist/json/web-types.json +1657 -1327
  5. package/dist/vuetify-labs.css +389 -383
  6. package/dist/vuetify-labs.d.ts +419 -89
  7. package/dist/vuetify-labs.esm.js +113 -98
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +112 -97
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +60 -54
  12. package/dist/vuetify.d.ts +522 -192
  13. package/dist/vuetify.esm.js +108 -98
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +107 -97
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +49 -49
  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/defaults.mjs +11 -1
  53. package/lib/composables/defaults.mjs.map +1 -1
  54. package/lib/composables/icons.mjs +2 -2
  55. package/lib/composables/icons.mjs.map +1 -1
  56. package/lib/composables/scroll.mjs +16 -17
  57. package/lib/composables/scroll.mjs.map +1 -1
  58. package/lib/entry-bundler.mjs +1 -1
  59. package/lib/framework.mjs +1 -1
  60. package/lib/framework.mjs.map +1 -1
  61. package/lib/index.d.ts +4 -7
  62. package/lib/labs/VDataTable/composables/paginate.mjs +6 -1
  63. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  64. package/lib/locale/el.mjs +0 -0
  65. package/lib/locale/index.mjs +0 -0
  66. package/lib/util/defineComponent.mjs +2 -2
  67. package/lib/util/defineComponent.mjs.map +1 -1
  68. package/package.json +2 -2
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.2.0
2
+ * Vuetify v3.2.2
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1016,7 +1016,7 @@
1016
1016
  function propIsDefined(vnode, prop) {
1017
1017
  return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
1018
1018
  }
1019
- function useDefaults() {
1019
+ function internalUseDefaults() {
1020
1020
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1021
1021
  let name = arguments.length > 1 ? arguments[1] : undefined;
1022
1022
  let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();
@@ -1060,6 +1060,16 @@
1060
1060
  provideSubDefaults
1061
1061
  };
1062
1062
  }
1063
+ function useDefaults() {
1064
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1065
+ let name = arguments.length > 1 ? arguments[1] : undefined;
1066
+ const {
1067
+ props: _props,
1068
+ provideSubDefaults
1069
+ } = internalUseDefaults(props, name);
1070
+ provideSubDefaults();
1071
+ return _props;
1072
+ }
1063
1073
 
1064
1074
  // Utils
1065
1075
 
@@ -1087,7 +1097,7 @@
1087
1097
  const {
1088
1098
  props: _props,
1089
1099
  provideSubDefaults
1090
- } = useDefaults(props, props._as ?? options.name, defaults);
1100
+ } = internalUseDefaults(props, props._as ?? options.name, defaults);
1091
1101
  const setupBindings = options._setup(_props, ctx);
1092
1102
  provideSubDefaults();
1093
1103
  return setupBindings;
@@ -3330,14 +3340,13 @@
3330
3340
  type: String
3331
3341
  },
3332
3342
  scrollThreshold: {
3333
- type: [String, Number]
3343
+ type: [String, Number],
3344
+ default: 300
3334
3345
  }
3335
3346
  }, 'scroll');
3336
3347
  function useScroll(props) {
3337
3348
  let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3338
3349
  const {
3339
- thresholdMetCallback,
3340
- scrollThreshold,
3341
3350
  canScroll
3342
3351
  } = args;
3343
3352
  let previousScroll = 0;
@@ -3347,8 +3356,16 @@
3347
3356
  const currentThreshold = vue.ref(0);
3348
3357
  const isScrollActive = vue.ref(false);
3349
3358
  const isScrollingUp = vue.ref(false);
3350
- const computedScrollThreshold = vue.computed(() => {
3351
- return Number(props.scrollThreshold ?? scrollThreshold ?? 300);
3359
+ const scrollThreshold = vue.computed(() => {
3360
+ return Number(props.scrollThreshold);
3361
+ });
3362
+
3363
+ /**
3364
+ * 1: at top
3365
+ * 0: at threshold
3366
+ */
3367
+ const scrollRatio = vue.computed(() => {
3368
+ return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);
3352
3369
  });
3353
3370
  const onScroll = () => {
3354
3371
  const targetEl = target.value;
@@ -3356,7 +3373,7 @@
3356
3373
  previousScroll = currentScroll.value;
3357
3374
  currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
3358
3375
  isScrollingUp.value = currentScroll.value < previousScroll;
3359
- currentThreshold.value = Math.abs(currentScroll.value - computedScrollThreshold.value);
3376
+ currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
3360
3377
  };
3361
3378
  vue.watch(isScrollingUp, () => {
3362
3379
  savedScroll.value = savedScroll.value || currentScroll.value;
@@ -3384,15 +3401,6 @@
3384
3401
  vue.onBeforeUnmount(() => {
3385
3402
  target.value?.removeEventListener('scroll', onScroll);
3386
3403
  });
3387
- thresholdMetCallback && vue.watch(() => Math.abs(currentScroll.value - savedScroll.value) > computedScrollThreshold.value, thresholdMet => {
3388
- thresholdMet && thresholdMetCallback({
3389
- currentThreshold: currentThreshold.value,
3390
- isScrollingUp: isScrollingUp.value,
3391
- savedScroll
3392
- });
3393
- }, {
3394
- immediate: true
3395
- });
3396
3404
 
3397
3405
  // Do we need this? If yes - seems that
3398
3406
  // there's no need to expose onScroll
@@ -3400,10 +3408,11 @@
3400
3408
  immediate: true
3401
3409
  });
3402
3410
  return {
3403
- computedScrollThreshold,
3411
+ scrollThreshold,
3404
3412
  currentScroll,
3405
3413
  currentThreshold,
3406
3414
  isScrollActive,
3415
+ scrollRatio,
3407
3416
  // required only for testing
3408
3417
  // probably can be removed
3409
3418
  // later (2 chars chlng)
@@ -3486,15 +3495,14 @@
3486
3495
  });
3487
3496
  const {
3488
3497
  currentScroll,
3489
- currentThreshold,
3490
- computedScrollThreshold,
3491
- isScrollingUp
3498
+ scrollThreshold,
3499
+ isScrollingUp,
3500
+ scrollRatio
3492
3501
  } = useScroll(props, {
3493
3502
  canScroll
3494
3503
  });
3495
- const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? currentScroll.value < 1 : currentScroll.value > 0));
3496
- const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && currentScroll.value === (scrollBehavior.value.inverted ? 1 : 0));
3497
- const scrollRatio = vue.computed(() => Math.min((currentThreshold.value - currentScroll.value) / currentThreshold.value || 1, 1));
3504
+ const isCollapsed = vue.computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
3505
+ const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
3498
3506
  const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
3499
3507
  const height = vue.computed(() => {
3500
3508
  if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
@@ -3503,15 +3511,12 @@
3503
3511
  return height + extensionHeight;
3504
3512
  });
3505
3513
  function setActive() {
3506
- const val = currentScroll.value;
3507
3514
  if (scrollBehavior.value.hide) {
3508
3515
  if (scrollBehavior.value.inverted) {
3509
- isActive.value = val > computedScrollThreshold.value;
3516
+ isActive.value = currentScroll.value > scrollThreshold.value;
3510
3517
  } else {
3511
- isActive.value = isScrollingUp.value || val < computedScrollThreshold.value;
3518
+ isActive.value = isScrollingUp.value || currentScroll.value < scrollThreshold.value;
3512
3519
  }
3513
- } else if (scrollBehavior.value.inverted) {
3514
- isActive.value = currentScroll.value === 0;
3515
3520
  } else {
3516
3521
  isActive.value = true;
3517
3522
  }
@@ -4087,7 +4092,7 @@
4087
4092
  const icons = vue.inject(IconSymbol);
4088
4093
  if (!icons) throw new Error('Missing Vuetify Icons provide!');
4089
4094
  const iconData = vue.computed(() => {
4090
- const iconAlias = vue.isRef(props) ? props.value : props.icon;
4095
+ const iconAlias = vue.unref(props);
4091
4096
  if (!iconAlias) return {
4092
4097
  component: VComponentIcon
4093
4098
  };
@@ -4154,8 +4159,6 @@
4154
4159
  });
4155
4160
  }
4156
4161
 
4157
- // Types
4158
-
4159
4162
  const makeVIconProps = propsFactory({
4160
4163
  color: String,
4161
4164
  start: Boolean,
@@ -4176,20 +4179,13 @@
4176
4179
  attrs,
4177
4180
  slots
4178
4181
  } = _ref;
4179
- let slotIcon;
4180
- if (slots.default) {
4181
- slotIcon = vue.computed(() => {
4182
- const slot = slots.default?.();
4183
- if (!slot) return;
4184
- return slot.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
4185
- });
4186
- }
4182
+ const slotIcon = vue.ref();
4187
4183
  const {
4188
4184
  themeClasses
4189
4185
  } = provideTheme(props);
4190
4186
  const {
4191
4187
  iconData
4192
- } = useIcon(slotIcon || props);
4188
+ } = useIcon(vue.computed(() => slotIcon.value || props.icon));
4193
4189
  const {
4194
4190
  sizeClasses
4195
4191
  } = useSize(props);
@@ -4197,24 +4193,30 @@
4197
4193
  textColorClasses,
4198
4194
  textColorStyles
4199
4195
  } = useTextColor(vue.toRef(props, 'color'));
4200
- useRender(() => vue.createVNode(iconData.value.component, {
4201
- "tag": props.tag,
4202
- "icon": iconData.value.icon,
4203
- "class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
4204
- 'v-icon--clickable': !!attrs.onClick,
4205
- 'v-icon--start': props.start,
4206
- 'v-icon--end': props.end
4207
- }, props.class],
4208
- "style": [!sizeClasses.value ? {
4209
- fontSize: convertToUnit(props.size),
4210
- height: convertToUnit(props.size),
4211
- width: convertToUnit(props.size)
4212
- } : undefined, textColorStyles.value, props.style],
4213
- "role": attrs.onClick ? 'button' : undefined,
4214
- "aria-hidden": !attrs.onClick
4215
- }, {
4216
- default: () => [slots.default?.()]
4217
- }));
4196
+ useRender(() => {
4197
+ const slotValue = slots.default?.();
4198
+ if (slotValue) {
4199
+ slotIcon.value = slotValue.filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
4200
+ }
4201
+ return vue.createVNode(iconData.value.component, {
4202
+ "tag": props.tag,
4203
+ "icon": iconData.value.icon,
4204
+ "class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
4205
+ 'v-icon--clickable': !!attrs.onClick,
4206
+ 'v-icon--start': props.start,
4207
+ 'v-icon--end': props.end
4208
+ }, props.class],
4209
+ "style": [!sizeClasses.value ? {
4210
+ fontSize: convertToUnit(props.size),
4211
+ height: convertToUnit(props.size),
4212
+ width: convertToUnit(props.size)
4213
+ } : undefined, textColorStyles.value, props.style],
4214
+ "role": attrs.onClick ? 'button' : undefined,
4215
+ "aria-hidden": !attrs.onClick
4216
+ }, {
4217
+ default: () => [slotValue]
4218
+ });
4219
+ });
4218
4220
  return {};
4219
4221
  }
4220
4222
  });
@@ -5051,7 +5053,7 @@
5051
5053
  ...makeVariantProps({
5052
5054
  variant: 'elevated'
5053
5055
  })
5054
- }, 'VBtn');
5056
+ }, 'v-btn');
5055
5057
  const VBtn = genericComponent()({
5056
5058
  name: 'VBtn',
5057
5059
  directives: {
@@ -5121,6 +5123,11 @@
5121
5123
  if (props.value === undefined) return undefined;
5122
5124
  return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
5123
5125
  });
5126
+ function onClick(e) {
5127
+ if (isDisabled.value) return;
5128
+ link.navigate?.(e);
5129
+ group?.toggle();
5130
+ }
5124
5131
  useSelectLink(link, group?.select);
5125
5132
  useRender(() => {
5126
5133
  const Tag = link.isLink.value ? 'a' : props.tag;
@@ -5143,11 +5150,7 @@
5143
5150
  "style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
5144
5151
  "disabled": isDisabled.value || undefined,
5145
5152
  "href": link.href.value,
5146
- "onClick": e => {
5147
- if (isDisabled.value) return;
5148
- link.navigate?.(e);
5149
- group?.toggle();
5150
- },
5153
+ "onClick": onClick,
5151
5154
  "value": valueAttr.value
5152
5155
  }, {
5153
5156
  default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createVNode("span", {
@@ -5213,22 +5216,17 @@
5213
5216
 
5214
5217
  const VAppBarNavIcon = genericComponent()({
5215
5218
  name: 'VAppBarNavIcon',
5216
- props: {
5217
- icon: {
5218
- type: IconValue,
5219
- default: '$menu'
5220
- },
5221
- ...makeComponentProps()
5222
- },
5219
+ props: makeVBtnProps({
5220
+ icon: '$menu',
5221
+ variant: 'text'
5222
+ }),
5223
5223
  setup(props, _ref) {
5224
5224
  let {
5225
5225
  slots
5226
5226
  } = _ref;
5227
- useRender(() => vue.createVNode(VBtn, {
5228
- "class": ['v-app-bar-nav-icon', props.class],
5229
- "icon": props.icon,
5230
- "style": props.style
5231
- }, slots));
5227
+ useRender(() => vue.createVNode(VBtn, vue.mergeProps(props, {
5228
+ "class": ['v-app-bar-nav-icon']
5229
+ }), slots));
5232
5230
  return {};
5233
5231
  }
5234
5232
  });
@@ -6431,7 +6429,7 @@
6431
6429
  const vInputRef = vue.ref();
6432
6430
  const vFieldRef = vue.ref();
6433
6431
  const inputRef = vue.ref();
6434
- const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value);
6432
+ const isActive = vue.computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);
6435
6433
  function onFocus() {
6436
6434
  if (inputRef.value !== document.activeElement) {
6437
6435
  inputRef.value?.focus();
@@ -6867,7 +6865,6 @@
6867
6865
  "class": ['v-checkbox-btn', props.class],
6868
6866
  "style": props.style,
6869
6867
  "type": "checkbox",
6870
- "inline": true,
6871
6868
  "falseIcon": falseIcon.value,
6872
6869
  "trueIcon": trueIcon.value,
6873
6870
  "aria-checked": props.indeterminate ? 'mixed' : undefined
@@ -10366,11 +10363,13 @@
10366
10363
  let {
10367
10364
  isSelected
10368
10365
  } = _ref2;
10369
- return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
10366
+ return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
10370
10367
  "modelValue": isSelected,
10371
10368
  "ripple": false,
10372
10369
  "tabindex": "-1"
10373
- }, null) : undefined;
10370
+ }, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
10371
+ "icon": item.props.prependIcon
10372
+ }, null)]);
10374
10373
  }
10375
10374
  });
10376
10375
  }), slots['append-item']?.()]
@@ -10383,6 +10382,10 @@
10383
10382
  }
10384
10383
  const slotProps = {
10385
10384
  'onClick:close': onChipClose,
10385
+ onMousedown(e) {
10386
+ e.preventDefault();
10387
+ e.stopPropagation();
10388
+ },
10386
10389
  modelValue: true,
10387
10390
  'onUpdate:modelValue': undefined
10388
10391
  };
@@ -10726,6 +10729,7 @@
10726
10729
  isPristine.value = true;
10727
10730
  vue.nextTick(() => isSelecting.value = false);
10728
10731
  } else {
10732
+ if (!props.multiple && !search.value) model.value = [];
10729
10733
  menu.value = false;
10730
10734
  search.value = '';
10731
10735
  }
@@ -10805,11 +10809,13 @@
10805
10809
  let {
10806
10810
  isSelected
10807
10811
  } = _ref2;
10808
- return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
10812
+ return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
10809
10813
  "modelValue": isSelected,
10810
10814
  "ripple": false,
10811
10815
  "tabindex": "-1"
10812
- }, null) : undefined;
10816
+ }, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
10817
+ "icon": item.props.prependIcon
10818
+ }, null)]);
10813
10819
  },
10814
10820
  title: () => {
10815
10821
  return isPristine.value ? item.title : highlightResult$1(item.title, getMatches(item)?.title, search.value?.length ?? 0);
@@ -10824,6 +10830,10 @@
10824
10830
  }
10825
10831
  const slotProps = {
10826
10832
  'onClick:close': onChipClose,
10833
+ onMousedown(e) {
10834
+ e.preventDefault();
10835
+ e.stopPropagation();
10836
+ },
10827
10837
  modelValue: true,
10828
10838
  'onUpdate:modelValue': undefined
10829
10839
  };
@@ -14250,11 +14260,13 @@
14250
14260
  let {
14251
14261
  isSelected
14252
14262
  } = _ref2;
14253
- return props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
14263
+ return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
14254
14264
  "modelValue": isSelected,
14255
14265
  "ripple": false,
14256
14266
  "tabindex": "-1"
14257
- }, null) : undefined;
14267
+ }, null) : undefined, item.props.prependIcon && vue.createVNode(VIcon, {
14268
+ "icon": item.props.prependIcon
14269
+ }, null)]);
14258
14270
  },
14259
14271
  title: () => {
14260
14272
  return isPristine.value ? item.title : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0);
@@ -14269,6 +14281,10 @@
14269
14281
  }
14270
14282
  const slotProps = {
14271
14283
  'onClick:close': onChipClose,
14284
+ onMousedown(e) {
14285
+ e.preventDefault();
14286
+ e.stopPropagation();
14287
+ },
14272
14288
  modelValue: true,
14273
14289
  'onUpdate:modelValue': undefined
14274
14290
  };
@@ -14732,6 +14748,7 @@
14732
14748
  const vInputRef = vue.ref();
14733
14749
  const vFieldRef = vue.ref();
14734
14750
  const inputRef = vue.ref();
14751
+ const isActive = vue.computed(() => isFocused.value || props.active);
14735
14752
  function onFocus() {
14736
14753
  if (inputRef.value !== document.activeElement) {
14737
14754
  inputRef.value?.focus();
@@ -14800,7 +14817,7 @@
14800
14817
  "onClick:appendInner": props['onClick:appendInner']
14801
14818
  }, fieldProps, {
14802
14819
  "id": id.value,
14803
- "active": isDirty.value || isFocused.value,
14820
+ "active": isActive.value || isDirty.value,
14804
14821
  "dirty": isDirty.value,
14805
14822
  "disabled": isDisabled.value,
14806
14823
  "focused": isFocused.value,
@@ -15966,7 +15983,6 @@
15966
15983
  });
15967
15984
  const {
15968
15985
  layoutItemStyles,
15969
- layoutRect,
15970
15986
  layoutItemScrimStyles
15971
15987
  } = useLayoutItem({
15972
15988
  id: props.name,
@@ -15996,12 +16012,6 @@
15996
16012
  opacity: dragProgress.value * 0.2,
15997
16013
  transition: 'none'
15998
16014
  } : undefined),
15999
- ...(layoutRect.value ? {
16000
- left: convertToUnit(layoutRect.value.left),
16001
- right: convertToUnit(layoutRect.value.right),
16002
- top: convertToUnit(layoutRect.value.top),
16003
- bottom: convertToUnit(layoutRect.value.bottom)
16004
- } : undefined),
16005
16015
  ...layoutItemScrimStyles.value
16006
16016
  }));
16007
16017
  provideDefaults({
@@ -17965,7 +17975,7 @@
17965
17975
  const vFieldRef = vue.ref();
17966
17976
  const controlHeight = vue.ref('');
17967
17977
  const textareaRef = vue.ref();
17968
- const isActive = vue.computed(() => isFocused.value || props.persistentPlaceholder);
17978
+ const isActive = vue.computed(() => props.persistentPlaceholder || isFocused.value || props.active);
17969
17979
  function onFocus() {
17970
17980
  if (textareaRef.value !== document.activeElement) {
17971
17981
  textareaRef.value?.focus();
@@ -19421,7 +19431,7 @@
19421
19431
  date
19422
19432
  };
19423
19433
  }
19424
- const version$1 = "3.2.0";
19434
+ const version$1 = "3.2.2";
19425
19435
  createVuetify$1.version = version$1;
19426
19436
 
19427
19437
  // Vue's inject() can only be used in setup
@@ -19441,7 +19451,7 @@
19441
19451
  ...options
19442
19452
  });
19443
19453
  };
19444
- const version = "3.2.0";
19454
+ const version = "3.2.2";
19445
19455
  createVuetify.version = version;
19446
19456
 
19447
19457
  exports.components = components;