@nexus_js/runtime 0.7.2 → 0.7.4

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/index.d.ts CHANGED
@@ -11,4 +11,5 @@ export { navigate, prefetch, initNavigation, navigation } from './navigation.js'
11
11
  export type { NavigateOptions, NavigationState } from './navigation.js';
12
12
  export { useStore, readStore, writeStore, snapshotStore, importStore, exportStore, clearStore, storeDebugInfo } from './store.js';
13
13
  export type { StoreOptions, StoreEntry } from './store.js';
14
+ export { initPretextFromDocument, getPretext, $pretext } from './pretext.js';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClI,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClI,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -5,4 +5,5 @@ export { $sync } from './sync.js';
5
5
  export { cache, revalidate, revalidatePath, cacheStats, setCacheAdapter } from './cache.js';
6
6
  export { navigate, prefetch, initNavigation, navigation } from './navigation.js';
7
7
  export { useStore, readStore, writeStore, snapshotStore, importStore, exportStore, clearStore, storeDebugInfo } from './store.js';
8
+ export { initPretextFromDocument, getPretext, $pretext } from './pretext.js';
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEjF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElI,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
package/dist/island.d.ts CHANGED
@@ -4,12 +4,29 @@
4
4
  */
5
5
  import { $state, $derived, $effect, batch } from './runes.js';
6
6
  export { $state, $derived, $effect, batch };
7
+ /** Same as `@nexus_js/runtime` — available in island bundles without a second import. */
8
+ export { $pretext, getPretext } from './pretext.js';
7
9
  export type HydrationStrategy = 'client:load' | 'client:idle' | 'client:visible' | 'client:media' | 'server:only';
8
10
  export interface IslandOptions {
9
- template: string;
11
+ /** Raw template (legacy) */
12
+ template?: string;
13
+ /**
14
+ * Serialized island HTML. With reactive `__NX_*` placeholders, an `$effect` rewrites the first child’s
15
+ * `outerHTML` on each update. With **no** placeholders, the template is applied **once** at hydrate; the host
16
+ * then dispatches `nexus:island-static-patch` (bubbles) so apps may re-attach listeners if needed.
17
+ */
18
+ processedTemplate?: string;
19
+ /** One thunk per placeholder, evaluated in an $effect (closes over rune signals) */
20
+ exprFns?: Array<() => unknown>;
10
21
  strategy?: HydrationStrategy;
11
22
  props?: Record<string, unknown>;
12
23
  mediaQuery?: string;
24
+ /** Event delegation target inside the island (survives DOM replacement each tick) */
25
+ delegatedClickSelector?: string;
26
+ onDelegatedClick?: (e: Event) => void;
27
+ /** Capture-phase submit on the island root — survives inner `outerHTML` updates from reactive templates */
28
+ delegatedSubmitFormId?: string;
29
+ onDelegatedSubmit?: (e: Event) => void;
13
30
  }
