@askrjs/askr 0.2.3 → 0.2.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.
Files changed (70) hide show
  1. package/dist/{access-Rr7CMa06.js → access-BucjYZcX.js} +4 -2
  2. package/dist/actions/index.d.ts +1 -1
  3. package/dist/actions/index.js +2 -2
  4. package/dist/{activity-CAJ5eho-.d.ts → activity-DooIuxQO.d.ts} +2 -2
  5. package/dist/{activity-ZxJXI9hF.js → activity-FirwPXA_.js} +14 -2
  6. package/dist/benchmark.d.ts +1 -1
  7. package/dist/benchmark.js +8 -8
  8. package/dist/boot/index.d.ts +4 -2
  9. package/dist/boot/index.js +1 -1
  10. package/dist/{boot-D4GaLA0d.js → boot-tWyF6121.js} +13 -12
  11. package/dist/{cleanup-DsrbV-rr.js → cleanup-TXSsApEl.js} +4 -4
  12. package/dist/{component-cleanup-DjpwO9WX.js → component-cleanup-jdbgjkT1.js} +2 -2
  13. package/dist/{component-internal-Dl02WQKS.js → component-internal-C4hKKQBF.js} +5 -5
  14. package/dist/components/index.d.ts +2 -2
  15. package/dist/control/index.d.ts +1 -1
  16. package/dist/control/index.js +1 -1
  17. package/dist/{control-57x3wa4J.js → control-C-wSaq9V.js} +4 -4
  18. package/dist/{control-DdFw-Caz.d.ts → control-Cxag1yqV.d.ts} +1 -1
  19. package/dist/{csp-nonce-C9OuML0U.js → csp-nonce-9NFUb7hJ.js} +1 -1
  20. package/dist/data/index.d.ts +1 -1
  21. package/dist/data/index.js +1 -1
  22. package/dist/{data-B7XCDeC8.js → data-ghKopAbp.js} +32 -23
  23. package/dist/{deferred-BELyvMsC.js → deferred-CxjWCkIn.js} +2 -2
  24. package/dist/{effect-4LwBwV58.js → effect-CNwstBBD.js} +2 -2
  25. package/dist/{fastlane-Buz1Rvlr.js → fastlane-BKZduiBQ.js} +2 -2
  26. package/dist/{for-internal-DeoSg_AV.js → for-internal-DyBHfKJA.js} +33 -25
  27. package/dist/foundations/icon/index.d.ts +1 -1
  28. package/dist/foundations/index.d.ts +2 -2
  29. package/dist/foundations/index.js +1 -1
  30. package/dist/foundations/state/index.d.ts +1 -1
  31. package/dist/foundations/state/index.js +1 -1
  32. package/dist/foundations/structures/index.d.ts +2 -2
  33. package/dist/foundations/structures/index.js +1 -1
  34. package/dist/fx/index.d.ts +1 -1
  35. package/dist/fx/index.js +1 -1
  36. package/dist/{index-r5THqzPN.d.ts → index-CTpMmzgN.d.ts} +2 -2
  37. package/dist/{index-DSqXWc77.d.ts → index-Dgjbo2gU.d.ts} +58 -4
  38. package/dist/index.d.ts +3 -3
  39. package/dist/index.js +9 -9
  40. package/dist/jsx-dev-runtime.d.ts +2 -2
  41. package/dist/jsx-runtime-Cg7GqY1S.d.ts +2 -0
  42. package/dist/{jsx-runtime-Cdd6Gkb0.d.ts → jsx-runtime-gVIaTPw0.d.ts} +2 -2
  43. package/dist/jsx-runtime.d.ts +2 -2
  44. package/dist/{lifecycle-batch-Be-CLDjV.js → lifecycle-batch-63aXFf2S.js} +2 -2
  45. package/dist/{lifecycle-operations-C5m03NQc.js → lifecycle-operations-Q0k3EFnG.js} +94 -2
  46. package/dist/{navigate-wel1e6cU.d.ts → navigate-F4sHgWbw.d.ts} +3 -1
  47. package/dist/{navigate-C46GtScG.js → navigate-ZZu1IV0B.js} +88 -13
  48. package/dist/{readable-CEcteIDE.js → readable-Di1fzSwm.js} +1 -1
  49. package/dist/{renderer-BhXofszH.js → renderer-Cl23O0hV.js} +148 -130
  50. package/dist/{resolution-t8J0yNaU.js → resolution-ClD-K7Lz.js} +3 -3
  51. package/dist/{resource-operation-B8q-QRUx.js → resource-operation-Vz1S5h2k.js} +4 -4
  52. package/dist/resources/index.d.ts +3 -37
  53. package/dist/resources/index.js +6 -6
  54. package/dist/router/index.d.ts +4 -4
  55. package/dist/router/index.js +5 -5
  56. package/dist/{selector-C7rIpOnN.js → selector-CsKuomw0.js} +17 -16
  57. package/dist/{shared-CGrx2AOL.js → shared-CYBH3F8I.js} +1 -1
  58. package/dist/ssg/index.d.ts +1 -1
  59. package/dist/ssg/index.js +4 -4
  60. package/dist/ssr/index.d.ts +2 -2
  61. package/dist/ssr/index.js +1 -1
  62. package/dist/{ssr-BaC5qHEw.js → ssr-Doog-AfJ.js} +7 -7
  63. package/dist/{state-BzhOW2TX.js → state-BGJgYSyQ.js} +3 -3
  64. package/dist/{structures-BwfeO4Iz.js → structures-DFyK5AdQ.js} +4 -4
  65. package/dist/testing/index.d.ts +3 -1
  66. package/dist/testing/index.js +6 -5
  67. package/dist/{types-DkVJhVs9.d.ts → types-DWVrKn9N.d.ts} +5 -0
  68. package/dist/{verify-hydration-_Q6avFp0.js → verify-hydration-BZPJ_kYa.js} +1 -1
  69. package/package.json +6 -6
  70. package/dist/jsx-runtime-BTzDdBJ_.d.ts +0 -2
@@ -334,8 +334,10 @@ var Scheduler = class {
334
334
  return fn();
335
335
  } finally {
336
336
  this.inHandler = prevInHandler;
337
- if (!this.inHandler) if (flushMode === "sync") this.flushIfQueued();
338
- else this.scheduleFlushKick();
337
+ if (!this.inHandler) {
338
+ if (flushMode === "sync") this.flushIfQueued();
339
+ else this.scheduleFlushKick();
340
+ }
339
341
  }
340
342
  }
