@vesk/runtime 0.2.24 → 0.2.26
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/hydrate.d.ts +14 -0
- package/dist/hydrate.d.ts.map +1 -1
- package/dist/hydrate.js +143 -12
- package/dist/router-components.d.ts +0 -7
- package/dist/router-components.d.ts.map +1 -1
- package/dist/router-components.js +0 -23
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +1 -9
- package/package.json +2 -2
package/dist/hydrate.d.ts
CHANGED
|
@@ -5,6 +5,20 @@ export interface HydrateWalker {
|
|
|
5
5
|
root: HTMLElement | null;
|
|
6
6
|
done(): boolean;
|
|
7
7
|
nextElement(tag?: string): Element;
|
|
8
|
+
/**
|
|
9
|
+
* Claim an element like `nextElement` but without stripping its direct text
|
|
10
|
+
* children. Used by static-component stubs whose SSR content is preserved
|
|
11
|
+
* as-is (no client-side re-creation of text nodes).
|
|
12
|
+
*/
|
|
13
|
+
claimOnly?(tag?: string): Element;
|
|
14
|
+
/**
|
|
15
|
+
* Drop any remaining markers whose comment node is no longer attached to
|
|
16
|
+
* the document. Self-claiming runtime components (Link/NavLink/Md/Form/
|
|
17
|
+
* Field/LoadingIndicator) rebuild or wipe their SSR content on hydration,
|
|
18
|
+
* which can remove comment markers that the shared walker still holds; the
|
|
19
|
+
* sweep lets the cursor skip them so following sibling claims stay aligned.
|
|
20
|
+
*/
|
|
21
|
+
retireDetached?(): void;
|
|
8
22
|
subWalker(rootEl: HTMLElement): HydrateWalker;
|
|
9
23
|
/**
|
|
10
24
|
* Claim the SSR element of a keyed list item whose `data-vsk-key` matches
|
package/dist/hydrate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,OAAO,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,OAAO,CAAC;IAChB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC;IAC9C;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IAC9C;;;OAGG;IACH,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CACtC;AAED,UAAU,kBAAkB;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,yBAAyB;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,iBAAiB;IAC1B,MAAM,IAAI,IAAI,CAAC;CACf;AAED,UAAU,aAAc,SAAQ,iBAAiB;IAChD,UAAU,IAAI,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAU5E;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAExD;
|
|
1
|
+
{"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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"}
|
package/dist/hydrate.js
CHANGED
|
@@ -76,6 +76,16 @@ function stripDirectTextNodes(el) {
|
|
|
76
76
|
el.childNodes[i].remove();
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
+
// After a claim, a claimed element may still contain direct SSR element
|
|
80
|
+
// children: component-boundary wrappers (`display:contents` spans) and static
|
|
81
|
+
// markup that hydration skips. Fresh text/dynamic nodes re-created client-side
|
|
82
|
+
// must be inserted BEFORE these residues at their SSR positions — appending at
|
|
83
|
+
// the end would reorder mixed text + component children (e.g. a label that
|
|
84
|
+
// reads `<span>compiler-first framework · <VersionBadge /></span>`). Store the
|
|
85
|
+
// residue list (in DOM order) on the element so codegen can address it.
|
|
86
|
+
function captureSsrElementChildren(el) {
|
|
87
|
+
el.__vsk_ssrEls = Array.prototype.slice.call(el.children);
|
|
88
|
+
}
|
|
79
89
|
/**
|
|
80
90
|
* Dev-mode check that every `<!--vsk-->` marker in `container` has been
|
|
81
91
|
* claimed by the most recent full hydration pass. Markers that remain belong
|
|
@@ -139,6 +149,22 @@ function adoptElement(marker, tag) {
|
|
|
139
149
|
return null;
|
|
140
150
|
marker.remove();
|
|
141
151
|
stripDirectTextNodes(el);
|
|
152
|
+
captureSsrElementChildren(el);
|
|
153
|
+
stampClaimed(el);
|
|
154
|
+
return el;
|
|
155
|
+
}
|
|
156
|
+
// Like adoptElement but preserves direct text children. Used by static-component
|
|
157
|
+
// stubs whose SSR content is kept as-is (no client-side re-rendering).
|
|
158
|
+
function adoptElementRaw(marker, tag) {
|
|
159
|
+
const el = marker.nextElementSibling;
|
|
160
|
+
if (!el) {
|
|
161
|
+
marker.remove();
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
if (tag && el.tagName.toLowerCase() !== tag)
|
|
165
|
+
return null;
|
|
166
|
+
marker.remove();
|
|
167
|
+
captureSsrElementChildren(el);
|
|
142
168
|
stampClaimed(el);
|
|
143
169
|
return el;
|
|
144
170
|
}
|
|
@@ -146,6 +172,13 @@ class WalkerEngine {
|
|
|
146
172
|
root;
|
|
147
173
|
markers;
|
|
148
174
|
idx = 0;
|
|
175
|
+
// Elements already adopted by an earlier claim in this walk. Marker-only SSR
|
|
176
|
+
// can leave TWO `<!--vsk-->` marks on the same element (the call site and
|
|
177
|
+
// the callee's own root marker — e.g. Link self-prefixes `<!--vsk-->` and
|
|
178
|
+
// the shared walker claims its call-site marker), and a claim must never
|
|
179
|
+
// adopt the same node twice: double-adoption strips its SSR text a second
|
|
180
|
+
// time and shells the cursor so every later claim misses its element.
|
|
181
|
+
adopted = new WeakSet();
|
|
149
182
|
constructor(root, markers) {
|
|
150
183
|
this.root = root;
|
|
151
184
|
this.markers = markers.map((c) => ({ comment: c, state: 'unclaimed' }));
|
|
@@ -153,6 +186,45 @@ class WalkerEngine {
|
|
|
153
186
|
done() {
|
|
154
187
|
return this.idx >= this.markers.length;
|
|
155
188
|
}
|
|
189
|
+
// A marker whose `nextElementSibling` was already adopted is a dead alias of
|
|
190
|
+
// a live claim point (double-marker collision). Retire it and move on so the
|
|
191
|
+
// cursor never claims a node twice.
|
|
192
|
+
isAlreadyAdopted(tm, el) {
|
|
193
|
+
if (el !== null && this.adopted.has(el)) {
|
|
194
|
+
tm.state = 'claimed';
|
|
195
|
+
this.idx++;
|
|
196
|
+
// Physically retire the alias too: like `adoptElement`, a spent
|
|
197
|
+
// marker never stays in the live DOM.
|
|
198
|
+
tm.comment.remove();
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
recordAdopted(el) {
|
|
204
|
+
this.adopted.add(el);
|
|
205
|
+
}
|
|
206
|
+
// Marker-only SSR can stack several `<!--vsk-->` marks before ONE element
|
|
207
|
+
// (call-site marker + the callee's own root marker). The FIRST claim adopts
|
|
208
|
+
// the element; the alias markers that immediately follow it are dead — they
|
|
209
|
+
// point at an already-claimed node and must be physically retired so the
|
|
210
|
+
// canary never counts them and a trailing alias never lingers in the DOM.
|
|
211
|
+
retireAliases(el) {
|
|
212
|
+
let i = this.idx;
|
|
213
|
+
while (i < this.markers.length) {
|
|
214
|
+
const tm = this.markers[i];
|
|
215
|
+
if (tm.state === 'claimed') {
|
|
216
|
+
i++;
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
if (tm.comment.nextElementSibling === el) {
|
|
220
|
+
tm.state = 'claimed';
|
|
221
|
+
tm.comment.remove();
|
|
222
|
+
i++;
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
156
228
|
nextElement(tag) {
|
|
157
229
|
while (this.idx < this.markers.length) {
|
|
158
230
|
const tm = this.markers[this.idx];
|
|
@@ -161,6 +233,8 @@ class WalkerEngine {
|
|
|
161
233
|
continue;
|
|
162
234
|
}
|
|
163
235
|
const el = tm.comment.nextElementSibling;
|
|
236
|
+
if (this.isAlreadyAdopted(tm, el))
|
|
237
|
+
continue;
|
|
164
238
|
if (tag && el && el.tagName.toLowerCase() !== tag) {
|
|
165
239
|
// SSR rendered a different tag than this claim wants. Leave the
|
|
166
240
|
// marker AND the element untouched and back off without moving
|
|
@@ -182,6 +256,8 @@ class WalkerEngine {
|
|
|
182
256
|
tm.state = 'claimed';
|
|
183
257
|
break;
|
|
184
258
|
}
|
|
259
|
+
this.recordAdopted(adopted);
|
|
260
|
+
this.retireAliases(adopted);
|
|
185
261
|
tm.state = 'claimed';
|
|
186
262
|
return adopted;
|
|
187
263
|
}
|
|
@@ -204,6 +280,51 @@ class WalkerEngine {
|
|
|
204
280
|
}
|
|
205
281
|
return document.createElement(tag || 'div');
|
|
206
282
|
}
|
|
283
|
+
claimOnly(tag) {
|
|
284
|
+
while (this.idx < this.markers.length) {
|
|
285
|
+
const tm = this.markers[this.idx];
|
|
286
|
+
if (tm.state === 'claimed') {
|
|
287
|
+
this.idx++;
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
const el = tm.comment.nextElementSibling;
|
|
291
|
+
if (this.isAlreadyAdopted(tm, el))
|
|
292
|
+
continue;
|
|
293
|
+
if (tag && el && el.tagName.toLowerCase() !== tag)
|
|
294
|
+
break;
|
|
295
|
+
this.idx++;
|
|
296
|
+
const adopted = adoptElementRaw(tm.comment, tag);
|
|
297
|
+
if (adopted === null) {
|
|
298
|
+
tm.state = 'claimed';
|
|
299
|
+
break;
|
|
300
|
+
}
|
|
301
|
+
this.recordAdopted(adopted);
|
|
302
|
+
this.retireAliases(adopted);
|
|
303
|
+
tm.state = 'claimed';
|
|
304
|
+
return adopted;
|
|
305
|
+
}
|
|
306
|
+
return document.createElement(tag || 'div');
|
|
307
|
+
}
|
|
308
|
+
retireDetached() {
|
|
309
|
+
while (this.idx < this.markers.length) {
|
|
310
|
+
const tm = this.markers[this.idx];
|
|
311
|
+
if (tm.state === 'claimed') {
|
|
312
|
+
this.idx++;
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
const c = tm.comment;
|
|
316
|
+
// A marker whose comment is no longer attached cannot belong to any
|
|
317
|
+
// element this walker can claim, so its SSR content was removed by
|
|
318
|
+
// the render (e.g. Link's replaceChildren). Skip it and keep the
|
|
319
|
+
// cursor document-ordered for the next live marker.
|
|
320
|
+
if (!c || !c.parentNode) {
|
|
321
|
+
tm.state = 'claimed';
|
|
322
|
+
this.idx++;
|
|
323
|
+
continue;
|
|
324
|
+
}
|
|
325
|
+
break;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
207
328
|
subWalker(rootEl) {
|
|
208
329
|
const subMarkers = this.markers.slice(this.idx).filter((m) => {
|
|
209
330
|
if (m.state === 'claimed')
|
|
@@ -219,18 +340,6 @@ class WalkerEngine {
|
|
|
219
340
|
this.idx += subMarkers.length;
|
|
220
341
|
for (const m of subMarkers)
|
|
221
342
|
m.state = 'claimed';
|
|
222
|
-
// A component's SSR content always carries interior `<!--vsk-->` markers
|
|
223
|
-
// that the child's own hydrator claims. Exception: plain JS components
|
|
224
|
-
// (lucide icons etc.) render inside the compiler's boundary wrapper
|
|
225
|
-
// (`<!--vsk--><span style="display:contents">`) with NO interior markers.
|
|
226
|
-
// An empty marker list would send the child to `nextElement`'s fresh-node
|
|
227
|
-
// fallback, orphaning the SSR root inside the claimed wrapper (duplicate
|
|
228
|
-
// icons, non-reactive if/else blocks after hydration). Fall back to
|
|
229
|
-
// positional claiming of the wrapper's element children so those
|
|
230
|
-
// components adopt their SSR root in place, exactly like `.vsk` roots do.
|
|
231
|
-
if (subMarkers.length === 0 && rootEl && rootEl.tagName === 'SPAN' && rootEl.style && rootEl.style.display === 'contents') {
|
|
232
|
-
return createHydrateChildWalker(rootEl);
|
|
233
|
-
}
|
|
234
343
|
return new WalkerEngine(rootEl, subMarkers.map((m) => m.comment));
|
|
235
344
|
}
|
|
236
345
|
claimByKey(key) {
|
|
@@ -245,10 +354,15 @@ class WalkerEngine {
|
|
|
245
354
|
if (tm.state === 'claimed')
|
|
246
355
|
continue;
|
|
247
356
|
const el = tm.comment.nextElementSibling;
|
|
357
|
+
if (this.isAlreadyAdopted(tm, el))
|
|
358
|
+
continue;
|
|
248
359
|
if (el && el.getAttribute('data-vsk-key') === strKey) {
|
|
249
360
|
tm.state = 'claimed';
|
|
361
|
+
this.recordAdopted(el);
|
|
362
|
+
this.retireAliases(el);
|
|
250
363
|
tm.comment.remove();
|
|
251
364
|
stripDirectTextNodes(el);
|
|
365
|
+
captureSsrElementChildren(el);
|
|
252
366
|
stampClaimed(el);
|
|
253
367
|
return { el };
|
|
254
368
|
}
|
|
@@ -267,6 +381,8 @@ class WalkerEngine {
|
|
|
267
381
|
if (tm.state === 'claimed')
|
|
268
382
|
continue;
|
|
269
383
|
const el = tm.comment.nextElementSibling;
|
|
384
|
+
if (el && this.adopted.has(el))
|
|
385
|
+
continue;
|
|
270
386
|
if (el && el.getAttribute('data-vsk-key') === strKey)
|
|
271
387
|
return el;
|
|
272
388
|
}
|
|
@@ -290,6 +406,18 @@ export function createHydrateChildWalker(parentEl) {
|
|
|
290
406
|
const child = children[childIdx++];
|
|
291
407
|
if (!tag || child.tagName.toLowerCase() === tag) {
|
|
292
408
|
stripDirectTextNodes(child);
|
|
409
|
+
captureSsrElementChildren(child);
|
|
410
|
+
stampClaimed(child);
|
|
411
|
+
return child;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
return document.createElement(tag || 'div');
|
|
415
|
+
},
|
|
416
|
+
claimOnly(tag) {
|
|
417
|
+
while (childIdx < children.length) {
|
|
418
|
+
const child = children[childIdx++];
|
|
419
|
+
if (!tag || child.tagName.toLowerCase() === tag) {
|
|
420
|
+
captureSsrElementChildren(child);
|
|
293
421
|
stampClaimed(child);
|
|
294
422
|
return child;
|
|
295
423
|
}
|
|
@@ -299,6 +427,9 @@ export function createHydrateChildWalker(parentEl) {
|
|
|
299
427
|
subWalker(rootEl) {
|
|
300
428
|
return createHydrateChildWalker(rootEl);
|
|
301
429
|
},
|
|
430
|
+
retireDetached() {
|
|
431
|
+
// Child-walkers hold no marker list; nothing to sweep.
|
|
432
|
+
},
|
|
302
433
|
};
|
|
303
434
|
}
|
|
304
435
|
export function hydrate(container, componentFn, props) {
|
|
@@ -42,13 +42,6 @@ export declare const _state: {
|
|
|
42
42
|
};
|
|
43
43
|
export declare const _scrollPositions: Map<string, number>;
|
|
44
44
|
export declare let _isPopStateNavigation: boolean;
|
|
45
|
-
export declare let _initialScrollRestored: boolean;
|
|
46
|
-
export declare let _initialSavedScroll: number;
|
|
47
|
-
/** Capture the browser's pre-hydration scroll position and re-arm the
|
|
48
|
-
* one-shot initial restore. Called at the top of `router.start()` on a
|
|
49
|
-
* fresh page load so a refresh lands back on the viewport the browser
|
|
50
|
-
* had scrolled to instead of the top. */
|
|
51
|
-
export declare function captureInitialScroll(): void;
|
|
52
45
|
export declare function setIsPopStateNavigation(v: boolean): void;
|
|
53
46
|
export declare function setCurrentRouter(r: Router | null): void;
|
|
54
47
|
export declare function getCurrentRouter(): Router | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-components.d.ts","sourceRoot":"","sources":["../src/router-components.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE;;2EAE2E;AAC3E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3D,UAAU,MAAM;IACf,KAAK,IAAI,MAAM,CAAC;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC;IACpC,gBAAgB,CAAC,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACrB;AAED,qBAAa,QAAS,SAAQ,KAAK;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACP,IAAI,EAAE,UAAU,CAAC;gBAEb,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM;CAMrC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,KAAK,CAEzD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAEpD;AAED,qBAAa,aAAc,SAAQ,KAAK;IAC/B,IAAI,EAAE,eAAe,CAAC;gBAElB,GAAG,SAAc;CAI7B;AAED,wBAAgB,QAAQ,IAAI,KAAK,CAEhC;AAED,eAAO,MAAM,SAAS,4DAAqC,CAAC;AAsB5D,eAAO,IAAI,aAAa,SAAQ,CAAC;AAEjC,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAE/C;AAED,eAAO,MAAM,MAAM;;;;CAIlB,CAAC;AAEF,eAAO,MAAM,gBAAgB,qBAA4B,CAAC;AAC1D,eAAO,IAAI,qBAAqB,SAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"router-components.d.ts","sourceRoot":"","sources":["../src/router-components.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,18 +56,6 @@ export const _state = {
|
|
|
56
56
|
};
|
|
57
57
|
export const _scrollPositions = new Map();
|
|
58
58
|
export let _isPopStateNavigation = false;
|
|
59
|
-
export let _initialScrollRestored = false;
|
|
60
|
-
export let _initialSavedScroll = 0;
|
|
61
|
-
/** Capture the browser's pre-hydration scroll position and re-arm the
|
|
62
|
-
* one-shot initial restore. Called at the top of `router.start()` on a
|
|
63
|
-
* fresh page load so a refresh lands back on the viewport the browser
|
|
64
|
-
* had scrolled to instead of the top. */
|
|
65
|
-
export function captureInitialScroll() {
|
|
66
|
-
if (typeof window === 'undefined')
|
|
67
|
-
return;
|
|
68
|
-
_initialSavedScroll = window.scrollY || 0;
|
|
69
|
-
_initialScrollRestored = false;
|
|
70
|
-
}
|
|
71
59
|
export function setIsPopStateNavigation(v) {
|
|
72
60
|
_isPopStateNavigation = v;
|
|
73
61
|
}
|
|
@@ -151,12 +139,6 @@ export function handleScroll(pathname, isReplace, scrollBehavior) {
|
|
|
151
139
|
window.scrollTo({ top: savedY !== undefined ? savedY : 0, behavior });
|
|
152
140
|
});
|
|
153
141
|
}
|
|
154
|
-
else if (isReplace && !_initialScrollRestored) {
|
|
155
|
-
_initialScrollRestored = true;
|
|
156
|
-
requestAnimationFrame(() => {
|
|
157
|
-
window.scrollTo({ top: _initialSavedScroll, behavior });
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
142
|
else if (!isReplace) {
|
|
161
143
|
requestAnimationFrame(() => window.scrollTo({ top: 0, behavior }));
|
|
162
144
|
}
|
|
@@ -232,11 +214,6 @@ export function Link(props, registry, hydrate) {
|
|
|
232
214
|
const href = props.href || '#';
|
|
233
215
|
if (hydrate && hydrate.nextElement) {
|
|
234
216
|
let a = hydrate.nextElement('a');
|
|
235
|
-
if (a && !a.parentNode && hydrate.root) {
|
|
236
|
-
const existing = hydrate.root.querySelector('a');
|
|
237
|
-
if (existing)
|
|
238
|
-
a = existing;
|
|
239
|
-
}
|
|
240
217
|
// The claimed SSR anchor is already attached in place; returning it lets
|
|
241
218
|
// compiled call sites re-insert it and duplicate the element. Keep it
|
|
242
219
|
// claimed and return an inert fragment. Only a genuinely fresh anchor
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/dist/router.js
CHANGED
|
@@ -2,7 +2,7 @@ import { get, set, scope, set_active_block } from '@vesk/runtime/src/ripple-runt
|
|
|
2
2
|
import { root } from '@vesk/runtime/src/ripple-blocks';
|
|
3
3
|
import { createHydrateWalker, hydrateViewport, hydrateIdle, hydrateOnInteraction } from '@vesk/runtime/src/hydrate';
|
|
4
4
|
import { matchRoute, flattenLayoutChain, buildTreeFromMap } from '@vesk/runtime/src/router-match';
|
|
5
|
-
import { setIsHydrating, _state, _scrollPositions, _isPopStateNavigation, setIsPopStateNavigation, setCurrentRouter,
|
|
5
|
+
import { setIsHydrating, _state, _scrollPositions, _isPopStateNavigation, setIsPopStateNavigation, setCurrentRouter, showLoadingInContainer, handleScroll, applyHead, findLoadingComponent, findErrorComponent, findNotFoundComponent, findOfflineComponent, findNetworkComponent, getCurrentRouter, Outlet, Link, NavLink, useNavigate, useParams, usePathname, useSearchParams, useRouter, Redirect, redirect, permanentRedirect, NotFoundError, notFound, } from '@vesk/runtime/src/router-components';
|
|
6
6
|
import { getNetworkState, watchNetwork } from '@vesk/runtime/src/network';
|
|
7
7
|
import { loadingStart, loadingFinish, getLoadingState } from '@vesk/runtime/src/loading-indicator';
|
|
8
8
|
export { Outlet, Link, NavLink, useNavigate, useParams, usePathname, useSearchParams, useRouter, Redirect, redirect, permanentRedirect, NotFoundError, notFound, ensureChunk, };
|
|
@@ -1259,10 +1259,6 @@ export function createRouter(routes, options = {}) {
|
|
|
1259
1259
|
},
|
|
1260
1260
|
start() {
|
|
1261
1261
|
setCurrentRouter(this);
|
|
1262
|
-
if (typeof window !== 'undefined' && 'scrollRestoration' in window.history) {
|
|
1263
|
-
captureInitialScroll();
|
|
1264
|
-
window.history.scrollRestoration = 'manual';
|
|
1265
|
-
}
|
|
1266
1262
|
if (typeof window !== 'undefined' && typeof window.addEventListener === 'function') {
|
|
1267
1263
|
let _scrollTimer = null;
|
|
1268
1264
|
window.addEventListener('scroll', () => {
|
|
@@ -1640,10 +1636,6 @@ export function createFileRouter(routeTree, options = {}) {
|
|
|
1640
1636
|
},
|
|
1641
1637
|
start() {
|
|
1642
1638
|
setCurrentRouter(this);
|
|
1643
|
-
if (typeof window !== 'undefined' && 'scrollRestoration' in window.history) {
|
|
1644
|
-
captureInitialScroll();
|
|
1645
|
-
window.history.scrollRestoration = 'manual';
|
|
1646
|
-
}
|
|
1647
1639
|
if (typeof window !== 'undefined' && typeof window.addEventListener === 'function') {
|
|
1648
1640
|
let _scrollTimer = null;
|
|
1649
1641
|
const _onScroll = () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vesk/runtime",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.26",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Vesk runtime — reactivity, blocks, DOM operations, hydration",
|
|
6
6
|
"main": "./dist/index-client.js",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@vesk/compiler": "^0.2.
|
|
54
|
+
"@vesk/compiler": "^0.2.26"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"typecheck": "tsc --noEmit",
|