14
31
  export interface IslandInstance {
15
32
  el: Element;
@@ -1 +1 @@
1
- {"version":3,"file":"island.d.ts","sourceRoot":"","sources":["../src/island.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAClD;AAKD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,aAAa,GAClB,cAAc,CA0ChB;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAyBjC"}
1
+ {"version":3,"file":"island.d.ts","sourceRoot":"","sources":["../src/island.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5C,yFAAyF;AACzF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oFAAoF;IACpF,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,2GAA2G;IAC3G,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAClD;AAaD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,aAAa,GAClB,cAAc,CA2FhB;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CA2BjC"}
package/dist/island.js CHANGED
@@ -3,9 +3,19 @@
3
3
  * Activates interactive "islands" on an otherwise static HTML page.
4
4
  */
5
5
  import { $state, $derived, $effect, batch } from './runes.js';
6
+ import { initPretextFromDocument } from './pretext.js';
6
7
  export { $state, $derived, $effect, batch };
8
+ /** Same as `@nexus_js/runtime` — available in island bundles without a second import. */
9
+ export { $pretext, getPretext } from './pretext.js';
7
10
  /** Registry of all mounted islands on the page */
8
11
  const islandRegistry = new Map();
12
+ function escapeIslandText(s) {
13
+ return s
14
+ .replace(/&/g, '&amp;')
15
+ .replace(/</g, '&lt;')
16
+ .replace(/>/g, '&gt;')
17
+ .replace(/"/g, '&quot;');
18
+ }
9
19
  /**
10
20
  * Core island hydration function.
11
21
  * Called by the generated client module for each interactive island.
@@ -13,14 +23,62 @@ const islandRegistry = new Map();
13
23
  export function createIsland(el, opts) {
14
24
  const cleanups = [];
15
25
  function hydrate() {
16
- // Inject props as reactive signals
17
26
  const propSignals = {};
18
27
  for (const [key, val] of Object.entries(opts.props ?? {})) {
19
28
  propSignals[key] = $state(val);
20
29
  }
21
- // Mark element as hydrated
22
30
  el.setAttribute('data-nexus-hydrated', 'true');
23
- // Attach event listeners from data attributes
31
+ const processed = opts.processedTemplate;
32
+ const exprFns = opts.exprFns;
33
+ if (processed) {
34
+ const inner = el.firstElementChild;
35
+ if (exprFns?.length) {
36
+ const stop = $effect(() => {
37
+ let html = processed;
38
+ for (let i = 0; i < exprFns.length; i++) {
39
+ const thunk = exprFns[i];
40
+ if (!thunk)
41
+ continue;
42
+ const v = thunk();
43
+ html = html.replace(`__NX_${i}__`, escapeIslandText(String(v)));
44
+ }
45
+ const child = el.firstElementChild;
46
+ if (child)
47
+ child.outerHTML = html;
48
+ });
49
+ cleanups.push(stop);
50
+ }
51
+ else if (inner) {
52
+ // Static island (no __NX_ placeholders): still apply client template once so markup matches
53
+ // the compiled bundle; otherwise hydrate-only islands never ran the replacement branch.
54
+ inner.outerHTML = processed;
55
+ el.dispatchEvent(new CustomEvent('nexus:island-static-patch', { bubbles: true, composed: true }));
56
+ }
57
+ }
58
+ if (opts.delegatedClickSelector && opts.onDelegatedClick) {
59
+ const sel = opts.delegatedClickSelector;
60
+ const cb = opts.onDelegatedClick;
61
+ const fn = (e) => {
62
+ const t = e.target;
63
+ if (t?.closest(sel))
64
+ cb(e);
65
+ };
66
+ el.addEventListener('click', fn);
67
+ cleanups.push(() => el.removeEventListener('click', fn));
68
+ }
69
+ if (opts.delegatedSubmitFormId && opts.onDelegatedSubmit) {
70
+ const formId = opts.delegatedSubmitFormId;
71
+ const cb = opts.onDelegatedSubmit;
72
+ const fn = (e) => {
73
+ const t = e.target;
74
+ if (!(t instanceof HTMLFormElement) || t.id !== formId)
75
+ return;
76
+ e.preventDefault();
77
+ cb(e);
78
+ };
79
+ el.addEventListener('submit', fn, true);
80
+ cleanups.push(() => el.removeEventListener('submit', fn, true));
81
+ }
24
82
  attachEventListeners(el, propSignals, cleanups);
25
83
  }
26
84
  function destroy() {
@@ -52,6 +110,7 @@ export function createIsland(el, opts) {
52
110
  * Called once on page load by the Nexus bootstrap script.
53
111
  */
54
112
  export function hydrateAll() {
113
+ initPretextFromDocument();
55
114
  const islands = document.querySelectorAll('[data-nexus-island]');
56
115
  for (const el of islands) {
57
116
  const strategy = (el.getAttribute('data-nexus-strategy') ??
@@ -149,6 +208,15 @@ function attachEventListeners(el, _signals, cleanups) {
149
208
  cleanups.push(() => el.removeEventListener(eventName, handler));
150
209
  }
151
210
  }
211
+ function refreshPretextAndHydrate() {
212
+ initPretextFromDocument();
213
+ hydrateAll();
214
+ }
215
+ /** After streaming SSR fills a hole, re-read Pretext and hydrate any new islands. */
216
+ if (typeof document !== 'undefined') {
217
+ document.addEventListener('nexus:stream-chunk', refreshPretextAndHydrate);
218
+ document.addEventListener('nexus:stream-complete', refreshPretextAndHydrate);
219
+ }
152
220
  /** Bootstrap: auto-runs when the runtime script loads in the browser */
153
221
  if (typeof document !== 'undefined') {
154
222
  if (document.readyState === 'loading') {
@@ -1 +1 @@
1
- {"version":3,"file":"island.js","sourceRoot":"","sources":["../src/island.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"island.js","sourceRoot":"","sources":["../src/island.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,10 @@
30
30
  * d. Removed island → destroy() cleanly
31
31
  * 6. Update URL, fire 'nexus:navigate' event, restore scroll
32
32
  *
33
+ * View Transitions (optional): when supported and not prefers-reduced-motion,
34
+ * the DOM swap runs inside document.startViewTransition — fetch stays outside,
35
+ * so network cost is unchanged. Pass navigate(url, { viewTransition: false }) to skip.
36
+ *
33
37
  * ─── STATE PRESERVATION RULES ─────────────────────────────────────────────
34
38
  *
35
39
  * Island state is preserved when ALL of these match:
@@ -56,6 +60,10 @@
56
60
  * - data-nx-prefetch="load" → prefetch on page load
57
61
  * - data-nx-prefetch="visible" → prefetch when link enters viewport
58
62
  * - data-nx-prefetch="false" → disable prefetch for this link
63
+ *
64
+ * Hover prefetch never triggers a full-page navigation: only explicit clicks (or
65
+ * `navigate()`) may fall back to `location.assign` when the SPA JSON endpoint
66
+ * returns 404/redirect (e.g. `/logout` handled outside the morph pipeline).
59
67
  */
60
68
  export interface NavigateOptions {
61
69
  /** Replace current history entry instead of pushing */
@@ -64,6 +72,11 @@ export interface NavigateOptions {
64
72
  scroll?: boolean;
65
73
  /** Override prefetch cache */
66
74
  noCache?: boolean;
75
+ /**
76
+ * Use the View Transitions API for the DOM swap (fetch still runs before — no extra latency there).
77
+ * Set to `false` to skip animation (e.g. heavy admin pages). Default: on when supported.
78
+ */
79
+ viewTransition?: boolean;
67
80
  }
68
81
  export interface NavigationState {
69
82
  url: string;
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAQH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,4EAA4E;AAC5E,eAAO,MAAM,UAAU;;;;;;;;;;CAItB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAgB3C;AAID,+CAA+C;AAC/C,wBAAgB,cAAc,IAAI,IAAI,CAcrC"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAQH,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,4EAA4E;AAC5E,eAAO,MAAM,UAAU;;;;;;;;;;CAItB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CA0B3C;AAMD,+CAA+C;AAC/C,wBAAgB,cAAc,IAAI,IAAI,CAkBrC"}
@@ -30,6 +30,10 @@
30
30
  * d. Removed island → destroy() cleanly
31
31
  * 6. Update URL, fire 'nexus:navigate' event, restore scroll
32
32
  *
33
+ * View Transitions (optional): when supported and not prefers-reduced-motion,
34
+ * the DOM swap runs inside document.startViewTransition — fetch stays outside,
35
+ * so network cost is unchanged. Pass navigate(url, { viewTransition: false }) to skip.
36
+ *
33
37
  * ─── STATE PRESERVATION RULES ─────────────────────────────────────────────
34
38
  *
35
39
  * Island state is preserved when ALL of these match:
@@ -56,6 +60,10 @@
56
60
  * - data-nx-prefetch="load" → prefetch on page load
57
61
  * - data-nx-prefetch="visible" → prefetch when link enters viewport
58
62
  * - data-nx-prefetch="false" → disable prefetch for this link
63
+ *
64
+ * Hover prefetch never triggers a full-page navigation: only explicit clicks (or
65
+ * `navigate()`) may fall back to `location.assign` when the SPA JSON endpoint
66
+ * returns 404/redirect (e.g. `/logout` handled outside the morph pipeline).
59
67
  */
60
68
  import { hydrateAll } from './island.js';
61
69
  import { $state } from './runes.js';
@@ -82,24 +90,39 @@ export function prefetch(path) {
82
90
  return;
83
91
  if (prefetchCache.has(path))
84
92
  return;
85
- // Use <link rel="prefetch"> for network-level prefetch
86
- const link = document.createElement('link');
87
- link.rel = 'prefetch';
88
- link.href = navigateEndpoint(path);
89
- link.as = 'fetch';
90
- link.crossOrigin = 'same-origin';
91
- document.head.appendChild(link);
92
- // Also start the JSON fetch to warm up our cache
93
- fetchRoute(path).then((data) => {
94
- if (data)
95
- prefetchCache.set(path, data);
96
- }).catch(() => { });
93
+ if (prefetchInFlight.has(path))
94
+ return;
95
+ prefetchInFlight.add(path);
96
+ // One `<link rel="prefetch">` per path (mouseover can fire many times before the fetch completes).
97
+ if (!prefetchLinkInserted.has(path)) {
98
+ prefetchLinkInserted.add(path);
99
+ const link = document.createElement('link');
100
+ link.rel = 'prefetch';
101
+ link.href = navigateEndpoint(path);
102
+ link.as = 'fetch';
103
+ link.crossOrigin = 'same-origin';
104
+ document.head.appendChild(link);
105
+ }
106
+ fetchRoute(path, { allowFullPageFallback: false })
107
+ .then((data) => {
108
+ if (data.kind === 'ok')
109
+ prefetchCache.set(path, data.payload);
110
+ })
111
+ .catch(() => { })
112
+ .finally(() => {
113
+ prefetchInFlight.delete(path);
114
+ });
97
115
  }
98
116
  // ── Initialization ────────────────────────────────────────────────────────────
117
+ let navigationBootstrapped = false;
99
118
  /** Bootstrap: call once when the page loads */
100
119
  export function initNavigation() {
101
120
  if (typeof document === 'undefined')
102
121
  return;
122
+ if (navigationBootstrapped)
123
+ return;
124
+ navigationBootstrapped = true;
125
+ injectViewTransitionStyles();
103
126
  // Intercept all link clicks
104
127
  document.addEventListener('click', handleLinkClick, { passive: false });
105
128
  // Handle browser back/forward
@@ -112,6 +135,12 @@ export function initNavigation() {
112
135
  // ── Internal navigation engine ────────────────────────────────────────────────
113
136
  const NAVIGATE_ENDPOINT = '/_nexus/navigate';
114
137
  const prefetchCache = new Map();
138
+ /** Avoid duplicate JSON fetches / `<link rel="prefetch">` when `mouseover` fires repeatedly on the same anchor. */
139
+ const prefetchInFlight = new Set();
140
+ const prefetchLinkInserted = new Set();
141
+ /** Last time we started hover-prefetch for a path (mouseover fires very often on the same `<a>`). */
142
+ const prefetchHoverAt = new Map();
143
+ const PREFETCH_HOVER_GAP_MS = 400;
115
144
  function navigateEndpoint(path) {
116
145
  return `${NAVIGATE_ENDPOINT}?path=${encodeURIComponent(path)}`;
117
146
  }
@@ -125,9 +154,16 @@ async function performNavigation(path, opts) {
125
154
  snapshotStore();
126
155
  // Check prefetch cache first
127
156
  const cached = !opts.noCache ? prefetchCache.get(path) : null;
128
- const payload = cached ?? (await fetchRoute(path));
157
+ let payload = cached ?? null;
129
158
  if (!payload) {
130
- throw new Error(`Failed to fetch route: ${path}`);
159
+ const fetched = await fetchRoute(path);
160
+ if (fetched.kind === 'not_found' || fetched.kind === 'redirect') {
161
+ return;
162
+ }
163
+ if (fetched.kind === 'fail') {
164
+ throw new Error(`Failed to fetch route: ${path}`);
165
+ }
166
+ payload = fetched.payload;
131
167
  }
132
168
  // Update history
133
169
  if (opts.replace) {
@@ -150,7 +186,9 @@ async function performNavigation(path, opts) {
150
186
  navigation.pending.value = false;
151
187
  }
152
188
  }
153
- async function fetchRoute(path) {
189
+ async function fetchRoute(path, opts = {}) {
190
+ /** Only true for real navigations (click / `navigate`). Prefetch must never assign. */
191
+ const allowFullPageFallback = opts.allowFullPageFallback !== false;
154
192
  try {
155
193
  const res = await fetch(navigateEndpoint(path), {
156
194
  headers: {
@@ -158,13 +196,68 @@ async function fetchRoute(path) {
158
196
  'accept': 'application/json',
159
197
  },
160
198
  });
199
+ if (res.status === 404) {
200
+ if (allowFullPageFallback)
201
+ window.location.assign(path);
202
+ return { kind: 'not_found' };
203
+ }
161
204
  if (!res.ok)
162
- return null;
163
- return await res.json();
205
+ return { kind: 'fail' };
206
+ const data = (await res.json());
207
+ if (typeof data.redirect === 'string' && data.redirect.length > 0) {
208
+ if (allowFullPageFallback)
209
+ window.location.assign(data.redirect);
210
+ return { kind: 'redirect' };
211
+ }
212
+ return { kind: 'ok', payload: data };
213
+ }
214
+ catch {
215
+ return { kind: 'fail' };
216
+ }
217
+ }
218
+ function documentWithViewTransition() {
219
+ return document;
220
+ }
221
+ /** True when we should animate the swap (feature + user preference). */
222
+ function shouldUseViewTransition(opts) {
223
+ if (opts.viewTransition === false)
224
+ return false;
225
+ const doc = documentWithViewTransition();
226
+ if (typeof doc.startViewTransition !== 'function')
227
+ return false;
228
+ try {
229
+ if (globalThis.matchMedia('(prefers-reduced-motion: reduce)').matches)
230
+ return false;
164
231
  }
165
232
  catch {
166
- return null;
233
+ /* ignore */
234
+ }
235
+ return true;
236
+ }
237
+ /**
238
+ * Minimal default styling: short cross-fade on `root` only — no layout thrash, no custom names.
239
+ * Injected once; disabled inside `@media (prefers-reduced-motion: reduce)` via zero-duration feel.
240
+ */
241
+ function injectViewTransitionStyles() {
242
+ if (typeof document === 'undefined')
243
+ return;
244
+ if (document.getElementById('nexus-vt-styles'))
245
+ return;
246
+ const doc = documentWithViewTransition();
247
+ if (typeof doc.startViewTransition !== 'function')
248
+ return;
249
+ const style = document.createElement('style');
250
+ style.id = 'nexus-vt-styles';
251
+ style.textContent = `@layer nexus-navigation {
252
+ @media (prefers-reduced-motion: no-preference) {
253
+ ::view-transition-old(root),
254
+ ::view-transition-new(root) {
255
+ animation-duration: 0.16s;
256
+ animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
167
257
  }
258
+ }
259
+ }`;
260
+ document.head.appendChild(style);
168
261
  }
169
262
  async function applyNavigation(payload, opts) {
170
263
  // 0. Rehydrate global store from server snapshot (Hydration Miss = 0)
@@ -173,13 +266,28 @@ async function applyNavigation(payload, opts) {
173
266
  }
174
267
  // 1. Take a snapshot of current islands to preserve state
175
268
  const preserved = snapshotIslands();
176
- // 2. Update <head> (title, meta, etc.)
177
- applyHeadUpdate(payload.headHTML);
178
- // 3. Morph <body> surgical DOM update
179
- morphBody(payload.html, preserved);
180
- // 4. Hydrate new islands (skip preserved ones)
181
- hydrateAll();
182
- // 5. Restore scroll position
269
+ const html = payload.html?.trim() ?? '';
270
+ if (!html) {
271
+ console.warn('[Nexus] Navigation skipped: empty body fragment would clear the page.');
272
+ return;
273
+ }
274
+ const runDomUpdate = () => {
275
+ // 2. Update <head> (title, meta, etc.)
276
+ applyHeadUpdate(payload.headHTML);
277
+ // 3. Morph <body> — surgical DOM update (synchronous; required inside VT callback)
278
+ morphBody(html, preserved);
279
+ // 4. Hydrate new islands (skip preserved ones)
280
+ hydrateAll();
281
+ };
282
+ const doc = documentWithViewTransition();
283
+ if (shouldUseViewTransition(opts) && typeof doc.startViewTransition === 'function') {
284
+ const vt = doc.startViewTransition(runDomUpdate);
285
+ await vt.finished.catch(() => { });
286
+ }
287
+ else {
288
+ runDomUpdate();
289
+ }
290
+ // 5. Restore scroll after the transition frame (avoids fighting the animation)
183
291
  if (opts.scroll !== false) {
184
292
  const hash = location.hash;
185
293
  if (hash) {
@@ -219,6 +327,12 @@ function morphBody(newHTML, preserved) {
219
327
  const newDoc = parser.parseFromString(newHTML, 'text/html');
220
328
  const newBody = newDoc.body;
221
329
  const oldBody = document.body;
330
+ // If the new fragment has no children but the live doc does, morphNode would remove all
331
+ // children of <body>—blank page. Skip only this degenerate case.
332
+ if (newBody.childNodes.length === 0 && oldBody.childNodes.length > 0) {
333
+ console.warn('[Nexus] Navigation skipped: parsed body would replace content with a blank document.');
334
+ return;
335
+ }
222
336
  morphNode(oldBody, newBody, preserved);
223
337
  }
224
338
  function morphNode(oldNode, newNode, preserved) {
@@ -311,21 +425,44 @@ function patchAttributes(oldEl, newEl) {
311
425
  }
312
426
  }
313
427
  }
428
+ /**
429
+ * Keeps `#__NEXUS_PRETEXT__` in sync after SPA navigation (it lives in `<head>`, not morphed with `<body>`).
430
+ * Must run before meta injection so we do not duplicate the script via `data-nx-nav` appends.
431
+ */
432
+ function syncPretextScriptFromHead(headHTML) {
433
+ const parser = new DOMParser();
434
+ const doc = parser.parseFromString(`<head>${headHTML}</head>`, 'text/html');
435
+ const incoming = doc.getElementById('__NEXUS_PRETEXT__');
436
+ const existing = document.getElementById('__NEXUS_PRETEXT__');
437
+ if (incoming) {
438
+ const clone = incoming.cloneNode(true);
439
+ if (existing)
440
+ existing.replaceWith(clone);
441
+ else
442
+ document.head.insertBefore(clone, document.head.firstChild);
443
+ }
444
+ else if (existing) {
445
+ existing.remove();
446
+ }
447
+ }
314
448
  function applyHeadUpdate(headHTML) {
315
449
  if (!headHTML)
316
450
  return;
451
+ syncPretextScriptFromHead(headHTML);
317
452
  // Update title
318
453
  const titleMatch = /<title>([^<]*)<\/title>/.exec(headHTML);
319
454
  if (titleMatch?.[1])
320
455
  document.title = titleMatch[1];
321
456
  // Remove previous navigation-injected metas (marked with data-nx-nav)
322
457
  document.querySelectorAll('[data-nx-nav]').forEach((el) => el.remove());
323
- // Inject new metas
458
+ // Inject new metas (pretext script is handled above — skip duplicate)
324
459
  const parser = new DOMParser();
325
460
  const doc = parser.parseFromString(`<head>${headHTML}</head>`, 'text/html');
326
461
  for (const el of doc.head.children) {
327
462
  if (el.tagName === 'TITLE')
328
463
  continue;
464
+ if (el.tagName === 'SCRIPT' && el.id === '__NEXUS_PRETEXT__')
465
+ continue;
329
466
  el.setAttribute('data-nx-nav', '');
330
467
  document.head.appendChild(el.cloneNode(true));
331
468
  }
@@ -338,11 +475,12 @@ function handleLinkClick(e) {
338
475
  const href = target.getAttribute('href');
339
476
  if (!href)
340
477
  return;
341
- // Skip: external, hash-only, download, target="_blank", data-nx-prefetch="false"
478
+ // Skip: external, same-page #fragment (browser scroll — do not fetch /_nexus/navigate?path=%23…
479
+ // which resolves pathname to / and morphs the wrong route), download, target="_blank", …
342
480
  if (href.startsWith('http') ||
343
481
  href.startsWith('mailto:') ||
344
482
  href.startsWith('tel:') ||
345
- href === '#' ||
483
+ href.startsWith('#') ||
346
484
  target.hasAttribute('download') ||
347
485
  target.getAttribute('target') === '_blank' ||
348
486
  target.getAttribute('data-nx-prefetch') === 'false' ||
@@ -354,22 +492,39 @@ function handleLinkClick(e) {
354
492
  }
355
493
  function handlePopState(e) {
356
494
  if (e.state?.nx) {
357
- navigate(location.pathname, { replace: true, noCache: true }).catch(console.error);
495
+ const path = `${location.pathname}${location.search}${location.hash}`;
496
+ navigate(path, { replace: true, noCache: true }).catch(console.error);
358
497
  }
359
498
  }
360
499
  function setupPrefetchObservers() {
361
- // Hover prefetch (default)
500
+ // Hover prefetch (default) — throttle: mouseover fires on every child boundary inside `<a>`.
362
501
  document.addEventListener('mouseover', (e) => {
363
502
  const target = e.target.closest('a[href]');
364
503
  if (!target)
365
504
  return;
366
505
  const href = target.getAttribute('href');
367
- if (!href || href.startsWith('http') || href.startsWith('#'))
506
+ if (!href)
507
+ return;
508
+ // Keep in sync with `handleLinkClick` skips — avoid prefetching mailto/tel/external.
509
+ if (href.startsWith('http') ||
510
+ href.startsWith('mailto:') ||
511
+ href.startsWith('tel:') ||
512
+ href.startsWith('#') ||
513
+ target.hasAttribute('download') ||
514
+ target.getAttribute('target') === '_blank' ||
515
+ target.getAttribute('data-nx-prefetch') === 'false' ||
516
+ target.getAttribute('data-nx-external') !== null) {
368
517
  return;
369
- const prefetchMode = target.getAttribute('data-nx-prefetch') ?? 'hover';
370
- if (prefetchMode === 'hover' || prefetchMode === '') {
371
- prefetch(href);
372
518
  }
519
+ const prefetchMode = target.getAttribute('data-nx-prefetch') ?? 'hover';
520
+ if (prefetchMode !== 'hover' && prefetchMode !== '')
521
+ return;
522
+ const now = Date.now();
523
+ const last = prefetchHoverAt.get(href) ?? 0;
524
+ if (now - last < PREFETCH_HOVER_GAP_MS)
525
+ return;
526
+ prefetchHoverAt.set(href, now);
527
+ prefetch(href);
373
528
  }, { passive: true });
374
529
  // Viewport prefetch
375
530
  const visibleObserver = new IntersectionObserver((entries) => {
@@ -387,4 +542,19 @@ function setupPrefetchObservers() {
387
542
  visibleObserver.observe(el);
388
543
  });
389
544
  }
545
+ /**
546
+ * Bootstrap SPA navigation once when the runtime loads (same pattern as `hydrateAll` in island.ts).
547
+ * Without this, link interception and view-transition styles never run.
548
+ */
549
+ if (typeof document !== 'undefined') {
550
+ const bootNav = () => {
551
+ initNavigation();
552
+ };
553
+ if (document.readyState === 'loading') {
554
+ document.addEventListener('DOMContentLoaded', bootNav);
555
+ }
556
+ else {
557
+ bootNav();
558
+ }
559
+ }
390
560
  //# sourceMappingURL=navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../src/navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Pretext — merged `nxPretext(ctx)` payloads from layouts + page, embedded in SSR as
3
+ * `<script type="application/json" id="__NEXUS_PRETEXT__">` and read before island hydration.
4
+ */
5
+ /** Parse `__NEXUS_PRETEXT__` from the document (called automatically before hydrating islands). */
6
+ export declare function initPretextFromDocument(): void;
7
+ /** Read-only merged pretext object (same keys as server `ctx.pretext`). */
8
+ export declare function getPretext(): Readonly<Record<string, unknown>>;
9
+ /**
10
+ * Primary context for islands — zero client fetch; same payload the server used for SSR.
11
+ * Prefer destructuring: `const { flow } = $pretext()`.
12
+ */
13
+ export declare function $pretext(): Record<string, unknown>;
14
+ //# sourceMappingURL=pretext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretext.d.ts","sourceRoot":"","sources":["../src/pretext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,mGAAmG;AACnG,wBAAgB,uBAAuB,IAAI,IAAI,CAY9C;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAE9D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElD"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Pretext — merged `nxPretext(ctx)` payloads from layouts + page, embedded in SSR as
3
+ * `<script type="application/json" id="__NEXUS_PRETEXT__">` and read before island hydration.
4
+ */
5
+ import { deserialize } from '@nexus_js/serialize';
6
+ let _pretext = {};
7
+ /** Parse `__NEXUS_PRETEXT__` from the document (called automatically before hydrating islands). */
8
+ export function initPretextFromDocument() {
9
+ const el = document.getElementById('__NEXUS_PRETEXT__');
10
+ const raw = el?.textContent?.trim();
11
+ if (!raw) {
12
+ _pretext = {};
13
+ return;
14
+ }
15
+ try {
16
+ _pretext = deserialize(raw);
17
+ }
18
+ catch {
19
+ _pretext = {};
20
+ }
21
+ }
22
+ /** Read-only merged pretext object (same keys as server `ctx.pretext`). */
23
+ export function getPretext() {
24
+ return _pretext;
25
+ }
26
+ /**
27
+ * Primary context for islands — zero client fetch; same payload the server used for SSR.
28
+ * Prefer destructuring: `const { flow } = $pretext()`.
29
+ */
30
+ export function $pretext() {
31
+ return _pretext;
32
+ }
33
+ //# sourceMappingURL=pretext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretext.js","sourceRoot":"","sources":["../src/pretext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,IAAI,QAAQ,GAA4B,EAAE,CAAC;AAE3C,mGAAmG;AACnG,MAAM,UAAU,uBAAuB;IACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,QAAQ,GAAG,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,QAAQ,GAAG,WAAW,CAAC,GAAG,CAA4B,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runes.d.ts","sourceRoot":"","sources":["../src/runes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,KAAK,OAAO,GAAG,MAAM,IAAI,CAAC;AAqB1B;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAyBlD;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAgBvE;AAID;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,IAAI,GAAG,OAAO,CA8BzD;AAID;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtD,QAAQ,GAAE,OAAO,CAAC,CAAC,CAAM,GACxB,CAAC,CAQH;AAOD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAc1C"}
1
+ {"version":3,"file":"runes.d.ts","sourceRoot":"","sources":["../src/runes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,KAAK,OAAO,GAAG,MAAM,IAAI,CAAC;AAqB1B;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CA6BlD;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAgBvE;AAID;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,IAAI,GAAG,OAAO,CAgCzD;AAID;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtD,QAAQ,GAAE,OAAO,CAAC,CAAC,CAAM,GACxB,CAAC,CAQH;AAOD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAkB1C"}
package/dist/runes.js CHANGED
@@ -34,8 +34,13 @@ export function $state(initial) {
34
34
  node.value = next;
35
35
  // Notify all subscribers synchronously (microtask queue in practice)
36
36
  for (const effect of [...node.subscribers]) {
37
- effect.cleanup?.();
38
- effect.execute();
37
+ try {
38
+ effect.cleanup?.();
39
+ effect.execute();
40
+ }
41
+ catch (e) {
42
+ console.error('[Nexus] $effect error (subscriber):', e);
43
+ }
39
44
  }
40
45
  },
41
46
  };
@@ -91,6 +96,9 @@ export function $effect(fn) {
91
96
  try {
92
97
  node.cleanup = fn();
93
98
  }
99
+ catch (e) {
100
+ console.error('[Nexus] $effect error:', e);
101
+ }
94
102
  finally {
95
103
  currentEffect = prev;
96
104
  }
@@ -145,8 +153,13 @@ export function batch(fn) {
145
153
  batchDepth--;
146
154
  if (batchDepth === 0) {
147
155
  for (const effect of pendingEffects) {
148
- effect.cleanup?.();
149
- effect.execute();
156
+ try {
157
+ effect.cleanup?.();
158
+ effect.execute();
159
+ }
160
+ catch (e) {
161
+ console.error('[Nexus] $effect error (batch):', e);
162
+ }
150
163
  }
151
164
  pendingEffects.clear();
152
165
  }
package/dist/runes.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"runes.js","sourceRoot":"","sources":["../src/runes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runes.js","sourceRoot":"","sources":["../src/runes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexus_js/runtime",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "description": "Nexus Islands runtime — selective hydration with fine-grained reactivity",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -20,7 +20,7 @@
20
20
  }
21
21
  },
22
22
  "dependencies": {
23
- "@nexus_js/serialize": "0.7.2"
23
+ "@nexus_js/serialize": "0.7.4"
24
24
  },
25
25
  "devDependencies": {
26
26
  "typescript": "^5.5.0",