341
343
  setInHandler(v) {
@@ -1,2 +1,2 @@
1
- import { a as action, i as ActionValidationError, n as ActionForm, o as defineAction, r as ActionStatus, t as ActionDescriptor } from "../index-DSqXWc77.js";
1
+ import { a as action, i as ActionValidationError, n as ActionForm, o as defineAction, r as ActionStatus, t as ActionDescriptor } from "../index-Dgjbo2gU.js";
2
2
  export { ActionDescriptor, ActionForm, ActionStatus, ActionValidationError, action, defineAction };
@@ -1,9 +1,9 @@
1
1
  import { d as getCurrentAppRenderRuntime } from "../component-scope-4I3yEMkb.js";
2
2
  import { r as getCurrentRenderData } from "../render-context-B7ohlh6t.js";
3
- import { t as state } from "../state-BzhOW2TX.js";
3
+ import { t as state } from "../state-BGJgYSyQ.js";
4
4
  import { jsx, jsxs } from "../jsx-runtime.js";
5
5
  import { c as resolveDataRuntimeState, s as invalidateQueriesForRuntime } from "../data-runtime-7t_Y0iv3.js";
6
- import { r as isCurrentAsyncGeneration } from "../shared-CGrx2AOL.js";
6
+ import { r as isCurrentAsyncGeneration } from "../shared-CYBH3F8I.js";
7
7
  //#region src/actions/runtime.ts
8
8
  const emptyFramework = Object.freeze({});
9
9
  /** @internal Read Askr-owned state from the current application root. */
@@ -1,4 +1,4 @@
1
- import { Rt as RouteSnapshot, wt as RouteParams } from "./index-DSqXWc77.js";
1
+ import { $t as RouteSnapshot, zt as RouteParams } from "./index-Dgjbo2gU.js";
2
2
  //#region src/router/activity.d.ts
3
3
  /** Options for {@link onRouteChange}. */
4
4
  interface RouteChangeOptions {
@@ -9,6 +9,6 @@ type RouteChangeCleanup = void | (() => void);
9
9
  /** Register a callback to run whenever the active route changes, with optional cleanup. */
10
10
  declare function onRouteChange(fn: (current: RouteSnapshot, previous: RouteSnapshot | null) => RouteChangeCleanup, options?: RouteChangeOptions): void;
11
11
  /** Read the currently active route's {@link RouteSnapshot}; reactive during component render. */
12
- declare function currentRoute<TParams extends RouteParams = RouteParams>(): RouteSnapshot<TParams>;
12
+ declare function currentRoute<TParams extends RouteParams = RouteParams, TState = unknown>(): RouteSnapshot<TParams, TState>;
13
13
  //#endregion
14
14
  export { onRouteChange as i, RouteChangeOptions as n, currentRoute as r, RouteChangeCleanup as t };
@@ -1,6 +1,6 @@
1
1
  import { d as getCurrentAppRenderRuntime, f as getCurrentComponentInstance, i as claimHookIndex } from "./component-scope-4I3yEMkb.js";
2
- import { a as registerCommitOperation } from "./component-internal-Dl02WQKS.js";
3
- import { l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-CEcteIDE.js";
2
+ import { a as registerCommitOperation } from "./component-internal-C4hKKQBF.js";
3
+ import { l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-Di1fzSwm.js";
4
4
  import { n as getActiveRenderContext } from "./render-context-B7ohlh6t.js";
5
5
  import { n as syncRouteActivitySnapshot } from "./route-activity-CNJfpwx-.js";
6
6
  import { b as getActiveRoutes, c as removeRouteBasePath, d as deepFreeze, f as makeQuery, n as computeMatchesFromRoutes, p as parseLocation, y as getActiveRouteBasePath } from "./route-matching-Bo6UqG-5.js";
@@ -83,6 +83,14 @@ function onRouteChange(fn, options = {}) {
83
83
  });
84
84
  }
85
85
  let serverLocation = null;
86
+ function readLocationState() {
87
+ const historyState = typeof window !== "undefined" && window.history?.state ? window.history.state : null;
88
+ const hasState = historyState?.askrHasState === true;
89
+ return {
90
+ hasState,
91
+ state: hasState ? historyState.askrState : void 0
92
+ };
93
+ }
86
94
  function logicalRoutePathname(pathname) {
87
95
  const logical = removeRouteBasePath(pathname, getActiveRouteBasePath());
88
96
  return logical === void 0 ? void 0 : parseLocation(logical).pathname;
@@ -111,11 +119,13 @@ function buildRouteSnapshot(pathname, search, hash) {
111
119
  pathname = location.pathname;
112
120
  const query = makeQuery(search);
113
121
  const matches = location.withinBasePath ? computeMatchesFromRoutes(pathname, getActiveRoutes()) : [];
122
+ const locationState = readLocationState();
114
123
  return Object.freeze({
115
124
  path: pathname,
116
125
  params: deepFreeze({ ...matches[0]?.params }),
117
126
  query,
118
127
  hash: hash || null,
128
+ ...locationState,
119
129
  matches: Object.freeze(matches)
120
130
  });
121
131
  }
@@ -172,11 +182,13 @@ function readCurrentRouteSnapshot() {
172
182
  const matches = withinBasePath ? computeMatchesFromRoutes(pathname, getActiveRoutes()) : [];
173
183
  const routeParams = (withinBasePath ? getActiveRenderContext()?.params : void 0) ?? matches[0]?.params ?? {};
174
184
  const params = deepFreeze({ ...routeParams });
185
+ const locationState = readLocationState();
175
186
  return Object.freeze({
176
187
  path: pathname,
177
188
  params,
178
189
  query,
179
190
  hash: hash || null,
191
+ ...locationState,
180
192
  matches: Object.freeze(matches)
181
193
  });
182
194
  }
@@ -1,4 +1,4 @@
1
- import "./jsx-runtime-BTzDdBJ_.js";
1
+ import "./jsx-runtime-Cg7GqY1S.js";
2
2
  //#region src/bench/components/benchmark-row.d.ts
3
3
  interface BenchmarkRowData {
4
4
  id: number;
package/dist/benchmark.js CHANGED
@@ -1,10 +1,10 @@
1
- import { r as flushRuntimeScheduler } from "./access-Rr7CMa06.js";
2
- import { t as state } from "./state-BzhOW2TX.js";
3
- import { t as selector } from "./selector-C7rIpOnN.js";
4
- import { t as installRendererBridge } from "./renderer-BhXofszH.js";
5
- import { i as For } from "./control-57x3wa4J.js";
1
+ import { r as flushRuntimeScheduler } from "./access-BucjYZcX.js";
2
+ import { t as state } from "./state-BGJgYSyQ.js";
3
+ import { t as selector } from "./selector-CsKuomw0.js";
4
+ import { t as installRendererBridge } from "./renderer-Cl23O0hV.js";
5
+ import { i as For } from "./control-C-wSaq9V.js";
6
6
  import { jsx, jsxs } from "./jsx-runtime.js";
7
- import { t as createIsland } from "./boot-D4GaLA0d.js";
7
+ import { t as createIsland } from "./boot-tWyF6121.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.2.3",
67
- buildLabel: "0.2.3-local"
66
+ packageVersion: "0.2.4",
67
+ buildLabel: "0.2.4-local"
68
68
  };
69
69
  function getBenchmarkMetadata() {
70
70
  return { ...benchmarkMetadata };
@@ -1,11 +1,13 @@
1
- import { Bt as DataRuntime, dt as RouteAuthOptions, jt as RouteRegistry, sn as ComponentFunction } from "../index-DSqXWc77.js";
2
- import { a as ScrollRestorationOptions } from "../navigate-wel1e6cU.js";
1
+ import { Et as RouteAuthOptions, Kt as RouteRegistry, Sn as ComponentFunction, tn as DataRuntime } from "../index-Dgjbo2gU.js";
2
+ import { a as ScrollRestorationOptions } from "../navigate-F4sHgWbw.js";
3
3
  //#region src/boot/types.d.ts
4
4
  /** Configuration for {@link createIsland}: mounts one component onto existing DOM. */
5
5
  type IslandConfig = {
6
6
  root: Element | string;
7
7
  component: ComponentFunction;
8
8
  cspNonce?: string;
9
+ /** Optional data runtime owned by this island's render and event lifecycle. */
10
+ dataRuntime?: DataRuntime;
9
11
  cleanupStrict?: boolean;
10
12
  routes?: never;
11
13
  };
@@ -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-D4GaLA0d.js";
1
+ import { a as cleanupApp, i as hydrateSPA, n as createIslands, o as hasApp, r as createSPA, t as createIsland } from "../boot-tWyF6121.js";
2
2
  export { cleanupApp, createIsland, createIslands, createSPA, hasApp, hydrateSPA };
@@ -1,19 +1,19 @@
1
- import { S as isProductionEnvironment, r as flushRuntimeScheduler, x as isDevelopmentEnvironment, y as logger } from "./access-Rr7CMa06.js";
1
+ import { S as isProductionEnvironment, r as flushRuntimeScheduler, x as isDevelopmentEnvironment, y as logger } from "./access-BucjYZcX.js";
2
2
  import { n as Fragment, t as ELEMENT_TYPE } from "./jsx-DRS-qjiN.js";
3
- import { n as createComponentInstance, r as executeComponent } from "./component-internal-Dl02WQKS.js";
4
- import { t as cleanupComponent } from "./component-cleanup-DjpwO9WX.js";
5
- import { p as isPromiseLike } from "./lifecycle-batch-Be-CLDjV.js";
6
- import { _ as teardownNodeSubtree, d as removeAllListeners } from "./cleanup-DsrbV-rr.js";
3
+ import { n as createComponentInstance, r as executeComponent } from "./component-internal-C4hKKQBF.js";
4
+ import { t as cleanupComponent } from "./component-cleanup-jdbgjkT1.js";
5
+ import { p as isPromiseLike } from "./lifecycle-batch-63aXFf2S.js";
6
+ import { _ as teardownNodeSubtree, d as removeAllListeners } from "./cleanup-TXSsApEl.js";
7
7
  import { r as assertExecutionModel, t as _applyManifest } from "./manifest-D6rfj_jC.js";
8
8
  import { d as stopHydrationRenderPhase, l as startHydrationRenderPhase, y as pageRenderEnvelope } from "./render-context-B7ohlh6t.js";
9
- import { a as setStaticChildSlotsCacheEnabled, c as endHydrationDirectListenerMode, d as discardHydrationListenerTransaction, i as registerDeferredHydrationBoundary, l as beginHydrationListenerTransaction, n as activateHydrationBoundary$1, o as withIntrinsicHydrationAdoption, r as clearDeferredHydrationBoundaries, s as beginHydrationDirectListenerMode, t as installRendererBridge, u as commitHydrationListenerTransaction } from "./renderer-BhXofszH.js";
10
- import { r as validateCspNonce, t as CspNonceScope } from "./csp-nonce-C9OuML0U.js";
9
+ import { a as setStaticChildSlotsCacheEnabled, c as endHydrationDirectListenerMode, d as discardHydrationListenerTransaction, i as registerDeferredHydrationBoundary, l as beginHydrationListenerTransaction, n as activateHydrationBoundary$1, o as withIntrinsicHydrationAdoption, r as clearDeferredHydrationBoundaries, s as beginHydrationDirectListenerMode, t as installRendererBridge, u as commitHydrationListenerTransaction } from "./renderer-Cl23O0hV.js";
10
+ import { r as validateCspNonce, t as CspNonceScope } from "./csp-nonce-9NFUb7hJ.js";
11
11
  import { i as getDefaultDataRuntime } from "./data-runtime-7t_Y0iv3.js";
12
12
  import { a as hydrateDataRuntime } from "./query-registry-Bua3cDyb.js";
13
13
  import { I as lockRouteRegistration, P as hasRegisteredRoutes, _ as clearRouteState, m as _setActiveRouteAuthOptions } from "./route-matching-Bo6UqG-5.js";
14
- import { a as resolveRouteRequest, i as hasRouteRenderData, m as reviveDeferredValue, n as getRouteRenderContext, r as getRouteRenderData } from "./resolution-t8J0yNaU.js";
15
- import { o as createAppRenderRuntime, r as setServerLocation } from "./activity-ZxJXI9hF.js";
16
- import { f as registerAppInstance, g as unregisterAppInstance, i as resolveRouteMeta, o as configureScrollRestoration, r as reconcileRouteMeta, t as initializeNavigation } from "./navigate-C46GtScG.js";
14
+ import { a as resolveRouteRequest, i as hasRouteRenderData, m as reviveDeferredValue, n as getRouteRenderContext, r as getRouteRenderData } from "./resolution-ClD-K7Lz.js";
15
+ import { o as createAppRenderRuntime, r as setServerLocation } from "./activity-FirwPXA_.js";
16
+ import { f as registerAppInstance, g as unregisterAppInstance, i as resolveRouteMeta, o as configureScrollRestoration, r as reconcileRouteMeta, t as initializeNavigation } from "./navigate-ZZu1IV0B.js";
17
17
  import { n as disposeRegisteredDefaultPortalScope, r as getDefaultPortalHost } from "./default-portal-runtime-DvMvWJVp.js";
18
18
  import "./ssr-DSHd_Q9K.js";
19
19
  //#region src/boot/hydration.ts
@@ -628,7 +628,8 @@ function createIsland(config) {
628
628
  if (hasRegisteredRoutes()) throw new Error("Routes are not supported with islands. Use createSPA (client) or createSSR (server) instead.");
629
629
  mountOrUpdate(rootElement, config.component, {
630
630
  cleanupStrict: config.cleanupStrict,
631
- cspNonce: config.cspNonce
631
+ cspNonce: config.cspNonce,
632
+ appRuntime: createAppRenderRuntime({ dataRuntime: config.dataRuntime ?? getDefaultDataRuntime() })
632
633
  });
633
634
  }
634
635
  /**
@@ -784,7 +785,7 @@ async function hydrateSPA(config) {
784
785
  cspNonce: config.cspNonce
785
786
  }));
786
787
  if (shouldVerifyHydrationMarkup(config)) {
787
- const { verifyHydrationSyncForUrl } = await import("./verify-hydration-_Q6avFp0.js");
788
+ const { verifyHydrationSyncForUrl } = await import("./verify-hydration-BZPJ_kYa.js");
788
789
  if (!verifyHydrationSyncForUrl({
789
790
  root: rootElement,
790
791
  url: currentUrl,
@@ -1,8 +1,8 @@
1
- import { l as runRuntimeHandlerScope, y as logger } from "./access-Rr7CMa06.js";
2
- import "./fastlane-Buz1Rvlr.js";
1
+ import { l as runRuntimeHandlerScope, y as logger } from "./access-BucjYZcX.js";
2
+ import "./fastlane-BKZduiBQ.js";
3
3
  import { T as withAppRenderRuntime, d as getCurrentAppRenderRuntime } from "./component-scope-4I3yEMkb.js";
4
- import { t as cleanupComponent } from "./component-cleanup-DjpwO9WX.js";
5
- import { u as registerLifecycleTransaction } from "./lifecycle-batch-Be-CLDjV.js";
4
+ import { t as cleanupComponent } from "./component-cleanup-jdbgjkT1.js";
5
+ import { u as registerLifecycleTransaction } from "./lifecycle-batch-63aXFf2S.js";
6
6
  import { n as setRef } from "./compose-ref-Bfaf4kUC.js";
7
7
  //#region src/runtime/events.ts
8
8
  /**
@@ -1,6 +1,6 @@
1
- import { S as isProductionEnvironment, x as isDevelopmentEnvironment, y as logger } from "./access-Rr7CMa06.js";
1
+ import { S as isProductionEnvironment, x as isDevelopmentEnvironment, y as logger } from "./access-BucjYZcX.js";
2
2
  import { a as clearCurrentComponentScope, y as restoreCurrentComponentScope } from "./component-scope-4I3yEMkb.js";
3
- import { n as cleanupReadableSubscriptions, t as cleanupReadableSubscriptionSources } from "./readable-CEcteIDE.js";
3
+ import { n as cleanupReadableSubscriptions, t as cleanupReadableSubscriptionSources } from "./readable-Di1fzSwm.js";
4
4
  //#region src/runtime/state-diagnostics.ts
5
5
  /**
6
6
  * Report state cells that were never read during a component's completed
@@ -1,10 +1,10 @@
1
1
  import { a as markTransparentComponentResult, i as markEagerControlPrimitive } from "./control-C-ApnFs1.js";
2
- import { S as isProductionEnvironment, n as enqueueRuntimeTask, o as getRuntimeRenderer, x as isDevelopmentEnvironment, y as logger } from "./access-Rr7CMa06.js";
3
- import { i as tryRuntimeFastLaneSync, n as isBulkCommitActive } from "./fastlane-Buz1Rvlr.js";
2
+ import { S as isProductionEnvironment, n as enqueueRuntimeTask, o as getRuntimeRenderer, x as isDevelopmentEnvironment, y as logger } from "./access-BucjYZcX.js";
3
+ import { i as tryRuntimeFastLaneSync, n as isBulkCommitActive } from "./fastlane-BKZduiBQ.js";
4
4
  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-4I3yEMkb.js";
5
5
  import { r as STATIC_CHILDREN, t as ELEMENT_TYPE } from "./jsx-DRS-qjiN.js";
6
- import { i as finalizeReadableSubscriptions } from "./readable-CEcteIDE.js";
7
- import { a as enqueueLifecycleCommitForInstance, d as discardCommitOperations, f as executeCommittedLifecycleOperations, n as captureInlineRenderSnapshot$1, o as finalizeInlineReadSubscriptions, p as isPromiseLike, r as discardLifecycleCommitBatch, s as flushLifecycleCommitBatch, t as beginLifecycleCommitBatch } from "./lifecycle-batch-Be-CLDjV.js";
6
+ import { i as finalizeReadableSubscriptions } from "./readable-Di1fzSwm.js";
7
+ import { a as enqueueLifecycleCommitForInstance, d as discardCommitOperations, f as executeCommittedLifecycleOperations, n as captureInlineRenderSnapshot$1, o as finalizeInlineReadSubscriptions, p as isPromiseLike, r as discardLifecycleCommitBatch, s as flushLifecycleCommitBatch, t as beginLifecycleCommitBatch } from "./lifecycle-batch-63aXFf2S.js";
8
8
  //#region src/runtime/context.ts
9
9
  const TransparentContextScopeComponent = markTransparentComponentResult(ContextScopeComponent);
10
10
  let nextScopeIdentityKey = 0;
@@ -812,4 +812,4 @@ function warnInstanceOnce(instance, key, message) {
812
812
  logger.warn(message);
813
813
  }
814
814
  //#endregion
815
- export { withContext as S, haveEquivalentContextFrames as _, registerCommitOperation as a, rebaseVNodeTreeWithContextFrame as b, createBoundaryReset as c, configureRenderDiagnostics as d, callWithContext as f, getVNodeContextFrame as g, getExecutionContextFrame as h, mountInstanceInline as i, reportBoundaryError as l, getCurrentContextFrame as m, createComponentInstance as n, renderComponentInline as o, defineScope as p, executeComponent as r, renderScopedComponent as s, captureInlineRenderSnapshot as t, registerCommitOperationForInstance as u, markVNodeTreeWithContextFrame as v, withAsyncResourceContext as x, readScope as y };
815
+ export { withContext as C, withAsyncResourceContext as S, getVNodeContextFrame as _, registerCommitOperation as a, readScope as b, createBoundaryReset as c, registerCommitOperationForInstance as d, configureRenderDiagnostics as f, getExecutionContextFrame as g, getCurrentContextFrame as h, mountInstanceInline as i, reportBoundaryError as l, defineScope as m, createComponentInstance as n, renderComponentInline as o, callWithContext as p, executeComponent as r, renderScopedComponent as s, captureInlineRenderSnapshot as t, routeComponentErrorToBoundary as u, haveEquivalentContextFrames as v, rebaseVNodeTreeWithContextFrame as x, markVNodeTreeWithContextFrame as y };
@@ -1,5 +1,5 @@
1
- import { ln as VNode } from "../index-DSqXWc77.js";
2
- import { r as JSXElement, s as Props } from "../types-DkVJhVs9.js";
1
+ import { wn as VNode } from "../index-Dgjbo2gU.js";
2
+ import { r as JSXElement, s as Props } from "../types-DWVrKn9N.js";
3
3
  //#region src/common/error-boundary.d.ts
4
4
  type ErrorBoundaryContent = VNode | readonly VNode[];
5
5
  type ErrorBoundaryFallbackValue = ErrorBoundaryContent | Node;
@@ -1,2 +1,2 @@
1
- import { F as Show, I as ShowProps, L as For, M as CaseProps, N as Match, P as MatchProps, R as ForProps, j as Case } from "../index-DSqXWc77.js";
1
+ import { F as Show, I as ShowProps, L as For, M as CaseProps, N as Match, P as MatchProps, R as ForProps, j as Case } from "../index-Dgjbo2gU.js";
2
2
  export { Case, type CaseProps, For, type ForProps, Match, type MatchProps, Show, type ShowProps };
@@ -1,2 +1,2 @@
1
- import { i as For, n as Match, r as Show, t as Case } from "../control-57x3wa4J.js";
1
+ import { i as For, n as Match, r as Show, t as Case } from "../control-C-wSaq9V.js";
2
2
  export { Case, For, Match, Show };
@@ -1,9 +1,9 @@
1
1
  import { i as markEagerControlPrimitive, t as __CONTROL_BOUNDARY__ } from "./control-C-ApnFs1.js";
2
- import { x as isDevelopmentEnvironment } from "./access-Rr7CMa06.js";
2
+ import { x as isDevelopmentEnvironment } from "./access-BucjYZcX.js";
3
3
  import { n as Fragment } from "./jsx-DRS-qjiN.js";
4
- import { m as createShowState, p as createCaseState, s as useForState } from "./for-internal-DeoSg_AV.js";
5
- import { t as createFineGrainedEffect } from "./effect-4LwBwV58.js";
6
- import { t as state } from "./state-BzhOW2TX.js";
4
+ import { m as createShowState, p as createCaseState, s as useForState } from "./for-internal-DyBHfKJA.js";
5
+ import { t as createFineGrainedEffect } from "./effect-CNwstBBD.js";
6
+ import { t as state } from "./state-BGJgYSyQ.js";
7
7
  //#region src/control/shared.ts
8
8
  function normalizeBoundaryChild(value) {
9
9
  if (Array.isArray(value)) {
@@ -1,4 +1,4 @@
1
- import { s as Props } from "./types-DkVJhVs9.js";
1
+ import { s as Props } from "./types-DWVrKn9N.js";
2
2
  //#region src/common/control.d.ts
3
3
  declare const EAGER_CONTROL_PRIMITIVE: unique symbol;
4
4
  type EagerControlPrimitive<P extends Props = Props> = ((props: P) => unknown) & {
@@ -1,4 +1,4 @@
1
- import { p as defineScope, y as readScope } from "./component-internal-Dl02WQKS.js";
1
+ import { b as readScope, m as defineScope } from "./component-internal-C4hKKQBF.js";
2
2
  //#region src/common/url.ts
3
3
  const SAFE_URL_SCHEMES = /* @__PURE__ */ new Set([
4
4
  "http",
@@ -1,2 +1,2 @@
1
- import { $t as QueryKeyPart, Bt as DataRuntime, C as createMutation, Gt as MutationOptions, Ht as InvalidateOnIntervalOptions, Jt as QueryCollectionEntry, Kt as Query, Qt as QueryDefinition, S as createQuery, Ut as InvalidateOptions, Vt as DataRuntimeOptions, Wt as Mutation, Xt as QueryCollectionOptions, Yt as QueryCollectionKey, Zt as QueryConsistency, _ as invalidate, b as createDataRuntime, c as ServerQueryRegistry, d as defineServerQueries, en as QueryPrefetchContext, f as dehydrateDataRuntime, g as createQueryCollection, h as serveQuery, l as createQueryPrefetchContext, m as prefetchQuery, nn as QueryStaleReason, p as hydrateDataRuntime, qt as QueryCollection, rn as ServerQueryHandler, s as ServerQueryEntry, tn as QueryScope, u as defineQuery, v as invalidateOnInterval, x as getDefaultDataRuntime, y as queryScope } from "../index-DSqXWc77.js";
1
+ import { C as createMutation, S as createQuery, _ as invalidate, _n as QueryStaleReason, an as Mutation, b as createDataRuntime, c as ServerQueryRegistry, cn as QueryCollection, d as defineServerQueries, dn as QueryCollectionOptions, f as dehydrateDataRuntime, fn as QueryConsistency, g as createQueryCollection, gn as QueryScope, h as serveQuery, hn as QueryPrefetchContext, in as InvalidateOptions, l as createQueryPrefetchContext, ln as QueryCollectionEntry, m as prefetchQuery, mn as QueryKeyPart, nn as DataRuntimeOptions, on as MutationOptions, p as hydrateDataRuntime, pn as QueryDefinition, rn as InvalidateOnIntervalOptions, s as ServerQueryEntry, sn as Query, tn as DataRuntime, u as defineQuery, un as QueryCollectionKey, v as invalidateOnInterval, vn as ServerQueryHandler, x as getDefaultDataRuntime, y as queryScope } from "../index-Dgjbo2gU.js";
2
2
  export { type DataRuntime, type DataRuntimeOptions, type InvalidateOnIntervalOptions, type InvalidateOptions, type Mutation, type MutationOptions, type Query, type QueryCollection, type QueryCollectionEntry, type QueryCollectionKey, type QueryCollectionOptions, type QueryConsistency, type QueryDefinition, type QueryKeyPart, type QueryPrefetchContext, type QueryScope, type QueryStaleReason, type ServerQueryEntry, type ServerQueryHandler, type ServerQueryRegistry, createDataRuntime, createMutation, createQuery, createQueryCollection, createQueryPrefetchContext, defineQuery, defineServerQueries, dehydrateDataRuntime, getDefaultDataRuntime, hydrateDataRuntime, invalidate, invalidateOnInterval, prefetchQuery, queryScope, serveQuery };
@@ -1,4 +1,4 @@
1
1
  import { i as getDefaultDataRuntime, t as createDataRuntime } from "../data-runtime-7t_Y0iv3.js";
2
- import { a as invalidateOnInterval, i as invalidate, n as createQuery, o as queryScope, r as createMutation, t as createQueryCollection } from "../data-B7XCDeC8.js";
2
+ import { a as invalidateOnInterval, i as invalidate, n as createQuery, o as queryScope, r as createMutation, t as createQueryCollection } from "../data-ghKopAbp.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-Bua3cDyb.js";
4
4
  export { createDataRuntime, createMutation, createQuery, createQueryCollection, createQueryPrefetchContext, defineQuery, defineServerQueries, dehydrateDataRuntime, getDefaultDataRuntime, hydrateDataRuntime, invalidate, invalidateOnInterval, prefetchQuery, queryScope, serveQuery };
@@ -1,10 +1,10 @@
1
- import { n as enqueueRuntimeTask, y as logger } from "./access-Rr7CMa06.js";
1
+ import { n as enqueueRuntimeTask, y as logger } from "./access-BucjYZcX.js";
2
2
  import { d as getCurrentAppRenderRuntime, f as getCurrentComponentInstance, i as claimHookIndex } from "./component-scope-4I3yEMkb.js";
3
- import { u as recordReadableRead } from "./readable-CEcteIDE.js";
3
+ import { u as recordReadableRead } from "./readable-Di1fzSwm.js";
4
4
  import { n as getActiveRenderContext } from "./render-context-B7ohlh6t.js";
5
- import { i as routeActive, n as documentVisible, o as timer, s as windowFocused } from "./lifecycle-operations-C5m03NQc.js";
5
+ import { c as windowFocused, i as routeActive, n as documentVisible, o as timer } from "./lifecycle-operations-Q0k3EFnG.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-7t_Y0iv3.js";
7
- import { a as normalizeAsyncDataError, i as isCurrentAsyncOperation, n as isAbortError, o as notifySource, t as createReadableSource } from "./shared-CGrx2AOL.js";
7
+ import { a as normalizeAsyncDataError, i as isCurrentAsyncOperation, n as isAbortError, o as notifySource, t as createReadableSource } from "./shared-CYBH3F8I.js";
8
8
  //#region src/data/query-key.ts
9
9
  function serializeQueryKeyNumber(part) {
10
10
  if (Number.isNaN(part)) return "NaN";
@@ -229,6 +229,7 @@ var QueryCell = class {
229
229
  this.generation = 0;
230
230
  this.startQueued = false;
231
231
  this.pendingRefresh = null;
232
+ this.pendingRefreshKind = null;
232
233
  this.pendingRefreshResolve = null;
233
234
  this.pendingRefreshToken = 0;
234
235
  this.reconcileAttemptCount = 0;
@@ -338,21 +339,28 @@ var QueryCell = class {
338
339
  }
339
340
  ensureStarted() {
340
341
  if (this.destroyed || this.state.data !== null || this.pendingRefresh || this.startQueued || this.options.skipInitialFetch) return;
341
- this.queueStart();
342
+ this.queueStart(void 0, "initial");
342
343
  }
343
344
  refresh() {
344
345
  if (this.destroyed) return Promise.resolve();
345
- if (this.pendingRefresh) return this.pendingRefresh;
346
- this.queueStart();
346
+ if (this.pendingRefresh) {
347
+ if (this.pendingRefreshKind === "invalidation") {
348
+ this.controller?.abort();
349
+ this.queueStart(void 0, "manual", true);
350
+ return this.pendingRefresh;
351
+ } else return this.pendingRefresh;
352
+ }
353
+ this.queueStart(void 0, "manual");
347
354
  return this.pendingRefresh ?? Promise.resolve();
348
355
  }
349
356
  invalidate() {
350
357
  if (this.destroyed) return;
351
358
  if (this.pendingRefresh) {
352
359
  this.controller?.abort();
353
- this.finishPendingRefresh(this.pendingRefreshToken);
360
+ this.queueStart(void 0, "invalidation", true);
361
+ return;
354
362
  }
355
- this.queueStart();
363
+ this.queueStart(void 0, "invalidation");
356
364
  }
357
365
  markPendingWrite() {
358
366
  if (this.destroyed) return;
@@ -366,26 +374,27 @@ var QueryCell = class {
366
374
  staleReason: null
367
375
  });
368
376
  }
369
- queueStart(reconcileSequence) {
377
+ queueStart(reconcileSequence, kind = "manual", continuePending = false) {
370
378
  if (this.destroyed) return;
371
379
  const sequence = reconcileSequence ?? (() => {
372
380
  this.reconcileAttemptCount = 0;
373
381
  return ++this.reconcileSequence;
374
382
  })();
375
383
  this.startQueued = true;
384
+ this.pendingRefreshKind = kind;
376
385
  const token = ++this.pendingRefreshToken;
377
- this.pendingRefresh = new Promise((resolve) => {
386
+ if (!continuePending || !this.pendingRefresh) this.pendingRefresh = new Promise((resolve) => {
378
387
  this.pendingRefreshResolve = resolve;
379
- enqueueRuntimeTask(() => {
380
- if (token !== this.pendingRefreshToken) return;
381
- this.startQueued = false;
382
- if (this.destroyed) {
383
- this.finishPendingRefresh(token);
384
- return;
385
- }
386
- this.start(sequence).finally(() => {
387
- this.finishPendingRefresh(token);
388
- });
388
+ });
389
+ enqueueRuntimeTask(() => {
390
+ if (token !== this.pendingRefreshToken) return;
391
+ this.startQueued = false;
392
+ if (this.destroyed) {
393
+ this.finishPendingRefresh(token);
394
+ return;
395
+ }
396
+ this.start(sequence).finally(() => {
397
+ this.finishPendingRefresh(token);
389
398
  });
390
399
  });
391
400
  }
@@ -393,6 +402,7 @@ var QueryCell = class {
393
402
  if (token !== this.pendingRefreshToken) return;
394
403
  const resolve = this.pendingRefreshResolve;
395
404
  this.pendingRefresh = null;
405
+ this.pendingRefreshKind = null;
396
406
  this.pendingRefreshResolve = null;
397
407
  resolve?.();
398
408
  }
@@ -516,8 +526,7 @@ var QueryCell = class {
516
526
  await new Promise((resolve) => setTimeout(resolve, RECONCILE_RETRY_DELAY_MS));
517
527
  if (this.destroyed || reconcileSequence !== this.reconcileSequence || this.state.consistency === "fresh" || !isCurrentAsyncOperation(this.generation, generation, this.controller, controller)) return;
518
528
  this.controller?.abort();
519
- this.finishPendingRefresh(this.pendingRefreshToken);
520
- this.queueStart(reconcileSequence);
529
+ this.queueStart(reconcileSequence, "reconcile", true);
521
530
  }
522
531
  };
523
532
  function createLegacyQuery(options) {
@@ -1,9 +1,9 @@
1
1
  import { d as getCurrentAppRenderRuntime, f as getCurrentComponentInstance } from "./component-scope-4I3yEMkb.js";
2
2
  import { i as getExecutionModel } from "./manifest-D6rfj_jC.js";
3
3
  import { n as getActiveRenderContext, r as getCurrentRenderData } from "./render-context-B7ohlh6t.js";
4
- import { t as resource } from "./resource-operation-B8q-QRUx.js";
4
+ import { t as resource } from "./resource-operation-Vz1S5h2k.js";
5
5
  import { A as getDefaultRouteBasePath, C as getCurrentInheritedPolicies, D as getCurrentPathPrefix, E as getCurrentPageScope, F as insertRecordSorted, H as computeRank, L as pushRegistrationScope, N as hasActivePageScope, O as getCurrentScopeKind, S as getCurrentInheritedMeta, T as getCurrentPageChain, U as normalizeRouteSegmentName, W as parseSegments, g as assertRouteRegistrationUnlocked, h as addRouteToStores, w as getCurrentLayoutChain, x as getCurrentInheritedAuthRequirements } from "./route-matching-Bo6UqG-5.js";
6
- import { _ as createRouteHandler, d as DEFERRED_BOUNDARY, p as isDeferred, s as guardHydratedRouteData } from "./resolution-t8J0yNaU.js";
6
+ import { _ as createRouteHandler, d as DEFERRED_BOUNDARY, p as isDeferred, s as guardHydratedRouteData } from "./resolution-ClD-K7Lz.js";
7
7
  import { allOf } from "@askrjs/auth";
8
8
  //#region src/router/access.ts
9
9
  function compileNodePolicies(node) {
@@ -1,5 +1,5 @@
1
- import { t as enqueueRuntimeLane } from "./access-Rr7CMa06.js";
2
- import { m as withFineGrainedReadTracking } from "./readable-CEcteIDE.js";
1
+ import { t as enqueueRuntimeLane } from "./access-BucjYZcX.js";
2
+ import { m as withFineGrainedReadTracking } from "./readable-Di1fzSwm.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,6 +1,6 @@
1
- import { d as setRuntimeBulkCommitProbe, o as getRuntimeRenderer, u as runRuntimeWithSyncProgress, x as isDevelopmentEnvironment } from "./access-Rr7CMa06.js";
1
+ import { d as setRuntimeBulkCommitProbe, o as getRuntimeRenderer, u as runRuntimeWithSyncProgress, x as isDevelopmentEnvironment } from "./access-BucjYZcX.js";
2
2
  import { i as isFragmentType } from "./jsx-DRS-qjiN.js";
3
- import { i as finalizeReadableSubscriptions, l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty } from "./readable-CEcteIDE.js";
3
+ import { i as finalizeReadableSubscriptions, l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty } from "./readable-Di1fzSwm.js";
4
4
  //#region src/runtime/dev-namespace.ts
5
5
  /**
6
6
  * Set a value in the dev namespace (no-op in production).
@@ -1,10 +1,10 @@
1
1
  import { n as _isDOMElement } from "./vnode-D24p6IW2.js";
2
- import { o as getRuntimeRenderer, x as isDevelopmentEnvironment, y as logger } from "./access-Rr7CMa06.js";
2
+ import { o as getRuntimeRenderer, x as isDevelopmentEnvironment, y as logger } from "./access-BucjYZcX.js";
3
3
  import { h as getCurrentStateIndex, i as claimHookIndex, o as clearRenderTracking, p as getCurrentInstance } from "./component-scope-4I3yEMkb.js";
4
- import { _ as haveEquivalentContextFrames, b as rebaseVNodeTreeWithContextFrame, n as createComponentInstance, s as renderScopedComponent } from "./component-internal-Dl02WQKS.js";
5
- import { d as shouldCoalesceFineGrainedItemReads, l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-CEcteIDE.js";
6
- import { i as unregisterOwnedChildScope, r as registerOwnedChildScope, t as cleanupComponent } from "./component-cleanup-DjpwO9WX.js";
7
- import { o as finalizeInlineReadSubscriptions, u as registerLifecycleTransaction } from "./lifecycle-batch-Be-CLDjV.js";
4
+ import { n as createComponentInstance, s as renderScopedComponent, v as haveEquivalentContextFrames, x as rebaseVNodeTreeWithContextFrame } from "./component-internal-C4hKKQBF.js";
5
+ import { d as shouldCoalesceFineGrainedItemReads, l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-Di1fzSwm.js";
6
+ import { i as unregisterOwnedChildScope, r as registerOwnedChildScope, t as cleanupComponent } from "./component-cleanup-jdbgjkT1.js";
7
+ import { o as finalizeInlineReadSubscriptions, u as registerLifecycleTransaction } from "./lifecycle-batch-63aXFf2S.js";
8
8
  //#region src/runtime/child-scope.ts
9
9
  const EMPTY_CHILD_SCOPE_PROPS = {};
10
10
  const childScopesByInstance = /* @__PURE__ */ new WeakMap();
@@ -61,8 +61,10 @@ var ChildScopeImpl = class {
61
61
  dispose() {
62
62
  if (this._disposed) return;
63
63
  this._disposed = true;
64
- if (this._parent) if (this._ownership) this._ownership.delete(this);
65
- else unregisterOwnedChildScope(this._parent, this);
64
+ if (this._parent) {
65
+ if (this._ownership) this._ownership.delete(this);
66
+ else unregisterOwnedChildScope(this._parent, this);
67
+ }
66
68
  childScopesByInstance.delete(this.componentInstance);
67
69
  cleanupComponent(this.componentInstance);
68
70
  this._renderFn = void 0;
@@ -551,14 +553,16 @@ const REACTIVE_FOR_ITEM_PROXY_HANDLER = {
551
553
  if (properties === null) metadata.coalescedProperties = prop;
552
554
  else if (Array.isArray(properties)) {
553
555
  if (!properties.includes(prop)) properties.push(prop);
554
- } else if (properties !== prop && metadata.coalescedProperty2 !== prop) if (metadata.coalescedProperty2 === null) metadata.coalescedProperty2 = prop;
555
- else {
556
- metadata.coalescedProperties = [
557
- properties,
558
- metadata.coalescedProperty2,
559
- prop
560
- ];
561
- metadata.coalescedProperty2 = null;
556
+ } else if (properties !== prop && metadata.coalescedProperty2 !== prop) {
557
+ if (metadata.coalescedProperty2 === null) metadata.coalescedProperty2 = prop;
558
+ else {
559
+ metadata.coalescedProperties = [
560
+ properties,
561
+ metadata.coalescedProperty2,
562
+ prop
563
+ ];
564
+ metadata.coalescedProperty2 = null;
565
+ }
562
566
  }
563
567
  let itemSignal = metadata.itemSignal;
564
568
  if (!itemSignal) {
@@ -836,15 +840,17 @@ function updateItemInstance(forState, itemInstance, item) {
836
840
  if (itemSignal && scopeReadsSource(scope, itemSignal)) scopeReadsChangedSignal = true;
837
841
  let coalescedPropertyChanged = false;
838
842
  const coalescedProperties = reactiveItemState.coalescedProperties;
839
- if (coalescedProperties !== null) if (Array.isArray(coalescedProperties)) {
840
- for (const property of coalescedProperties) if (!Object.is(readForItemProperty(previousItem, property), readForItemProperty(item, property))) {
841
- coalescedPropertyChanged = true;
842
- break;
843
+ if (coalescedProperties !== null) {
844
+ if (Array.isArray(coalescedProperties)) {
845
+ for (const property of coalescedProperties) if (!Object.is(readForItemProperty(previousItem, property), readForItemProperty(item, property))) {
846
+ coalescedPropertyChanged = true;
847
+ break;
848
+ }
849
+ } else {
850
+ coalescedPropertyChanged = !Object.is(readForItemProperty(previousItem, coalescedProperties), readForItemProperty(item, coalescedProperties));
851
+ const secondProperty = reactiveItemState.coalescedProperty2;
852
+ if (secondProperty !== null && !coalescedPropertyChanged) coalescedPropertyChanged = !Object.is(readForItemProperty(previousItem, secondProperty), readForItemProperty(item, secondProperty));
843
853
  }
844
- } else {
845
- coalescedPropertyChanged = !Object.is(readForItemProperty(previousItem, coalescedProperties), readForItemProperty(item, coalescedProperties));
846
- const secondProperty = reactiveItemState.coalescedProperty2;
847
- if (secondProperty !== null && !coalescedPropertyChanged) coalescedPropertyChanged = !Object.is(readForItemProperty(previousItem, secondProperty), readForItemProperty(item, secondProperty));
848
854
  }
849
855
  const wholeItemChanged = itemSignal?._hasBeenRead === true && (reactiveItemState.wholeItemRead || coalescedPropertyChanged);
850
856
  const itemShapeChanged = !wholeItemChanged && changedPropertySignals.length === 0 && !haveSameOwnKeys(previousItem, item);
@@ -860,8 +866,10 @@ function updateItemInstance(forState, itemInstance, item) {
860
866
  removeForParentReaders(forState.parentInstance, itemSignal);
861
867
  itemSignal.set(item, notifyReaders);
862
868
  }
863
- if (scopeReadsChangedSignal) if (itemSignal !== null && scopeDirectlyReadsSource(scope, itemSignal) || changedPropertySignals.some(([propertySignal]) => scopeDirectlyReadsSource(scope, propertySignal))) rerenderItemInstance(forState, itemInstance, itemInstance.reactiveItem);
864
- else scope.markDirty();
869
+ if (scopeReadsChangedSignal) {
870
+ if (itemSignal !== null && scopeDirectlyReadsSource(scope, itemSignal) || changedPropertySignals.some(([propertySignal]) => scopeDirectlyReadsSource(scope, propertySignal))) rerenderItemInstance(forState, itemInstance, itemInstance.reactiveItem);
871
+ else scope.markDirty();
872
+ }
865
873
  return visibleChange;
866
874
  }
867
875
  const FOR_FALLBACK_SCOPE_KEY = "__for-fallback__";
@@ -1,4 +1,4 @@
1
- import { r as JSXElement, s as Props } from "../../types-DkVJhVs9.js";
1
+ import { r as JSXElement, s as Props } from "../../types-DWVrKn9N.js";
2
2
  import { t as Ref } from "../../compose-ref-DOJHoW5X.js";
3
3
  //#region src/foundations/icon/icon.types.d.ts
4
4
  /** Named icon size presets, mapped to CSS variables at render time. */
@@ -1,3 +1,3 @@
1
- import { r as JSXElement } from "../types-DkVJhVs9.js";
2
- import { c as DefaultPortal, d as definePortal, f as Presence, h as SlotProps, l as Portal, m as Slot, p as PresenceProps, u as PortalProps, v as LayoutComponent, y as layout } from "../index-r5THqzPN.js";
1
+ import { r as JSXElement } from "../types-DWVrKn9N.js";
2
+ import { c as DefaultPortal, d as definePortal, f as Presence, h as SlotProps, l as Portal, m as Slot, p as PresenceProps, u as PortalProps, v as LayoutComponent, y as layout } from "../index-CTpMmzgN.js";
3
3
  export { DefaultPortal, type JSXElement, type LayoutComponent, Portal, type PortalProps, Presence, type PresenceProps, Slot, type SlotProps, definePortal, layout };
@@ -1,2 +1,2 @@
1
- import { a as definePortal, c as layout, i as Portal, o as Presence, r as DefaultPortal, s as Slot } from "../structures-BwfeO4Iz.js";
1
+ import { a as definePortal, c as layout, i as Portal, o as Presence, r as DefaultPortal, s as Slot } from "../structures-DFyK5AdQ.js";
2
2
  export { DefaultPortal, Portal, Presence, Slot, definePortal, layout };
@@ -1,4 +1,4 @@
1
- import { gn as State } from "../../index-DSqXWc77.js";
1
+ import { jn as State } from "../../index-Dgjbo2gU.js";
2
2
  //#region src/foundations/state/controllable.d.ts
3
3
  /** Whether `value` represents controlled mode (not `undefined`). */
4
4
  declare function isControlled<T>(value: T | undefined): value is T;
@@ -1,4 +1,4 @@
1
- import { t as state } from "../../state-BzhOW2TX.js";
1
+ import { t as state } from "../../state-BGJgYSyQ.js";
2
2
  //#region src/foundations/state/controllable.ts
3
3
  /**
4
4
  * controllable