@askrjs/askr 0.0.58 → 0.0.60

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 (38) hide show
  1. package/README.md +3 -0
  2. package/dist/{access-Bg4RJNC8.js → access-ePqdQqkV.js} +3 -0
  3. package/dist/actions/index.js +1 -1
  4. package/dist/benchmark.js +8 -8
  5. package/dist/boot/index.js +1 -1
  6. package/dist/{boot-tQCKG8nx.js → boot-DmVZR_IA.js} +9 -9
  7. package/dist/{cleanup-DScKZG2i.js → cleanup-B6KovDZZ.js} +3 -3
  8. package/dist/{component-internal-NdN_bJ2-.js → component-internal-CbALfPGD.js} +18 -26
  9. package/dist/{component-lifecycle-C7lnU9Bt.js → component-lifecycle-DEMPihoZ.js} +32 -2
  10. package/dist/control/index.js +1 -1
  11. package/dist/{control-BJmonrpE.js → control-KVP6LMEQ.js} +4 -4
  12. package/dist/data/index.js +1 -1
  13. package/dist/{data-0sDU9_HU.js → data-DvYo_dHd.js} +3 -3
  14. package/dist/{deferred-CSFYIBJL.js → deferred-BeNnjR4r.js} +3 -3
  15. package/dist/{effect-BwnIvLah.js → effect-D_4zf_wy.js} +2 -2
  16. package/dist/{fastlane-Dw8SOBr9.js → fastlane-C8PYPotF.js} +1 -1
  17. package/dist/{for-internal-cNhKHMBB.js → for-internal-B2rBq6yB.js} +4 -4
  18. package/dist/foundations/index.js +1 -1
  19. package/dist/foundations/state/index.js +1 -1
  20. package/dist/foundations/structures/index.js +1 -1
  21. package/dist/fx/index.js +1 -1
  22. package/dist/{index-4jSsebbI.d.ts → index-XB38_9B8.d.ts} +1 -0
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.js +8 -8
  25. package/dist/{lifecycle-operations-BR8-AOly.js → lifecycle-operations-Dj5lK1K7.js} +1 -1
  26. package/dist/{navigate-mkLGM5ec.js → navigate-DLi79IZr.js} +7 -7
  27. package/dist/{portal-C47xkwXj.js → portal-D2tPWNrC.js} +3 -3
  28. package/dist/{renderer-CCvnNMna.js → renderer-DhojfVg4.js} +101 -43
  29. package/dist/{resource-operation-CUAUBhUB.js → resource-operation-Dz2Nxi1q.js} +4 -4
  30. package/dist/resources/index.js +2 -2
  31. package/dist/router/index.js +2 -2
  32. package/dist/{selector-DafVYzV4.js → selector-pApF_lGd.js} +2 -2
  33. package/dist/ssg/index.js +3 -3
  34. package/dist/ssr/index.js +1 -1
  35. package/dist/{ssr-DVFKktPX.js → ssr-CbU-1UHm.js} +6 -6
  36. package/dist/{state-DPl8lffD.js → state-Cc5HumQ0.js} +3 -1
  37. package/dist/{verify-hydration-C41fY5Z2.js → verify-hydration-BaWDqe5H.js} +1 -1
  38. package/package.json +1 -1
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Askr
2
2
 
