@vue/runtime-dom 3.5.0-rc.1 → 3.5.1

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-dom v3.5.0-rc.1
2
+ * @vue/runtime-dom v3.5.1
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -94,8 +94,6 @@ const nodeOps = {
94
94
  const TRANSITION = "transition";
95
95
  const ANIMATION = "animation";
96
96
  const vtcKey = Symbol("_vtc");
97
- const Transition = (props, { slots }) => runtimeCore.h(runtimeCore.BaseTransition, resolveTransitionProps(props), slots);
98
- Transition.displayName = "Transition";
99
97
  const DOMTransitionPropsValidators = {
100
98
  name: String,
101
99
  type: String,
@@ -114,11 +112,19 @@ const DOMTransitionPropsValidators = {
114
112
  leaveActiveClass: String,
115
113
  leaveToClass: String
116
114
  };
117
- const TransitionPropsValidators = Transition.props = /* @__PURE__ */ shared.extend(
115
+ const TransitionPropsValidators = /* @__PURE__ */ shared.extend(
118
116
  {},
119
117
  runtimeCore.BaseTransitionPropsValidators,
120
118
  DOMTransitionPropsValidators
121
119
  );
120
+ const decorate$1 = (t) => {
121
+ t.displayName = "Transition";
122
+ t.props = TransitionPropsValidators;
123
+ return t;
124
+ };
125
+ const Transition = /* @__PURE__ */ decorate$1(
126
+ (props, { slots }) => runtimeCore.h(runtimeCore.BaseTransition, resolveTransitionProps(props), slots)
127
+ );
122
128
  const callHook = (hook, args = []) => {
123
129
  if (shared.isArray(hook)) {
124
130
  hook.forEach((h2) => h2(...args));
@@ -560,7 +566,11 @@ function patchDOMProp(el, key, value, parentComponent) {
560
566
  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
561
567
  !tag.includes("-")) {
562
568
  const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
563
- const newValue = value == null ? "" : String(value);
569
+ const newValue = value == null ? (
570
+ // #11647: value should be set as empty string for null and undefined,
571
+ // but <input type="checkbox"> should be set as 'on'.
572
+ el.type === "checkbox" ? "on" : ""
573
+ ) : String(value);
564
574
  if (oldValue !== newValue || !("_value" in el)) {
565
575
  el.value = newValue;
566
576
  }
@@ -1184,7 +1194,11 @@ const positionMap = /* @__PURE__ */ new WeakMap();
1184
1194
  const newPositionMap = /* @__PURE__ */ new WeakMap();
1185
1195
  const moveCbKey = Symbol("_moveCb");
1186
1196
  const enterCbKey = Symbol("_enterCb");
1187
- const TransitionGroupImpl = {
1197
+ const decorate = (t) => {
1198
+ delete t.props.mode;
1199
+ return t;
1200
+ };
1201
+ const TransitionGroupImpl = /* @__PURE__ */ decorate({
1188
1202
  name: "TransitionGroup",
1189
1203
  props: /* @__PURE__ */ shared.extend({}, TransitionPropsValidators, {
1190
1204
  tag: String,
@@ -1270,9 +1284,7 @@ const TransitionGroupImpl = {
1270
1284
  return runtimeCore.createVNode(tag, null, children);
1271
1285
  };
1272
1286
  }
1273
- };
1274
- const removeMode = (props) => delete props.mode;
1275
- /* @__PURE__ */ removeMode(TransitionGroupImpl.props);
1287
+ });
1276
1288
  const TransitionGroup = TransitionGroupImpl;
1277
1289
  function callPendingCbs(c) {
1278
1290
  const el = c.el;
@@ -1421,12 +1433,16 @@ const vModelCheckbox = {
1421
1433
  };
1422
1434
  function setChecked(el, { value, oldValue }, vnode) {
1423
1435
  el._modelValue = value;
1436
+ let checked;
1424
1437
  if (shared.isArray(value)) {
1425
- el.checked = shared.looseIndexOf(value, vnode.props.value) > -1;
1438
+ checked = shared.looseIndexOf(value, vnode.props.value) > -1;
1426
1439
  } else if (shared.isSet(value)) {
1427
- el.checked = value.has(vnode.props.value);
1428
- } else if (value !== oldValue) {
1429
- el.checked = shared.looseEqual(value, getCheckboxValue(el, true));
1440
+ checked = value.has(vnode.props.value);
1441
+ } else {
1442
+ checked = shared.looseEqual(value, getCheckboxValue(el, true));
1443
+ }
1444
+ if (el.checked !== checked) {
1445
+ el.checked = checked;
1430
1446
  }
1431
1447
  }
1432
1448
  const vModelRadio = {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-dom v3.5.0-rc.1
2
+ * @vue/runtime-dom v3.5.1
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -93,8 +93,6 @@ const nodeOps = {
93
93
  const TRANSITION = "transition";
94
94
  const ANIMATION = "animation";
95
95
  const vtcKey = Symbol("_vtc");
96
- const Transition = (props, { slots }) => runtimeCore.h(runtimeCore.BaseTransition, resolveTransitionProps(props), slots);
97
- Transition.displayName = "Transition";
98
96
  const DOMTransitionPropsValidators = {
99
97
  name: String,
100
98
  type: String,
@@ -113,11 +111,19 @@ const DOMTransitionPropsValidators = {
113
111
  leaveActiveClass: String,
114
112
  leaveToClass: String
115
113
  };
116
- const TransitionPropsValidators = Transition.props = /* @__PURE__ */ shared.extend(
114
+ const TransitionPropsValidators = /* @__PURE__ */ shared.extend(
117
115
  {},
118
116
  runtimeCore.BaseTransitionPropsValidators,
119
117
  DOMTransitionPropsValidators
120
118
  );
119
+ const decorate$1 = (t) => {
120
+ t.displayName = "Transition";
121
+ t.props = TransitionPropsValidators;
122
+ return t;
123
+ };
124
+ const Transition = /* @__PURE__ */ decorate$1(
125
+ (props, { slots }) => runtimeCore.h(runtimeCore.BaseTransition, resolveTransitionProps(props), slots)
126
+ );
121
127
  const callHook = (hook, args = []) => {
122
128
  if (shared.isArray(hook)) {
123
129
  hook.forEach((h2) => h2(...args));
@@ -545,7 +551,11 @@ function patchDOMProp(el, key, value, parentComponent) {
545
551
  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
546
552
  !tag.includes("-")) {
547
553
  const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
548
- const newValue = value == null ? "" : String(value);
554
+ const newValue = value == null ? (
555
+ // #11647: value should be set as empty string for null and undefined,
556
+ // but <input type="checkbox"> should be set as 'on'.
557
+ el.type === "checkbox" ? "on" : ""
558
+ ) : String(value);
549
559
  if (oldValue !== newValue || !("_value" in el)) {
550
560
  el.value = newValue;
551
561
  }
@@ -1091,7 +1101,11 @@ const positionMap = /* @__PURE__ */ new WeakMap();
1091
1101
  const newPositionMap = /* @__PURE__ */ new WeakMap();
1092
1102
  const moveCbKey = Symbol("_moveCb");
1093
1103
  const enterCbKey = Symbol("_enterCb");
1094
- const TransitionGroupImpl = {
1104
+ const decorate = (t) => {
1105
+ delete t.props.mode;
1106
+ return t;
1107
+ };
1108
+ const TransitionGroupImpl = /* @__PURE__ */ decorate({
1095
1109
  name: "TransitionGroup",
1096
1110
  props: /* @__PURE__ */ shared.extend({}, TransitionPropsValidators, {
1097
1111
  tag: String,
@@ -1175,9 +1189,7 @@ const TransitionGroupImpl = {
1175
1189
  return runtimeCore.createVNode(tag, null, children);
1176
1190
  };
1177
1191
  }
1178
- };
1179
- const removeMode = (props) => delete props.mode;
1180
- /* @__PURE__ */ removeMode(TransitionGroupImpl.props);
1192
+ });
1181
1193
  const TransitionGroup = TransitionGroupImpl;
1182
1194
  function callPendingCbs(c) {
1183
1195
  const el = c.el;
@@ -1326,12 +1338,16 @@ const vModelCheckbox = {
1326
1338
  };
1327
1339
  function setChecked(el, { value, oldValue }, vnode) {
1328
1340
  el._modelValue = value;
1341
+ let checked;
1329
1342
  if (shared.isArray(value)) {
1330
- el.checked = shared.looseIndexOf(value, vnode.props.value) > -1;
1343
+ checked = shared.looseIndexOf(value, vnode.props.value) > -1;
1331
1344
  } else if (shared.isSet(value)) {
1332
- el.checked = value.has(vnode.props.value);
1333
- } else if (value !== oldValue) {
1334
- el.checked = shared.looseEqual(value, getCheckboxValue(el, true));
1345
+ checked = value.has(vnode.props.value);
1346
+ } else {
1347
+ checked = shared.looseEqual(value, getCheckboxValue(el, true));
1348
+ }
1349
+ if (el.checked !== checked) {
1350
+ el.checked = checked;
1335
1351
  }
1336
1352
  }
1337
1353
  const vModelRadio = {
@@ -23,6 +23,10 @@ export interface TransitionProps extends BaseTransitionProps<Element> {
23
23
  leaveActiveClass?: string;
24
24
  leaveToClass?: string;
25
25
  }
26
+ /**
27
+ * DOM Transition is a higher-order-component based on the platform-agnostic
28
+ * base Transition component, with DOM-specific logic.
29
+ */
26
30
  export declare const Transition: FunctionalComponent<TransitionProps>;
27
31
 
28
32
  export type TransitionGroupProps = Omit<TransitionProps, 'mode'> & {
@@ -531,6 +535,7 @@ export interface IframeHTMLAttributes extends HTMLAttributes {
531
535
  /** @deprecated */
532
536
  frameborder?: Numberish;
533
537
  height?: Numberish;
538
+ loading?: 'eager' | 'lazy';
534
539
  /** @deprecated */
535
540
  marginheight?: Numberish;
536
541
  /** @deprecated */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/runtime-dom v3.5.0-rc.1
2
+ * @vue/runtime-dom v3.5.1
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -214,6 +214,14 @@ function isRenderableAttrValue(value) {
214
214
  return type === "string" || type === "number" || type === "boolean";
215
215
  }
216
216
 
217
+ const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g;
218
+ function getEscapedCssVarName(key, doubleEscape) {
219
+ return key.replace(
220
+ cssVarNameEscapeSymbolsRE,
221
+ (s) => `\\${s}`
222
+ );
223
+ }
224
+
217
225
  function looseCompareArrays(a, b) {
218
226
  if (a.length !== b.length) return false;
219
227
  let equal = true;
@@ -967,7 +975,7 @@ const arrayInstrumentations = {
967
975
  },
968
976
  concat(...args) {
969
977
  return reactiveReadArray(this).concat(
970
- ...args.map((x) => reactiveReadArray(x))
978
+ ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)
971
979
  );
972
980
  },
973
981
  entries() {
@@ -1073,7 +1081,7 @@ function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1073
1081
  const needsWrap = arr !== self && !isShallow(self);
1074
1082
  const methodFn = arr[method];
1075
1083
  if (methodFn !== arrayProto[method]) {
1076
- const result2 = methodFn.apply(arr, args);
1084
+ const result2 = methodFn.apply(self, args);
1077
1085
  return needsWrap ? toReactive(result2) : result2;
1078
1086
  }
1079
1087
  let wrappedFn = fn;
@@ -3293,7 +3301,9 @@ const BaseTransitionImpl = {
3293
3301
  // #11061, ensure enterHooks is fresh after clone
3294
3302
  (hooks) => enterHooks = hooks
3295
3303
  );
3296
- setTransitionHooks(innerChild, enterHooks);
3304
+ if (innerChild.type !== Comment) {
3305
+ setTransitionHooks(innerChild, enterHooks);
3306
+ }
3297
3307
  const oldChild = instance.subTree;
3298
3308
  const oldInnerChild = oldChild && getInnerChild$1(oldChild);
3299
3309
  if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
@@ -3616,10 +3626,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3616
3626
  const oldRef = oldRawRef && oldRawRef.r;
3617
3627
  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
3618
3628
  const setupState = owner.setupState;
3629
+ const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => hasOwn(setupState, key) && !(Object.getOwnPropertyDescriptor(refs, key) || EMPTY_OBJ).get;
3619
3630
  if (oldRef != null && oldRef !== ref) {
3620
3631
  if (isString(oldRef)) {
3621
3632
  refs[oldRef] = null;
3622
- if (hasOwn(setupState, oldRef)) {
3633
+ if (canSetSetupRef(oldRef)) {
3623
3634
  setupState[oldRef] = null;
3624
3635
  }
3625
3636
  } else if (isRef(oldRef)) {
@@ -3634,14 +3645,14 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3634
3645
  if (_isString || _isRef) {
3635
3646
  const doSet = () => {
3636
3647
  if (rawRef.f) {
3637
- const existing = _isString ? hasOwn(setupState, ref) ? setupState[ref] : refs[ref] : ref.value;
3648
+ const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;
3638
3649
  if (isUnmount) {
3639
3650
  isArray(existing) && remove(existing, refValue);
3640
3651
  } else {
3641
3652
  if (!isArray(existing)) {
3642
3653
  if (_isString) {
3643
3654
  refs[ref] = [refValue];
3644
- if (hasOwn(setupState, ref)) {
3655
+ if (canSetSetupRef(ref)) {
3645
3656
  setupState[ref] = refs[ref];
3646
3657
  }
3647
3658
  } else {
@@ -3654,7 +3665,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3654
3665
  }
3655
3666
  } else if (_isString) {
3656
3667
  refs[ref] = value;
3657
- if (hasOwn(setupState, ref)) {
3668
+ if (canSetSetupRef(ref)) {
3658
3669
  setupState[ref] = value;
3659
3670
  }
3660
3671
  } else if (_isRef) {
@@ -4004,8 +4015,7 @@ Server rendered element contains more child nodes than client vdom.`
4004
4015
  const isText = vnode.type === Text;
4005
4016
  if (node) {
4006
4017
  if (isText && !optimized) {
4007
- let next = children[i + 1];
4008
- if (next && (next = normalizeVNode(next)).type === Text) {
4018
+ if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {
4009
4019
  insert(
4010
4020
  createText(
4011
4021
  node.data.slice(vnode.children.length)
@@ -4261,7 +4271,10 @@ function resolveCssVars(instance, vnode, expectedMap) {
4261
4271
  if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {
4262
4272
  const cssVars = instance.getCssVars();
4263
4273
  for (const key in cssVars) {
4264
- expectedMap.set(`--${key}`, String(cssVars[key]));
4274
+ expectedMap.set(
4275
+ `--${getEscapedCssVarName(key)}`,
4276
+ String(cssVars[key])
4277
+ );
4265
4278
  }
4266
4279
  }
4267
4280
  if (vnode === root && instance.parent) {
@@ -10350,7 +10363,7 @@ function isMemoSame(cached, memo) {
10350
10363
  return true;
10351
10364
  }
10352
10365
 
10353
- const version = "3.5.0-rc.1";
10366
+ const version = "3.5.1";
10354
10367
  const warn = warn$1 ;
10355
10368
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10356
10369
  const devtools = devtools$1 ;
@@ -10454,8 +10467,6 @@ const nodeOps = {
10454
10467
  const TRANSITION = "transition";
10455
10468
  const ANIMATION = "animation";
10456
10469
  const vtcKey = Symbol("_vtc");
10457
- const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
10458
- Transition.displayName = "Transition";
10459
10470
  const DOMTransitionPropsValidators = {
10460
10471
  name: String,
10461
10472
  type: String,
@@ -10474,11 +10485,19 @@ const DOMTransitionPropsValidators = {
10474
10485
  leaveActiveClass: String,
10475
10486
  leaveToClass: String
10476
10487
  };
10477
- const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
10488
+ const TransitionPropsValidators = /* @__PURE__ */ extend(
10478
10489
  {},
10479
10490
  BaseTransitionPropsValidators,
10480
10491
  DOMTransitionPropsValidators
10481
10492
  );
10493
+ const decorate$1 = (t) => {
10494
+ t.displayName = "Transition";
10495
+ t.props = TransitionPropsValidators;
10496
+ return t;
10497
+ };
10498
+ const Transition = /* @__PURE__ */ decorate$1(
10499
+ (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots)
10500
+ );
10482
10501
  const callHook = (hook, args = []) => {
10483
10502
  if (isArray(hook)) {
10484
10503
  hook.forEach((h2) => h2(...args));
@@ -10986,7 +11005,11 @@ function patchDOMProp(el, key, value, parentComponent) {
10986
11005
  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
10987
11006
  !tag.includes("-")) {
10988
11007
  const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
10989
- const newValue = value == null ? "" : String(value);
11008
+ const newValue = value == null ? (
11009
+ // #11647: value should be set as empty string for null and undefined,
11010
+ // but <input type="checkbox"> should be set as 'on'.
11011
+ el.type === "checkbox" ? "on" : ""
11012
+ ) : String(value);
10990
11013
  if (oldValue !== newValue || !("_value" in el)) {
10991
11014
  el.value = newValue;
10992
11015
  }
@@ -11610,7 +11633,11 @@ const positionMap = /* @__PURE__ */ new WeakMap();
11610
11633
  const newPositionMap = /* @__PURE__ */ new WeakMap();
11611
11634
  const moveCbKey = Symbol("_moveCb");
11612
11635
  const enterCbKey = Symbol("_enterCb");
11613
- const TransitionGroupImpl = {
11636
+ const decorate = (t) => {
11637
+ delete t.props.mode;
11638
+ return t;
11639
+ };
11640
+ const TransitionGroupImpl = /* @__PURE__ */ decorate({
11614
11641
  name: "TransitionGroup",
11615
11642
  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
11616
11643
  tag: String,
@@ -11696,9 +11723,7 @@ const TransitionGroupImpl = {
11696
11723
  return createVNode(tag, null, children);
11697
11724
  };
11698
11725
  }
11699
- };
11700
- const removeMode = (props) => delete props.mode;
11701
- /* @__PURE__ */ removeMode(TransitionGroupImpl.props);
11726
+ });
11702
11727
  const TransitionGroup = TransitionGroupImpl;
11703
11728
  function callPendingCbs(c) {
11704
11729
  const el = c.el;
@@ -11847,12 +11872,16 @@ const vModelCheckbox = {
11847
11872
  };
11848
11873
  function setChecked(el, { value, oldValue }, vnode) {
11849
11874
  el._modelValue = value;
11875
+ let checked;
11850
11876
  if (isArray(value)) {
11851
- el.checked = looseIndexOf(value, vnode.props.value) > -1;
11877
+ checked = looseIndexOf(value, vnode.props.value) > -1;
11852
11878
  } else if (isSet(value)) {
11853
- el.checked = value.has(vnode.props.value);
11854
- } else if (value !== oldValue) {
11855
- el.checked = looseEqual(value, getCheckboxValue(el, true));
11879
+ checked = value.has(vnode.props.value);
11880
+ } else {
11881
+ checked = looseEqual(value, getCheckboxValue(el, true));
11882
+ }
11883
+ if (el.checked !== checked) {
11884
+ el.checked = checked;
11856
11885
  }
11857
11886
  }
11858
11887
  const vModelRadio = {