@vue/runtime-core 3.4.0-alpha.3 → 3.4.0-beta.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,6 +1,6 @@
1
- import { pauseTracking, resetTracking, isRef, toRaw, getCurrentScope, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';
2
- export { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';
3
- import { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, normalizeStyle } from '@vue/shared';
1
+ import { pauseTracking, resetTracking, isRef, toRaw, getCurrentScope, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, customRef, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';
2
+ export { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';
3
+ import { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr } from '@vue/shared';
4
4
  export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
5
5
 
6
6
  const stack = [];
@@ -121,6 +121,38 @@ function assertNumber(val, type) {
121
121
  }
122
122
  }
123
123
 
124
+ const ErrorCodes = {
125
+ "SETUP_FUNCTION": 0,
126
+ "0": "SETUP_FUNCTION",
127
+ "RENDER_FUNCTION": 1,
128
+ "1": "RENDER_FUNCTION",
129
+ "WATCH_GETTER": 2,
130
+ "2": "WATCH_GETTER",
131
+ "WATCH_CALLBACK": 3,
132
+ "3": "WATCH_CALLBACK",
133
+ "WATCH_CLEANUP": 4,
134
+ "4": "WATCH_CLEANUP",
135
+ "NATIVE_EVENT_HANDLER": 5,
136
+ "5": "NATIVE_EVENT_HANDLER",
137
+ "COMPONENT_EVENT_HANDLER": 6,
138
+ "6": "COMPONENT_EVENT_HANDLER",
139
+ "VNODE_HOOK": 7,
140
+ "7": "VNODE_HOOK",
141
+ "DIRECTIVE_HOOK": 8,
142
+ "8": "DIRECTIVE_HOOK",
143
+ "TRANSITION_HOOK": 9,
144
+ "9": "TRANSITION_HOOK",
145
+ "APP_ERROR_HANDLER": 10,
146
+ "10": "APP_ERROR_HANDLER",
147
+ "APP_WARN_HANDLER": 11,
148
+ "11": "APP_WARN_HANDLER",
149
+ "FUNCTION_REF": 12,
150
+ "12": "FUNCTION_REF",
151
+ "ASYNC_COMPONENT_LOADER": 13,
152
+ "13": "ASYNC_COMPONENT_LOADER",
153
+ "SCHEDULER": 14,
154
+ "14": "SCHEDULER"
155
+ };
124
156
  const ErrorTypeStrings$1 = {
125
157
  ["sp"]: "serverPrefetch hook",
126
158
  ["bc"]: "beforeCreate hook",
@@ -294,13 +326,16 @@ function queuePostFlushCb(cb) {
294
326
  }
295
327
  queueFlush();
296
328
  }
297
- function flushPreFlushCbs(seen, i = isFlushing ? flushIndex + 1 : 0) {
329
+ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
298
330
  if (!!(process.env.NODE_ENV !== "production")) {
299
331
  seen = seen || /* @__PURE__ */ new Map();
300
332
  }
301
333
  for (; i < queue.length; i++) {
302
334
  const cb = queue[i];
303
335
  if (cb && cb.pre) {
336
+ if (instance && cb.id !== instance.uid) {
337
+ continue;
338
+ }
304
339
  if (!!(process.env.NODE_ENV !== "production") && checkRecursiveUpdates(seen, cb)) {
305
340
  continue;
306
341
  }
@@ -1060,9 +1095,17 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
1060
1095
  return false;
1061
1096
  }
1062
1097
  function updateHOCHostEl({ vnode, parent }, el) {
1063
- while (parent && parent.subTree === vnode) {
1064
- (vnode = parent.vnode).el = el;
1065
- parent = parent.parent;
1098
+ while (parent) {
1099
+ const root = parent.subTree;
1100
+ if (root.suspense && root.suspense.activeBranch === vnode) {
1101
+ root.el = vnode.el;
1102
+ }
1103
+ if (root === vnode) {
1104
+ (vnode = parent.vnode).el = el;
1105
+ parent = parent.parent;
1106
+ } else {
1107
+ break;
1108
+ }
1066
1109
  }
1067
1110
  }
1068
1111
 
@@ -1122,6 +1165,7 @@ function resolve(registry, name) {
1122
1165
  }
1123
1166
 
1124
1167
  const isSuspense = (type) => type.__isSuspense;
1168
+ let suspenseId = 0;
1125
1169
  const SuspenseImpl = {
1126
1170
  name: "Suspense",
1127
1171
  // In order to make Suspense tree-shakable, we need to avoid importing it
@@ -1129,7 +1173,7 @@ const SuspenseImpl = {
1129
1173
  // on a vnode's type and calls the `process` method, passing in renderer
1130
1174
  // internals.
1131
1175
  __isSuspense: true,
1132
- process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {
1176
+ process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
1133
1177
  if (n1 == null) {
1134
1178
  mountSuspense(
1135
1179
  n2,
@@ -1137,7 +1181,7 @@ const SuspenseImpl = {
1137
1181
  anchor,
1138
1182
  parentComponent,
1139
1183
  parentSuspense,
1140
- isSVG,
1184
+ namespace,
1141
1185
  slotScopeIds,
1142
1186
  optimized,
1143
1187
  rendererInternals
@@ -1149,7 +1193,7 @@ const SuspenseImpl = {
1149
1193
  container,
1150
1194
  anchor,
1151
1195
  parentComponent,
1152
- isSVG,
1196
+ namespace,
1153
1197
  slotScopeIds,
1154
1198
  optimized,
1155
1199
  rendererInternals
@@ -1167,7 +1211,7 @@ function triggerEvent(vnode, name) {
1167
1211
  eventListener();
1168
1212
  }
1169
1213
  }
1170
- function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {
1214
+ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
1171
1215
  const {
1172
1216
  p: patch,
1173
1217
  o: { createElement }
@@ -1180,7 +1224,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
1180
1224
  container,
1181
1225
  hiddenContainer,
1182
1226
  anchor,
1183
- isSVG,
1227
+ namespace,
1184
1228
  slotScopeIds,
1185
1229
  optimized,
1186
1230
  rendererInternals
@@ -1192,7 +1236,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
1192
1236
  null,
1193
1237
  parentComponent,
1194
1238
  suspense,
1195
- isSVG,
1239
+ namespace,
1196
1240
  slotScopeIds
1197
1241
  );
1198
1242
  if (suspense.deps > 0) {
@@ -1206,7 +1250,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
1206
1250
  parentComponent,
1207
1251
  null,
1208
1252
  // fallback tree will not have suspense context
1209
- isSVG,
1253
+ namespace,
1210
1254
  slotScopeIds
1211
1255
  );
1212
1256
  setActiveBranch(suspense, vnode.ssFallback);
@@ -1214,7 +1258,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
1214
1258
  suspense.resolve(false, true);
1215
1259
  }
1216
1260
  }
1217
- function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
1261
+ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
1218
1262
  const suspense = n2.suspense = n1.suspense;
1219
1263
  suspense.vnode = n2;
1220
1264
  n2.el = n1.el;
@@ -1231,29 +1275,31 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
1231
1275
  null,
1232
1276
  parentComponent,
1233
1277
  suspense,
1234
- isSVG,
1278
+ namespace,
1235
1279
  slotScopeIds,
1236
1280
  optimized
1237
1281
  );
1238
1282
  if (suspense.deps <= 0) {
1239
1283
  suspense.resolve();
1240
1284
  } else if (isInFallback) {
1241
- patch(
1242
- activeBranch,
1243
- newFallback,
1244
- container,
1245
- anchor,
1246
- parentComponent,
1247
- null,
1248
- // fallback tree will not have suspense context
1249
- isSVG,
1250
- slotScopeIds,
1251
- optimized
1252
- );
1253
- setActiveBranch(suspense, newFallback);
1285
+ if (!isHydrating) {
1286
+ patch(
1287
+ activeBranch,
1288
+ newFallback,
1289
+ container,
1290
+ anchor,
1291
+ parentComponent,
1292
+ null,
1293
+ // fallback tree will not have suspense context
1294
+ namespace,
1295
+ slotScopeIds,
1296
+ optimized
1297
+ );
1298
+ setActiveBranch(suspense, newFallback);
1299
+ }
1254
1300
  }
1255
1301
  } else {
1256
- suspense.pendingId++;
1302
+ suspense.pendingId = suspenseId++;
1257
1303
  if (isHydrating) {
1258
1304
  suspense.isHydrating = false;
1259
1305
  suspense.activeBranch = pendingBranch;
@@ -1271,7 +1317,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
1271
1317
  null,
1272
1318
  parentComponent,
1273
1319
  suspense,
1274
- isSVG,
1320
+ namespace,
1275
1321
  slotScopeIds,
1276
1322
  optimized
1277
1323
  );
@@ -1286,7 +1332,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
1286
1332
  parentComponent,
1287
1333
  null,
1288
1334
  // fallback tree will not have suspense context
1289
- isSVG,
1335
+ namespace,
1290
1336
  slotScopeIds,
1291
1337
  optimized
1292
1338
  );
@@ -1300,7 +1346,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
1300
1346
  anchor,
1301
1347
  parentComponent,
1302
1348
  suspense,
1303
- isSVG,
1349
+ namespace,
1304
1350
  slotScopeIds,
1305
1351
  optimized
1306
1352
  );
@@ -1313,7 +1359,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
1313
1359
  null,
1314
1360
  parentComponent,
1315
1361
  suspense,
1316
- isSVG,
1362
+ namespace,
1317
1363
  slotScopeIds,
1318
1364
  optimized
1319
1365
  );
@@ -1331,7 +1377,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
1331
1377
  anchor,
1332
1378
  parentComponent,
1333
1379
  suspense,
1334
- isSVG,
1380
+ namespace,
1335
1381
  slotScopeIds,
1336
1382
  optimized
1337
1383
  );
@@ -1339,7 +1385,11 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
1339
1385
  } else {
1340
1386
  triggerEvent(n2, "onPending");
1341
1387
  suspense.pendingBranch = newBranch;
1342
- suspense.pendingId++;
1388
+ if (newBranch.shapeFlag & 512) {
1389
+ suspense.pendingId = newBranch.component.suspenseId;
1390
+ } else {
1391
+ suspense.pendingId = suspenseId++;
1392
+ }
1343
1393
  patch(
1344
1394
  null,
1345
1395
  newBranch,
@@ -1347,7 +1397,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
1347
1397
  null,
1348
1398
  parentComponent,
1349
1399
  suspense,
1350
- isSVG,
1400
+ namespace,
1351
1401
  slotScopeIds,
1352
1402
  optimized
1353
1403
  );
@@ -1369,7 +1419,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
1369
1419
  }
1370
1420
  }
1371
1421
  let hasWarned = false;
1372
- function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
1422
+ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
1373
1423
  if (!!(process.env.NODE_ENV !== "production") && true && !hasWarned) {
1374
1424
  hasWarned = true;
1375
1425
  console[console.info ? "info" : "log"](
@@ -1399,7 +1449,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1399
1449
  vnode,
1400
1450
  parent: parentSuspense,
1401
1451
  parentComponent,
1402
- isSVG,
1452
+ namespace,
1403
1453
  container,
1404
1454
  hiddenContainer,
1405
1455
  anchor,
@@ -1408,7 +1458,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1408
1458
  timeout: typeof timeout === "number" ? timeout : -1,
1409
1459
  activeBranch: null,
1410
1460
  pendingBranch: null,
1411
- isInFallback: true,
1461
+ isInFallback: !isHydrating,
1412
1462
  isHydrating,
1413
1463
  isUnmounted: false,
1414
1464
  effects: [],
@@ -1442,7 +1492,12 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1442
1492
  if (delayEnter) {
1443
1493
  activeBranch.transition.afterLeave = () => {
1444
1494
  if (pendingId === suspense.pendingId) {
1445
- move(pendingBranch, container2, anchor2, 0);
1495
+ move(
1496
+ pendingBranch,
1497
+ container2,
1498
+ next(activeBranch),
1499
+ 0
1500
+ );
1446
1501
  queuePostFlushCb(effects);
1447
1502
  }
1448
1503
  };
@@ -1487,7 +1542,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1487
1542
  if (!suspense.pendingBranch) {
1488
1543
  return;
1489
1544
  }
1490
- const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;
1545
+ const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;
1491
1546
  triggerEvent(vnode2, "onFallback");
1492
1547
  const anchor2 = next(activeBranch);
1493
1548
  const mountFallback = () => {
@@ -1502,7 +1557,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1502
1557
  parentComponent2,
1503
1558
  null,
1504
1559
  // fallback tree will not have suspense context
1505
- isSVG2,
1560
+ namespace2,
1506
1561
  slotScopeIds,
1507
1562
  optimized
1508
1563
  );
@@ -1565,7 +1620,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1565
1620
  // consider the comment placeholder case.
1566
1621
  hydratedEl ? null : next(instance.subTree),
1567
1622
  suspense,
1568
- isSVG,
1623
+ namespace,
1569
1624
  optimized
1570
1625
  );
1571
1626
  if (placeholder) {
@@ -1602,7 +1657,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1602
1657
  };
1603
1658
  return suspense;
1604
1659
  }
1605
- function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {
1660
+ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {
1606
1661
  const suspense = vnode.suspense = createSuspenseBoundary(
1607
1662
  vnode,
1608
1663
  parentSuspense,
@@ -1610,7 +1665,7 @@ function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, sl
1610
1665
  node.parentNode,
1611
1666
  document.createElement("div"),
1612
1667
  null,
1613
- isSVG,
1668
+ namespace,
1614
1669
  slotScopeIds,
1615
1670
  optimized,
1616
1671
  rendererInternals,
@@ -2527,7 +2582,7 @@ const KeepAliveImpl = {
2527
2582
  }
2528
2583
  } = sharedContext;
2529
2584
  const storageContainer = createElement("div");
2530
- sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {
2585
+ sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {
2531
2586
  const instance2 = vnode.component;
2532
2587
  move(vnode, container, anchor, 0, parentSuspense);
2533
2588
  patch(
@@ -2537,7 +2592,7 @@ const KeepAliveImpl = {
2537
2592
  anchor,
2538
2593
  instance2,
2539
2594
  parentSuspense,
2540
- isSVG,
2595
+ namespace,
2541
2596
  vnode.slotScopeIds,
2542
2597
  optimized
2543
2598
  );
@@ -3203,7 +3258,7 @@ function useSlots() {
3203
3258
  function useAttrs() {
3204
3259
  return getContext().attrs;
3205
3260
  }
3206
- function useModel(props, name, options) {
3261
+ function useModel(props, name) {
3207
3262
  const i = getCurrentInstance();
3208
3263
  if (!!(process.env.NODE_ENV !== "production") && !i) {
3209
3264
  warn(`useModel() called without active instance.`);
@@ -3213,29 +3268,24 @@ function useModel(props, name, options) {
3213
3268
  warn(`useModel() called with prop "${name}" which is not declared.`);
3214
3269
  return ref();
3215
3270
  }
3216
- if (options && options.local) {
3217
- const proxy = ref(props[name]);
3218
- watch(
3219
- () => props[name],
3220
- (v) => proxy.value = v
3221
- );
3222
- watch(proxy, (value) => {
3223
- if (value !== props[name]) {
3224
- i.emit(`update:${name}`, value);
3225
- }
3226
- });
3227
- return proxy;
3228
- } else {
3229
- return {
3230
- __v_isRef: true,
3231
- get value() {
3232
- return props[name];
3233
- },
3234
- set value(value) {
3235
- i.emit(`update:${name}`, value);
3271
+ let localValue;
3272
+ watchSyncEffect(() => {
3273
+ localValue = props[name];
3274
+ });
3275
+ return customRef((track, trigger) => ({
3276
+ get() {
3277
+ track();
3278
+ return localValue;
3279
+ },
3280
+ set(value) {
3281
+ const rawProps = i.vnode.props;
3282
+ if (!(rawProps && name in rawProps) && hasChanged(value, localValue)) {
3283
+ localValue = value;
3284
+ trigger();
3236
3285
  }
3237
- };
3238
- }
3286
+ i.emit(`update:${name}`, value);
3287
+ }
3288
+ }));
3239
3289
  }
3240
3290
  function getContext() {
3241
3291
  const i = getCurrentInstance();
@@ -3757,18 +3807,6 @@ function createAppAPI(render, hydrate) {
3757
3807
  rootProps = null;
3758
3808
  }
3759
3809
  const context = createAppContext();
3760
- if (!!(process.env.NODE_ENV !== "production")) {
3761
- Object.defineProperty(context.config, "unwrapInjectedRef", {
3762
- get() {
3763
- return true;
3764
- },
3765
- set() {
3766
- warn(
3767
- `app.config.unwrapInjectedRef has been deprecated. 3.3 now always unwraps injected refs in Options API.`
3768
- );
3769
- }
3770
- });
3771
- }
3772
3810
  const installedPlugins = /* @__PURE__ */ new WeakSet();
3773
3811
  let isMounted = false;
3774
3812
  const app = context.app = {
@@ -3845,7 +3883,7 @@ function createAppAPI(render, hydrate) {
3845
3883
  context.directives[name] = directive;
3846
3884
  return app;
3847
3885
  },
3848
- mount(rootContainer, isHydrate, isSVG) {
3886
+ mount(rootContainer, isHydrate, namespace) {
3849
3887
  if (!isMounted) {
3850
3888
  if (!!(process.env.NODE_ENV !== "production") && rootContainer.__vue_app__) {
3851
3889
  warn(
@@ -3855,15 +3893,24 @@ function createAppAPI(render, hydrate) {
3855
3893
  }
3856
3894
  const vnode = createVNode(rootComponent, rootProps);
3857
3895
  vnode.appContext = context;
3896
+ if (namespace === true) {
3897
+ namespace = "svg";
3898
+ } else if (namespace === false) {
3899
+ namespace = void 0;
3900
+ }
3858
3901
  if (!!(process.env.NODE_ENV !== "production")) {
3859
3902
  context.reload = () => {
3860
- render(cloneVNode(vnode), rootContainer, isSVG);
3903
+ render(
3904
+ cloneVNode(vnode),
3905
+ rootContainer,
3906
+ namespace
3907
+ );
3861
3908
  };
3862
3909
  }
3863
3910
  if (isHydrate && hydrate) {
3864
3911
  hydrate(vnode, rootContainer);
3865
3912
  } else {
3866
- render(vnode, rootContainer, isSVG);
3913
+ render(vnode, rootContainer, namespace);
3867
3914
  }
3868
3915
  isMounted = true;
3869
3916
  app._container = rootContainer;
@@ -4253,11 +4300,12 @@ function validateProps(rawProps, props, instance) {
4253
4300
  key,
4254
4301
  resolvedValues[key],
4255
4302
  opt,
4303
+ !!(process.env.NODE_ENV !== "production") ? shallowReadonly(resolvedValues) : resolvedValues,
4256
4304
  !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))
4257
4305
  );
4258
4306
  }
4259
4307
  }
4260
- function validateProp(name, value, prop, isAbsent) {
4308
+ function validateProp(name, value, prop, props, isAbsent) {
4261
4309
  const { type, required, validator, skipCheck } = prop;
4262
4310
  if (required && isAbsent) {
4263
4311
  warn('Missing required prop: "' + name + '"');
@@ -4280,7 +4328,7 @@ function validateProp(name, value, prop, isAbsent) {
4280
4328
  return;
4281
4329
  }
4282
4330
  }
4283
- if (validator && !validator(value)) {
4331
+ if (validator && !validator(value, props)) {
4284
4332
  warn('Invalid prop: custom validator check failed for prop "' + name + '".');
4285
4333
  }
4286
4334
  }
@@ -4536,7 +4584,15 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4536
4584
  }
4537
4585
 
4538
4586
  let hasMismatch = false;
4539
- const isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== "foreignObject";
4587
+ const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
4588
+ const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
4589
+ const getContainerType = (container) => {
4590
+ if (isSVGContainer(container))
4591
+ return "svg";
4592
+ if (isMathMLContainer(container))
4593
+ return "mathml";
4594
+ return void 0;
4595
+ };
4540
4596
  const isComment = (node) => node.nodeType === 8 /* COMMENT */;
4541
4597
  function createHydrationFunctions(rendererInternals) {
4542
4598
  const {
@@ -4554,7 +4610,7 @@ function createHydrationFunctions(rendererInternals) {
4554
4610
  } = rendererInternals;
4555
4611
  const hydrate = (vnode, container) => {
4556
4612
  if (!container.hasChildNodes()) {
4557
- !!(process.env.NODE_ENV !== "production") && warn(
4613
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
4558
4614
  `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`
4559
4615
  );
4560
4616
  patch(null, vnode, container);
@@ -4614,12 +4670,14 @@ function createHydrationFunctions(rendererInternals) {
4614
4670
  } else {
4615
4671
  if (node.data !== vnode.children) {
4616
4672
  hasMismatch = true;
4617
- !!(process.env.NODE_ENV !== "production") && warn(
4618
- `Hydration text mismatch:
4619
- - Server rendered: ${JSON.stringify(
4673
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
4674
+ `Hydration text mismatch in`,
4675
+ node.parentNode,
4676
+ `
4677
+ - rendered on server: ${JSON.stringify(
4620
4678
  node.data
4621
4679
  )}
4622
- - Client rendered: ${JSON.stringify(vnode.children)}`
4680
+ - expected on client: ${JSON.stringify(vnode.children)}`
4623
4681
  );
4624
4682
  node.data = vnode.children;
4625
4683
  }
@@ -4705,7 +4763,7 @@ function createHydrationFunctions(rendererInternals) {
4705
4763
  null,
4706
4764
  parentComponent,
4707
4765
  parentSuspense,
4708
- isSVGContainer(container),
4766
+ getContainerType(container),
4709
4767
  optimized
4710
4768
  );
4711
4769
  if (isAsyncWrapper(vnode)) {
@@ -4740,13 +4798,13 @@ function createHydrationFunctions(rendererInternals) {
4740
4798
  vnode,
4741
4799
  parentComponent,
4742
4800
  parentSuspense,
4743
- isSVGContainer(parentNode(node)),
4801
+ getContainerType(parentNode(node)),
4744
4802
  slotScopeIds,
4745
4803
  optimized,
4746
4804
  rendererInternals,
4747
4805
  hydrateNode
4748
4806
  );
4749
- } else if (!!(process.env.NODE_ENV !== "production")) {
4807
+ } else if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {
4750
4808
  warn("Invalid HostVNode type:", type, `(${typeof type})`);
4751
4809
  }
4752
4810
  }
@@ -4763,38 +4821,6 @@ function createHydrationFunctions(rendererInternals) {
4763
4821
  if (dirs) {
4764
4822
  invokeDirectiveHook(vnode, null, parentComponent, "created");
4765
4823
  }
4766
- if (props) {
4767
- if (forcePatch || !optimized || patchFlag & (16 | 32)) {
4768
- for (const key in props) {
4769
- if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
4770
- key[0] === ".") {
4771
- patchProp(
4772
- el,
4773
- key,
4774
- null,
4775
- props[key],
4776
- false,
4777
- void 0,
4778
- parentComponent
4779
- );
4780
- }
4781
- }
4782
- } else if (props.onClick) {
4783
- patchProp(
4784
- el,
4785
- "onClick",
4786
- null,
4787
- props.onClick,
4788
- false,
4789
- void 0,
4790
- parentComponent
4791
- );
4792
- }
4793
- }
4794
- let vnodeHooks;
4795
- if (vnodeHooks = props && props.onVnodeBeforeMount) {
4796
- invokeVNodeHook(vnodeHooks, parentComponent, vnode);
4797
- }
4798
4824
  let needCallTransitionHooks = false;
4799
4825
  if (isTemplateNode(el)) {
4800
4826
  needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
@@ -4805,16 +4831,6 @@ function createHydrationFunctions(rendererInternals) {
4805
4831
  replaceNode(content, el, parentComponent);
4806
4832
  vnode.el = el = content;
4807
4833
  }
4808
- if (dirs) {
4809
- invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
4810
- }
4811
- if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {
4812
- queueEffectWithSuspense(() => {
4813
- vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
4814
- needCallTransitionHooks && transition.enter(el);
4815
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
4816
- }, parentSuspense);
4817
- }
4818
4834
  if (shapeFlag & 16 && // skip if element has innerHTML / textContent
4819
4835
  !(props && (props.innerHTML || props.textContent))) {
4820
4836
  let next = hydrateChildren(
@@ -4829,9 +4845,12 @@ function createHydrationFunctions(rendererInternals) {
4829
4845
  let hasWarned = false;
4830
4846
  while (next) {
4831
4847
  hasMismatch = true;
4832
- if (!!(process.env.NODE_ENV !== "production") && !hasWarned) {
4848
+ if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
4833
4849
  warn(
4834
- `Hydration children mismatch in <${vnode.type}>: server rendered element contains more child nodes than client vdom.`
4850
+ `Hydration children mismatch on`,
4851
+ el,
4852
+ `
4853
+ Server rendered element contains more child nodes than client vdom.`
4835
4854
  );
4836
4855
  hasWarned = true;
4837
4856
  }
@@ -4842,14 +4861,61 @@ function createHydrationFunctions(rendererInternals) {
4842
4861
  } else if (shapeFlag & 8) {
4843
4862
  if (el.textContent !== vnode.children) {
4844
4863
  hasMismatch = true;
4845
- !!(process.env.NODE_ENV !== "production") && warn(
4846
- `Hydration text content mismatch in <${vnode.type}>:
4847
- - Server rendered: ${el.textContent}
4848
- - Client rendered: ${vnode.children}`
4864
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
4865
+ `Hydration text content mismatch on`,
4866
+ el,
4867
+ `
4868
+ - rendered on server: ${el.textContent}
4869
+ - expected on client: ${vnode.children}`
4849
4870
  );
4850
4871
  el.textContent = vnode.children;
4851
4872
  }
4852
4873
  }
4874
+ if (props) {
4875
+ if (!!(process.env.NODE_ENV !== "production") || forcePatch || !optimized || patchFlag & (16 | 32)) {
4876
+ for (const key in props) {
4877
+ if (!!(process.env.NODE_ENV !== "production") && propHasMismatch(el, key, props[key])) {
4878
+ hasMismatch = true;
4879
+ }
4880
+ if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
4881
+ key[0] === ".") {
4882
+ patchProp(
4883
+ el,
4884
+ key,
4885
+ null,
4886
+ props[key],
4887
+ void 0,
4888
+ void 0,
4889
+ parentComponent
4890
+ );
4891
+ }
4892
+ }
4893
+ } else if (props.onClick) {
4894
+ patchProp(
4895
+ el,
4896
+ "onClick",
4897
+ null,
4898
+ props.onClick,
4899
+ void 0,
4900
+ void 0,
4901
+ parentComponent
4902
+ );
4903
+ }
4904
+ }
4905
+ let vnodeHooks;
4906
+ if (vnodeHooks = props && props.onVnodeBeforeMount) {
4907
+ invokeVNodeHook(vnodeHooks, parentComponent, vnode);
4908
+ }
4909
+ if (dirs) {
4910
+ invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
4911
+ }
4912
+ if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {
4913
+ queueEffectWithSuspense(() => {
4914
+ vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
4915
+ needCallTransitionHooks && transition.enter(el);
4916
+ dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
4917
+ }, parentSuspense);
4918
+ }
4853
4919
  }
4854
4920
  return el.nextSibling;
4855
4921
  };
@@ -4873,9 +4939,12 @@ function createHydrationFunctions(rendererInternals) {
4873
4939
  continue;
4874
4940
  } else {
4875
4941
  hasMismatch = true;
4876
- if (!!(process.env.NODE_ENV !== "production") && !hasWarned) {
4942
+ if ((!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {
4877
4943
  warn(
4878
- `Hydration children mismatch in <${container.tagName.toLowerCase()}>: server rendered element contains fewer child nodes than client vdom.`
4944
+ `Hydration children mismatch on`,
4945
+ container,
4946
+ `
4947
+ Server rendered element contains fewer child nodes than client vdom.`
4879
4948
  );
4880
4949
  hasWarned = true;
4881
4950
  }
@@ -4886,7 +4955,7 @@ function createHydrationFunctions(rendererInternals) {
4886
4955
  null,
4887
4956
  parentComponent,
4888
4957
  parentSuspense,
4889
- isSVGContainer(container),
4958
+ getContainerType(container),
4890
4959
  slotScopeIds
4891
4960
  );
4892
4961
  }
@@ -4918,14 +4987,14 @@ function createHydrationFunctions(rendererInternals) {
4918
4987
  };
4919
4988
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
4920
4989
  hasMismatch = true;
4921
- !!(process.env.NODE_ENV !== "production") && warn(
4990
+ (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn(
4922
4991
  `Hydration node mismatch:
4923
- - Client vnode:`,
4924
- vnode.type,
4925
- `
4926
- - Server rendered DOM:`,
4992
+ - rendered on server:`,
4927
4993
  node,
4928
- node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``
4994
+ node.nodeType === 3 /* TEXT */ ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``,
4995
+ `
4996
+ - expected on client:`,
4997
+ vnode.type
4929
4998
  );
4930
4999
  vnode.el = null;
4931
5000
  if (isFragment) {
@@ -4949,7 +5018,7 @@ function createHydrationFunctions(rendererInternals) {
4949
5018
  next,
4950
5019
  parentComponent,
4951
5020
  parentSuspense,
4952
- isSVGContainer(container),
5021
+ getContainerType(container),
4953
5022
  slotScopeIds
4954
5023
  );
4955
5024
  return next;
@@ -4990,6 +5059,46 @@ function createHydrationFunctions(rendererInternals) {
4990
5059
  };
4991
5060
  return [hydrate, hydrateNode];
4992
5061
  }
5062
+ function propHasMismatch(el, key, clientValue) {
5063
+ let mismatchType;
5064
+ let mismatchKey;
5065
+ let actual;
5066
+ let expected;
5067
+ if (key === "class") {
5068
+ actual = el.className;
5069
+ expected = normalizeClass(clientValue);
5070
+ if (actual !== expected) {
5071
+ mismatchType = mismatchKey = `class`;
5072
+ }
5073
+ } else if (key === "style") {
5074
+ actual = el.getAttribute("style");
5075
+ expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));
5076
+ if (actual !== expected) {
5077
+ mismatchType = mismatchKey = "style";
5078
+ }
5079
+ } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {
5080
+ actual = el.hasAttribute(key) && el.getAttribute(key);
5081
+ expected = isBooleanAttr(key) ? includeBooleanAttr(clientValue) ? "" : false : clientValue == null ? false : String(clientValue);
5082
+ if (actual !== expected) {
5083
+ mismatchType = `attribute`;
5084
+ mismatchKey = key;
5085
+ }
5086
+ }
5087
+ if (mismatchType) {
5088
+ const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`;
5089
+ warn(
5090
+ `Hydration ${mismatchType} mismatch on`,
5091
+ el,
5092
+ `
5093
+ - rendered on server: ${format(actual)}
5094
+ - expected on client: ${format(expected)}
5095
+ Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.
5096
+ You should fix the source of the mismatch.`
5097
+ );
5098
+ return true;
5099
+ }
5100
+ return false;
5101
+ }
4993
5102
 
4994
5103
  let supported;
4995
5104
  let perf;
@@ -5041,6 +5150,10 @@ function initFeatureFlags() {
5041
5150
  !!(process.env.NODE_ENV !== "production") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);
5042
5151
  getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;
5043
5152
  }
5153
+ if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== "boolean") {
5154
+ !!(process.env.NODE_ENV !== "production") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);
5155
+ getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;
5156
+ }
5044
5157
  if (!!(process.env.NODE_ENV !== "production") && needWarn.length) {
5045
5158
  const multi = needWarn.length > 1;
5046
5159
  console.warn(
@@ -5081,7 +5194,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5081
5194
  setScopeId: hostSetScopeId = NOOP,
5082
5195
  insertStaticContent: hostInsertStaticContent
5083
5196
  } = options;
5084
- const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== "production") && isHmrUpdating ? false : !!n2.dynamicChildren) => {
5197
+ const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== "production") && isHmrUpdating ? false : !!n2.dynamicChildren) => {
5085
5198
  if (n1 === n2) {
5086
5199
  return;
5087
5200
  }
@@ -5104,9 +5217,9 @@ function baseCreateRenderer(options, createHydrationFns) {
5104
5217
  break;
5105
5218
  case Static:
5106
5219
  if (n1 == null) {
5107
- mountStaticNode(n2, container, anchor, isSVG);
5220
+ mountStaticNode(n2, container, anchor, namespace);
5108
5221
  } else if (!!(process.env.NODE_ENV !== "production")) {
5109
- patchStaticNode(n1, n2, container, isSVG);
5222
+ patchStaticNode(n1, n2, container, namespace);
5110
5223
  }
5111
5224
  break;
5112
5225
  case Fragment:
@@ -5117,7 +5230,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5117
5230
  anchor,
5118
5231
  parentComponent,
5119
5232
  parentSuspense,
5120
- isSVG,
5233
+ namespace,
5121
5234
  slotScopeIds,
5122
5235
  optimized
5123
5236
  );
@@ -5131,7 +5244,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5131
5244
  anchor,
5132
5245
  parentComponent,
5133
5246
  parentSuspense,
5134
- isSVG,
5247
+ namespace,
5135
5248
  slotScopeIds,
5136
5249
  optimized
5137
5250
  );
@@ -5143,7 +5256,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5143
5256
  anchor,
5144
5257
  parentComponent,
5145
5258
  parentSuspense,
5146
- isSVG,
5259
+ namespace,
5147
5260
  slotScopeIds,
5148
5261
  optimized
5149
5262
  );
@@ -5155,7 +5268,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5155
5268
  anchor,
5156
5269
  parentComponent,
5157
5270
  parentSuspense,
5158
- isSVG,
5271
+ namespace,
5159
5272
  slotScopeIds,
5160
5273
  optimized,
5161
5274
  internals
@@ -5168,7 +5281,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5168
5281
  anchor,
5169
5282
  parentComponent,
5170
5283
  parentSuspense,
5171
- isSVG,
5284
+ namespace,
5172
5285
  slotScopeIds,
5173
5286
  optimized,
5174
5287
  internals
@@ -5206,17 +5319,17 @@ function baseCreateRenderer(options, createHydrationFns) {
5206
5319
  n2.el = n1.el;
5207
5320
  }
5208
5321
  };
5209
- const mountStaticNode = (n2, container, anchor, isSVG) => {
5322
+ const mountStaticNode = (n2, container, anchor, namespace) => {
5210
5323
  [n2.el, n2.anchor] = hostInsertStaticContent(
5211
5324
  n2.children,
5212
5325
  container,
5213
5326
  anchor,
5214
- isSVG,
5327
+ namespace,
5215
5328
  n2.el,
5216
5329
  n2.anchor
5217
5330
  );
5218
5331
  };
5219
- const patchStaticNode = (n1, n2, container, isSVG) => {
5332
+ const patchStaticNode = (n1, n2, container, namespace) => {
5220
5333
  if (n2.children !== n1.children) {
5221
5334
  const anchor = hostNextSibling(n1.anchor);
5222
5335
  removeStaticNode(n1);
@@ -5224,7 +5337,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5224
5337
  n2.children,
5225
5338
  container,
5226
5339
  anchor,
5227
- isSVG
5340
+ namespace
5228
5341
  );
5229
5342
  } else {
5230
5343
  n2.el = n1.el;
@@ -5249,8 +5362,12 @@ function baseCreateRenderer(options, createHydrationFns) {
5249
5362
  }
5250
5363
  hostRemove(anchor);
5251
5364
  };
5252
- const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
5253
- isSVG = isSVG || n2.type === "svg";
5365
+ const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
5366
+ if (n2.type === "svg") {
5367
+ namespace = "svg";
5368
+ } else if (n2.type === "math") {
5369
+ namespace = "mathml";
5370
+ }
5254
5371
  if (n1 == null) {
5255
5372
  mountElement(
5256
5373
  n2,
@@ -5258,7 +5375,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5258
5375
  anchor,
5259
5376
  parentComponent,
5260
5377
  parentSuspense,
5261
- isSVG,
5378
+ namespace,
5262
5379
  slotScopeIds,
5263
5380
  optimized
5264
5381
  );
@@ -5268,19 +5385,19 @@ function baseCreateRenderer(options, createHydrationFns) {
5268
5385
  n2,
5269
5386
  parentComponent,
5270
5387
  parentSuspense,
5271
- isSVG,
5388
+ namespace,
5272
5389
  slotScopeIds,
5273
5390
  optimized
5274
5391
  );
5275
5392
  }
5276
5393
  };
5277
- const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
5394
+ const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
5278
5395
  let el;
5279
5396
  let vnodeHook;
5280
- const { type, props, shapeFlag, transition, dirs } = vnode;
5397
+ const { props, shapeFlag, transition, dirs } = vnode;
5281
5398
  el = vnode.el = hostCreateElement(
5282
5399
  vnode.type,
5283
- isSVG,
5400
+ namespace,
5284
5401
  props && props.is,
5285
5402
  props
5286
5403
  );
@@ -5293,7 +5410,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5293
5410
  null,
5294
5411
  parentComponent,
5295
5412
  parentSuspense,
5296
- isSVG && type !== "foreignObject",
5413
+ resolveChildrenNamespace(vnode, namespace),
5297
5414
  slotScopeIds,
5298
5415
  optimized
5299
5416
  );
@@ -5310,7 +5427,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5310
5427
  key,
5311
5428
  null,
5312
5429
  props[key],
5313
- isSVG,
5430
+ namespace,
5314
5431
  vnode.children,
5315
5432
  parentComponent,
5316
5433
  parentSuspense,
@@ -5319,7 +5436,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5319
5436
  }
5320
5437
  }
5321
5438
  if ("value" in props) {
5322
- hostPatchProp(el, "value", null, props.value);
5439
+ hostPatchProp(el, "value", null, props.value, namespace);
5323
5440
  }
5324
5441
  if (vnodeHook = props.onVnodeBeforeMount) {
5325
5442
  invokeVNodeHook(vnodeHook, parentComponent, vnode);
@@ -5377,7 +5494,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5377
5494
  }
5378
5495
  }
5379
5496
  };
5380
- const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {
5497
+ const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
5381
5498
  for (let i = start; i < children.length; i++) {
5382
5499
  const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
5383
5500
  patch(
@@ -5387,13 +5504,13 @@ function baseCreateRenderer(options, createHydrationFns) {
5387
5504
  anchor,
5388
5505
  parentComponent,
5389
5506
  parentSuspense,
5390
- isSVG,
5507
+ namespace,
5391
5508
  slotScopeIds,
5392
5509
  optimized
5393
5510
  );
5394
5511
  }
5395
5512
  };
5396
- const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
5513
+ const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
5397
5514
  const el = n2.el = n1.el;
5398
5515
  let { patchFlag, dynamicChildren, dirs } = n2;
5399
5516
  patchFlag |= n1.patchFlag & 16;
@@ -5413,7 +5530,6 @@ function baseCreateRenderer(options, createHydrationFns) {
5413
5530
  optimized = false;
5414
5531
  dynamicChildren = null;
5415
5532
  }
5416
- const areChildrenSVG = isSVG && n2.type !== "foreignObject";
5417
5533
  if (dynamicChildren) {
5418
5534
  patchBlockChildren(
5419
5535
  n1.dynamicChildren,
@@ -5421,7 +5537,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5421
5537
  el,
5422
5538
  parentComponent,
5423
5539
  parentSuspense,
5424
- areChildrenSVG,
5540
+ resolveChildrenNamespace(n2, namespace),
5425
5541
  slotScopeIds
5426
5542
  );
5427
5543
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -5435,7 +5551,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5435
5551
  null,
5436
5552
  parentComponent,
5437
5553
  parentSuspense,
5438
- areChildrenSVG,
5554
+ resolveChildrenNamespace(n2, namespace),
5439
5555
  slotScopeIds,
5440
5556
  false
5441
5557
  );
@@ -5449,16 +5565,16 @@ function baseCreateRenderer(options, createHydrationFns) {
5449
5565
  newProps,
5450
5566
  parentComponent,
5451
5567
  parentSuspense,
5452
- isSVG
5568
+ namespace
5453
5569
  );
5454
5570
  } else {
5455
5571
  if (patchFlag & 2) {
5456
5572
  if (oldProps.class !== newProps.class) {
5457
- hostPatchProp(el, "class", null, newProps.class, isSVG);
5573
+ hostPatchProp(el, "class", null, newProps.class, namespace);
5458
5574
  }
5459
5575
  }
5460
5576
  if (patchFlag & 4) {
5461
- hostPatchProp(el, "style", oldProps.style, newProps.style, isSVG);
5577
+ hostPatchProp(el, "style", oldProps.style, newProps.style, namespace);
5462
5578
  }
5463
5579
  if (patchFlag & 8) {
5464
5580
  const propsToUpdate = n2.dynamicProps;
@@ -5472,7 +5588,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5472
5588
  key,
5473
5589
  prev,
5474
5590
  next,
5475
- isSVG,
5591
+ namespace,
5476
5592
  n1.children,
5477
5593
  parentComponent,
5478
5594
  parentSuspense,
@@ -5495,7 +5611,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5495
5611
  newProps,
5496
5612
  parentComponent,
5497
5613
  parentSuspense,
5498
- isSVG
5614
+ namespace
5499
5615
  );
5500
5616
  }
5501
5617
  if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
@@ -5505,7 +5621,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5505
5621
  }, parentSuspense);
5506
5622
  }
5507
5623
  };
5508
- const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {
5624
+ const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {
5509
5625
  for (let i = 0; i < newChildren.length; i++) {
5510
5626
  const oldVNode = oldChildren[i];
5511
5627
  const newVNode = newChildren[i];
@@ -5530,13 +5646,13 @@ function baseCreateRenderer(options, createHydrationFns) {
5530
5646
  null,
5531
5647
  parentComponent,
5532
5648
  parentSuspense,
5533
- isSVG,
5649
+ namespace,
5534
5650
  slotScopeIds,
5535
5651
  true
5536
5652
  );
5537
5653
  }
5538
5654
  };
5539
- const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {
5655
+ const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, namespace) => {
5540
5656
  if (oldProps !== newProps) {
5541
5657
  if (oldProps !== EMPTY_OBJ) {
5542
5658
  for (const key in oldProps) {
@@ -5546,7 +5662,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5546
5662
  key,
5547
5663
  oldProps[key],
5548
5664
  null,
5549
- isSVG,
5665
+ namespace,
5550
5666
  vnode.children,
5551
5667
  parentComponent,
5552
5668
  parentSuspense,
@@ -5566,7 +5682,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5566
5682
  key,
5567
5683
  prev,
5568
5684
  next,
5569
- isSVG,
5685
+ namespace,
5570
5686
  vnode.children,
5571
5687
  parentComponent,
5572
5688
  parentSuspense,
@@ -5575,11 +5691,11 @@ function baseCreateRenderer(options, createHydrationFns) {
5575
5691
  }
5576
5692
  }
5577
5693
  if ("value" in newProps) {
5578
- hostPatchProp(el, "value", oldProps.value, newProps.value);
5694
+ hostPatchProp(el, "value", oldProps.value, newProps.value, namespace);
5579
5695
  }
5580
5696
  }
5581
5697
  };
5582
- const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
5698
+ const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
5583
5699
  const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
5584
5700
  const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
5585
5701
  let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
@@ -5601,7 +5717,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5601
5717
  fragmentEndAnchor,
5602
5718
  parentComponent,
5603
5719
  parentSuspense,
5604
- isSVG,
5720
+ namespace,
5605
5721
  slotScopeIds,
5606
5722
  optimized
5607
5723
  );
@@ -5615,7 +5731,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5615
5731
  container,
5616
5732
  parentComponent,
5617
5733
  parentSuspense,
5618
- isSVG,
5734
+ namespace,
5619
5735
  slotScopeIds
5620
5736
  );
5621
5737
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -5642,14 +5758,14 @@ function baseCreateRenderer(options, createHydrationFns) {
5642
5758
  fragmentEndAnchor,
5643
5759
  parentComponent,
5644
5760
  parentSuspense,
5645
- isSVG,
5761
+ namespace,
5646
5762
  slotScopeIds,
5647
5763
  optimized
5648
5764
  );
5649
5765
  }
5650
5766
  }
5651
5767
  };
5652
- const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
5768
+ const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
5653
5769
  n2.slotScopeIds = slotScopeIds;
5654
5770
  if (n1 == null) {
5655
5771
  if (n2.shapeFlag & 512) {
@@ -5657,7 +5773,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5657
5773
  n2,
5658
5774
  container,
5659
5775
  anchor,
5660
- isSVG,
5776
+ namespace,
5661
5777
  optimized
5662
5778
  );
5663
5779
  } else {
@@ -5667,7 +5783,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5667
5783
  anchor,
5668
5784
  parentComponent,
5669
5785
  parentSuspense,
5670
- isSVG,
5786
+ namespace,
5671
5787
  optimized
5672
5788
  );
5673
5789
  }
@@ -5675,7 +5791,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5675
5791
  updateComponent(n1, n2, optimized);
5676
5792
  }
5677
5793
  };
5678
- const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {
5794
+ const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
5679
5795
  const instance = (initialVNode.component = createComponentInstance(
5680
5796
  initialVNode,
5681
5797
  parentComponent,
@@ -5706,17 +5822,17 @@ function baseCreateRenderer(options, createHydrationFns) {
5706
5822
  const placeholder = instance.subTree = createVNode(Comment);
5707
5823
  processCommentNode(null, placeholder, container, anchor);
5708
5824
  }
5709
- return;
5825
+ } else {
5826
+ setupRenderEffect(
5827
+ instance,
5828
+ initialVNode,
5829
+ container,
5830
+ anchor,
5831
+ parentSuspense,
5832
+ namespace,
5833
+ optimized
5834
+ );
5710
5835
  }
5711
- setupRenderEffect(
5712
- instance,
5713
- initialVNode,
5714
- container,
5715
- anchor,
5716
- parentSuspense,
5717
- isSVG,
5718
- optimized
5719
- );
5720
5836
  if (!!(process.env.NODE_ENV !== "production")) {
5721
5837
  popWarningContext();
5722
5838
  endMeasure(instance, `mount`);
@@ -5745,7 +5861,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5745
5861
  instance.vnode = n2;
5746
5862
  }
5747
5863
  };
5748
- const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {
5864
+ const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {
5749
5865
  const componentUpdateFn = () => {
5750
5866
  if (!instance.isMounted) {
5751
5867
  let vnodeHook;
@@ -5812,7 +5928,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5812
5928
  anchor,
5813
5929
  instance,
5814
5930
  parentSuspense,
5815
- isSVG
5931
+ namespace
5816
5932
  );
5817
5933
  if (!!(process.env.NODE_ENV !== "production")) {
5818
5934
  endMeasure(instance, `patch`);
@@ -5839,6 +5955,21 @@ function baseCreateRenderer(options, createHydrationFns) {
5839
5955
  initialVNode = container = anchor = null;
5840
5956
  } else {
5841
5957
  let { next, bu, u, parent, vnode } = instance;
5958
+ {
5959
+ const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
5960
+ if (nonHydratedAsyncRoot) {
5961
+ if (next) {
5962
+ next.el = vnode.el;
5963
+ updateComponentPreRender(instance, next, optimized);
5964
+ }
5965
+ nonHydratedAsyncRoot.asyncDep.then(() => {
5966
+ if (!instance.isUnmounted) {
5967
+ componentUpdateFn();
5968
+ }
5969
+ });
5970
+ return;
5971
+ }
5972
+ }
5842
5973
  let originNext = next;
5843
5974
  let vnodeHook;
5844
5975
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -5879,7 +6010,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5879
6010
  getNextHostNode(prevTree),
5880
6011
  instance,
5881
6012
  parentSuspense,
5882
- isSVG
6013
+ namespace
5883
6014
  );
5884
6015
  if (!!(process.env.NODE_ENV !== "production")) {
5885
6016
  endMeasure(instance, `patch`);
@@ -5934,10 +6065,10 @@ function baseCreateRenderer(options, createHydrationFns) {
5934
6065
  updateProps(instance, nextVNode.props, prevProps, optimized);
5935
6066
  updateSlots(instance, nextVNode.children, optimized);
5936
6067
  pauseTracking();
5937
- flushPreFlushCbs();
6068
+ flushPreFlushCbs(instance);
5938
6069
  resetTracking();
5939
6070
  };
5940
- const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {
6071
+ const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {
5941
6072
  const c1 = n1 && n1.children;
5942
6073
  const prevShapeFlag = n1 ? n1.shapeFlag : 0;
5943
6074
  const c2 = n2.children;
@@ -5951,7 +6082,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5951
6082
  anchor,
5952
6083
  parentComponent,
5953
6084
  parentSuspense,
5954
- isSVG,
6085
+ namespace,
5955
6086
  slotScopeIds,
5956
6087
  optimized
5957
6088
  );
@@ -5964,7 +6095,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5964
6095
  anchor,
5965
6096
  parentComponent,
5966
6097
  parentSuspense,
5967
- isSVG,
6098
+ namespace,
5968
6099
  slotScopeIds,
5969
6100
  optimized
5970
6101
  );
@@ -5988,7 +6119,7 @@ function baseCreateRenderer(options, createHydrationFns) {
5988
6119
  anchor,
5989
6120
  parentComponent,
5990
6121
  parentSuspense,
5991
- isSVG,
6122
+ namespace,
5992
6123
  slotScopeIds,
5993
6124
  optimized
5994
6125
  );
@@ -6006,7 +6137,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6006
6137
  anchor,
6007
6138
  parentComponent,
6008
6139
  parentSuspense,
6009
- isSVG,
6140
+ namespace,
6010
6141
  slotScopeIds,
6011
6142
  optimized
6012
6143
  );
@@ -6014,7 +6145,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6014
6145
  }
6015
6146
  }
6016
6147
  };
6017
- const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
6148
+ const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6018
6149
  c1 = c1 || EMPTY_ARR;
6019
6150
  c2 = c2 || EMPTY_ARR;
6020
6151
  const oldLength = c1.length;
@@ -6030,7 +6161,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6030
6161
  null,
6031
6162
  parentComponent,
6032
6163
  parentSuspense,
6033
- isSVG,
6164
+ namespace,
6034
6165
  slotScopeIds,
6035
6166
  optimized
6036
6167
  );
@@ -6051,14 +6182,14 @@ function baseCreateRenderer(options, createHydrationFns) {
6051
6182
  anchor,
6052
6183
  parentComponent,
6053
6184
  parentSuspense,
6054
- isSVG,
6185
+ namespace,
6055
6186
  slotScopeIds,
6056
6187
  optimized,
6057
6188
  commonLength
6058
6189
  );
6059
6190
  }
6060
6191
  };
6061
- const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
6192
+ const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6062
6193
  let i = 0;
6063
6194
  const l2 = c2.length;
6064
6195
  let e1 = c1.length - 1;
@@ -6074,7 +6205,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6074
6205
  null,
6075
6206
  parentComponent,
6076
6207
  parentSuspense,
6077
- isSVG,
6208
+ namespace,
6078
6209
  slotScopeIds,
6079
6210
  optimized
6080
6211
  );
@@ -6094,7 +6225,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6094
6225
  null,
6095
6226
  parentComponent,
6096
6227
  parentSuspense,
6097
- isSVG,
6228
+ namespace,
6098
6229
  slotScopeIds,
6099
6230
  optimized
6100
6231
  );
@@ -6116,7 +6247,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6116
6247
  anchor,
6117
6248
  parentComponent,
6118
6249
  parentSuspense,
6119
- isSVG,
6250
+ namespace,
6120
6251
  slotScopeIds,
6121
6252
  optimized
6122
6253
  );
@@ -6186,7 +6317,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6186
6317
  null,
6187
6318
  parentComponent,
6188
6319
  parentSuspense,
6189
- isSVG,
6320
+ namespace,
6190
6321
  slotScopeIds,
6191
6322
  optimized
6192
6323
  );
@@ -6207,7 +6338,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6207
6338
  anchor,
6208
6339
  parentComponent,
6209
6340
  parentSuspense,
6210
- isSVG,
6341
+ namespace,
6211
6342
  slotScopeIds,
6212
6343
  optimized
6213
6344
  );
@@ -6428,13 +6559,21 @@ function baseCreateRenderer(options, createHydrationFns) {
6428
6559
  }
6429
6560
  return hostNextSibling(vnode.anchor || vnode.el);
6430
6561
  };