3
+ [![CI](https://github.com/askrjs/askr/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/askrjs/askr/actions/workflows/ci.yml)
4
+ [![npm version](https://img.shields.io/npm/v/%40askrjs%2Faskr.svg)](https://www.npmjs.com/package/@askrjs/askr)
5
+
3
6
  Askr is an actor-backed UI runtime for TypeScript applications.
4
7
  It provides explicit reactivity, routed application startup, server-side rendering,
5
8
  and static-site generation entrypoints.
@@ -408,6 +408,9 @@ function createMissingRendererHost() {
408
408
  cleanupInstancesUnder() {
409
409
  missing("cleanupInstancesUnder");
410
410
  },
411
+ replaceComponentRange() {
412
+ return missing("replaceComponentRange");
413
+ },
411
414
  teardownNodeSubtree() {
412
415
  missing("teardownNodeSubtree");
413
416
  },
@@ -1,6 +1,6 @@
1
1
  import { d as getCurrentAppRenderRuntime } from "../component-scope-CC3cojX9.js";
2
2
  import { r as getCurrentRenderData } from "../render-context-Clw3rFiO.js";
3
- import { t as state } from "../state-DPl8lffD.js";
3
+ import { t as state } from "../state-Cc5HumQ0.js";
4
4
  import { jsx, jsxs } from "../jsx-runtime.js";
5
5
  import { c as resolveDataRuntimeState, s as invalidateQueriesForRuntime } from "../data-runtime-SJ1BSUvk.js";
6
6
  //#region src/actions/runtime.ts
package/dist/benchmark.js CHANGED
@@ -1,10 +1,10 @@
1
- import { r as flushRuntimeScheduler } from "./access-Bg4RJNC8.js";
2
- import { t as installRendererBridge } from "./renderer-CCvnNMna.js";
3
- import { t as state } from "./state-DPl8lffD.js";
4
- import { t as selector } from "./selector-DafVYzV4.js";
1
+ import { r as flushRuntimeScheduler } from "./access-ePqdQqkV.js";
2
+ import { t as installRendererBridge } from "./renderer-DhojfVg4.js";
3
+ import { t as state } from "./state-Cc5HumQ0.js";
4
+ import { t as selector } from "./selector-pApF_lGd.js";
5
5
  import { jsx, jsxs } from "./jsx-runtime.js";
6
- import { i as For } from "./control-BJmonrpE.js";
7
- import { t as createIsland } from "./boot-tQCKG8nx.js";
6
+ import { i as For } from "./control-KVP6LMEQ.js";
7
+ import { t as createIsland } from "./boot-DmVZR_IA.js";
8
8
  //#region src/bench/components/benchmark-row.tsx
9
9
  function BenchmarkRow({ item, isSelected, onSelect, onRemove }) {
10
10
  return /* @__PURE__ */ jsxs("tr", {
@@ -63,8 +63,8 @@ function BenchmarkTable({ rows, isSelected, onSelect, onRemove }) {
63
63
  installRendererBridge();
64
64
  const benchmarkMetadata = {
65
65
  packageName: "@askrjs/askr",
66
- packageVersion: "0.0.58",
67
- buildLabel: "0.0.58-local"
66
+ packageVersion: "0.0.60",
67
+ buildLabel: "0.0.60-local"
68
68
  };
69
69
  function getBenchmarkMetadata() {
70
70
  return { ...benchmarkMetadata };
@@ -1,2 +1,2 @@
1
- import { a as cleanupApp, i as hydrateSPA, n as createIslands, o as hasApp, r as createSPA, t as createIsland } from "../boot-tQCKG8nx.js";
1
+ import { a as cleanupApp, i as hydrateSPA, n as createIslands, o as hasApp, r as createSPA, t as createIsland } from "../boot-DmVZR_IA.js";
2
2
  export { cleanupApp, createIsland, createIslands, createSPA, hasApp, hydrateSPA };
@@ -1,16 +1,16 @@
1
- import { b as isDevelopmentEnvironment, r as flushRuntimeScheduler, v as logger, x as isProductionEnvironment } from "./access-Bg4RJNC8.js";
1
+ import { b as isDevelopmentEnvironment, r as flushRuntimeScheduler, v as logger, x as isProductionEnvironment } from "./access-ePqdQqkV.js";
2
2
  import { n as Fragment, t as ELEMENT_TYPE } from "./jsx-CUpRxrLH.js";
3
- import { n as createComponentInstance, r as executeComponent } from "./component-internal-NdN_bJ2-.js";
4
- import { h as cleanupComponent, m as isPromiseLike } from "./component-lifecycle-C7lnU9Bt.js";
5
- import { a as withIntrinsicHydrationAdoption, i as registerDeferredHydrationBoundary, n as activateHydrationBoundary$1, o as setStaticChildSlotsCacheEnabled, r as clearDeferredHydrationBoundaries, t as installRendererBridge } from "./renderer-CCvnNMna.js";
6
- import { _ as teardownNodeSubtree, d as removeAllListeners } from "./cleanup-DScKZG2i.js";
7
- import { C as assertExecutionModel, S as route, a as resolveRouteMeta, c as registerAppInstance, d as clearRoutes, g as createAppRenderRuntime, h as setServerLocation, i as reconcileRouteMeta, l as unregisterAppInstance, s as configureScrollRestoration, t as initializeNavigation, u as _applyManifest } from "./navigate-mkLGM5ec.js";
3
+ import { n as createComponentInstance, r as executeComponent } from "./component-internal-CbALfPGD.js";
4
+ import { h as cleanupComponent, m as isPromiseLike } from "./component-lifecycle-DEMPihoZ.js";
5
+ import { a as withIntrinsicHydrationAdoption, i as registerDeferredHydrationBoundary, n as activateHydrationBoundary$1, o as setStaticChildSlotsCacheEnabled, r as clearDeferredHydrationBoundaries, t as installRendererBridge } from "./renderer-DhojfVg4.js";
6
+ import { _ as teardownNodeSubtree, d as removeAllListeners } from "./cleanup-B6KovDZZ.js";
7
+ import { C as assertExecutionModel, S as route, a as resolveRouteMeta, c as registerAppInstance, d as clearRoutes, g as createAppRenderRuntime, h as setServerLocation, i as reconcileRouteMeta, l as unregisterAppInstance, s as configureScrollRestoration, t as initializeNavigation, u as _applyManifest } from "./navigate-DLi79IZr.js";
8
8
  import { a as startHydrationRenderPhase, s as stopHydrationRenderPhase } from "./render-context-Clw3rFiO.js";
9
- import { a as disposeDefaultPortalScope, t as DefaultPortal } from "./portal-C47xkwXj.js";
9
+ import { a as disposeDefaultPortalScope, t as DefaultPortal } from "./portal-D2tPWNrC.js";
10
10
  import { i as getDefaultDataRuntime } from "./data-runtime-SJ1BSUvk.js";
11
11
  import { a as hydrateDataRuntime } from "./query-registry-CQIT4mXr.js";
12
12
  import { a as resolveRouteFromRoutes, d as _setActiveRouteAuthOptions, j as lockRouteRegistration, k as hasRegisteredRoutes } from "./route-matching-vJpvLVbX.js";
13
- import { _ as pageRenderEnvelope, d as hasRouteRenderData, f as resolveRouteRequest, l as getRouteRenderContext, o as reviveDeferredValue, u as getRouteRenderData, x as _preloadRouteHandler } from "./deferred-CSFYIBJL.js";
13
+ import { _ as pageRenderEnvelope, d as hasRouteRenderData, f as resolveRouteRequest, l as getRouteRenderContext, o as reviveDeferredValue, u as getRouteRenderData, x as _preloadRouteHandler } from "./deferred-BeNnjR4r.js";
14
14
  import "./ssr-CbQO5xd3.js";
15
15
  //#region src/boot/hydration.ts
16
16
  const DEFERRED_PAYLOAD = "__askr_deferred__";
@@ -594,7 +594,7 @@ async function hydrateSPA(config) {
594
594
  handler: r.handler,
595
595
  namespace: r.options.namespace
596
596
  })) : routeTable;
597
- const { verifyHydrationSyncForUrl } = await import("./verify-hydration-C41fY5Z2.js");
597
+ const { verifyHydrationSyncForUrl } = await import("./verify-hydration-BaWDqe5H.js");
598
598
  if (!verifyHydrationSyncForUrl({
599
599
  root: rootElement,
600
600
  url: currentUrl,
@@ -1,6 +1,6 @@
1
- import { c as runRuntimeHandlerScope, v as logger } from "./access-Bg4RJNC8.js";
2
- import "./fastlane-Dw8SOBr9.js";
3
- import { f as registerLifecycleTransaction, h as cleanupComponent } from "./component-lifecycle-C7lnU9Bt.js";
1
+ import { c as runRuntimeHandlerScope, v as logger } from "./access-ePqdQqkV.js";
2
+ import "./fastlane-C8PYPotF.js";
3
+ import { f as registerLifecycleTransaction, h as cleanupComponent } from "./component-lifecycle-DEMPihoZ.js";
4
4
  //#region src/runtime/events.ts
5
5
  /**
6
6
  * Event delegation system for Askr
@@ -1,9 +1,9 @@
1
1
  import { r as markEagerControlPrimitive } from "./control-DhFRTIoE.js";
2
- import { b as isDevelopmentEnvironment, n as enqueueRuntimeTask, o as getRuntimeRenderer, v as logger, x as isProductionEnvironment } from "./access-Bg4RJNC8.js";
3
- import { r as tryRuntimeFastLaneSync, s as finalizeReadableSubscriptions } from "./fastlane-Dw8SOBr9.js";
2
+ import { b as isDevelopmentEnvironment, n as enqueueRuntimeTask, o as getRuntimeRenderer, v as logger, x as isProductionEnvironment } from "./access-ePqdQqkV.js";
3
+ import { r as tryRuntimeFastLaneSync, s as finalizeReadableSubscriptions } from "./fastlane-C8PYPotF.js";
4
4
  import { r as STATIC_CHILDREN, t as ELEMENT_TYPE } from "./jsx-CUpRxrLH.js";
5
5
  import { C as restoreRenderScopedComponent, S as restoreInlineRenderTracking, _ as getSignalForInstance, b as restoreDomCommitScope, c as enterDomCommitScope, f as getCurrentComponentInstance, l as enterRenderScopedComponent, m as getCurrentPortalScope, n as captureInlineComponentScope, o as clearRenderTracking, p as getCurrentInstance, r as captureInlineRenderTracking, s as enterComponentExecutionScope, t as beginRenderTracking, u as exitComponentExecutionScope, v as resetRenderState, x as restoreInlineComponentScope } from "./component-scope-CC3cojX9.js";
6
- import { a as captureInlineRenderSnapshot$1, c as finalizeInlineReadSubscriptions, i as beginLifecycleCommitBatch, l as flushLifecycleCommitBatch, m as isPromiseLike, n as commitRenderedComponent$1, o as discardLifecycleCommitBatch, p as discardCommitOperations, r as registerCommitOperationForInstance, t as commitLifecycleForInstance } from "./component-lifecycle-C7lnU9Bt.js";
6
+ import { a as captureInlineRenderSnapshot$1, c as finalizeInlineReadSubscriptions, i as beginLifecycleCommitBatch, l as flushLifecycleCommitBatch, m as isPromiseLike, n as commitRenderedComponent$1, o as discardLifecycleCommitBatch, p as discardCommitOperations, r as registerCommitOperationForInstance, t as commitLifecycleForInstance } from "./component-lifecycle-DEMPihoZ.js";
7
7
  //#region src/runtime/context.ts
8
8
  const ROOT_EXECUTION_FRAME = {
9
9
  parent: null,
@@ -248,10 +248,7 @@ function runScheduledComponent(instance, host) {
248
248
  }
249
249
  if (isPromiseLike(result)) throw new Error("Async components are not supported. Components must be synchronous.");
250
250
  try {
251
- if (tryRuntimeFastLaneSync(instance, result)) {
252
- host.warnUnusedStateReads(instance);
253
- return;
254
- }
251
+ if (tryRuntimeFastLaneSync(instance, result)) return;
255
252
  } catch (err) {
256
253
  if (isDevelopmentEnvironment()) throw err;
257
254
  }
@@ -267,7 +264,6 @@ function runScheduledComponent(instance, host) {
267
264
  function commitPlaceholderReplacement(instance, result, host) {
268
265
  if (result === null || result === void 0) {
269
266
  host.finalizeReadSubscriptions(instance);
270
- host.warnUnusedStateReads(instance);
271
267
  host.commitRenderedComponent(instance);
272
268
  return;
273
269
  }
@@ -278,6 +274,19 @@ function commitPlaceholderReplacement(instance, result, host) {
278
274
  return;
279
275
  }
280
276
  const renderer = getRuntimeRenderer();
277
+ const rangeReplacement = renderer.replaceComponentRange(instance, result, placeholder);
278
+ if (rangeReplacement) {
279
+ if (rangeReplacement instanceof Element) {
280
+ instance.target = rangeReplacement;
281
+ instance._placeholder = void 0;
282
+ } else {
283
+ instance.target = null;
284
+ instance._placeholder = rangeReplacement;
285
+ }
286
+ host.finalizeReadSubscriptions(instance);
287
+ host.commitRenderedComponent(instance);
288
+ return;
289
+ }
281
290
  const hostElement = document.createElement("div");
282
291
  const executionFrame = getExecutionContextFrame(instance.ownerFrame);
283
292
  const oldInstance = enterDomCommitScope(instance);
@@ -303,7 +312,6 @@ function commitPlaceholderReplacement(instance, result, host) {
303
312
  }
304
313
  instance._placeholder = void 0;
305
314
  host.finalizeReadSubscriptions(instance);
306
- host.warnUnusedStateReads(instance);
307
315
  host.commitRenderedComponent(instance);
308
316
  flushLifecycleCommitBatch(lifecycleBatch);
309
317
  } finally {
@@ -342,7 +350,6 @@ function commitToTarget(instance, result, host) {
342
350
  restoreDomCommitScope(oldInstance);
343
351
  }
344
352
  host.finalizeReadSubscriptions(instance);
345
- host.warnUnusedStateReads(instance);
346
353
  instance.mounted = true;
347
354
  commitLifecycleForInstance(instance, wasFirstMount);
348
355
  flushLifecycleCommitBatch(lifecycleBatch);
@@ -400,7 +407,6 @@ function ensurePendingRunTask(instance) {
400
407
  runScheduledComponent(instance, {
401
408
  execute: executeComponentSync,
402
409
  finalizeReadSubscriptions,
403
- warnUnusedStateReads,
404
410
  commitRenderedComponent
405
411
  });
406
412
  };
@@ -539,20 +545,6 @@ function renderComponentInline(instance) {
539
545
  restoreInlineComponentScope(scopeSnapshot);
540
546
  }
541
547
  }
542
- function warnUnusedStateReads(instance) {
543
- const stateValues = instance.stateValues;
544
- if (!stateValues) return;
545
- for (let i = 0; i < stateValues.length; i++) {
546
- const state = stateValues[i];
547
- const hasCommittedUsage = (state?._readers?.size ?? 0) > 0 || (state?._derivedSubscribers?.size ?? 0) > 0;
548
- if (state && !state._hasBeenRead && !state._hasEverBeenRead && !hasCommittedUsage) try {
549
- const name = instance.fn?.name || "<anonymous>";
550
- warnInstanceOnce(instance, `unused-state:${i}`, `[askr] Unused state variable detected in ${name} at index ${i}. State should be read during render or removed.`);
551
- } catch {
552
- warnInstanceOnce(instance, `unused-state:${i}`, `[askr] Unused state variable detected. State should be read during render or removed.`);
553
- }
554
- }
555
- }
556
548
  function executeComponentSync(instance) {
557
549
  resetRenderState(instance);
558
550
  const savedPortalScope = enterComponentExecutionScope(instance);
@@ -603,4 +595,4 @@ function warnInstanceOnce(instance, key, message) {
603
595
  logger.warn(message);
604
596
  }
605
597
  //#endregion
606
- export { withContext as _, registerCommitOperation as a, warnUnusedStateReads as c, getCurrentContextFrame as d, getExecutionContextFrame as f, withAsyncResourceContext as g, readScope as h, mountInstanceInline as i, callWithContext as l, markVNodeTreeWithContextFrame as m, createComponentInstance as n, renderComponentInline as o, getVNodeContextFrame as p, executeComponent as r, renderScopedComponent as s, captureInlineRenderSnapshot as t, defineScope as u };
598
+ export { registerCommitOperation as a, callWithContext as c, getExecutionContextFrame as d, getVNodeContextFrame as f, withContext as g, withAsyncResourceContext as h, mountInstanceInline as i, defineScope as l, readScope as m, createComponentInstance as n, renderComponentInline as o, markVNodeTreeWithContextFrame as p, executeComponent as r, renderScopedComponent as s, captureInlineRenderSnapshot as t, getCurrentContextFrame as u };
@@ -1,6 +1,35 @@
1
- import { b as isDevelopmentEnvironment, v as logger } from "./access-Bg4RJNC8.js";
2
- import { a as cleanupReadableSubscriptions, c as finalizeReadableSubscriptionsFromSnapshot, i as cleanupReadableSubscriptionSources, t as isBulkCommitActive } from "./fastlane-Dw8SOBr9.js";
1
+ import { b as isDevelopmentEnvironment, v as logger, x as isProductionEnvironment } from "./access-ePqdQqkV.js";
2
+ import { a as cleanupReadableSubscriptions, c as finalizeReadableSubscriptionsFromSnapshot, i as cleanupReadableSubscriptionSources, t as isBulkCommitActive } from "./fastlane-C8PYPotF.js";
3
3
  import { a as clearCurrentComponentScope, y as restoreCurrentComponentScope } from "./component-scope-CC3cojX9.js";
4
+ //#region src/runtime/state-diagnostics.ts
5
+ /**
6
+ * Report state cells that were never read during a component's completed
7
+ * lifetime. A branch that has not rendered yet is not evidence that its state
8
+ * is unused, so this diagnostic belongs at unmount rather than every commit.
9
+ */
10
+ function warnUnusedStateReads(instance) {
11
+ if (isProductionEnvironment() || !instance.mounted) return;
12
+ const stateValues = instance.stateValues;
13
+ if (!stateValues) return;
14
+ for (let i = 0; i < stateValues.length; i++) {
15
+ const state = stateValues[i];
16
+ const diagnosticEligible = state?._unusedStateDiagnosticEligible;
17
+ const hasCommittedUsage = (state?._readers?.size ?? 0) > 0 || (state?._derivedSubscribers?.size ?? 0) > 0;
18
+ if (state && diagnosticEligible !== false && !state._hasEverBeenRead && !hasCommittedUsage) {
19
+ const warnings = instance.devWarningsEmitted ??= /* @__PURE__ */ new Set();
20
+ const key = `unused-state:${i}`;
21
+ if (warnings.has(key)) continue;
22
+ warnings.add(key);
23
+ try {
24
+ const name = instance.fn?.name || "<anonymous>";
25
+ logger.warn(`[askr] Unused state variable detected in ${name} at index ${i}. State should be read during render or removed.`);
26
+ } catch {
27
+ logger.warn("[askr] Unused state variable detected. State should be read during render or removed.");
28
+ }
29
+ }
30
+ }
31
+ }
32
+ //#endregion
4
33
  //#region src/runtime/component-cleanup.ts
5
34
  /**
6
35
  * Component cleanup and owned child-scope bookkeeping.
@@ -55,6 +84,7 @@ function cleanupComponentGeneration(instance, generation) {
55
84
  function cleanupComponent(instance) {
56
85
  const savedScope = clearCurrentComponentScope();
57
86
  try {
87
+ warnUnusedStateReads(instance);
58
88
  const cleanupErrors = instance.cleanupStrict ? [] : void 0;
59
89
  const recordCleanupError = (message, err) => {
60
90
  if (cleanupErrors) cleanupErrors.push(err);
@@ -1,2 +1,2 @@
1
- import { i as For, n as Match, r as Show, t as Case } from "../control-BJmonrpE.js";
1
+ import { i as For, n as Match, r as Show, t as Case } from "../control-KVP6LMEQ.js";
2
2
  export { Case, For, Match, Show };
@@ -1,9 +1,9 @@
1
1
  import { r as markEagerControlPrimitive, t as __CONTROL_BOUNDARY__ } from "./control-DhFRTIoE.js";
2
- import { b as isDevelopmentEnvironment } from "./access-Bg4RJNC8.js";
2
+ import { b as isDevelopmentEnvironment } from "./access-ePqdQqkV.js";
3
3
  import { n as Fragment } from "./jsx-CUpRxrLH.js";
4
- import { m as createShowState, p as createCaseState, s as useForState } from "./for-internal-cNhKHMBB.js";
5
- import { t as createFineGrainedEffect } from "./effect-BwnIvLah.js";
6
- import { t as state } from "./state-DPl8lffD.js";
4
+ import { m as createShowState, p as createCaseState, s as useForState } from "./for-internal-B2rBq6yB.js";
5
+ import { t as createFineGrainedEffect } from "./effect-D_4zf_wy.js";
6
+ import { t as state } from "./state-Cc5HumQ0.js";
7
7
  //#region src/control/shared.ts
8
8
  function normalizeBoundaryChild(value) {
9
9
  if (Array.isArray(value)) {
@@ -1,4 +1,4 @@
1
1
  import { i as getDefaultDataRuntime, t as createDataRuntime } from "../data-runtime-SJ1BSUvk.js";
2
- import { a as queryScope, i as invalidateOnInterval, n as createMutation, r as invalidate, t as createQuery } from "../data-0sDU9_HU.js";
2
+ import { a as queryScope, i as invalidateOnInterval, n as createMutation, r as invalidate, t as createQuery } from "../data-DvYo_dHd.js";
3
3
  import { a as hydrateDataRuntime, i as dehydrateDataRuntime, n as defineQuery, o as prefetchQuery, r as defineServerQueries, s as serveQuery, t as createQueryPrefetchContext } from "../query-registry-CQIT4mXr.js";
4
4
  export { createDataRuntime, createMutation, createQuery, createQueryPrefetchContext, defineQuery, defineServerQueries, dehydrateDataRuntime, getDefaultDataRuntime, hydrateDataRuntime, invalidate, invalidateOnInterval, prefetchQuery, queryScope, serveQuery };
@@ -1,8 +1,8 @@
1
- import { n as enqueueRuntimeTask, v as logger } from "./access-Bg4RJNC8.js";
2
- import { f as notifyReadableReaders, l as markReactivePropsDirtySource, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-Dw8SOBr9.js";
1
+ import { n as enqueueRuntimeTask, v as logger } from "./access-ePqdQqkV.js";
2
+ import { f as notifyReadableReaders, l as markReactivePropsDirtySource, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-C8PYPotF.js";
3
3
  import { f as getCurrentComponentInstance, i as claimHookIndex } from "./component-scope-CC3cojX9.js";
4
4
  import { n as getActiveRenderContext } from "./render-context-Clw3rFiO.js";
5
- import { c as windowFocused, i as routeActive, n as documentVisible, s as timer } from "./lifecycle-operations-BR8-AOly.js";
5
+ import { c as windowFocused, i as routeActive, n as documentVisible, s as timer } from "./lifecycle-operations-Dj5lK1K7.js";
6
6
  import { a as getMutationSlotStore, c as resolveDataRuntimeState, i as getDefaultDataRuntime, n as ensureMutationCleanup, o as getQuerySlotStore, r as ensureQueryCleanup, s as invalidateQueriesForRuntime } from "./data-runtime-SJ1BSUvk.js";
7
7
  //#region src/data/query-key.ts
8
8
  function serializeQueryKeyNumber(part) {
@@ -1,9 +1,9 @@
1
1
  import { n as Fragment, t as ELEMENT_TYPE } from "./jsx-CUpRxrLH.js";
2
- import { h as readScope, u as defineScope } from "./component-internal-NdN_bJ2-.js";
2
+ import { l as defineScope, m as readScope } from "./component-internal-CbALfPGD.js";
3
3
  import { d as getCurrentAppRenderRuntime } from "./component-scope-CC3cojX9.js";
4
- import { m as isPromiseLike } from "./component-lifecycle-C7lnU9Bt.js";
4
+ import { m as isPromiseLike } from "./component-lifecycle-DEMPihoZ.js";
5
5
  import { n as getActiveRenderContext, r as getCurrentRenderData } from "./render-context-Clw3rFiO.js";
6
- import { t as resource } from "./resource-operation-CUAUBhUB.js";
6
+ import { t as resource } from "./resource-operation-Dz2Nxi1q.js";
7
7
  import { t as ROUTE_ROOT_COMPONENT } from "./router-internal-BC0w1_xk.js";
8
8
  import { c as withTelemetry, t as createQueryPrefetchContext } from "./query-registry-CQIT4mXr.js";
9
9
  import { E as getRouteRecords, h as getActiveRouteAuthOptions, i as getMatchingRouteRecord, o as buildRouteContext, s as buildRouteContextBase } from "./route-matching-vJpvLVbX.js";
@@ -1,5 +1,5 @@
1
- import { t as enqueueRuntimeLane } from "./access-Bg4RJNC8.js";
2
- import { _ as withFineGrainedReadTracking } from "./fastlane-Dw8SOBr9.js";
1
+ import { t as enqueueRuntimeLane } from "./access-ePqdQqkV.js";
2
+ import { _ as withFineGrainedReadTracking } from "./fastlane-C8PYPotF.js";
3
3
  //#region src/runtime/effect.ts
4
4
  const SOURCE_EFFECTS = Symbol("askr.source-effects");
5
5
  const effectSources = /* @__PURE__ */ new WeakMap();
@@ -1,4 +1,4 @@
1
- import { b as isDevelopmentEnvironment, l as runRuntimeWithSyncProgress, n as enqueueRuntimeTask, o as getRuntimeRenderer, s as markRuntimeReactivePropsDirtySource, u as setRuntimeBulkCommitProbe } from "./access-Bg4RJNC8.js";
1
+ import { b as isDevelopmentEnvironment, l as runRuntimeWithSyncProgress, n as enqueueRuntimeTask, o as getRuntimeRenderer, s as markRuntimeReactivePropsDirtySource, u as setRuntimeBulkCommitProbe } from "./access-ePqdQqkV.js";
2
2
  import { n as Fragment } from "./jsx-CUpRxrLH.js";
3
3
  import { p as getCurrentInstance } from "./component-scope-CC3cojX9.js";
4
4
  //#region src/runtime/dev-namespace.ts
@@ -1,9 +1,9 @@
1
1
  import { n as _isDOMElement } from "./vnode-D24p6IW2.js";
2
- import { b as isDevelopmentEnvironment, o as getRuntimeRenderer, v as logger } from "./access-Bg4RJNC8.js";
3
- import { f as notifyReadableReaders, l as markReactivePropsDirtySource, m as shouldCoalesceFineGrainedItemReads, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-Dw8SOBr9.js";
4
- import { n as createComponentInstance, s as renderScopedComponent } from "./component-internal-NdN_bJ2-.js";
2
+ import { b as isDevelopmentEnvironment, o as getRuntimeRenderer, v as logger } from "./access-ePqdQqkV.js";
3
+ import { f as notifyReadableReaders, l as markReactivePropsDirtySource, m as shouldCoalesceFineGrainedItemReads, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-C8PYPotF.js";
4
+ import { n as createComponentInstance, s as renderScopedComponent } from "./component-internal-CbALfPGD.js";
5
5
  import { h as getCurrentStateIndex, i as claimHookIndex, o as clearRenderTracking, p as getCurrentInstance } from "./component-scope-CC3cojX9.js";
6
- import { _ as registerOwnedChildScope, c as finalizeInlineReadSubscriptions, f as registerLifecycleTransaction, h as cleanupComponent, v as unregisterOwnedChildScope } from "./component-lifecycle-C7lnU9Bt.js";
6
+ import { _ as registerOwnedChildScope, c as finalizeInlineReadSubscriptions, f as registerLifecycleTransaction, h as cleanupComponent, v as unregisterOwnedChildScope } from "./component-lifecycle-DEMPihoZ.js";
7
7
  //#region src/runtime/child-scope.ts
8
8
  const EMPTY_CHILD_SCOPE_PROPS = {};
9
9
  const childScopesByInstance = /* @__PURE__ */ new WeakMap();
@@ -1,3 +1,3 @@
1
- import { i as definePortal, n as Portal, t as DefaultPortal } from "../portal-C47xkwXj.js";
1
+ import { i as definePortal, n as Portal, t as DefaultPortal } from "../portal-D2tPWNrC.js";
2
2
  import { a as layout, i as Slot, r as Presence } from "../structures-DUB3HchX.js";
3
3
  export { DefaultPortal, Portal, Presence, Slot, definePortal, layout };
@@ -1,4 +1,4 @@
1
- import { t as state } from "../../state-DPl8lffD.js";
1
+ import { t as state } from "../../state-Cc5HumQ0.js";
2
2
  //#region src/foundations/state/controllable.ts
3
3
  /**
4
4
  * controllable
@@ -1,3 +1,3 @@
1
- import { i as definePortal, n as Portal, t as DefaultPortal } from "../../portal-C47xkwXj.js";
1
+ import { i as definePortal, n as Portal, t as DefaultPortal } from "../../portal-D2tPWNrC.js";
2
2
  import { a as layout, i as Slot, n as createCollection, r as Presence, t as createLayer } from "../../structures-DUB3HchX.js";
3
3
  export { DefaultPortal, Portal, Presence, Slot, createCollection, createLayer, definePortal, layout };
package/dist/fx/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { h as scheduleEventHandler, n as enqueueRuntimeTask, v as logger } from "../access-Bg4RJNC8.js";
1
+ import { h as scheduleEventHandler, n as enqueueRuntimeTask, v as logger } from "../access-ePqdQqkV.js";
2
2
  import { f as getCurrentComponentInstance } from "../component-scope-CC3cojX9.js";
3
3
  //#region src/fx/timing.ts
4
4
  /**
@@ -14,6 +14,7 @@ interface RuntimeKeyedReorderDecision {
14
14
  interface RuntimeRendererHost {
15
15
  evaluate(node: unknown, target: Element | null, context?: object, retainedOwner?: ComponentInstance): void;
16
16
  cleanupInstancesUnder(node: Node): void;
17
+ replaceComponentRange(instance: ComponentInstance, result: unknown, placeholder: Comment): Node | null;
17
18
  teardownNodeSubtree(root: Node): void;
18
19
  populateKeyMapForElement(parent: Element): void;
19
20
  getKeyMapForElement(parent: Element): Map<string | number, Element> | undefined;
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ as state, a as defineScope, g as StateTuple, h as StateSetter, i as Scope, m as State, o as readScope } from "./control-D-9LKE3W.js";
2
2
  import { s as Props, t as Fragment } from "./jsx-CP0gmYwJ.js";
3
3
  import { t as getSignal } from "./component-scope-CvPba6O6.js";
4
- import { a as AskrRuntime, c as RuntimeRendererHost, i as derive, l as createRuntime, n as selector, o as AskrRuntimeOptions, r as Derived, s as RuntimeKeyedReorderDecision, t as Selector, u as getDefaultRuntime } from "./index-4jSsebbI.js";
4
+ import { a as AskrRuntime, c as RuntimeRendererHost, i as derive, l as createRuntime, n as selector, o as AskrRuntimeOptions, r as Derived, s as RuntimeKeyedReorderDecision, t as Selector, u as getDefaultRuntime } from "./index-XB38_9B8.js";
5
5
  import { a as Show, c as ForProps, i as MatchProps, n as CaseProps, o as ShowProps, r as Match, s as For, t as Case } from "./index-DdkXZQEM.js";
6
6
  import { i as jsxs, n as jsx } from "./jsx-runtime-92bV2hSa.js";
7
7
  import { A as ServerQueryHandler, D as QueryPrefetchContext, T as QueryDefinition, a as defineServerQueries, c as prefetchQuery, g as createQuery, i as defineQuery, l as serveQuery, o as dehydrateDataRuntime, s as hydrateDataRuntime, v as DataRuntime } from "./index-Bki2rqcr.js";
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
- import { a as getRuntimeFlushVersion, d as AskrRuntime, m as getDefaultRuntime, p as createRuntime, t as enqueueRuntimeLane } from "./access-Bg4RJNC8.js";
2
- import { f as notifyReadableReaders, g as withDerivedReadTracking, h as syncDerivedDependencySubscriptions, l as markReactivePropsDirtySource, o as clearDerivedDependencySubscriptions, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-Dw8SOBr9.js";
1
+ import { a as getRuntimeFlushVersion, d as AskrRuntime, m as getDefaultRuntime, p as createRuntime, t as enqueueRuntimeLane } from "./access-ePqdQqkV.js";
2
+ import { f as notifyReadableReaders, g as withDerivedReadTracking, h as syncDerivedDependencySubscriptions, l as markReactivePropsDirtySource, o as clearDerivedDependencySubscriptions, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-C8PYPotF.js";
3
3
  import { n as Fragment } from "./jsx-CUpRxrLH.js";
4
- import { h as readScope, u as defineScope } from "./component-internal-NdN_bJ2-.js";
4
+ import { l as defineScope, m as readScope } from "./component-internal-CbALfPGD.js";
5
5
  import { g as getSignal, i as claimHookIndex, p as getCurrentInstance } from "./component-scope-CC3cojX9.js";
6
6
  import { n as isSnapshotSource } from "./snapshot-source-BB42xgwb.js";
7
- import { t as installRendererBridge } from "./renderer-CCvnNMna.js";
8
- import { t as state } from "./state-DPl8lffD.js";
9
- import { t as selector } from "./selector-DafVYzV4.js";
7
+ import { t as installRendererBridge } from "./renderer-DhojfVg4.js";
8
+ import { t as state } from "./state-Cc5HumQ0.js";
9
+ import { t as selector } from "./selector-pApF_lGd.js";
10
10
  import { jsx, jsxs } from "./jsx-runtime.js";
11
- import { i as For, n as Match, r as Show, t as Case } from "./control-BJmonrpE.js";
12
- import { t as createQuery } from "./data-0sDU9_HU.js";
11
+ import { i as For, n as Match, r as Show, t as Case } from "./control-KVP6LMEQ.js";
12
+ import { t as createQuery } from "./data-DvYo_dHd.js";
13
13
  import { a as hydrateDataRuntime, i as dehydrateDataRuntime, n as defineQuery, o as prefetchQuery, r as defineServerQueries, s as serveQuery } from "./query-registry-CQIT4mXr.js";
14
14
  //#region src/runtime/derive.ts
15
15
  const deriveCells = /* @__PURE__ */ new WeakMap();
@@ -1,4 +1,4 @@
1
- import { a as registerCommitOperation } from "./component-internal-NdN_bJ2-.js";
1
+ import { a as registerCommitOperation } from "./component-internal-CbALfPGD.js";
2
2
  import { f as getCurrentComponentInstance, i as claimHookIndex } from "./component-scope-CC3cojX9.js";
3
3
  import { t as isRouteActivityActive } from "./route-activity-CNJfpwx-.js";
4
4
  //#region src/runtime/lifecycle-operations.ts
@@ -1,15 +1,15 @@
1
- import { b as isDevelopmentEnvironment, r as flushRuntimeScheduler, v as logger, x as isProductionEnvironment } from "./access-Bg4RJNC8.js";
2
- import { f as notifyReadableReaders, i as cleanupReadableSubscriptionSources, l as markReactivePropsDirtySource, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-Dw8SOBr9.js";
1
+ import { b as isDevelopmentEnvironment, r as flushRuntimeScheduler, v as logger, x as isProductionEnvironment } from "./access-ePqdQqkV.js";
2
+ import { f as notifyReadableReaders, i as cleanupReadableSubscriptionSources, l as markReactivePropsDirtySource, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-C8PYPotF.js";
3
3
  import { n as Fragment, t as ELEMENT_TYPE } from "./jsx-CUpRxrLH.js";
4
- import { r as executeComponent } from "./component-internal-NdN_bJ2-.js";
4
+ import { r as executeComponent } from "./component-internal-CbALfPGD.js";
5
5
  import { d as getCurrentAppRenderRuntime, f as getCurrentComponentInstance } from "./component-scope-CC3cojX9.js";
6
- import { g as cleanupComponentGeneration, h as cleanupComponent, i as beginLifecycleCommitBatch, l as flushLifecycleCommitBatch, m as isPromiseLike, o as discardLifecycleCommitBatch, s as drainLifecycleCommitErrors } from "./component-lifecycle-C7lnU9Bt.js";
7
- import { _ as teardownNodeSubtree } from "./cleanup-DScKZG2i.js";
6
+ import { g as cleanupComponentGeneration, h as cleanupComponent, i as beginLifecycleCommitBatch, l as flushLifecycleCommitBatch, m as isPromiseLike, o as discardLifecycleCommitBatch, s as drainLifecycleCommitErrors } from "./component-lifecycle-DEMPihoZ.js";
7
+ import { _ as teardownNodeSubtree } from "./cleanup-B6KovDZZ.js";
8
8
  import { n as getActiveRenderContext } from "./render-context-Clw3rFiO.js";
9
9
  import { n as syncRouteActivitySnapshot } from "./route-activity-CNJfpwx-.js";
10
- import { r as clearDefaultPortalForInstance, t as DefaultPortal } from "./portal-C47xkwXj.js";
10
+ import { r as clearDefaultPortalForInstance, t as DefaultPortal } from "./portal-D2tPWNrC.js";
11
11
  import { A as insertRecordSorted, C as getCurrentPathPrefix, D as getRoutes, E as getRouteRecords, F as snapshotRouteState, I as computeRank, L as normalizeRouteSegmentName, M as pushRegistrationScope, N as restoreRouteState, O as hasActivePageScope, P as setDefaultRouteAuthOptions, R as parseSegments, S as getCurrentPageScope, T as getDefaultRouteAuthOptions, _ as getCurrentInheritedAuthRequirements, a as resolveRouteFromRoutes, b as getCurrentLayoutChain, c as deepFreeze, f as addRouteToStores, g as getActiveRoutes, j as lockRouteRegistration, l as makeQuery, m as clearRouteState, n as computeMatchesFromRoutes, p as assertRouteRegistrationUnlocked, r as computeRouteActivityMatches, u as parseLocation, v as getCurrentInheritedMeta, w as getCurrentScopeKind, x as getCurrentPageChain, y as getCurrentInheritedPolicies } from "./route-matching-vJpvLVbX.js";
12
- import { d as hasRouteRenderData, f as resolveRouteRequest, l as getRouteRenderContext, u as getRouteRenderData, x as _preloadRouteHandler, y as createRouteHandler } from "./deferred-CSFYIBJL.js";
12
+ import { d as hasRouteRenderData, f as resolveRouteRequest, l as getRouteRenderContext, u as getRouteRenderData, x as _preloadRouteHandler, y as createRouteHandler } from "./deferred-BeNnjR4r.js";
13
13
  import { allOf } from "@askrjs/auth";
14
14
  //#region src/runtime/execution-model.ts
15
15
  const EXECUTION_MODEL_KEY = Symbol.for("__ASKR_EXECUTION_MODEL__");
@@ -1,7 +1,7 @@
1
- import { o as getRuntimeRenderer } from "./access-Bg4RJNC8.js";
2
- import { f as notifyReadableReaders, l as markReactivePropsDirtySource, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-Dw8SOBr9.js";
1
+ import { o as getRuntimeRenderer } from "./access-ePqdQqkV.js";
2
+ import { f as notifyReadableReaders, l as markReactivePropsDirtySource, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-C8PYPotF.js";
3
3
  import { f as getCurrentComponentInstance, m as getCurrentPortalScope } from "./component-scope-CC3cojX9.js";
4
- import { f as registerLifecycleTransaction, h as cleanupComponent, u as getCurrentLifecycleCommitBatch } from "./component-lifecycle-C7lnU9Bt.js";
4
+ import { f as registerLifecycleTransaction, h as cleanupComponent, u as getCurrentLifecycleCommitBatch } from "./component-lifecycle-DEMPihoZ.js";
5
5
  //#region src/runtime/portal.ts
6
6
  function createPortalSlot() {
7
7
  let currentValue;
@@ -1,14 +1,14 @@
1
1
  import { t as __CONTROL_BOUNDARY__ } from "./control-DhFRTIoE.js";
2
2
  import { n as _isDOMElement, t as __ERROR_BOUNDARY__ } from "./vnode-D24p6IW2.js";
3
- import { b as isDevelopmentEnvironment, c as runRuntimeHandlerScope, f as configureRuntimeRenderer, i as getDefaultRuntimeInstance, n as enqueueRuntimeTask, v as logger, y as getRuntimeEnv } from "./access-Bg4RJNC8.js";
4
- import { n as markFastPathApplied, t as isBulkCommitActive } from "./fastlane-Dw8SOBr9.js";
3
+ import { b as isDevelopmentEnvironment, c as runRuntimeHandlerScope, f as configureRuntimeRenderer, i as getDefaultRuntimeInstance, n as enqueueRuntimeTask, v as logger, y as getRuntimeEnv } from "./access-ePqdQqkV.js";
4
+ import { n as markFastPathApplied, t as isBulkCommitActive } from "./fastlane-C8PYPotF.js";
5
5
  import { n as Fragment, r as STATIC_CHILDREN } from "./jsx-CUpRxrLH.js";
6
- import { _ as withContext, c as warnUnusedStateReads, d as getCurrentContextFrame, i as mountInstanceInline, m as markVNodeTreeWithContextFrame, n as createComponentInstance, o as renderComponentInline, p as getVNodeContextFrame, t as captureInlineRenderSnapshot } from "./component-internal-NdN_bJ2-.js";
6
+ import { f as getVNodeContextFrame, g as withContext, i as mountInstanceInline, n as createComponentInstance, o as renderComponentInline, p as markVNodeTreeWithContextFrame, t as captureInlineRenderSnapshot, u as getCurrentContextFrame } from "./component-internal-CbALfPGD.js";
7
7
  import { b as restoreDomCommitScope, c as enterDomCommitScope, p as getCurrentInstance } from "./component-scope-CC3cojX9.js";
8
- import { d as registerLifecycleRollback, f as registerLifecycleTransaction, h as cleanupComponent, i as beginLifecycleCommitBatch, l as flushLifecycleCommitBatch, m as isPromiseLike, o as discardLifecycleCommitBatch, u as getCurrentLifecycleCommitBatch } from "./component-lifecycle-C7lnU9Bt.js";
9
- import { _ as createChildScope, a as registerForStateTransaction, c as captureForFallbackTransactionSnapshot, d as clearCaseDomUpdateState, f as clearShowDomUpdateState, g as evaluateShowState, h as evaluateCaseState, i as evaluateForState, l as captureForItemTransactionSnapshot, n as clearForDomUpdateState, o as rollbackForStateTransaction, t as beginForStateTransaction, v as disposeChildScope, y as rerenderChildScope } from "./for-internal-cNhKHMBB.js";
10
- import { n as createOwnedFineGrainedEffect, r as markFineGrainedEffectsDirtySource, t as createFineGrainedEffect } from "./effect-BwnIvLah.js";
11
- import { C as getDelegatedHandlersForElement, D as updateDelegatedListener, E as removeDelegatedListener, S as getDelegatedHandlerForElement, T as isEventDelegationEnabled, _ as teardownNodeSubtree, a as elementReactivePropsCleanup, b as addFreshDelegatedListener, c as forEachElementReactivePropCleanup, d as removeAllListeners, f as removeElementReactiveProps, g as setFreshElementReactivePropCleanup, h as setDirectElementReactivePropCleanup, i as elementListeners, l as getElementReactivePropCleanupSize, m as replaceElementRefBookkeeping, n as cleanupInstanceIfPresent, o as elementRefs, p as removeElementRef, r as cleanupInstancesUnder, s as forEachDescendantNode, t as REACTIVE_CHILDREN_KEY, u as getElementReactivePropsCleanupMap, v as updateElementRef, w as isDelegatedEvent, x as clearDelegatedHandlersForElement, y as addDelegatedListener } from "./cleanup-DScKZG2i.js";
8
+ import { d as registerLifecycleRollback, f as registerLifecycleTransaction, h as cleanupComponent, i as beginLifecycleCommitBatch, l as flushLifecycleCommitBatch, m as isPromiseLike, o as discardLifecycleCommitBatch, u as getCurrentLifecycleCommitBatch } from "./component-lifecycle-DEMPihoZ.js";
9
+ import { _ as createChildScope, a as registerForStateTransaction, c as captureForFallbackTransactionSnapshot, d as clearCaseDomUpdateState, f as clearShowDomUpdateState, g as evaluateShowState, h as evaluateCaseState, i as evaluateForState, l as captureForItemTransactionSnapshot, n as clearForDomUpdateState, o as rollbackForStateTransaction, t as beginForStateTransaction, v as disposeChildScope, y as rerenderChildScope } from "./for-internal-B2rBq6yB.js";
10
+ import { n as createOwnedFineGrainedEffect, r as markFineGrainedEffectsDirtySource, t as createFineGrainedEffect } from "./effect-D_4zf_wy.js";
11
+ import { C as getDelegatedHandlersForElement, D as updateDelegatedListener, E as removeDelegatedListener, S as getDelegatedHandlerForElement, T as isEventDelegationEnabled, _ as teardownNodeSubtree, a as elementReactivePropsCleanup, b as addFreshDelegatedListener, c as forEachElementReactivePropCleanup, d as removeAllListeners, f as removeElementReactiveProps, g as setFreshElementReactivePropCleanup, h as setDirectElementReactivePropCleanup, i as elementListeners, l as getElementReactivePropCleanupSize, m as replaceElementRefBookkeeping, n as cleanupInstanceIfPresent, o as elementRefs, p as removeElementRef, r as cleanupInstancesUnder, s as forEachDescendantNode, t as REACTIVE_CHILDREN_KEY, u as getElementReactivePropsCleanupMap, v as updateElementRef, w as isDelegatedEvent, x as clearDelegatedHandlersForElement, y as addDelegatedListener } from "./cleanup-B6KovDZZ.js";
12
12
  import { t as getPublicAttributeName } from "./attr-names-CjhzmHOn.js";
13
13
  import { t as ROUTE_ROOT_COMPONENT } from "./router-internal-BC0w1_xk.js";
14
14
  //#region src/runtime/error-boundary.ts
@@ -897,7 +897,20 @@ function getRangeNodes(range) {
897
897
  }
898
898
  return nodes;
899
899
  }
900
- function createDetachedRange(nodes, owner) {
900
+ function createDetachedRange(nodes, owner, forceAnchors = false) {
901
+ if (nodes instanceof DocumentFragment) {
902
+ const first = nodes.firstChild;
903
+ const last = nodes.lastChild;
904
+ const existingOwner = first ? getRangeOwner(first) : void 0;
905
+ const existingRange = existingOwner ? getOwnedRange(existingOwner) : void 0;
906
+ if (existingRange && !existingRange.single && existingRange.start === first && existingRange.end === last) {
907
+ if (owner) registerRange(existingRange, owner);
908
+ return {
909
+ range: existingRange,
910
+ fragment: nodes
911
+ };
912
+ }
913
+ }
901
914
  if (nodes && !(nodes instanceof DocumentFragment)) return {
902
915
  range: createSingleNodeRange(nodes, owner),
903
916
  fragment: null
@@ -905,7 +918,7 @@ function createDetachedRange(nodes, owner) {
905
918
  const normalized = normalizeNodes(nodes);
906
919
  const ownerDocument = normalized[0]?.ownerDocument ?? (typeof document !== "undefined" ? document : null);
907
920
  if (!ownerDocument) throw new Error("[askr] Cannot create a DOM range without a document.");
908
- if (normalized.length === 1) {
921
+ if (normalized.length === 1 && !forceAnchors) {
909
922
  const single = normalized[0];
910
923
  return {
911
924
  range: createSingleNodeRange(single, owner),
@@ -944,10 +957,19 @@ function createEmptyRange(ownerDocument = document, owner) {
944
957
  }
945
958
  function registerRange(range, owner) {
946
959
  if (!owner) return;
960
+ const previousStartOwner = ownersByAnchor.get(range.start);
961
+ const previousEndOwner = ownersByAnchor.get(range.end);
962
+ for (const previousOwner of [previousStartOwner, previousEndOwner]) if (previousOwner && previousOwner !== owner && rangesByOwner.get(previousOwner) === range) rangesByOwner.delete(previousOwner);
947
963
  rangesByOwner.set(owner, range);
948
964
  ownersByAnchor.set(range.start, owner);
949
965
  if (range.end !== range.start) ownersByAnchor.set(range.end, owner);
950
966
  }
967
+ function getOwnedRange(owner) {
968
+ return rangesByOwner.get(owner);
969
+ }
970
+ function getRangeOwner(node) {
971
+ return ownersByAnchor.get(node);
972
+ }
951
973
  function clearRangeOwner(range, owner) {
952
974
  const startOwner = ownersByAnchor.get(range.start);
953
975
  const endOwner = ownersByAnchor.get(range.end);
@@ -4848,9 +4870,12 @@ function cleanupReplacementNode(node, retainedInstances) {
4848
4870
  }
4849
4871
  function beginComponentHostReplacement(existingHost, retainedInstance, previousTarget, retainedInstances = [retainedInstance], disposeOnRollback = false) {
4850
4872
  const parent = existingHost.parentNode;
4873
+ const previousRange = getOwnedRange(retainedInstance);
4851
4874
  const previousRef = existingHost instanceof Element ? elementRefs.get(existingHost) : void 0;
4852
4875
  let previousRefDetached = false;
4853
4876
  let nextDom = null;
4877
+ let nextHost = null;
4878
+ let nextRange;
4854
4879
  let previousBindings = /* @__PURE__ */ new Map();
4855
4880
  let didReplace = false;
4856
4881
  let replacementAttempted = false;
@@ -4860,17 +4885,23 @@ function beginComponentHostReplacement(existingHost, retainedInstance, previousT
4860
4885
  finished = true;
4861
4886
  if (replacementAttempted && didReplace) {
4862
4887
  const retained = Array.from(retainedInstances);
4863
- if (nextDom) for (const [instance, binding] of previousBindings) {
4888
+ if (nextHost) for (const [instance, binding] of previousBindings) {
4864
4889
  if (binding.target !== existingHost && binding.placeholder !== existingHost) continue;
4865
- if (nextDom instanceof Element) {
4866
- instance.target = nextDom;
4890
+ if (nextHost instanceof Element) {
4891
+ instance.target = nextHost;
4867
4892
  instance._placeholder = void 0;
4868
- } else if (nextDom instanceof Comment) {
4893
+ } else if (nextHost instanceof Comment) {
4869
4894
  instance.target = null;
4870
- instance._placeholder = nextDom;
4895
+ instance._placeholder = nextHost;
4871
4896
  }
4872
4897
  }
4873
- cleanupDetachedComponentHost(existingHost, retained);
4898
+ if (previousRange && !previousRange.single) {
4899
+ removeRange(previousRange, (node) => {
4900
+ cleanupDetachedComponentHost(node, retained);
4901
+ node.parentNode?.removeChild(node);
4902
+ });
4903
+ if (nextRange) registerRange(nextRange, retainedInstance);
4904
+ } else cleanupDetachedComponentHost(existingHost, retained);
4874
4905
  }
4875
4906
  };
4876
4907
  const rollback = () => {
@@ -4879,8 +4910,15 @@ function beginComponentHostReplacement(existingHost, retainedInstance, previousT
4879
4910
  if (!replacementAttempted) return;
4880
4911
  const rollbackErrors = [];
4881
4912
  const retained = Array.from(retainedInstances);
4882
- if (nextDom && nextDom !== existingHost) try {
4883
- cleanupReplacementNode(nextDom, retained);
4913
+ if (nextHost && nextHost !== existingHost) try {
4914
+ if (nextRange && !nextRange.single) removeRange(nextRange, (node) => {
4915
+ cleanupReplacementNode(node, retained);
4916
+ node.parentNode?.removeChild(node);
4917
+ });
4918
+ else {
4919
+ cleanupReplacementNode(nextHost, retained);
4920
+ nextHost.parentNode?.removeChild(nextHost);
4921
+ }
4884
4922
  } catch (error) {
4885
4923
  rollbackErrors.push(error);
4886
4924
  }
@@ -4892,6 +4930,7 @@ function beginComponentHostReplacement(existingHost, retainedInstance, previousT
4892
4930
  instance._placeholder = binding.placeholder;
4893
4931
  }
4894
4932
  if (!previousBindings.has(retainedInstance) && !disposeOnRollback) retainedInstance.target = previousTarget;
4933
+ if (previousRange) registerRange(previousRange, retainedInstance);
4895
4934
  } catch (error) {
4896
4935
  rollbackErrors.push(error);
4897
4936
  }
@@ -4915,9 +4954,15 @@ function beginComponentHostReplacement(existingHost, retainedInstance, previousT
4915
4954
  placeholder: instance._placeholder
4916
4955
  }]));
4917
4956
  nextDom = materialize();
4918
- prepareNextDom(nextDom);
4919
- if (parent && nextDom !== existingHost) {
4920
- parent.replaceChild(nextDom, existingHost);
4957
+ const registeredRange = getOwnedRange(retainedInstance);
4958
+ nextRange = registeredRange && registeredRange !== previousRange ? registeredRange : void 0;
4959
+ nextHost = nextDom instanceof DocumentFragment ? nextDom.firstChild : nextDom;
4960
+ if (!nextHost) throw new Error("[askr] Component replacement produced no host node.");
4961
+ if (!nextRange) nextRange = createSingleNodeRange(nextHost, retainedInstance);
4962
+ prepareNextDom(nextHost);
4963
+ if (parent && nextHost !== existingHost) {
4964
+ if (previousRange && !previousRange.single) parent.insertBefore(nextDom, previousRange.start);
4965
+ else parent.replaceChild(nextDom, existingHost);
4921
4966
  didReplace = true;
4922
4967
  }
4923
4968
  } catch (error) {
@@ -4927,7 +4972,7 @@ function beginComponentHostReplacement(existingHost, retainedInstance, previousT
4927
4972
  throw error;
4928
4973
  }
4929
4974
  if (!staged) commit();
4930
- return nextDom;
4975
+ return nextHost;
4931
4976
  };
4932
4977
  return { replace };
4933
4978
  }
@@ -4963,11 +5008,20 @@ function materializeComponentResultNode(childInstance, result, parentNamespace)
4963
5008
  mountInstanceInline(childInstance, null);
4964
5009
  return placeholder;
4965
5010
  }
4966
- const host = document.createElement("div");
4967
- host.appendChild(dom);
4968
- host.__ASKR_WRAPPER_HOST = true;
4969
- mountInstanceInline(childInstance, host);
4970
- return host;
5011
+ if (!_isDOMElement(result) || result.type !== __CONTROL_BOUNDARY__) {
5012
+ const host = document.createElement("div");
5013
+ host.appendChild(dom);
5014
+ host.__ASKR_WRAPPER_HOST = true;
5015
+ mountInstanceInline(childInstance, host);
5016
+ return host;
5017
+ }
5018
+ const materialized = createDetachedRange(dom, childInstance, true);
5019
+ const host = materialized.range.start;
5020
+ host.__ASKR_INSTANCE = childInstance;
5021
+ host.__ASKR_INSTANCES = [childInstance];
5022
+ childInstance._placeholder = host;
5023
+ mountInstanceInline(childInstance, null);
5024
+ return materialized.fragment ?? host;
4971
5025
  }
4972
5026
  function resolveNestedComponentResult(result, snapshot, parentInstance) {
4973
5027
  let currentResult = result;
@@ -5030,7 +5084,6 @@ function resolveHostNestedComponentResult(host, retainedInstance, result, snapsh
5030
5084
  const nextResult = withContext(nestedSnapshot ?? null, () => renderComponentInline(nestedInstance));
5031
5085
  if (isPromiseLike(nextResult)) throw new Error("Async components are not supported. Components must return synchronously.");
5032
5086
  retainedInstances.add(nestedInstance);
5033
- warnUnusedStateReads(nestedInstance);
5034
5087
  activeSnapshot = nestedSnapshot ?? null;
5035
5088
  currentResult = markVNodeTreeWithContextFrame(nextResult, activeSnapshot);
5036
5089
  depth += 1;
@@ -5071,7 +5124,6 @@ function resolveWrapperHostResult(host, result, snapshot, retainedInstances) {
5071
5124
  const nextResult = withContext(nestedSnapshot ?? null, () => renderComponentInline(nestedInstance));
5072
5125
  if (isPromiseLike(nextResult)) throw new Error("Async components are not supported. Components must return synchronously.");
5073
5126
  retainedInstances.add(nestedInstance);
5074
- warnUnusedStateReads(nestedInstance);
5075
5127
  activeSnapshot = nestedSnapshot ?? null;
5076
5128
  currentResult = nextResult;
5077
5129
  depth += 1;
@@ -5111,7 +5163,6 @@ function syncComponentElement(currentDom, node, type, props, parentNamespace, fo
5111
5163
  });
5112
5164
  mountInstanceInline(hydrationInstance, existingHost);
5113
5165
  itemInstanceHydrationComplete(existingHost);
5114
- warnUnusedStateReads(hydrationInstance);
5115
5166
  return existingHost;
5116
5167
  }
5117
5168
  const resolvedResult = resolveHostNestedComponentResult(existingHost, hydrationInstance, scopedResult, snapshot ?? null, liveRetainedInstances);
@@ -5122,15 +5173,12 @@ function syncComponentElement(currentDom, node, type, props, parentNamespace, fo
5122
5173
  });
5123
5174
  mountInstanceInline(hydrationInstance, existingHost);
5124
5175
  itemInstanceHydrationComplete(existingHost);
5125
- warnUnusedStateReads(hydrationInstance);
5126
5176
  return existingHost;
5127
5177
  }
5128
- const nextDom = replacement.replace(() => materializeComponentResultNode(hydrationInstance, scopedResult, parentNamespace), (replacement) => {
5178
+ return replacement.replace(() => materializeComponentResultNode(hydrationInstance, scopedResult, parentNamespace), (replacement) => {
5129
5179
  if (replacement instanceof Element) materializeKey(replacement, node, props);
5130
5180
  retainReplacementOwnerChain(replacement, hydrationInstance, liveRetainedInstances);
5131
5181
  });
5132
- warnUnusedStateReads(hydrationInstance);
5133
- return nextDom;
5134
5182
  } catch (error) {
5135
5183
  restoreVNodeComponentInstance(node, previousVNodeInstance);
5136
5184
  if (!hydrationInstance.mounted) cleanupProvisionalComponentInstance(hydrationInstance);
@@ -5154,7 +5202,6 @@ function syncComponentElement(currentDom, node, type, props, parentNamespace, fo
5154
5202
  if (existingHost instanceof Element && existingHost.__ASKR_WRAPPER_HOST) {
5155
5203
  const wrapperResult = resolveWrapperHostResult(existingHost, scopedResult, snapshot ?? null, liveRetainedInstances);
5156
5204
  domHost.updateElementChildren(existingHost, normalizeComponentChildren(wrapperResult));
5157
- warnUnusedStateReads(existingInstance);
5158
5205
  return existingHost;
5159
5206
  }
5160
5207
  if (existingHost instanceof Element && scopedResult && typeof scopedResult === "object" && "type" in scopedResult && typeof scopedResult.type === "string" && tagNamesEqualIgnoreCase$1(existingHost.tagName, scopedResult.type)) {
@@ -5162,7 +5209,6 @@ function syncComponentElement(currentDom, node, type, props, parentNamespace, fo
5162
5209
  domHost.updateElementFromVnode(existingHost, inheritComponentKey(scopedResult, node), true, forceChildrenUpdate || existingInstance.mounted === false);
5163
5210
  materializeKey(existingHost, node, props);
5164
5211
  });
5165
- warnUnusedStateReads(existingInstance);
5166
5212
  return existingHost;
5167
5213
  }
5168
5214
  const resolvedResult = resolveHostNestedComponentResult(existingHost, existingInstance, scopedResult, snapshot ?? null, liveRetainedInstances);
@@ -5172,7 +5218,6 @@ function syncComponentElement(currentDom, node, type, props, parentNamespace, fo
5172
5218
  instance.target = null;
5173
5219
  instance._placeholder = existingHost;
5174
5220
  }
5175
- warnUnusedStateReads(existingInstance);
5176
5221
  return existingHost;
5177
5222
  }
5178
5223
  if (existingHost instanceof Element && _isDOMElement(resolvedResult) && typeof resolvedResult.type === "string" && tagNamesEqualIgnoreCase$1(existingHost.tagName, resolvedResult.type)) {
@@ -5180,15 +5225,12 @@ function syncComponentElement(currentDom, node, type, props, parentNamespace, fo
5180
5225
  domHost.updateElementFromVnode(existingHost, inheritComponentKey(resolvedResult, node), true, forceChildrenUpdate || existingInstance.mounted === false);
5181
5226
  materializeKey(existingHost, node, props);
5182
5227
  });
5183
- warnUnusedStateReads(existingInstance);
5184
5228
  return existingHost;
5185
5229
  }
5186
- const nextDom = replacement.replace(() => materializeComponentResultNode(existingInstance, scopedResult, parentNamespace), (replacement) => {
5230
+ return replacement.replace(() => materializeComponentResultNode(existingInstance, scopedResult, parentNamespace), (replacement) => {
5187
5231
  if (replacement instanceof Element) materializeKey(replacement, node, props);
5188
5232
  retainReplacementOwnerChain(replacement, existingInstance, liveRetainedInstances);
5189
5233
  });
5190
- warnUnusedStateReads(existingInstance);
5191
- return nextDom;
5192
5234
  }
5193
5235
  function retainReplacementOwnerChain(host, owner, retainedInstances) {
5194
5236
  const componentHost = host;
@@ -5229,7 +5271,6 @@ function createComponentElement(node, type, props, parentNamespace) {
5229
5271
  if (isPromiseLike(result)) throw new Error("Async components are not supported. Components must return synchronously.");
5230
5272
  const scopedResult = markVNodeTreeWithContextFrame(result, snapshot ?? null);
5231
5273
  const dom = snapshot ? withContext(snapshot, () => materializeComponentResultNode(childInstance, scopedResult, parentNamespace)) : materializeComponentResultNode(childInstance, scopedResult, parentNamespace);
5232
- warnUnusedStateReads(childInstance);
5233
5274
  if (dom instanceof Element) materializeFreshKey(dom, node, props);
5234
5275
  return dom;
5235
5276
  } catch (error) {
@@ -5375,8 +5416,6 @@ function tryPatchStableForDirtyItem(scope) {
5375
5416
  const nextIntrinsic = resolveStableIntrinsicPatchVNode(scope.dom, scope.vnode);
5376
5417
  if (!nextIntrinsic) return false;
5377
5418
  const didPatch = patchStableIntrinsicElement(scope.dom, nextIntrinsic);
5378
- const existingInstance = scope.dom.__ASKR_INSTANCE;
5379
- if (didPatch && existingInstance) warnUnusedStateReads(existingInstance);
5380
5419
  if (didPatch);
5381
5420
  return didPatch;
5382
5421
  }
@@ -6249,11 +6288,30 @@ function evaluateInLifecycleBatch(node, target, context, retainedOwner) {
6249
6288
  }
6250
6289
  }
6251
6290
  //#endregion
6291
+ //#region src/renderer/component-range-commit.ts
6292
+ function replaceComponentRange(instance, result, placeholder) {
6293
+ const previousRange = getOwnedRange(instance);
6294
+ const parent = placeholder.parentNode;
6295
+ if (!previousRange || previousRange.single || previousRange.start !== placeholder || !(parent instanceof Element)) return null;
6296
+ const next = createDetachedRange(materializeComponentResultNode(instance, result, getParentNamespace(parent)), instance);
6297
+ const nextHost = next.range.start;
6298
+ nextHost.__ASKR_INSTANCE = instance;
6299
+ nextHost.__ASKR_INSTANCES = [instance];
6300
+ parent.insertBefore(next.fragment ?? next.range.start, previousRange.start);
6301
+ removeRange(previousRange, (node) => {
6302
+ cleanupDetachedComponentHost(node, [instance]);
6303
+ node.parentNode?.removeChild(node);
6304
+ });
6305
+ registerRange(next.range, instance);
6306
+ return nextHost;
6307
+ }
6308
+ //#endregion
6252
6309
  //#region src/renderer/index.ts
6253
6310
  function createRendererHost() {
6254
6311
  return {
6255
6312
  evaluate,
6256
6313
  cleanupInstancesUnder,
6314
+ replaceComponentRange,
6257
6315
  teardownNodeSubtree,
6258
6316
  populateKeyMapForElement,
6259
6317
  getKeyMapForElement,
@@ -1,10 +1,10 @@
1
- import { t as enqueueRuntimeLane, v as logger } from "./access-Bg4RJNC8.js";
2
- import { d as getCurrentContextFrame, g as withAsyncResourceContext } from "./component-internal-NdN_bJ2-.js";
1
+ import { t as enqueueRuntimeLane, v as logger } from "./access-ePqdQqkV.js";
2
+ import { h as withAsyncResourceContext, u as getCurrentContextFrame } from "./component-internal-CbALfPGD.js";
3
3
  import { f as getCurrentComponentInstance } from "./component-scope-CC3cojX9.js";
4
- import { m as isPromiseLike, r as registerCommitOperationForInstance } from "./component-lifecycle-C7lnU9Bt.js";
4
+ import { m as isPromiseLike, r as registerCommitOperationForInstance } from "./component-lifecycle-DEMPihoZ.js";
5
5
  import { t as brandSnapshotSource } from "./snapshot-source-BB42xgwb.js";
6
6
  import { i as getNextRenderKey, l as throwSSRDataMissing, n as getActiveRenderContext, r as getCurrentRenderData, u as SSRDataMissingError } from "./render-context-Clw3rFiO.js";
7
- import { t as state } from "./state-DPl8lffD.js";
7
+ import { t as state } from "./state-Cc5HumQ0.js";
8
8
  //#region src/runtime/resource-cell.ts
9
9
  /**
10
10
  * Pure, component-agnostic ResourceCell state machine.
@@ -1,4 +1,4 @@
1
1
  import { g as getSignal } from "../component-scope-CC3cojX9.js";
2
- import { t as resource } from "../resource-operation-CUAUBhUB.js";
3
- import { a as stream, c as windowFocused, i as routeActive, n as documentVisible, o as task, r as on, s as timer, t as capture } from "../lifecycle-operations-BR8-AOly.js";
2
+ import { t as resource } from "../resource-operation-Dz2Nxi1q.js";
3
+ import { a as stream, c as windowFocused, i as routeActive, n as documentVisible, o as task, r as on, s as timer, t as capture } from "../lifecycle-operations-Dj5lK1K7.js";
4
4
  export { capture, documentVisible, getSignal, on, resource, routeActive, stream, task, timer, windowFocused };
@@ -1,7 +1,7 @@
1
- import { S as route, _ as fallback, a as resolveRouteMeta, b as page, d as clearRoutes, f as createRouteRegistry, i as reconcileRouteMeta, m as currentRoute, n as navigate, o as serializeRouteMeta, p as getManifest, r as updateRouteQuery, v as group, x as registerRoutes, y as index } from "../navigate-mkLGM5ec.js";
1
+ import { S as route, _ as fallback, a as resolveRouteMeta, b as page, d as clearRoutes, f as createRouteRegistry, i as reconcileRouteMeta, m as currentRoute, n as navigate, o as serializeRouteMeta, p as getManifest, r as updateRouteQuery, v as group, x as registerRoutes, y as index } from "../navigate-DLi79IZr.js";
2
2
  import { jsx } from "../jsx-runtime.js";
3
3
  import { D as getRoutes } from "../route-matching-vJpvLVbX.js";
4
- import { S as lazy, a as resolveDeferredValues, f as resolveRouteRequest, i as isDeferred, n as Resolve, p as currentAuth, r as defer, s as routeData, v as Outlet } from "../deferred-CSFYIBJL.js";
4
+ import { S as lazy, a as resolveDeferredValues, f as resolveRouteRequest, i as isDeferred, n as Resolve, p as currentAuth, r as defer, s as routeData, v as Outlet } from "../deferred-BeNnjR4r.js";
5
5
  import { o as mergeProps } from "../compose-ref-Cc_YkUpM.js";
6
6
  import { t as applyInteractionPolicy } from "../interactions-w7gQN4ha.js";
7
7
  //#region src/router/policy.ts
@@ -1,5 +1,5 @@
1
- import { t as enqueueRuntimeLane } from "./access-Bg4RJNC8.js";
2
- import { d as markReadableUsage, f as notifyReadableReaders, g as withDerivedReadTracking, h as syncDerivedDependencySubscriptions, l as markReactivePropsDirtySource, o as clearDerivedDependencySubscriptions, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-Dw8SOBr9.js";
1
+ import { t as enqueueRuntimeLane } from "./access-ePqdQqkV.js";
2
+ import { d as markReadableUsage, f as notifyReadableReaders, g as withDerivedReadTracking, h as syncDerivedDependencySubscriptions, l as markReactivePropsDirtySource, o as clearDerivedDependencySubscriptions, p as recordReadableRead, u as markReadableDerivedSubscribersDirty } from "./fastlane-C8PYPotF.js";
3
3
  import { i as claimHookIndex, p as getCurrentInstance } from "./component-scope-CC3cojX9.js";
4
4
  //#region src/runtime/selector-store.ts
5
5
  const dirtySelectorRecords = /* @__PURE__ */ new Set();
package/dist/ssg/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import "../access-Bg4RJNC8.js";
2
- import { a as resolveDeferredValues, b as getRenderHandler, c as bindResolvedRouteData } from "../deferred-CSFYIBJL.js";
1
+ import "../access-ePqdQqkV.js";
2
+ import { a as resolveDeferredValues, b as getRenderHandler, c as bindResolvedRouteData } from "../deferred-BeNnjR4r.js";
3
3
  import { n as renderDocument } from "../ssr-CbQO5xd3.js";
4
- import { n as renderToString } from "../ssr-DVFKktPX.js";
4
+ import { n as renderToString } from "../ssr-CbU-1UHm.js";
5
5
  import * as fs from "node:fs/promises";
6
6
  import * as pathModule from "node:path";
7
7
  import * as os from "node:os";
package/dist/ssr/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { u as SSRDataMissingError } from "../render-context-Clw3rFiO.js";
2
- import { a as renderResolvedToStringSync, c as createRenderContext, d as withRenderContextAsync, i as renderRouteRequestToString, l as getRenderContext, n as renderToString, o as renderToStringSync, r as renderRouteRequest, s as resolveRequest, t as renderToStream, u as withRenderContext } from "../ssr-DVFKktPX.js";
2
+ import { a as renderResolvedToStringSync, c as createRenderContext, d as withRenderContextAsync, i as renderRouteRequestToString, l as getRenderContext, n as renderToString, o as renderToStringSync, r as renderRouteRequest, s as resolveRequest, t as renderToStream, u as withRenderContext } from "../ssr-CbU-1UHm.js";
3
3
  export { SSRDataMissingError, createRenderContext, getRenderContext, renderResolvedToStringSync, renderRouteRequest, renderRouteRequestToString, renderToStream, renderToString, renderToStringSync, resolveRequest, withRenderContext, withRenderContextAsync };
@@ -1,18 +1,18 @@
1
1
  import { t as __CONTROL_BOUNDARY__ } from "./control-DhFRTIoE.js";
2
2
  import { t as __ERROR_BOUNDARY__ } from "./vnode-D24p6IW2.js";
3
- import { v as logger } from "./access-Bg4RJNC8.js";
3
+ import { v as logger } from "./access-ePqdQqkV.js";
4
4
  import { n as Fragment, t as ELEMENT_TYPE } from "./jsx-CUpRxrLH.js";
5
- import { f as getExecutionContextFrame, l as callWithContext, m as markVNodeTreeWithContextFrame, n as createComponentInstance, p as getVNodeContextFrame } from "./component-internal-NdN_bJ2-.js";
5
+ import { c as callWithContext, d as getExecutionContextFrame, f as getVNodeContextFrame, n as createComponentInstance, p as markVNodeTreeWithContextFrame } from "./component-internal-CbALfPGD.js";
6
6
  import { f as getCurrentComponentInstance, w as setCurrentComponentInstance } from "./component-scope-CC3cojX9.js";
7
- import { h as cleanupComponent, m as isPromiseLike } from "./component-lifecycle-C7lnU9Bt.js";
8
- import { g as evaluateShowState, h as evaluateCaseState, i as evaluateForState, o as rollbackForStateTransaction, r as commitForStateTransaction } from "./for-internal-cNhKHMBB.js";
7
+ import { h as cleanupComponent, m as isPromiseLike } from "./component-lifecycle-DEMPihoZ.js";
8
+ import { g as evaluateShowState, h as evaluateCaseState, i as evaluateForState, o as rollbackForStateTransaction, r as commitForStateTransaction } from "./for-internal-B2rBq6yB.js";
9
9
  import { c as stopRenderPhase$1, o as startRenderPhase$1, t as configureRenderContextProvider, u as SSRDataMissingError } from "./render-context-Clw3rFiO.js";
10
- import { a as disposeDefaultPortalScope, t as DefaultPortal } from "./portal-C47xkwXj.js";
10
+ import { a as disposeDefaultPortalScope, t as DefaultPortal } from "./portal-D2tPWNrC.js";
11
11
  import { t as getPublicAttributeName } from "./attr-names-CjhzmHOn.js";
12
12
  import { t as createDataRuntime } from "./data-runtime-SJ1BSUvk.js";
13
13
  import { c as withTelemetry, i as dehydrateDataRuntime, t as createQueryPrefetchContext } from "./query-registry-CQIT4mXr.js";
14
14
  import { a as resolveRouteFromRoutes, t as _resolveRouteMatchFromRoutes } from "./route-matching-vJpvLVbX.js";
15
- import { f as resolveRouteRequest, g as isPageRenderEnvelope, h as isEmptyPageRenderEnvelope, i as isDeferred, m as createPageRenderEnvelope, t as DEFERRED_BOUNDARY, x as _preloadRouteHandler } from "./deferred-CSFYIBJL.js";
15
+ import { f as resolveRouteRequest, g as isPageRenderEnvelope, h as isEmptyPageRenderEnvelope, i as isDeferred, m as createPageRenderEnvelope, t as DEFERRED_BOUNDARY, x as _preloadRouteHandler } from "./deferred-BeNnjR4r.js";
16
16
  import { n as renderDocument, t as SSR_RENDER_DATA_ATTR } from "./ssr-CbQO5xd3.js";
17
17
  //#region src/ssr/escape.ts
18
18
  /**
@@ -1,4 +1,5 @@
1
- import { f as notifyReadableReaders, l as markReactivePropsDirtySource, p as recordReadableRead, t as isBulkCommitActive, u as markReadableDerivedSubscribersDirty } from "./fastlane-Dw8SOBr9.js";
1
+ import { x as isProductionEnvironment } from "./access-ePqdQqkV.js";
2
+ import { f as notifyReadableReaders, l as markReactivePropsDirtySource, p as recordReadableRead, t as isBulkCommitActive, u as markReadableDerivedSubscribersDirty } from "./fastlane-C8PYPotF.js";
2
3
  import { i as claimHookIndex, p as getCurrentInstance } from "./component-scope-CC3cojX9.js";
3
4
  //#region src/runtime/state.ts
4
5
  /**
@@ -66,6 +67,7 @@ function createStateCell(initialValue, instance) {
66
67
  return value;
67
68
  }
68
69
  read._readers = readers;
70
+ read._unusedStateDiagnosticEligible = !isProductionEnvironment();
69
71
  read._owner = instance;
70
72
  read.set = (newValueOrUpdater) => {
71
73
  if (getCurrentInstance() !== null) throw new Error("[Askr] state.set() cannot be called during component render. State mutations during render break the actor model and cause infinite loops. Move state updates to event handlers or use conditional rendering instead.");
@@ -1,5 +1,5 @@
1
1
  import { t as SSR_RENDER_DATA_ATTR } from "./ssr-CbQO5xd3.js";
2
- import { a as renderResolvedToStringSync } from "./ssr-DVFKktPX.js";
2
+ import { a as renderResolvedToStringSync } from "./ssr-CbU-1UHm.js";
3
3
  //#region src/ssr/verify-hydration.ts
4
4
  function normalizeHydrationHtml(html) {
5
5
  const template = document.createElement("template");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askrjs/askr",
3
- "version": "0.0.58",
3
+ "version": "0.0.60",
4
4
  "description": "Actor-backed deterministic UI framework",
5
5
  "keywords": [
6
6
  "askr",