@takazudo/zfb-runtime 0.1.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +21 -0
  3. package/README.md +237 -0
  4. package/dist/client-router/cssesc.d.ts +9 -0
  5. package/dist/client-router/cssesc.d.ts.map +1 -0
  6. package/dist/client-router/cssesc.js +95 -0
  7. package/dist/client-router/cssesc.js.map +1 -0
  8. package/dist/client-router/events.d.ts +42 -0
  9. package/dist/client-router/events.d.ts.map +1 -0
  10. package/dist/client-router/events.js +114 -0
  11. package/dist/client-router/events.js.map +1 -0
  12. package/dist/client-router/index.d.ts +9 -0
  13. package/dist/client-router/index.d.ts.map +1 -0
  14. package/dist/client-router/index.js +18 -0
  15. package/dist/client-router/index.js.map +1 -0
  16. package/dist/client-router/prefetch.d.ts +29 -0
  17. package/dist/client-router/prefetch.d.ts.map +1 -0
  18. package/dist/client-router/prefetch.js +288 -0
  19. package/dist/client-router/prefetch.js.map +1 -0
  20. package/dist/client-router/router.d.ts +17 -0
  21. package/dist/client-router/router.d.ts.map +1 -0
  22. package/dist/client-router/router.js +739 -0
  23. package/dist/client-router/router.js.map +1 -0
  24. package/dist/client-router/swap-functions.d.ts +22 -0
  25. package/dist/client-router/swap-functions.d.ts.map +1 -0
  26. package/dist/client-router/swap-functions.js +252 -0
  27. package/dist/client-router/swap-functions.js.map +1 -0
  28. package/dist/client-router/types.d.ts +11 -0
  29. package/dist/client-router/types.d.ts.map +1 -0
  30. package/dist/client-router/types.js +3 -0
  31. package/dist/client-router/types.js.map +1 -0
  32. package/dist/client-router.d.ts +36 -0
  33. package/dist/client-router.d.ts.map +1 -0
  34. package/dist/client-router.js +117 -0
  35. package/dist/client-router.js.map +1 -0
  36. package/dist/framework.d.ts +17 -0
  37. package/dist/framework.d.ts.map +1 -0
  38. package/dist/framework.js +17 -0
  39. package/dist/framework.js.map +1 -0
  40. package/dist/index.d.ts +14 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +29 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/router.d.ts +97 -0
  45. package/dist/router.d.ts.map +1 -0
  46. package/dist/router.js +318 -0
  47. package/dist/router.js.map +1 -0
  48. package/dist/snapshot.d.ts +38 -0
  49. package/dist/snapshot.d.ts.map +1 -0
  50. package/dist/snapshot.js +16 -0
  51. package/dist/snapshot.js.map +1 -0
  52. package/dist/view-transitions.d.ts +34 -0
  53. package/dist/view-transitions.d.ts.map +1 -0
  54. package/dist/view-transitions.js +54 -0
  55. package/dist/view-transitions.js.map +1 -0
  56. package/package.json +78 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/client-router/router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export type SavedFocus = {
2
+ activeElement: HTMLElement | null;
3
+ start?: number | null;
4
+ end?: number | null;
5
+ };
6
+ export declare function detectScriptExecuted(script: HTMLScriptElement): boolean;
7
+ export declare function deselectScripts(doc: Document): void;
8
+ export declare function swapRootAttributes(newDoc: Document): void;
9
+ export declare function swapHeadElements(doc: Document): void;
10
+ export declare function swapBodyElement(newElement: Element, oldElement: Element): void;
11
+ export declare const saveFocus: () => (() => void);
12
+ export declare const restoreFocus: ({ activeElement, start, end }: SavedFocus) => void;
13
+ export declare const vueScopedStyleId: (el: HTMLStyleElement) => string;
14
+ export declare const swapFunctions: {
15
+ deselectScripts: typeof deselectScripts;
16
+ swapRootAttributes: typeof swapRootAttributes;
17
+ swapHeadElements: typeof swapHeadElements;
18
+ swapBodyElement: typeof swapBodyElement;
19
+ saveFocus: () => (() => void);
20
+ };
21
+ export declare const swap: (doc: Document) => void;
22
+ //# sourceMappingURL=swap-functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap-functions.d.ts","sourceRoot":"","sources":["../../src/client-router/swap-functions.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,UAAU,GAAG;IACvB,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AASF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,WAK7D;AAKD,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,QAa5C;AAQD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,QAQlD;AAKD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,QA2B7C;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,QAmDvE;AAyBD,eAAO,MAAM,SAAS,QAAO,CAAC,MAAM,IAAI,CAevC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,+BAA+B,UAAU,SAQrE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,IAAI,gBAAgB,KAAG,MASvD,CAAC;AA0DF,eAAO,MAAM,aAAa;;;;;qBA9FG,CAAC,MAAM,IAAI,CAAC;CAoGxC,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,KAAK,QAAQ,SAOjC,CAAC"}
@@ -0,0 +1,252 @@
1
+ /// <reference lib="dom" />
2
+ /// <reference lib="dom.iterable" />
3
+ // Ported verbatim from Astro transitions/swap-functions.ts. Mechanical renames
4
+ // applied per W1B §13.4 (data-astro-* → data-zfb-*, dataset.astro* → dataset.zfb*,
5
+ // astro-island element-name branch → data-zfb-island marker per W1B §12.3 island-lifecycle
6
+ // contract). vueScopedStyleId is intentionally KEPT verbatim per W2A §2.8 (the W3B
7
+ // issue body's "DELETE" instruction is overridden by W2A's reclassification).
8
+ const PERSIST_ATTR = "data-zfb-transition-persist";
9
+ const NON_OVERRIDABLE_ZFB_ATTRS = ["data-zfb-transition", "data-zfb-transition-fallback"];
10
+ const knownVueScopedStyles = new Map();
11
+ const scriptsAlreadyRan = new Set();
12
+ export function detectScriptExecuted(script) {
13
+ const key = script.src ? new URL(script.src, location.href).href : script.textContent;
14
+ if (scriptsAlreadyRan.has(key))
15
+ return true;
16
+ scriptsAlreadyRan.add(key);
17
+ return false;
18
+ }
19
+ /*
20
+ * Mark new scripts that should not execute
21
+ */
22
+ export function deselectScripts(doc) {
23
+ for (const s2 of doc.scripts) {
24
+ if (
25
+ // Check if the script should be rerun regardless of it being the same
26
+ !s2.hasAttribute("data-zfb-rerun") &&
27
+ // Check if the script has already been executed
28
+ detectScriptExecuted(s2)) {
29
+ // the old script is in the new document and doesn't have the rerun attribute
30
+ // we mark it as executed to prevent re-execution
31
+ s2.dataset["zfbExec"] = "";
32
+ }
33
+ }
34
+ }
35
+ /*
36
+ * swap attributes of the html element
37
+ * delete all attributes from the current document
38
+ * insert all attributes from doc
39
+ * reinsert all original attributes that are referenced in NON_OVERRIDABLE_ZFB_ATTRS'
40
+ */
41
+ export function swapRootAttributes(newDoc) {
42
+ const currentRoot = document.documentElement;
43
+ const nonOverridableZfbAttributes = [...currentRoot.attributes].filter(({ name }) => (currentRoot.removeAttribute(name), NON_OVERRIDABLE_ZFB_ATTRS.includes(name)));
44
+ [...newDoc.documentElement.attributes, ...nonOverridableZfbAttributes].forEach(({ name, value }) => currentRoot.setAttribute(name, value));
45
+ }
46
+ /*
47
+ * make the old head look like the new one
48
+ */
49
+ export function swapHeadElements(doc) {
50
+ for (const el of Array.from(document.head.children)) {
51
+ const newEl = persistedHeadElement(el, doc);
52
+ // If the element exists in the document already, remove it
53
+ // from the new document and leave the current node alone
54
+ if (newEl) {
55
+ newEl.remove();
56
+ }
57
+ else {
58
+ if (import.meta.env?.DEV && el instanceof HTMLStyleElement) {
59
+ // In DEV mode, keep updated Vue scoped styles for later reuse
60
+ const viteDevId = vueScopedStyleId(el);
61
+ viteDevId && knownVueScopedStyles.set(viteDevId, el);
62
+ }
63
+ // If the element does not exist in the new document, remove the element from current the head.
64
+ el.remove();
65
+ }
66
+ }
67
+ // Everything left in the new head is new, append it all.
68
+ if (import.meta.env?.DEV) {
69
+ // In DEV mode, replace known Vue scoped styles with the versions we remembered
70
+ [...doc.head.children].forEach((child) => {
71
+ document.head.append(knownVueScopedStyles.get(child.dataset?.viteDevId) || child);
72
+ });
73
+ }
74
+ else {
75
+ document.head.append(...doc.head.children);
76
+ }
77
+ }
78
+ export function swapBodyElement(newElement, oldElement) {
79
+ // Lift persist elements to <html> before the body swap so they stay in the DOM
80
+ // throughout replaceWith(). This prevents Safari from losing WebGL context on
81
+ // <canvas> elements due to brief DOM detachment. Uses moveBefore() where available
82
+ // (Chrome 133+) for zero-detachment atomic moves.
83
+ const persistPairs = [];
84
+ const docEl = oldElement.ownerDocument.documentElement;
85
+ // moveBefore() is not yet in TypeScript's DOM lib, feature-detect and wrap.
86
+ const moveBefore = typeof docEl.moveBefore === "function"
87
+ ? (parent, node, child) => parent.moveBefore(node, child)
88
+ : null;
89
+ for (const el of oldElement.querySelectorAll(`[${PERSIST_ATTR}]`)) {
90
+ const id = el.getAttribute(PERSIST_ATTR);
91
+ const newEl = newElement.querySelector(`[${PERSIST_ATTR}="${id}"]`);
92
+ if (!newEl)
93
+ continue; // no matching target — leave in old body to be discarded
94
+ persistPairs.push({ old: el, newTarget: newEl });
95
+ if (moveBefore) {
96
+ moveBefore(docEl, el, null);
97
+ }
98
+ else {
99
+ docEl.appendChild(el);
100
+ }
101
+ }
102
+ // this will reset scroll Position
103
+ oldElement.replaceWith(newElement);
104
+ // Move persist elements into the new body at the position of their targets
105
+ for (const { old: el, newTarget } of persistPairs) {
106
+ if (moveBefore) {
107
+ moveBefore(newTarget.parentNode, el, newTarget);
108
+ newTarget.remove();
109
+ }
110
+ else {
111
+ newTarget.replaceWith(el);
112
+ }
113
+ // For islands, copy over the props to allow them to re-render
114
+ if (newTarget.matches("[data-zfb-island]") &&
115
+ shouldCopyProps(el) &&
116
+ !isSameProps(el, newTarget)) {
117
+ el.setAttribute("ssr", "");
118
+ // zfb island wrapper writes SSR props to data-props, not props (different attribute, not just renamed).
119
+ el.setAttribute("data-props", newTarget.getAttribute("data-props"));
120
+ }
121
+ }
122
+ // This will upgrade any Declarative Shadow DOM in the new body.
123
+ attachShadowRoots(newElement);
124
+ }
125
+ /**
126
+ * Attach Shadow DOM roots for templates with the declarative `shadowrootmode` attribute.
127
+ * @see https://web.dev/articles/declarative-shadow-dom#polyfill
128
+ * @param root DOM subtree to attach shadow roots within.
129
+ */
130
+ function attachShadowRoots(root) {
131
+ root.querySelectorAll("template[shadowrootmode]").forEach((template) => {
132
+ const mode = template.getAttribute("shadowrootmode");
133
+ const parent = template.parentNode;
134
+ if ((mode === "closed" || mode === "open") && parent instanceof HTMLElement) {
135
+ // Skip if shadow root already exists (e.g., from transition-persisted elements)
136
+ if (parent.shadowRoot) {
137
+ template.remove();
138
+ return;
139
+ }
140
+ const shadowRoot = parent.attachShadow({ mode });
141
+ shadowRoot.appendChild(template.content);
142
+ template.remove();
143
+ attachShadowRoots(shadowRoot);
144
+ }
145
+ });
146
+ }
147
+ export const saveFocus = () => {
148
+ const activeElement = document.activeElement;
149
+ // The element that currently has the focus is part of a DOM tree
150
+ // that will survive the transition to the new document.
151
+ // Save the element and the cursor position
152
+ if (activeElement?.closest(`[${PERSIST_ATTR}]`)) {
153
+ if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {
154
+ const start = activeElement.selectionStart;
155
+ const end = activeElement.selectionEnd;
156
+ return () => restoreFocus({ activeElement, start, end });
157
+ }
158
+ return () => restoreFocus({ activeElement });
159
+ }
160
+ else {
161
+ return () => restoreFocus({ activeElement: null });
162
+ }
163
+ };
164
+ export const restoreFocus = ({ activeElement, start, end }) => {
165
+ if (activeElement) {
166
+ activeElement.focus();
167
+ if (activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement) {
168
+ if (typeof start === "number")
169
+ activeElement.selectionStart = start;
170
+ if (typeof end === "number")
171
+ activeElement.selectionEnd = end;
172
+ }
173
+ }
174
+ };
175
+ export const vueScopedStyleId = (el) => {
176
+ const viteDevId = el.dataset["viteDevId"] || "";
177
+ const url = new URL(viteDevId, location.href);
178
+ return url.searchParams.get("vue") !== null &&
179
+ url.searchParams.get("type") === "style" &&
180
+ url.searchParams.has("scoped")
181
+ ? viteDevId
182
+ : "";
183
+ };
184
+ // Check for a head element that should persist and returns it,
185
+ // either because it has the data attribute or because replacing it would cause avoidable FOUC.
186
+ const persistedHeadElement = (el, newDoc) => {
187
+ const id = el.getAttribute(PERSIST_ATTR);
188
+ const newEl = id && newDoc.head.querySelector(`[${PERSIST_ATTR}="${id}"]`);
189
+ if (newEl) {
190
+ return newEl;
191
+ }
192
+ if (el.matches("link[rel=stylesheet]")) {
193
+ const href = el.getAttribute("href");
194
+ return newDoc.head.querySelector(`link[rel=stylesheet][href="${href}"]`);
195
+ }
196
+ // In dev mode, Vite injects <style data-vite-dev-id="..."> elements whose
197
+ // textContent may later be transformed (especially Vue's `:deep()` → `[data-v-xxx]`).
198
+ // Match these by their stable dev ID so the already-transformed style is preserved
199
+ // across ClientRouter soft navigations instead of being replaced by the raw version.
200
+ // There are other ids that can't be preserved and need a refresh, like Uno's /__uno.css,
201
+ // which keeps the same id, but with different contents.
202
+ // To avoid enumerating all exceptions, we only apply the auto-persist logic to elements
203
+ // that look like Vue's dev styles.
204
+ if (import.meta.env?.DEV && el instanceof HTMLStyleElement) {
205
+ const viteDevId = vueScopedStyleId(el);
206
+ if (viteDevId) {
207
+ return newDoc.head.querySelector(`style[data-vite-dev-id="${viteDevId}"]`);
208
+ }
209
+ }
210
+ // Preserve inline <style> elements with identical content across navigations.
211
+ // This prevents unnecessary removal and re-insertion of styles (e.g. @font-face
212
+ // declarations from <Font>), which would cause the browser to re-evaluate them
213
+ // and trigger a flash of unstyled text (FOUT).
214
+ if (el.tagName === "STYLE" && el.textContent) {
215
+ const styles = newDoc.head.querySelectorAll("style");
216
+ for (const s of styles) {
217
+ if (s.textContent === el.textContent) {
218
+ return s;
219
+ }
220
+ }
221
+ }
222
+ // Preserve font preload links across navigations to avoid re-fetching cached fonts.
223
+ if (el.matches("link[rel=preload][as=font]")) {
224
+ const href = el.getAttribute("href");
225
+ return newDoc.head.querySelector(`link[rel=preload][as=font][href="${href}"]`);
226
+ }
227
+ return null;
228
+ };
229
+ const shouldCopyProps = (el) => {
230
+ const persistProps = el.dataset["zfbTransitionPersistProps"];
231
+ return persistProps == null || persistProps === "false";
232
+ };
233
+ const isSameProps = (oldEl, newEl) => {
234
+ // zfb island wrapper writes SSR props to data-props, not props (different attribute, not just renamed).
235
+ return oldEl.getAttribute("data-props") === newEl.getAttribute("data-props");
236
+ };
237
+ export const swapFunctions = {
238
+ deselectScripts,
239
+ swapRootAttributes,
240
+ swapHeadElements,
241
+ swapBodyElement,
242
+ saveFocus,
243
+ };
244
+ export const swap = (doc) => {
245
+ deselectScripts(doc);
246
+ swapRootAttributes(doc);
247
+ swapHeadElements(doc);
248
+ const restoreFocusFunction = saveFocus();
249
+ swapBodyElement(doc.body, document.body);
250
+ restoreFocusFunction();
251
+ };
252
+ //# sourceMappingURL=swap-functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap-functions.js","sourceRoot":"","sources":["../../src/client-router/swap-functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type Fallback = "none" | "animate" | "swap";
2
+ export type Direction = "forward" | "back";
3
+ export type NavigationTypeString = "push" | "replace" | "traverse";
4
+ export type Options = {
5
+ history?: "auto" | "push" | "replace";
6
+ info?: any;
7
+ state?: any;
8
+ formData?: FormData;
9
+ sourceElement?: Element;
10
+ };
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client-router/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AACnE,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /// <reference lib="dom" />
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client-router/types.ts"],"names":[],"mappings":"AAAA,2BAA2B"}
@@ -0,0 +1,36 @@
1
+ export interface ClientRouterProps {
2
+ /** Fallback animation strategy when native View Transitions are not supported. */
3
+ fallback?: "none" | "animate" | "swap";
4
+ /**
5
+ * When true, opts every same-origin link into the default prefetch strategy
6
+ * (hover) by calling prefetchInit({ prefetchAll: true }) once on the client.
7
+ */
8
+ prefetchAll?: boolean;
9
+ }
10
+ /**
11
+ * Public element shape for each node returned by `<ClientRouter />`.
12
+ * Structural type — intentionally matches the Preact/React VNode object shape
13
+ * so consumers do not type-infer through the internal representation.
14
+ */
15
+ export type ClientRouterElement = {
16
+ readonly type: string;
17
+ readonly props: Readonly<Record<string, unknown>>;
18
+ readonly key: unknown;
19
+ };
20
+ /**
21
+ * `<ClientRouter />` — SPA soft-swap navigation with View Transition animations.
22
+ *
23
+ * Mount once in your page `<head>`. Emits the opt-in meta tags and the global
24
+ * `.zfb-route-announcer` stylesheet that the route-announcer ARIA div needs.
25
+ * Click and form-submit intercepts are registered as a side effect of importing
26
+ * this component (idempotent — safe to mount multiple times).
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * import { ClientRouter } from "@takazudo/zfb-runtime";
31
+ * // In your page <head>:
32
+ * <ClientRouter fallback="animate" />
33
+ * ```
34
+ */
35
+ export declare function ClientRouter({ fallback, prefetchAll: prefetchAllProp, }?: ClientRouterProps): readonly ClientRouterElement[];
36
+ //# sourceMappingURL=client-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-router.d.ts","sourceRoot":"","sources":["../src/client-router.ts"],"names":[],"mappings":"AA4CA,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB,CAAC;AAqCF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAoB,EACpB,WAAW,EAAE,eAAuB,GACrC,GAAE,iBAAsB,GAAG,SAAS,mBAAmB,EAAE,CAmCzD"}
@@ -0,0 +1,117 @@
1
+ // `@takazudo/zfb-runtime` — `<ClientRouter />` component.
2
+ //
3
+ // Ported from Astro's `ClientRouter.astro` (155 lines).
4
+ // Source: packages/astro/components/ClientRouter.astro
5
+ // Issue: zudolab/zudo-doc#1519 (W3D), parent epic zudolab/zudo-doc#1510.
6
+ //
7
+ // Named-cause deviation — inline script split (W1B §13.6):
8
+ // Astro's <script> block is processed by Vite at build time as a bundled
9
+ // module with virtual-module imports (`astro:transitions/client`). The zfb
10
+ // port emits meta tags + global styles from the JSX component, while the
11
+ // click/form intercepts live in `client-router/router.ts` and are registered
12
+ // via `init()`. The component calls `init()` as a side effect on first import.
13
+ // No inline <script> dangerouslySetInnerHTML is emitted.
14
+ //
15
+ // Named-cause deviation — no JSX (W1B: "follow existing component-emission pattern"):
16
+ // `@takazudo/zfb-runtime` does not depend on Preact and has no JSX compiler
17
+ // options configured in its tsconfig. The existing component-emission pattern
18
+ // (established by `Island` in @takazudo/zfb, and `ViewTransitions` in this
19
+ // package) uses plain VNode-shaped objects with `constructor: undefined` — the
20
+ // sentinel recognised by both Preact and React renderers. Following that pattern
21
+ // avoids adding Preact as a dependency and avoids tsconfig JSX changes.
22
+ //
23
+ // The component renders three sibling elements to <head>:
24
+ // 1. A <style> tag with the `.zfb-route-announcer` ARIA helper class.
25
+ // 2. <meta name="zfb-view-transitions-enabled" content="true" />
26
+ // 3. <meta name="zfb-view-transitions-fallback" content={fallback} />
27
+ //
28
+ // The route-announcer <div> is injected into <body> by `announce()` in
29
+ // `client-router/router.ts` on every navigation.
30
+ import { init } from "./client-router/router.js";
31
+ import { init as prefetchInit } from "./client-router/prefetch.js";
32
+ // Side-effect: wire click + submit intercepts on first import of this component.
33
+ // Guarded by the idempotent `initialized` flag in router.ts — safe for multiple
34
+ // <ClientRouter /> mounts and HMR re-runs. (W3C3 init idempotency.)
35
+ if (typeof document !== "undefined") {
36
+ init();
37
+ }
38
+ // Module-level guard: prefetch bootstrap is triggered at most once per module
39
+ // lifetime even if <ClientRouter prefetchAll /> is mounted multiple times (#276).
40
+ let prefetchBootstrapped = false;
41
+ /**
42
+ * Construct a VNode-shaped object. Sets `constructor: undefined` so that both
43
+ * Preact's and React's renderers treat it as a structural VNode rather than
44
+ * foreign data. (Mirrors the `makeVNode` pattern in `@takazudo/zfb`'s Island.)
45
+ */
46
+ function makeVNode(type, props) {
47
+ const v = { type, props, key: null };
48
+ v.constructor = undefined;
49
+ return v;
50
+ }
51
+ // CSS for the route-announcer element. Ported verbatim from Astro's
52
+ // `<style is:global>` block in ClientRouter.astro (lines 11–23), renaming
53
+ // `.astro-route-announcer` → `.zfb-route-announcer` per W1B §5.
54
+ // This is a global (non-scoped) <style> because the announcer <div> is
55
+ // appended to document.body at runtime, outside any Preact-controlled subtree.
56
+ const announcerCss = `
57
+ .zfb-route-announcer {
58
+ position: absolute;
59
+ left: 0;
60
+ top: 0;
61
+ clip: rect(0 0 0 0);
62
+ clip-path: inset(50%);
63
+ overflow: hidden;
64
+ white-space: nowrap;
65
+ width: 1px;
66
+ height: 1px;
67
+ }
68
+ `;
69
+ /**
70
+ * `<ClientRouter />` — SPA soft-swap navigation with View Transition animations.
71
+ *
72
+ * Mount once in your page `<head>`. Emits the opt-in meta tags and the global
73
+ * `.zfb-route-announcer` stylesheet that the route-announcer ARIA div needs.
74
+ * Click and form-submit intercepts are registered as a side effect of importing
75
+ * this component (idempotent — safe to mount multiple times).
76
+ *
77
+ * @example
78
+ * ```tsx
79
+ * import { ClientRouter } from "@takazudo/zfb-runtime";
80
+ * // In your page <head>:
81
+ * <ClientRouter fallback="animate" />
82
+ * ```
83
+ */
84
+ export function ClientRouter({ fallback = "animate", prefetchAll: prefetchAllProp = false, } = {}) {
85
+ // Bootstrap prefetch exactly once on the client when prefetchAll is true.
86
+ // The initialized flag inside prefetchInit() provides a second safety layer
87
+ // in case of concurrent hydration or manual callers (#276).
88
+ if (typeof document !== "undefined" && prefetchAllProp && !prefetchBootstrapped) {
89
+ prefetchBootstrapped = true;
90
+ prefetchInit({ prefetchAll: true });
91
+ }
92
+ const nodes = [
93
+ // Global styles for the ARIA route-announcer div injected into <body>.
94
+ makeVNode("style", { dangerouslySetInnerHTML: { __html: announcerCss } }),
95
+ // Opt-in meta tag: router checks for this to decide whether to intercept navigations.
96
+ makeVNode("meta", { name: "zfb-view-transitions-enabled", content: "true" }),
97
+ // Fallback strategy meta tag: read by getFallback() in router.ts.
98
+ makeVNode("meta", { name: "zfb-view-transitions-fallback", content: fallback }),
99
+ ];
100
+ // Prefetch-disabled meta tag (#277): emitted when the bundler set
101
+ // `globalThis.__zfb.prefetchDisabled = true` (from `zfb.config.ts`
102
+ // `prefetch: { disabled: true }`). The sibling prefetch-core module reads
103
+ // `document.querySelector('meta[name="zfb-prefetch-disabled"][content="true"]')`
104
+ // at `init()` time and short-circuits if found.
105
+ //
106
+ // The flag is site-wide and static — set once at bundle-emit time, never
107
+ // per-page. This meta tag appears on every page that mounts `<ClientRouter />`
108
+ // or not at all.
109
+ //
110
+ // Pin the contract verbatim — the attribute names and content value are
111
+ // shared with the sibling prefetch-core sub-issue (#276).
112
+ if (globalThis.__zfb?.prefetchDisabled === true) {
113
+ nodes.push(makeVNode("meta", { name: "zfb-prefetch-disabled", content: "true" }));
114
+ }
115
+ return nodes;
116
+ }
117
+ //# sourceMappingURL=client-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-router.js","sourceRoot":"","sources":["../src/client-router.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,wDAAwD;AACxD,uDAAuD;AACvD,yEAAyE;AACzE,EAAE;AACF,2DAA2D;AAC3D,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,iFAAiF;AACjF,2DAA2D;AAC3D,EAAE;AACF,sFAAsF;AACtF,8EAA8E;AAC9E,gFAAgF;AAChF,6EAA6E;AAC7E,iFAAiF;AACjF,mFAAmF;AACnF,0EAA0E;AAC1E,EAAE;AACF,0DAA0D;AAC1D,wEAAwE;AACxE,mEAAmE;AACnE,wEAAwE;AACxE,EAAE;AACF,uEAAuE;AACvE,iDAAiD;AAEjD,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEnE,iFAAiF;AACjF,gFAAgF;AAChF,oEAAoE;AACpE,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;IACpC,IAAI,EAAE,CAAC;AACT,CAAC;AAED,8EAA8E;AAC9E,kFAAkF;AAClF,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAuBjC;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,KAA8B;IAC7D,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAKjC,CAAC;IACF,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAwB,CAAC;AAClC,CAAC;AAED,oEAAoE;AACpE,0EAA0E;AAC1E,gEAAgE;AAChE,uEAAuE;AACvE,+EAA+E;AAC/E,MAAM,YAAY,GAAG;;;;;;;;;;;;CAYpB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,GAAG,SAAS,EACpB,WAAW,EAAE,eAAe,GAAG,KAAK,MACf,EAAE;IACvB,0EAA0E;IAC1E,4EAA4E;IAC5E,4DAA4D;IAC5D,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,eAAe,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChF,oBAAoB,GAAG,IAAI,CAAC;QAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,GAA0B;QACnC,uEAAuE;QACvE,SAAS,CAAC,OAAO,EAAE,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;QACzE,sFAAsF;QACtF,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAC5E,kEAAkE;QAClE,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;KAChF,CAAC;IAEF,kEAAkE;IAClE,mEAAmE;IACnE,0EAA0E;IAC1E,iFAAiF;IACjF,gDAAgD;IAChD,EAAE;IACF,yEAAyE;IACzE,+EAA+E;IAC/E,iBAAiB;IACjB,EAAE;IACF,wEAAwE;IACxE,0DAA0D;IAC1D,IAAK,UAAyD,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAChG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Pluggable per-framework SSR contract.
3
+ *
4
+ * `renderToString` takes whatever shape the framework's JSX pragma
5
+ * produces (Preact's VNode, React's element, etc.) and returns a string
6
+ * of HTML. The runtime treats both the input and the return value as
7
+ * opaque — it neither inspects the vnode nor escapes the output.
8
+ */
9
+ export interface FrameworkAdapter {
10
+ /**
11
+ * Render a JSX vnode to an HTML string. Must be synchronous; SSR
12
+ * happens inside a Hono request handler that resolves the response
13
+ * body in one step.
14
+ */
15
+ renderToString: (vnode: unknown) => string;
16
+ }
17
+ //# sourceMappingURL=framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../src/framework.ts"],"names":[],"mappings":"AAgBA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC5C"}
@@ -0,0 +1,17 @@
1
+ // `@takazudo/zfb-runtime` — framework adapter contract.
2
+ //
3
+ // The runtime is JSX-runtime-agnostic: it never imports preact or react
4
+ // directly. Instead, the caller of [`createPageRouter`] passes a
5
+ // [`FrameworkAdapter`] that pins how a JSX vnode (the value returned by
6
+ // a page module's `default` export) becomes a string of HTML.
7
+ //
8
+ // This mirrors ADR-002's framework-adapter pattern on the Rust side — the
9
+ // runtime owns the page-module evaluation lifecycle, the adapter owns the
10
+ // JSX-runtime-specific render call. Wave 2 (T6) wires the embedded V8 host
11
+ // with an adapter built on `preact-render-to-string` (or `react-dom/server`).
12
+ //
13
+ // BCI-5: `hydrate` reservation field removed — it was never called by the
14
+ // runtime and no real consumer set it; adding it back when a real
15
+ // implementation exists is a smaller change than carrying dead API surface.
16
+ export {};
17
+ //# sourceMappingURL=framework.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.js","sourceRoot":"","sources":["../src/framework.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,wEAAwE;AACxE,iEAAiE;AACjE,wEAAwE;AACxE,8DAA8D;AAC9D,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,8EAA8E;AAC9E,EAAE;AACF,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E"}
@@ -0,0 +1,14 @@
1
+ export { createPageRouter } from "./router.js";
2
+ export type { CreatePageRouterOptions, PageDefinition, PageHeading, PageModule, PageRouter, } from "./router.js";
3
+ export type { FrameworkAdapter } from "./framework.js";
4
+ export type { ContentSnapshot, EntrySnapshot } from "./snapshot.js";
5
+ export { ViewTransitions, type ViewTransitionsElement } from "./view-transitions.js";
6
+ export { ClientRouter, type ClientRouterProps } from "./client-router.js";
7
+ export { navigate, supportsViewTransitions, transitionEnabledOnThisPage, } from "./client-router/router.js";
8
+ export { prefetch, init as prefetchInit } from "./client-router/prefetch.js";
9
+ export type { PrefetchStrategy, PrefetchInitOptions, PrefetchOptions, } from "./client-router/prefetch.js";
10
+ export { TRANSITION_BEFORE_PREPARATION, TRANSITION_AFTER_PREPARATION, TRANSITION_BEFORE_SWAP, TRANSITION_AFTER_SWAP, TRANSITION_PAGE_LOAD, TRANSITION_NAVIGATION_ABORTED, TransitionBeforePreparationEvent, TransitionBeforeSwapEvent, isTransitionBeforePreparationEvent, isTransitionBeforeSwapEvent, } from "./client-router/events.js";
11
+ export { swapFunctions, swap } from "./client-router/swap-functions.js";
12
+ export type { Direction, Fallback, NavigationTypeString, Options } from "./client-router/types.js";
13
+ export type { ZfbPlugin, ZfbPluginLogger, ZfbBuildHookContext, ZfbDevMiddlewareContext, ZfbDevMiddlewareHandler, ZfbDevMiddlewareRequest, ZfbDevMiddlewareResponse, ZfbRouteEntry, ZfbRouteManifest, ZfbSetupContext, ZfbVirtualModuleLoader, } from "@takazudo/zfb/plugins";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAIrF,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,QAAQ,EACR,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC7E,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,gCAAgC,EAChC,yBAAyB,EACzB,kCAAkC,EAClC,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAOnG,YAAY,EACV,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,29 @@
1
+ // Public entry point for `@takazudo/zfb-runtime`.
2
+ //
3
+ // Worker bundles produced by T3 import this module and invoke
4
+ // `createPageRouter` once, at module top, to obtain the fetch handler:
5
+ //
6
+ // import { createPageRouter } from "@takazudo/zfb-runtime";
7
+ //
8
+ // const router = createPageRouter({
9
+ // pages: [...],
10
+ // contentSnapshot: __ZFB_CONTENT_SNAPSHOT__, // embedded by the bundler
11
+ // framework: { renderToString: render }, // preact-render-to-string etc.
12
+ // });
13
+ //
14
+ // export default { fetch: router };
15
+ //
16
+ // The README documents the bundle shape T6 (embedded V8 host) consumes.
17
+ export { createPageRouter } from "./router.js";
18
+ export { ViewTransitions } from "./view-transitions.js";
19
+ // Client-router public surface (W3D — mirrors @takazudo/zfb-runtime/client-router barrel).
20
+ // See W1B §2 for the full public API spec.
21
+ export { ClientRouter } from "./client-router.js";
22
+ export { navigate, supportsViewTransitions, transitionEnabledOnThisPage, } from "./client-router/router.js";
23
+ // Prefetch public surface (#276).
24
+ // `init` from prefetch.ts is re-exported as `prefetchInit` to avoid collision
25
+ // with the router's `init`.
26
+ export { prefetch, init as prefetchInit } from "./client-router/prefetch.js";
27
+ export { TRANSITION_BEFORE_PREPARATION, TRANSITION_AFTER_PREPARATION, TRANSITION_BEFORE_SWAP, TRANSITION_AFTER_SWAP, TRANSITION_PAGE_LOAD, TRANSITION_NAVIGATION_ABORTED, TransitionBeforePreparationEvent, TransitionBeforeSwapEvent, isTransitionBeforePreparationEvent, isTransitionBeforeSwapEvent, } from "./client-router/events.js";
28
+ export { swapFunctions, swap } from "./client-router/swap-functions.js";
29
+ //# sourceMappingURL=index.js.map