6431
- const render = (vnode, container, isSVG) => {
6562
+ const render = (vnode, container, namespace) => {
6432
6563
  if (vnode == null) {
6433
6564
  if (container._vnode) {
6434
6565
  unmount(container._vnode, null, null, true);
6435
6566
  }
6436
6567
  } else {
6437
- patch(container._vnode || null, vnode, container, null, null, null, isSVG);
6568
+ patch(
6569
+ container._vnode || null,
6570
+ vnode,
6571
+ container,
6572
+ null,
6573
+ null,
6574
+ null,
6575
+ namespace
6576
+ );
6438
6577
  }
6439
6578
  flushPreFlushCbs();
6440
6579
  flushPostFlushCbs();
@@ -6465,6 +6604,9 @@ function baseCreateRenderer(options, createHydrationFns) {
6465
6604
  createApp: createAppAPI(render, hydrate)
6466
6605
  };
6467
6606
  }
6607
+ function resolveChildrenNamespace({ type, props }, currentNamespace) {
6608
+ return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
6609
+ }
6468
6610
  function toggleRecurse({ effect, update }, allowed) {
6469
6611
  effect.allowRecurse = update.allowRecurse = allowed;
6470
6612
  }
@@ -6535,10 +6677,21 @@ function getSequence(arr) {
6535
6677
  }
6536
6678
  return result;
6537
6679
  }
6680
+ function locateNonHydratedAsyncRoot(instance) {
6681
+ const subComponent = instance.subTree.component;
6682
+ if (subComponent) {
6683
+ if (subComponent.asyncDep && !subComponent.asyncResolved) {
6684
+ return subComponent;
6685
+ } else {
6686
+ return locateNonHydratedAsyncRoot(subComponent);
6687
+ }
6688
+ }
6689
+ }
6538
6690
 
6539
6691
  const isTeleport = (type) => type.__isTeleport;
6540
6692
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
6541
6693
  const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement;
6694
+ const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
6542
6695
  const resolveTarget = (props, select) => {
6543
6696
  const targetSelector = props && props.to;
6544
6697
  if (isString(targetSelector)) {
@@ -6566,7 +6719,7 @@ const resolveTarget = (props, select) => {
6566
6719
  const TeleportImpl = {
6567
6720
  name: "Teleport",
6568
6721
  __isTeleport: true,
6569
- process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {
6722
+ process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {
6570
6723
  const {
6571
6724
  mc: mountChildren,
6572
6725
  pc: patchChildren,
@@ -6588,7 +6741,11 @@ const TeleportImpl = {
6588
6741
  const targetAnchor = n2.targetAnchor = createText("");
6589
6742
  if (target) {
6590
6743
  insert(targetAnchor, target);
6591
- isSVG = isSVG || isTargetSVG(target);
6744
+ if (namespace === "svg" || isTargetSVG(target)) {
6745
+ namespace = "svg";
6746
+ } else if (namespace === "mathml" || isTargetMathML(target)) {
6747
+ namespace = "mathml";
6748
+ }
6592
6749
  } else if (!!(process.env.NODE_ENV !== "production") && !disabled) {
6593
6750
  warn("Invalid Teleport target on mount:", target, `(${typeof target})`);
6594
6751
  }
@@ -6600,7 +6757,7 @@ const TeleportImpl = {
6600
6757
  anchor2,
6601
6758
  parentComponent,
6602
6759
  parentSuspense,
6603
- isSVG,
6760
+ namespace,
6604
6761
  slotScopeIds,
6605
6762
  optimized
6606
6763
  );
@@ -6619,7 +6776,11 @@ const TeleportImpl = {
6619
6776
  const wasDisabled = isTeleportDisabled(n1.props);
6620
6777
  const currentContainer = wasDisabled ? container : target;
6621
6778
  const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
6622
- isSVG = isSVG || isTargetSVG(target);
6779
+ if (namespace === "svg" || isTargetSVG(target)) {
6780
+ namespace = "svg";
6781
+ } else if (namespace === "mathml" || isTargetMathML(target)) {
6782
+ namespace = "mathml";
6783
+ }
6623
6784
  if (dynamicChildren) {
6624
6785
  patchBlockChildren(
6625
6786
  n1.dynamicChildren,
@@ -6627,7 +6788,7 @@ const TeleportImpl = {
6627
6788
  currentContainer,
6628
6789
  parentComponent,
6629
6790
  parentSuspense,
6630
- isSVG,
6791
+ namespace,
6631
6792
  slotScopeIds
6632
6793
  );
6633
6794
  traverseStaticChildren(n1, n2, true);
@@ -6639,7 +6800,7 @@ const TeleportImpl = {
6639
6800
  currentAnchor,
6640
6801
  parentComponent,
6641
6802
  parentSuspense,
6642
- isSVG,
6803
+ namespace,
6643
6804
  slotScopeIds,
6644
6805
  false
6645
6806
  );
@@ -7264,20 +7425,29 @@ function createComponentInstance(vnode, parent, suspense) {
7264
7425
  let currentInstance = null;
7265
7426
  const getCurrentInstance = () => currentInstance || currentRenderingInstance;
7266
7427
  let internalSetCurrentInstance;
7267
- let globalCurrentInstanceSetters;
7268
- let settersKey = "__VUE_INSTANCE_SETTERS__";
7428
+ let setInSSRSetupState;
7269
7429
  {
7270
- if (!(globalCurrentInstanceSetters = getGlobalThis()[settersKey])) {
7271
- globalCurrentInstanceSetters = getGlobalThis()[settersKey] = [];
7272
- }
7273
- globalCurrentInstanceSetters.push((i) => currentInstance = i);
7274
- internalSetCurrentInstance = (instance) => {
7275
- if (globalCurrentInstanceSetters.length > 1) {
7276
- globalCurrentInstanceSetters.forEach((s) => s(instance));
7277
- } else {
7278
- globalCurrentInstanceSetters[0](instance);
7279
- }
7430
+ const g = getGlobalThis();
7431
+ const registerGlobalSetter = (key, setter) => {
7432
+ let setters;
7433
+ if (!(setters = g[key]))
7434
+ setters = g[key] = [];
7435
+ setters.push(setter);
7436
+ return (v) => {
7437
+ if (setters.length > 1)
7438
+ setters.forEach((set) => set(v));
7439
+ else
7440
+ setters[0](v);
7441
+ };
7280
7442
  };
7443
+ internalSetCurrentInstance = registerGlobalSetter(
7444
+ `__VUE_INSTANCE_SETTERS__`,
7445
+ (v) => currentInstance = v
7446
+ );
7447
+ setInSSRSetupState = registerGlobalSetter(
7448
+ `__VUE_SSR_SETTERS__`,
7449
+ (v) => isInSSRComponentSetup = v
7450
+ );
7281
7451
  }
7282
7452
  const setCurrentInstance = (instance) => {
7283
7453
  internalSetCurrentInstance(instance);
@@ -7301,13 +7471,13 @@ function isStatefulComponent(instance) {
7301
7471
  }
7302
7472
  let isInSSRComponentSetup = false;
7303
7473
  function setupComponent(instance, isSSR = false) {
7304
- isInSSRComponentSetup = isSSR;
7474
+ isSSR && setInSSRSetupState(isSSR);
7305
7475
  const { props, children } = instance.vnode;
7306
7476
  const isStateful = isStatefulComponent(instance);
7307
7477
  initProps(instance, props, isStateful, isSSR);
7308
7478
  initSlots(instance, children);
7309
7479
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
7310
- isInSSRComponentSetup = false;
7480
+ isSSR && setInSSRSetupState(false);
7311
7481
  return setupResult;
7312
7482
  }
7313
7483
  function setupStatefulComponent(instance, isSSR) {
@@ -7643,9 +7813,9 @@ function initCustomFormatter() {
7643
7813
  return;
7644
7814
  }
7645
7815
  const vueStyle = { style: "color:#3ba776" };
7646
- const numberStyle = { style: "color:#0b1bc9" };
7647
- const stringStyle = { style: "color:#b62e24" };
7648
- const keywordStyle = { style: "color:#9d288c" };
7816
+ const numberStyle = { style: "color:#1677ff" };
7817
+ const stringStyle = { style: "color:#f5222d" };
7818
+ const keywordStyle = { style: "color:#eb2f96" };
7649
7819
  const formatter = {
7650
7820
  header(obj) {
7651
7821
  if (!isObject(obj)) {
@@ -7839,7 +8009,7 @@ function isMemoSame(cached, memo) {
7839
8009
  return true;
7840
8010
  }
7841
8011
 
7842
- const version = "3.4.0-alpha.3";
8012
+ const version = "3.4.0-beta.1";
7843
8013
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
7844
8014
  const _ssrUtils = {
7845
8015
  createComponentInstance,
@@ -7852,5 +8022,6 @@ const _ssrUtils = {
7852
8022
  const ssrUtils = _ssrUtils ;
7853
8023
  const resolveFilter = null;
7854
8024
  const compatUtils = null;
8025
+ const DeprecationTypes = null;
7855
8026
 
7856
- export { BaseTransition, BaseTransitionPropsValidators, Comment, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useModel, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
8027
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useModel, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };