@vue/compat 3.5.31 → 3.5.33

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.
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.31
2
+ * @vue/compat v3.5.33
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -553,7 +553,18 @@ class EffectScope {
553
553
  */
554
554
  off() {
555
555
  if (this._on > 0 && --this._on === 0) {
556
- activeEffectScope = this.prevScope;
556
+ if (activeEffectScope === this) {
557
+ activeEffectScope = this.prevScope;
558
+ } else {
559
+ let current = activeEffectScope;
560
+ while (current) {
561
+ if (current.prevScope === this) {
562
+ current.prevScope = this.prevScope;
563
+ break;
564
+ }
565
+ current = current.prevScope;
566
+ }
567
+ }
557
568
  this.prevScope = void 0;
558
569
  }
559
570
  }
@@ -3783,6 +3794,7 @@ function createPathGetter(ctx, path) {
3783
3794
  };
3784
3795
  }
3785
3796
 
3797
+ const pendingMounts = /* @__PURE__ */ new WeakMap();
3786
3798
  const TeleportEndKey = /* @__PURE__ */ Symbol("_vte");
3787
3799
  const isTeleport = (type) => type.__isTeleport;
3788
3800
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
@@ -3821,94 +3833,90 @@ const TeleportImpl = {
3821
3833
  mc: mountChildren,
3822
3834
  pc: patchChildren,
3823
3835
  pbc: patchBlockChildren,
3824
- o: { insert, querySelector, createText, createComment }
3836
+ o: { insert, querySelector, createText, createComment, parentNode }
3825
3837
  } = internals;
3826
3838
  const disabled = isTeleportDisabled(n2.props);
3827
- let { shapeFlag, children, dynamicChildren } = n2;
3839
+ let { dynamicChildren } = n2;
3828
3840
  if (isHmrUpdating) {
3829
3841
  optimized = false;
3830
3842
  dynamicChildren = null;
3831
3843
  }
3844
+ const mount = (vnode, container2, anchor2) => {
3845
+ if (vnode.shapeFlag & 16) {
3846
+ mountChildren(
3847
+ vnode.children,
3848
+ container2,
3849
+ anchor2,
3850
+ parentComponent,
3851
+ parentSuspense,
3852
+ namespace,
3853
+ slotScopeIds,
3854
+ optimized
3855
+ );
3856
+ }
3857
+ };
3858
+ const mountToTarget = (vnode = n2) => {
3859
+ const disabled2 = isTeleportDisabled(vnode.props);
3860
+ const target = vnode.target = resolveTarget(vnode.props, querySelector);
3861
+ const targetAnchor = prepareAnchor(target, vnode, createText, insert);
3862
+ if (target) {
3863
+ if (namespace !== "svg" && isTargetSVG(target)) {
3864
+ namespace = "svg";
3865
+ } else if (namespace !== "mathml" && isTargetMathML(target)) {
3866
+ namespace = "mathml";
3867
+ }
3868
+ if (parentComponent && parentComponent.isCE) {
3869
+ (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
3870
+ }
3871
+ if (!disabled2) {
3872
+ mount(vnode, target, targetAnchor);
3873
+ updateCssVars(vnode, false);
3874
+ }
3875
+ } else if (!disabled2) {
3876
+ warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`);
3877
+ }
3878
+ };
3879
+ const queuePendingMount = (vnode) => {
3880
+ const mountJob = () => {
3881
+ if (pendingMounts.get(vnode) !== mountJob) return;
3882
+ pendingMounts.delete(vnode);
3883
+ if (isTeleportDisabled(vnode.props)) {
3884
+ const mountContainer = parentNode(vnode.el) || container;
3885
+ mount(vnode, mountContainer, vnode.anchor);
3886
+ updateCssVars(vnode, true);
3887
+ }
3888
+ mountToTarget(vnode);
3889
+ };
3890
+ pendingMounts.set(vnode, mountJob);
3891
+ queuePostRenderEffect(mountJob, parentSuspense);
3892
+ };
3832
3893
  if (n1 == null) {
3833
3894
  const placeholder = n2.el = createComment("teleport start") ;
3834
3895
  const mainAnchor = n2.anchor = createComment("teleport end") ;
3835
3896
  insert(placeholder, container, anchor);
3836
3897
  insert(mainAnchor, container, anchor);
3837
- const mount = (container2, anchor2) => {
3838
- if (shapeFlag & 16) {
3839
- mountChildren(
3840
- children,
3841
- container2,
3842
- anchor2,
3843
- parentComponent,
3844
- parentSuspense,
3845
- namespace,
3846
- slotScopeIds,
3847
- optimized
3848
- );
3849
- }
3850
- };
3851
- const mountToTarget = () => {
3852
- const target = n2.target = resolveTarget(n2.props, querySelector);
3853
- const targetAnchor = prepareAnchor(target, n2, createText, insert);
3854
- if (target) {
3855
- if (namespace !== "svg" && isTargetSVG(target)) {
3856
- namespace = "svg";
3857
- } else if (namespace !== "mathml" && isTargetMathML(target)) {
3858
- namespace = "mathml";
3859
- }
3860
- if (parentComponent && parentComponent.isCE) {
3861
- (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
3862
- }
3863
- if (!disabled) {
3864
- mount(target, targetAnchor);
3865
- updateCssVars(n2, false);
3866
- }
3867
- } else if (!disabled) {
3868
- warn$1(
3869
- "Invalid Teleport target on mount:",
3870
- target,
3871
- `(${typeof target})`
3872
- );
3873
- }
3874
- };
3898
+ if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
3899
+ queuePendingMount(n2);
3900
+ return;
3901
+ }
3875
3902
  if (disabled) {
3876
- mount(container, mainAnchor);
3903
+ mount(n2, container, mainAnchor);
3877
3904
  updateCssVars(n2, true);
3878
3905
  }
3879
- if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
3880
- n2.el.__isMounted = false;
3881
- queuePostRenderEffect(() => {
3882
- if (n2.el.__isMounted !== false) return;
3883
- mountToTarget();
3884
- delete n2.el.__isMounted;
3885
- }, parentSuspense);
3886
- } else {
3887
- mountToTarget();
3888
- }
3906
+ mountToTarget();
3889
3907
  } else {
3890
3908
  n2.el = n1.el;
3891
- n2.targetStart = n1.targetStart;
3892
3909
  const mainAnchor = n2.anchor = n1.anchor;
3893
- const target = n2.target = n1.target;
3894
- const targetAnchor = n2.targetAnchor = n1.targetAnchor;
3895
- if (n1.el.__isMounted === false) {
3896
- queuePostRenderEffect(() => {
3897
- TeleportImpl.process(
3898
- n1,
3899
- n2,
3900
- container,
3901
- anchor,
3902
- parentComponent,
3903
- parentSuspense,
3904
- namespace,
3905
- slotScopeIds,
3906
- optimized,
3907
- internals
3908
- );
3909
- }, parentSuspense);
3910
+ const pendingMount = pendingMounts.get(n1);
3911
+ if (pendingMount) {
3912
+ pendingMount.flags |= 8;
3913
+ pendingMounts.delete(n1);
3914
+ queuePendingMount(n2);
3910
3915
  return;
3911
3916
  }
3917
+ n2.targetStart = n1.targetStart;
3918
+ const target = n2.target = n1.target;
3919
+ const targetAnchor = n2.targetAnchor = n1.targetAnchor;
3912
3920
  const wasDisabled = isTeleportDisabled(n1.props);
3913
3921
  const currentContainer = wasDisabled ? container : target;
3914
3922
  const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
@@ -3999,13 +4007,19 @@ const TeleportImpl = {
3999
4007
  target,
4000
4008
  props
4001
4009
  } = vnode;
4010
+ let shouldRemove = doRemove || !isTeleportDisabled(props);
4011
+ const pendingMount = pendingMounts.get(vnode);
4012
+ if (pendingMount) {
4013
+ pendingMount.flags |= 8;
4014
+ pendingMounts.delete(vnode);
4015
+ shouldRemove = false;
4016
+ }
4002
4017
  if (target) {
4003
4018
  hostRemove(targetStart);
4004
4019
  hostRemove(targetAnchor);
4005
4020
  }
4006
4021
  doRemove && hostRemove(anchor);
4007
4022
  if (shapeFlag & 16) {
4008
- const shouldRemove = doRemove || !isTeleportDisabled(props);
4009
4023
  for (let i = 0; i < children.length; i++) {
4010
4024
  const child = children[i];
4011
4025
  unmount(
@@ -4030,7 +4044,7 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
4030
4044
  if (isReorder) {
4031
4045
  insert(el, container, parentAnchor);
4032
4046
  }
4033
- if (!isReorder || isTeleportDisabled(props)) {
4047
+ if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {
4034
4048
  if (shapeFlag & 16) {
4035
4049
  for (let i = 0; i < children.length; i++) {
4036
4050
  move(
@@ -4204,10 +4218,14 @@ const BaseTransitionImpl = {
4204
4218
  const state = useTransitionState();
4205
4219
  return () => {
4206
4220
  const children = slots.default && getTransitionRawChildren(slots.default(), true);
4207
- if (!children || !children.length) {
4221
+ const child = children && children.length ? findNonCommentChild(children) : (
4222
+ // Keep explicit default-slot conditionals on the same transition path
4223
+ // as regular v-if branches, which render a comment placeholder.
4224
+ instance.subTree ? createCommentVNode() : void 0
4225
+ );
4226
+ if (!child) {
4208
4227
  return;
4209
4228
  }
4210
- const child = findNonCommentChild(children);
4211
4229
  const rawProps = toRaw(props);
4212
4230
  const { mode } = rawProps;
4213
4231
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
@@ -7569,7 +7587,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7569
7587
  return vm;
7570
7588
  }
7571
7589
  }
7572
- Vue.version = `2.6.14-compat:${"3.5.31"}`;
7590
+ Vue.version = `2.6.14-compat:${"3.5.33"}`;
7573
7591
  Vue.config = singletonApp.config;
7574
7592
  Vue.use = (plugin, ...options) => {
7575
7593
  if (plugin && isFunction(plugin.install)) {
@@ -11401,6 +11419,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11401
11419
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {
11402
11420
  return;
11403
11421
  }
11422
+ unsetCurrentInstance();
11404
11423
  instance.asyncResolved = true;
11405
11424
  const { vnode: vnode2 } = instance;
11406
11425
  {
@@ -12684,7 +12703,7 @@ function isMemoSame(cached, memo) {
12684
12703
  return true;
12685
12704
  }
12686
12705
 
12687
- const version = "3.5.31";
12706
+ const version = "3.5.33";
12688
12707
  const warn = warn$1 ;
12689
12708
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12690
12709
  const devtools = devtools$1 ;
@@ -13207,7 +13226,19 @@ function patchStyle(el, prev, next) {
13207
13226
  if (key === "display") {
13208
13227
  hasControlledDisplay = true;
13209
13228
  }
13210
- setStyle(style, key, next[key]);
13229
+ const value = next[key];
13230
+ if (value != null) {
13231
+ if (!shouldPreserveTextareaResizeStyle(
13232
+ el,
13233
+ key,
13234
+ !isString(prev) && prev ? prev[key] : void 0,
13235
+ value
13236
+ )) {
13237
+ setStyle(style, key, value);
13238
+ }
13239
+ } else {
13240
+ setStyle(style, key, "");
13241
+ }
13211
13242
  }
13212
13243
  } else {
13213
13244
  if (isCssString) {
@@ -13280,6 +13311,9 @@ function autoPrefix(style, rawName) {
13280
13311
  }
13281
13312
  return rawName;
13282
13313
  }
13314
+ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
13315
+ return el.tagName === "TEXTAREA" && (key === "width" || key === "height") && isString(next) && prev === next;
13316
+ }
13283
13317
 
13284
13318
  const xlinkNS = "http://www.w3.org/1999/xlink";
13285
13319
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.31
2
+ * @vue/compat v3.5.33
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -450,7 +450,18 @@ class EffectScope {
450
450
  */
451
451
  off() {
452
452
  if (this._on > 0 && --this._on === 0) {
453
- activeEffectScope = this.prevScope;
453
+ if (activeEffectScope === this) {
454
+ activeEffectScope = this.prevScope;
455
+ } else {
456
+ let current = activeEffectScope;
457
+ while (current) {
458
+ if (current.prevScope === this) {
459
+ current.prevScope = this.prevScope;
460
+ break;
461
+ }
462
+ current = current.prevScope;
463
+ }
464
+ }
454
465
  this.prevScope = void 0;
455
466
  }
456
467
  }
@@ -2838,6 +2849,7 @@ function createPathGetter(ctx, path) {
2838
2849
  };
2839
2850
  }
2840
2851
 
2852
+ const pendingMounts = /* @__PURE__ */ new WeakMap();
2841
2853
  const TeleportEndKey = /* @__PURE__ */ Symbol("_vte");
2842
2854
  const isTeleport = (type) => type.__isTeleport;
2843
2855
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
@@ -2865,84 +2877,84 @@ const TeleportImpl = {
2865
2877
  mc: mountChildren,
2866
2878
  pc: patchChildren,
2867
2879
  pbc: patchBlockChildren,
2868
- o: { insert, querySelector, createText, createComment }
2880
+ o: { insert, querySelector, createText, createComment, parentNode }
2869
2881
  } = internals;
2870
2882
  const disabled = isTeleportDisabled(n2.props);
2871
- let { shapeFlag, children, dynamicChildren } = n2;
2883
+ let { dynamicChildren } = n2;
2884
+ const mount = (vnode, container2, anchor2) => {
2885
+ if (vnode.shapeFlag & 16) {
2886
+ mountChildren(
2887
+ vnode.children,
2888
+ container2,
2889
+ anchor2,
2890
+ parentComponent,
2891
+ parentSuspense,
2892
+ namespace,
2893
+ slotScopeIds,
2894
+ optimized
2895
+ );
2896
+ }
2897
+ };
2898
+ const mountToTarget = (vnode = n2) => {
2899
+ const disabled2 = isTeleportDisabled(vnode.props);
2900
+ const target = vnode.target = resolveTarget(vnode.props, querySelector);
2901
+ const targetAnchor = prepareAnchor(target, vnode, createText, insert);
2902
+ if (target) {
2903
+ if (namespace !== "svg" && isTargetSVG(target)) {
2904
+ namespace = "svg";
2905
+ } else if (namespace !== "mathml" && isTargetMathML(target)) {
2906
+ namespace = "mathml";
2907
+ }
2908
+ if (parentComponent && parentComponent.isCE) {
2909
+ (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
2910
+ }
2911
+ if (!disabled2) {
2912
+ mount(vnode, target, targetAnchor);
2913
+ updateCssVars(vnode, false);
2914
+ }
2915
+ }
2916
+ };
2917
+ const queuePendingMount = (vnode) => {
2918
+ const mountJob = () => {
2919
+ if (pendingMounts.get(vnode) !== mountJob) return;
2920
+ pendingMounts.delete(vnode);
2921
+ if (isTeleportDisabled(vnode.props)) {
2922
+ const mountContainer = parentNode(vnode.el) || container;
2923
+ mount(vnode, mountContainer, vnode.anchor);
2924
+ updateCssVars(vnode, true);
2925
+ }
2926
+ mountToTarget(vnode);
2927
+ };
2928
+ pendingMounts.set(vnode, mountJob);
2929
+ queuePostRenderEffect(mountJob, parentSuspense);
2930
+ };
2872
2931
  if (n1 == null) {
2873
2932
  const placeholder = n2.el = createText("");
2874
2933
  const mainAnchor = n2.anchor = createText("");
2875
2934
  insert(placeholder, container, anchor);
2876
2935
  insert(mainAnchor, container, anchor);
2877
- const mount = (container2, anchor2) => {
2878
- if (shapeFlag & 16) {
2879
- mountChildren(
2880
- children,
2881
- container2,
2882
- anchor2,
2883
- parentComponent,
2884
- parentSuspense,
2885
- namespace,
2886
- slotScopeIds,
2887
- optimized
2888
- );
2889
- }
2890
- };
2891
- const mountToTarget = () => {
2892
- const target = n2.target = resolveTarget(n2.props, querySelector);
2893
- const targetAnchor = prepareAnchor(target, n2, createText, insert);
2894
- if (target) {
2895
- if (namespace !== "svg" && isTargetSVG(target)) {
2896
- namespace = "svg";
2897
- } else if (namespace !== "mathml" && isTargetMathML(target)) {
2898
- namespace = "mathml";
2899
- }
2900
- if (parentComponent && parentComponent.isCE) {
2901
- (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
2902
- }
2903
- if (!disabled) {
2904
- mount(target, targetAnchor);
2905
- updateCssVars(n2, false);
2906
- }
2907
- }
2908
- };
2936
+ if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
2937
+ queuePendingMount(n2);
2938
+ return;
2939
+ }
2909
2940
  if (disabled) {
2910
- mount(container, mainAnchor);
2941
+ mount(n2, container, mainAnchor);
2911
2942
  updateCssVars(n2, true);
2912
2943
  }
2913
- if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
2914
- n2.el.__isMounted = false;
2915
- queuePostRenderEffect(() => {
2916
- if (n2.el.__isMounted !== false) return;
2917
- mountToTarget();
2918
- delete n2.el.__isMounted;
2919
- }, parentSuspense);
2920
- } else {
2921
- mountToTarget();
2922
- }
2944
+ mountToTarget();
2923
2945
  } else {
2924
2946
  n2.el = n1.el;
2925
- n2.targetStart = n1.targetStart;
2926
2947
  const mainAnchor = n2.anchor = n1.anchor;
2927
- const target = n2.target = n1.target;
2928
- const targetAnchor = n2.targetAnchor = n1.targetAnchor;
2929
- if (n1.el.__isMounted === false) {
2930
- queuePostRenderEffect(() => {
2931
- TeleportImpl.process(
2932
- n1,
2933
- n2,
2934
- container,
2935
- anchor,
2936
- parentComponent,
2937
- parentSuspense,
2938
- namespace,
2939
- slotScopeIds,
2940
- optimized,
2941
- internals
2942
- );
2943
- }, parentSuspense);
2948
+ const pendingMount = pendingMounts.get(n1);
2949
+ if (pendingMount) {
2950
+ pendingMount.flags |= 8;
2951
+ pendingMounts.delete(n1);
2952
+ queuePendingMount(n2);
2944
2953
  return;
2945
2954
  }
2955
+ n2.targetStart = n1.targetStart;
2956
+ const target = n2.target = n1.target;
2957
+ const targetAnchor = n2.targetAnchor = n1.targetAnchor;
2946
2958
  const wasDisabled = isTeleportDisabled(n1.props);
2947
2959
  const currentContainer = wasDisabled ? container : target;
2948
2960
  const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
@@ -3027,13 +3039,19 @@ const TeleportImpl = {
3027
3039
  target,
3028
3040
  props
3029
3041
  } = vnode;
3042
+ let shouldRemove = doRemove || !isTeleportDisabled(props);
3043
+ const pendingMount = pendingMounts.get(vnode);
3044
+ if (pendingMount) {
3045
+ pendingMount.flags |= 8;
3046
+ pendingMounts.delete(vnode);
3047
+ shouldRemove = false;
3048
+ }
3030
3049
  if (target) {
3031
3050
  hostRemove(targetStart);
3032
3051
  hostRemove(targetAnchor);
3033
3052
  }
3034
3053
  doRemove && hostRemove(anchor);
3035
3054
  if (shapeFlag & 16) {
3036
- const shouldRemove = doRemove || !isTeleportDisabled(props);
3037
3055
  for (let i = 0; i < children.length; i++) {
3038
3056
  const child = children[i];
3039
3057
  unmount(
@@ -3058,7 +3076,7 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
3058
3076
  if (isReorder) {
3059
3077
  insert(el, container, parentAnchor);
3060
3078
  }
3061
- if (!isReorder || isTeleportDisabled(props)) {
3079
+ if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {
3062
3080
  if (shapeFlag & 16) {
3063
3081
  for (let i = 0; i < children.length; i++) {
3064
3082
  move(
@@ -3232,10 +3250,14 @@ const BaseTransitionImpl = {
3232
3250
  const state = useTransitionState();
3233
3251
  return () => {
3234
3252
  const children = slots.default && getTransitionRawChildren(slots.default(), true);
3235
- if (!children || !children.length) {
3253
+ const child = children && children.length ? findNonCommentChild(children) : (
3254
+ // Keep explicit default-slot conditionals on the same transition path
3255
+ // as regular v-if branches, which render a comment placeholder.
3256
+ instance.subTree ? createCommentVNode() : void 0
3257
+ );
3258
+ if (!child) {
3236
3259
  return;
3237
3260
  }
3238
- const child = findNonCommentChild(children);
3239
3261
  const rawProps = toRaw(props);
3240
3262
  const { mode } = rawProps;
3241
3263
  if (state.isLeaving) {
@@ -6076,7 +6098,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6076
6098
  return vm;
6077
6099
  }
6078
6100
  }
6079
- Vue.version = `2.6.14-compat:${"3.5.31"}`;
6101
+ Vue.version = `2.6.14-compat:${"3.5.33"}`;
6080
6102
  Vue.config = singletonApp.config;
6081
6103
  Vue.use = (plugin, ...options) => {
6082
6104
  if (plugin && isFunction(plugin.install)) {
@@ -9295,6 +9317,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9295
9317
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {
9296
9318
  return;
9297
9319
  }
9320
+ unsetCurrentInstance();
9298
9321
  instance.asyncResolved = true;
9299
9322
  const { vnode: vnode2 } = instance;
9300
9323
  handleSetupResult(instance, asyncSetupResult, false);
@@ -10211,7 +10234,7 @@ function isMemoSame(cached, memo) {
10211
10234
  return true;
10212
10235
  }
10213
10236
 
10214
- const version = "3.5.31";
10237
+ const version = "3.5.33";
10215
10238
  const warn$1 = NOOP;
10216
10239
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10217
10240
  const devtools = void 0;
@@ -10730,7 +10753,19 @@ function patchStyle(el, prev, next) {
10730
10753
  if (key === "display") {
10731
10754
  hasControlledDisplay = true;
10732
10755
  }
10733
- setStyle(style, key, next[key]);
10756
+ const value = next[key];
10757
+ if (value != null) {
10758
+ if (!shouldPreserveTextareaResizeStyle(
10759
+ el,
10760
+ key,
10761
+ !isString(prev) && prev ? prev[key] : void 0,
10762
+ value
10763
+ )) {
10764
+ setStyle(style, key, value);
10765
+ }
10766
+ } else {
10767
+ setStyle(style, key, "");
10768
+ }
10734
10769
  }
10735
10770
  } else {
10736
10771
  if (isCssString) {
@@ -10795,6 +10830,9 @@ function autoPrefix(style, rawName) {
10795
10830
  }
10796
10831
  return rawName;
10797
10832
  }
10833
+ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
10834
+ return el.tagName === "TEXTAREA" && (key === "width" || key === "height") && isString(next) && prev === next;
10835
+ }
10798
10836
 
10799
10837
  const xlinkNS = "http://www.w3.org/1999/xlink";
10800
10838
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {