@askrjs/askr 0.0.52 → 0.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +182 -9
- package/dist/actions/index.d.ts +2 -0
- package/dist/actions/index.js +103 -0
- package/dist/{common/attr-names.js → attr-names-CjhzmHOn.js} +1 -1
- package/dist/benchmark.d.ts +6 -2
- package/dist/benchmark.js +63 -11
- package/dist/boot/index.d.ts +61 -2
- package/dist/boot/index.js +1 -203
- package/dist/boot-j2KoN6ss.js +647 -0
- package/dist/cleanup-COv77su2.js +487 -0
- package/dist/component-internal-B3z7GXlD.js +614 -0
- package/dist/component-lifecycle-CO4hXlP4.js +357 -0
- package/dist/{runtime/component-scope.js → component-scope-CC3cojX9.js} +8 -1
- package/dist/component-scope-CvPba6O6.d.ts +12 -0
- package/dist/components/index.d.ts +17 -2
- package/dist/components/index.js +39 -1
- package/dist/compose-ref-Cc_YkUpM.js +92 -0
- package/dist/{foundations/utilities/compose-ref.d.ts → compose-ref-Cizq72-x.d.ts} +1 -1
- package/dist/control/index.d.ts +1 -3
- package/dist/control/index.js +1 -3
- package/dist/control-BQvNVfAd.d.ts +436 -0
- package/dist/control-BYyLTFyw.js +165 -0
- package/dist/control-Bf4Wkdvv.d.ts +9 -0
- package/dist/{common/control.js → control-DhFRTIoE.js} +1 -1
- package/dist/data/index.d.ts +2 -6
- package/dist/data/index.js +4 -5
- package/dist/data-DnxnDxD-.js +559 -0
- package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +32 -31
- package/dist/deferred-lKE8uR0z.js +386 -0
- package/dist/{runtime/effect.js → effect-BwnIvLah.js} +4 -4
- package/dist/fastlane-Dw8SOBr9.js +343 -0
- package/dist/for-internal-BKf_Tnv1.js +1563 -0
- package/dist/foundations/icon/index.d.ts +68 -2
- package/dist/foundations/icon/index.js +85 -1
- package/dist/foundations/index.d.ts +2 -5
- package/dist/foundations/index.js +2 -5
- package/dist/foundations/interactions/index.d.ts +264 -6
- package/dist/foundations/interactions/index.js +1 -6
- package/dist/foundations/state/index.d.ts +32 -1
- package/dist/foundations/state/index.js +78 -1
- package/dist/foundations/structures/index.d.ts +2 -7
- package/dist/foundations/structures/index.js +2 -7
- package/dist/foundations/utilities/index.d.ts +2 -6
- package/dist/foundations/utilities/index.js +2 -5
- package/dist/fx/index.d.ts +190 -3
- package/dist/fx/index.js +454 -4
- package/dist/index-31Uoz_NS.d.ts +239 -0
- package/dist/index-Bki2rqcr.d.ts +233 -0
- package/dist/index-BnU0NPwM.d.ts +101 -0
- package/dist/index-D73jgYx1.d.ts +48 -0
- package/dist/{runtime/runtime.d.ts → index-R2JJIbM-.d.ts} +31 -8
- package/dist/index-SJXJkssx.d.ts +44 -0
- package/dist/index.d.ts +8 -13
- package/dist/index.js +150 -15
- package/dist/interactions-w7gQN4ha.js +280 -0
- package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -1
- package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -5
- package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -1
- package/dist/jsx-dev-runtime.d.ts +2 -4
- package/dist/jsx-dev-runtime.js +7 -5
- package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
- package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
- package/dist/jsx-runtime.d.ts +2 -35
- package/dist/jsx-runtime.js +11 -5
- package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-D9va7GOU.js} +4 -5
- package/dist/navigate-BVDCzOuB.d.ts +34 -0
- package/dist/navigate-CmPLSXyw.js +1449 -0
- package/dist/{runtime/portal.js → portal-CyU3Ucf2.js} +33 -36
- package/dist/query-registry-CQIT4mXr.js +73 -0
- package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -6
- package/dist/renderer-DzPjeLby.js +6197 -0
- package/dist/{runtime/resource-operation.js → resource-operation-CEzfpnDk.js} +118 -15
- package/dist/resources/index.d.ts +42 -3
- package/dist/resources/index.js +3 -4
- package/dist/{common/route-activity.js → route-activity-CNJfpwx-.js} +1 -1
- package/dist/route-matching-vJpvLVbX.js +515 -0
- package/dist/router/index.d.ts +166 -14
- package/dist/router/index.js +150 -12
- package/dist/{common/router.d.ts → router-CeYvjj5_.d.ts} +72 -28
- package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -1
- package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -3
- package/dist/{runtime/selector.js → selector-DafVYzV4.js} +34 -11
- package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -1
- package/dist/ssg/index.d.ts +252 -4
- package/dist/ssg/index.js +857 -1
- package/dist/ssr/index.d.ts +225 -8
- package/dist/ssr/index.js +3 -6
- package/dist/{common/ssr.js → ssr-CbQO5xd3.js} +1 -1
- package/dist/ssr-D3t80Rc0.js +1413 -0
- package/dist/{runtime/state.js → state-DPl8lffD.js} +3 -5
- package/dist/structures-DUB3HchX.js +221 -0
- package/dist/testing/index.d.ts +3 -2
- package/dist/testing/index.js +2 -5
- package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -5
- package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -1
- package/dist/{ssr/verify-hydration.js → verify-hydration-io9ahUeq.js} +2 -2
- package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -2
- package/package.json +12 -7
- package/dist/bench/components/benchmark-row.d.ts +0 -20
- package/dist/bench/components/benchmark-row.js +0 -40
- package/dist/bench/components/benchmark-table.js +0 -23
- package/dist/bin/askr-ssg.d.ts +0 -27
- package/dist/bin/askr-ssg.js +0 -186
- package/dist/boot/hydration.js +0 -139
- package/dist/boot/root-lifecycle.d.ts +0 -18
- package/dist/boot/root-lifecycle.js +0 -209
- package/dist/boot/route-startup.js +0 -54
- package/dist/boot/types.d.ts +0 -61
- package/dist/common/component.d.ts +0 -18
- package/dist/common/control.d.ts +0 -12
- package/dist/common/dom-range.d.ts +0 -13
- package/dist/common/env.js +0 -41
- package/dist/common/error-boundary.d.ts +0 -15
- package/dist/common/invariant.js +0 -15
- package/dist/common/jsx.d.ts +0 -22
- package/dist/common/logger.js +0 -34
- package/dist/common/promise.js +0 -6
- package/dist/common/ssr-errors.d.ts +0 -10
- package/dist/common/ssr-errors.js +0 -14
- package/dist/common/ssr.d.ts +0 -41
- package/dist/common/vnode.d.ts +0 -21
- package/dist/components/error-boundary.d.ts +0 -14
- package/dist/components/error-boundary.js +0 -41
- package/dist/components/link.d.ts +0 -68
- package/dist/components/link.js +0 -74
- package/dist/control/case.d.ts +0 -18
- package/dist/control/case.js +0 -68
- package/dist/control/for.d.ts +0 -23
- package/dist/control/for.js +0 -61
- package/dist/control/shared.d.ts +0 -8
- package/dist/control/shared.js +0 -18
- package/dist/control/show.d.ts +0 -14
- package/dist/control/show.js +0 -32
- package/dist/data/data-runtime.d.ts +0 -27
- package/dist/data/invalidation.d.ts +0 -8
- package/dist/data/invalidation.js +0 -25
- package/dist/data/mutation-cell.d.ts +0 -27
- package/dist/data/mutation-cell.js +0 -133
- package/dist/data/query-cell.d.ts +0 -47
- package/dist/data/query-cell.js +0 -324
- package/dist/data/query-key.js +0 -40
- package/dist/data/shared.js +0 -20
- package/dist/data/testing.js +0 -2
- package/dist/data/types.d.ts +0 -160
- package/dist/foundations/icon/icon.d.ts +0 -52
- package/dist/foundations/icon/icon.js +0 -86
- package/dist/foundations/icon/icon.types.d.ts +0 -21
- package/dist/foundations/interactions/dismissable.d.ts +0 -71
- package/dist/foundations/interactions/dismissable.js +0 -24
- package/dist/foundations/interactions/focusable.d.ts +0 -21
- package/dist/foundations/interactions/focusable.js +0 -16
- package/dist/foundations/interactions/hoverable.d.ts +0 -25
- package/dist/foundations/interactions/hoverable.js +0 -13
- package/dist/foundations/interactions/interaction-policy.d.ts +0 -49
- package/dist/foundations/interactions/interaction-policy.js +0 -120
- package/dist/foundations/interactions/pressable.d.ts +0 -60
- package/dist/foundations/interactions/pressable.js +0 -49
- package/dist/foundations/interactions/roving-focus.d.ts +0 -51
- package/dist/foundations/interactions/roving-focus.js +0 -69
- package/dist/foundations/state/controllable.d.ts +0 -32
- package/dist/foundations/state/controllable.js +0 -80
- package/dist/foundations/structures/collection.d.ts +0 -51
- package/dist/foundations/structures/collection.js +0 -49
- package/dist/foundations/structures/layer.d.ts +0 -80
- package/dist/foundations/structures/layer.js +0 -79
- package/dist/foundations/structures/layout.d.ts +0 -32
- package/dist/foundations/structures/layout.js +0 -11
- package/dist/foundations/structures/portal.d.ts +0 -2
- package/dist/foundations/structures/portal.js +0 -3
- package/dist/foundations/structures/presence.d.ts +0 -36
- package/dist/foundations/structures/presence.js +0 -37
- package/dist/foundations/structures/slot.d.ts +0 -34
- package/dist/foundations/structures/slot.js +0 -39
- package/dist/foundations/utilities/aria.d.ts +0 -15
- package/dist/foundations/utilities/aria.js +0 -15
- package/dist/foundations/utilities/compose-handlers.d.ts +0 -36
- package/dist/foundations/utilities/compose-handlers.js +0 -18
- package/dist/foundations/utilities/compose-ref.js +0 -16
- package/dist/foundations/utilities/event-types.d.ts +0 -19
- package/dist/foundations/utilities/merge-props.d.ts +0 -4
- package/dist/foundations/utilities/merge-props.js +0 -47
- package/dist/foundations/utilities/use-id.d.ts +0 -31
- package/dist/fx/fx.d.ts +0 -32
- package/dist/fx/fx.js +0 -211
- package/dist/fx/noop.js +0 -7
- package/dist/fx/timing.d.ts +0 -158
- package/dist/fx/timing.js +0 -241
- package/dist/jsx/index.d.ts +0 -2
- package/dist/jsx/index.js +0 -4
- package/dist/jsx/types.js +0 -2
- package/dist/jsx/utils.d.ts +0 -4
- package/dist/jsx/utils.js +0 -17
- package/dist/jsx-runtime2.d.ts +0 -3
- package/dist/jsx-runtime2.js +0 -4
- package/dist/renderer/attributes.js +0 -254
- package/dist/renderer/boundaries.js +0 -142
- package/dist/renderer/boundary-materialization.js +0 -72
- package/dist/renderer/boundary-range-adoption.js +0 -76
- package/dist/renderer/boundary-range-sync.js +0 -101
- package/dist/renderer/boundary-state.js +0 -50
- package/dist/renderer/child-shape.js +0 -83
- package/dist/renderer/children-fastpath.js +0 -149
- package/dist/renderer/children.js +0 -158
- package/dist/renderer/cleanup.js +0 -267
- package/dist/renderer/component-host-cleanup.js +0 -143
- package/dist/renderer/component-host-instances.js +0 -116
- package/dist/renderer/component-host-replacement.js +0 -105
- package/dist/renderer/component-host-results.js +0 -138
- package/dist/renderer/component-host.js +0 -172
- package/dist/renderer/dom-host.js +0 -11
- package/dist/renderer/dom-internal.js +0 -243
- package/dist/renderer/dom-range.js +0 -161
- package/dist/renderer/dom.js +0 -11
- package/dist/renderer/element-children.js +0 -359
- package/dist/renderer/env.js +0 -2
- package/dist/renderer/error-boundary-dom.js +0 -86
- package/dist/renderer/evaluate-dom-range.js +0 -84
- package/dist/renderer/evaluate-reconcile.js +0 -257
- package/dist/renderer/evaluate.js +0 -95
- package/dist/renderer/fastpath.js +0 -142
- package/dist/renderer/for-commit-dom-map.js +0 -71
- package/dist/renderer/for-commit-removal.js +0 -27
- package/dist/renderer/for-commit-reorder.js +0 -87
- package/dist/renderer/for-commit.js +0 -442
- package/dist/renderer/hydration-boundaries.js +0 -60
- package/dist/renderer/hydration-listener-transaction.js +0 -49
- package/dist/renderer/index.js +0 -39
- package/dist/renderer/intrinsic-blueprint-analysis.js +0 -202
- package/dist/renderer/intrinsic-blueprint-bindings.js +0 -152
- package/dist/renderer/intrinsic-blueprint-materialization.js +0 -100
- package/dist/renderer/intrinsic-blueprint.js +0 -30
- package/dist/renderer/intrinsic-hydration-adoption.js +0 -66
- package/dist/renderer/keyed-children.js +0 -26
- package/dist/renderer/keyed.js +0 -167
- package/dist/renderer/namespaces.js +0 -21
- package/dist/renderer/prop-bindings.js +0 -315
- package/dist/renderer/reactive-child-dom.js +0 -139
- package/dist/renderer/reactive-child-sources.js +0 -182
- package/dist/renderer/reactive-children.js +0 -303
- package/dist/renderer/reconcile-commit.js +0 -36
- package/dist/renderer/reconcile-fastpaths.js +0 -100
- package/dist/renderer/reconcile-resolution.js +0 -163
- package/dist/renderer/reconcile.js +0 -37
- package/dist/renderer/retained-element-rollback.js +0 -288
- package/dist/renderer/stable-patch.js +0 -80
- package/dist/renderer/static-reuse.js +0 -94
- package/dist/renderer/types.js +0 -2
- package/dist/renderer/utils.js +0 -265
- package/dist/router/access.js +0 -34
- package/dist/router/activity.d.ts +0 -9
- package/dist/router/activity.js +0 -85
- package/dist/router/authoring.d.ts +0 -21
- package/dist/router/authoring.js +0 -196
- package/dist/router/internal-types.d.ts +0 -30
- package/dist/router/lazy.d.ts +0 -18
- package/dist/router/lazy.js +0 -50
- package/dist/router/manifest.d.ts +0 -9
- package/dist/router/manifest.js +0 -47
- package/dist/router/match.js +0 -120
- package/dist/router/navigate.d.ts +0 -10
- package/dist/router/navigate.js +0 -73
- package/dist/router/navigation-registry.d.ts +0 -31
- package/dist/router/navigation-registry.js +0 -103
- package/dist/router/navigation-scroll.d.ts +0 -13
- package/dist/router/navigation-scroll.js +0 -91
- package/dist/router/navigation-targets.d.ts +0 -30
- package/dist/router/navigation-targets.js +0 -634
- package/dist/router/policy.d.ts +0 -27
- package/dist/router/policy.js +0 -130
- package/dist/router/rendering.d.ts +0 -9
- package/dist/router/rendering.js +0 -47
- package/dist/router/resolution.d.ts +0 -3
- package/dist/router/resolution.js +0 -84
- package/dist/router/route-context.js +0 -77
- package/dist/router/route-matching.d.ts +0 -19
- package/dist/router/route-matching.js +0 -173
- package/dist/router/route-query.d.ts +0 -16
- package/dist/router/route-query.js +0 -45
- package/dist/router/route.d.ts +0 -8
- package/dist/router/route.js +0 -10
- package/dist/router/store.d.ts +0 -49
- package/dist/router/store.js +0 -169
- package/dist/router/testing.js +0 -4
- package/dist/runtime/access.d.ts +0 -19
- package/dist/runtime/access.js +0 -43
- package/dist/runtime/child-scope.d.ts +0 -41
- package/dist/runtime/child-scope.js +0 -134
- package/dist/runtime/component-cleanup.d.ts +0 -15
- package/dist/runtime/component-cleanup.js +0 -68
- package/dist/runtime/component-commit.js +0 -167
- package/dist/runtime/component-facade.d.ts +0 -5
- package/dist/runtime/component-facade.js +0 -6
- package/dist/runtime/component-internal.d.ts +0 -105
- package/dist/runtime/component-internal.js +0 -237
- package/dist/runtime/component-lifecycle.d.ts +0 -10
- package/dist/runtime/component-lifecycle.js +0 -33
- package/dist/runtime/component-scope.d.ts +0 -54
- package/dist/runtime/component.d.ts +0 -5
- package/dist/runtime/component.js +0 -6
- package/dist/runtime/context.d.ts +0 -72
- package/dist/runtime/context.js +0 -236
- package/dist/runtime/control.d.ts +0 -62
- package/dist/runtime/control.js +0 -239
- package/dist/runtime/derive.d.ts +0 -16
- package/dist/runtime/derive.js +0 -140
- package/dist/runtime/dev-namespace.d.ts +0 -30
- package/dist/runtime/dev-namespace.js +0 -64
- package/dist/runtime/effect.d.ts +0 -35
- package/dist/runtime/error-boundary.d.ts +0 -4
- package/dist/runtime/error-boundary.js +0 -29
- package/dist/runtime/events.d.ts +0 -58
- package/dist/runtime/events.js +0 -201
- package/dist/runtime/execution-model.d.ts +0 -6
- package/dist/runtime/execution-model.js +0 -13
- package/dist/runtime/fastlane.d.ts +0 -33
- package/dist/runtime/fastlane.js +0 -173
- package/dist/runtime/for-bench.d.ts +0 -40
- package/dist/runtime/for-bench.js +0 -13
- package/dist/runtime/for-internal.d.ts +0 -106
- package/dist/runtime/for-internal.js +0 -285
- package/dist/runtime/for-reconcile.d.ts +0 -7
- package/dist/runtime/for-reconcile.js +0 -442
- package/dist/runtime/for-scopes.d.ts +0 -26
- package/dist/runtime/for-scopes.js +0 -280
- package/dist/runtime/for-signals.d.ts +0 -39
- package/dist/runtime/for-signals.js +0 -213
- package/dist/runtime/for-types.d.ts +0 -8
- package/dist/runtime/for.d.ts +0 -4
- package/dist/runtime/for.js +0 -5
- package/dist/runtime/index.d.ts +0 -24
- package/dist/runtime/index.js +0 -33
- package/dist/runtime/lifecycle-batch.d.ts +0 -59
- package/dist/runtime/lifecycle-batch.js +0 -178
- package/dist/runtime/lifecycle-operation-settlement.d.ts +0 -5
- package/dist/runtime/lifecycle-operation-settlement.js +0 -51
- package/dist/runtime/lifecycle-operations.d.ts +0 -30
- package/dist/runtime/operations.d.ts +0 -3
- package/dist/runtime/operations.js +0 -3
- package/dist/runtime/perf-metrics.d.ts +0 -27
- package/dist/runtime/perf-metrics.js +0 -6
- package/dist/runtime/portal.d.ts +0 -21
- package/dist/runtime/readable.d.ts +0 -34
- package/dist/runtime/readable.js +0 -183
- package/dist/runtime/resource-cell.js +0 -112
- package/dist/runtime/resource-operation.d.ts +0 -12
- package/dist/runtime/runtime.js +0 -57
- package/dist/runtime/selector-store.js +0 -22
- package/dist/runtime/selector.d.ts +0 -10
- package/dist/runtime/snapshot-source.d.ts +0 -9
- package/dist/runtime/state.d.ts +0 -54
- package/dist/ssg/batch-render.js +0 -101
- package/dist/ssg/create-static-gen.d.ts +0 -66
- package/dist/ssg/create-static-gen.js +0 -250
- package/dist/ssg/generate-metadata.js +0 -92
- package/dist/ssg/generation-plan.js +0 -68
- package/dist/ssg/incremental-manifest.js +0 -54
- package/dist/ssg/resolve-ssg-data.js +0 -103
- package/dist/ssg/route-utils.js +0 -22
- package/dist/ssg/static-routes.js +0 -100
- package/dist/ssg/types.d.ts +0 -188
- package/dist/ssg/write-static-files.js +0 -77
- package/dist/ssr/attrs.js +0 -92
- package/dist/ssr/boundaries.js +0 -124
- package/dist/ssr/component-runtime.js +0 -85
- package/dist/ssr/context.d.ts +0 -49
- package/dist/ssr/context.js +0 -89
- package/dist/ssr/errors.d.ts +0 -9
- package/dist/ssr/errors.js +0 -12
- package/dist/ssr/escape.js +0 -191
- package/dist/ssr/hydration-data.js +0 -8
- package/dist/ssr/hydration-verify.d.ts +0 -11
- package/dist/ssr/hydration-verify.js +0 -171
- package/dist/ssr/index-internal.d.ts +0 -14
- package/dist/ssr/index-internal.js +0 -17
- package/dist/ssr/render-keys.js +0 -14
- package/dist/ssr/render-resolved.d.ts +0 -19
- package/dist/ssr/render-resolved.js +0 -33
- package/dist/ssr/render-sync.d.ts +0 -20
- package/dist/ssr/render-sync.js +0 -283
- package/dist/ssr/route-policy-resolution.js +0 -76
- package/dist/ssr/route-render.d.ts +0 -76
- package/dist/ssr/route-render.js +0 -118
- package/dist/ssr/sink.d.ts +0 -25
- package/dist/ssr/sink.js +0 -84
- package/dist/ssr/types.d.ts +0 -22
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
import { i as JSXElementType, r as JSXElement, s as Props } from "./jsx-CP0gmYwJ.js";
|
|
2
|
+
|
|
3
|
+
//#region src/runtime/state.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* State value holder - callable to read, has set method to update
|
|
6
|
+
* @example
|
|
7
|
+
* const count = state(0);
|
|
8
|
+
* count(); // read: 0
|
|
9
|
+
* count.set(1); // write: triggers re-render
|
|
10
|
+
*/
|
|
11
|
+
interface State<T> extends ReadableSource<T> {
|
|
12
|
+
(): T;
|
|
13
|
+
set(...args: StateSetterArgs<T>): void;
|
|
14
|
+
[Symbol.iterator](): IterableIterator<StateTuple<T>[number]>;
|
|
15
|
+
}
|
|
16
|
+
type StateUpdater<T> = (prev: T) => T;
|
|
17
|
+
type StateSetterArgs<T> = [Extract<T, (...args: any[]) => unknown>] extends [never] ? [value: T] | [updater: StateUpdater<T>] : [updater: StateUpdater<T>];
|
|
18
|
+
/**
|
|
19
|
+
* Public setter type for state cells.
|
|
20
|
+
*/
|
|
21
|
+
type StateSetter<T> = (...args: StateSetterArgs<T>) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Tuple-first state handle returned by `state()`.
|
|
24
|
+
*/
|
|
25
|
+
type StateTuple<T> = [get: State<T>, set: StateSetter<T>] & State<T>;
|
|
26
|
+
/**
|
|
27
|
+
* Creates a local state value for a component
|
|
28
|
+
* Optimized for:
|
|
29
|
+
* - O(1) read performance
|
|
30
|
+
* - Minimal allocation per state
|
|
31
|
+
* - Fast scheduler integration
|
|
32
|
+
*
|
|
33
|
+
* IMPORTANT: state() must be called during component render execution.
|
|
34
|
+
* It captures the current component instance from context.
|
|
35
|
+
* Calling outside a component function will throw an error.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* // ✅ Correct: called during render
|
|
40
|
+
* export function Counter() {
|
|
41
|
+
* const [count, setCount] = state(0);
|
|
42
|
+
* return { type: 'button', children: [count()] };
|
|
43
|
+
* }
|
|
44
|
+
*
|
|
45
|
+
* // ❌ Wrong: called outside component
|
|
46
|
+
* const count = state(0);
|
|
47
|
+
* export function BadComponent() {
|
|
48
|
+
* return { type: 'div' };
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
declare function state<T>(initialValue: T): StateTuple<T>;
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region src/common/ssr.d.ts
|
|
55
|
+
/**
|
|
56
|
+
* Common call contracts: SSR types
|
|
57
|
+
*/
|
|
58
|
+
type SSRData = Record<string, unknown>;
|
|
59
|
+
interface DocumentRenderRoute {
|
|
60
|
+
path: string;
|
|
61
|
+
namespace?: string;
|
|
62
|
+
}
|
|
63
|
+
interface DocumentRenderContext {
|
|
64
|
+
mode: 'ssr' | 'ssg';
|
|
65
|
+
url: string;
|
|
66
|
+
pathname: string;
|
|
67
|
+
search: string;
|
|
68
|
+
hash: string;
|
|
69
|
+
params: Record<string, string>;
|
|
70
|
+
data?: SSRData;
|
|
71
|
+
seed: number;
|
|
72
|
+
route: DocumentRenderRoute;
|
|
73
|
+
}
|
|
74
|
+
interface DocumentRenderArgs {
|
|
75
|
+
appHtml: string;
|
|
76
|
+
context: DocumentRenderContext;
|
|
77
|
+
}
|
|
78
|
+
type DocumentRenderer = (args: DocumentRenderArgs) => string;
|
|
79
|
+
/** Full context for sink-based streaming SSR */
|
|
80
|
+
type SSRContext = {
|
|
81
|
+
url: string;
|
|
82
|
+
seed: number;
|
|
83
|
+
data?: SSRData;
|
|
84
|
+
params?: Record<string, string>;
|
|
85
|
+
signal?: AbortSignal;
|
|
86
|
+
};
|
|
87
|
+
//#endregion
|
|
88
|
+
//#region src/common/vnode.d.ts
|
|
89
|
+
interface DOMElement {
|
|
90
|
+
type: JSXElementType;
|
|
91
|
+
props?: Props;
|
|
92
|
+
children?: VNode[];
|
|
93
|
+
key?: string | number | null;
|
|
94
|
+
[Symbol.iterator]?: never;
|
|
95
|
+
_controlState?: ControlBoundaryState;
|
|
96
|
+
_forState?: ForState<unknown>;
|
|
97
|
+
}
|
|
98
|
+
type VNode = DOMElement | string | number | boolean | null | undefined;
|
|
99
|
+
type RenderableChild = VNode | JSXElement | readonly RenderableChild[];
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/common/component.d.ts
|
|
102
|
+
type ComponentContext = {
|
|
103
|
+
signal: AbortSignal;
|
|
104
|
+
ssr?: SSRContext;
|
|
105
|
+
};
|
|
106
|
+
type ComponentFunction = (props: Props, context?: ComponentContext) => JSXElement | VNode;
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region src/runtime/context.d.ts
|
|
109
|
+
type ContextKey = symbol;
|
|
110
|
+
type Renderable = RenderableChild;
|
|
111
|
+
type ContextScopeChildren = Renderable | (() => Renderable);
|
|
112
|
+
interface Scope<T> {
|
|
113
|
+
(props: {
|
|
114
|
+
value: T;
|
|
115
|
+
children?: ContextScopeChildren;
|
|
116
|
+
}): JSXElement;
|
|
117
|
+
readonly key: ContextKey;
|
|
118
|
+
readonly defaultValue: T;
|
|
119
|
+
}
|
|
120
|
+
interface ContextFrame {
|
|
121
|
+
parent: ContextFrame | null;
|
|
122
|
+
values: Map<ContextKey, unknown> | null;
|
|
123
|
+
}
|
|
124
|
+
declare function defineScope<T>(defaultValue: T): Scope<T>;
|
|
125
|
+
declare function readScope<T>(context: Scope<T>): T;
|
|
126
|
+
//#endregion
|
|
127
|
+
//#region src/runtime/component-cleanup.d.ts
|
|
128
|
+
type OwnedChildScope = {
|
|
129
|
+
key: string | number;
|
|
130
|
+
dispose(): void;
|
|
131
|
+
};
|
|
132
|
+
//#endregion
|
|
133
|
+
//#region src/common/app-render-runtime.d.ts
|
|
134
|
+
interface AppRenderRuntime {
|
|
135
|
+
framework: Readonly<Record<string, unknown>>;
|
|
136
|
+
route: unknown;
|
|
137
|
+
hasRoute: boolean;
|
|
138
|
+
}
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/runtime/component-internal.d.ts
|
|
141
|
+
interface ComponentInstance {
|
|
142
|
+
id: string;
|
|
143
|
+
fn: ComponentFunction;
|
|
144
|
+
props: Props;
|
|
145
|
+
target: Element | null;
|
|
146
|
+
parentInstance: ComponentInstance | null;
|
|
147
|
+
portalScope: object | null;
|
|
148
|
+
mounted: boolean;
|
|
149
|
+
abortController: AbortController | null;
|
|
150
|
+
ssr?: boolean;
|
|
151
|
+
cleanupStrict?: boolean;
|
|
152
|
+
/** @internal Private resource-ownership identity for the active mount. */
|
|
153
|
+
_ownershipGeneration: object;
|
|
154
|
+
stateValues?: State<unknown>[];
|
|
155
|
+
evaluationGeneration: number;
|
|
156
|
+
notifyUpdate: (() => void) | null;
|
|
157
|
+
_pendingFlushTask?: () => void;
|
|
158
|
+
_pendingRunTask?: () => void;
|
|
159
|
+
_enqueueRun?: () => void;
|
|
160
|
+
stateIndexCheck: number;
|
|
161
|
+
expectedStateIndices?: number[];
|
|
162
|
+
firstRenderComplete: boolean;
|
|
163
|
+
mountOperations?: Array<() => void | (() => void) | PromiseLike<void | (() => void)>>;
|
|
164
|
+
commitOperations?: Array<() => void | (() => void) | PromiseLike<void | (() => void)>>;
|
|
165
|
+
cleanupFns?: Array<() => void>;
|
|
166
|
+
lifecycleSlots?: unknown[];
|
|
167
|
+
lifecycleGeneration: number;
|
|
168
|
+
hasPendingUpdate: boolean;
|
|
169
|
+
ownerFrame: ContextFrame | null;
|
|
170
|
+
isRoot?: boolean;
|
|
171
|
+
_rootComponentFn?: ComponentFunction;
|
|
172
|
+
/** @internal Browser-owned hydration and route state for this app root. */
|
|
173
|
+
_appRenderRuntime?: AppRenderRuntime;
|
|
174
|
+
_vnodeOwner?: object;
|
|
175
|
+
_vnodeParent?: ComponentInstance | null;
|
|
176
|
+
_vnodeKey?: string | number;
|
|
177
|
+
_vnodePosition?: number;
|
|
178
|
+
_wrapperDepth?: number;
|
|
179
|
+
_currentRenderToken?: number;
|
|
180
|
+
lastRenderToken?: number;
|
|
181
|
+
_pendingReadSources?: Set<ReadableSource<unknown>>;
|
|
182
|
+
_pendingReadSourceVersions?: Map<ReadableSource<unknown>, number>;
|
|
183
|
+
_lastReadSources?: Set<ReadableSource<unknown>>;
|
|
184
|
+
devWarningsEmitted?: Set<string>;
|
|
185
|
+
_placeholder?: Comment;
|
|
186
|
+
_ownedChildScopes?: Set<OwnedChildScope>;
|
|
187
|
+
errorBoundaryState?: {
|
|
188
|
+
error: unknown | null;
|
|
189
|
+
resetKey: unknown;
|
|
190
|
+
notified: boolean;
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
//#endregion
|
|
194
|
+
//#region src/runtime/readable.d.ts
|
|
195
|
+
interface DerivedSubscriber {
|
|
196
|
+
_markDirty(): void;
|
|
197
|
+
_pendingDependencySources?: Set<ReadableSource<unknown>>;
|
|
198
|
+
}
|
|
199
|
+
interface ReadableSource<T = unknown> {
|
|
200
|
+
(): T;
|
|
201
|
+
_hasBeenRead?: boolean;
|
|
202
|
+
_hasEverBeenRead?: boolean;
|
|
203
|
+
_readers?: Map<ComponentInstance, {
|
|
204
|
+
token: number;
|
|
205
|
+
generation: object;
|
|
206
|
+
}>;
|
|
207
|
+
_derivedSubscribers?: Set<DerivedSubscriber>;
|
|
208
|
+
_version?: number;
|
|
209
|
+
}
|
|
210
|
+
//#endregion
|
|
211
|
+
//#region src/common/dom-range.d.ts
|
|
212
|
+
/**
|
|
213
|
+
* Internal DOM range shape shared by runtime ownership records and the
|
|
214
|
+
* renderer. A singleton range uses the node itself for both anchors; a
|
|
215
|
+
* multi-node or empty range uses deterministic comment anchors.
|
|
216
|
+
*/
|
|
217
|
+
interface DOMRange {
|
|
218
|
+
start: Node;
|
|
219
|
+
end: Node;
|
|
220
|
+
single: boolean;
|
|
221
|
+
}
|
|
222
|
+
//#endregion
|
|
223
|
+
//#region src/runtime/child-scope.d.ts
|
|
224
|
+
interface ChildScope {
|
|
225
|
+
key: string | number;
|
|
226
|
+
componentInstance: ComponentInstance;
|
|
227
|
+
previousVnode: VNode | undefined;
|
|
228
|
+
vnode: VNode | undefined;
|
|
229
|
+
dom?: Node;
|
|
230
|
+
/** @internal Fast singleton node plus an anchor-backed multi-node range. */
|
|
231
|
+
range?: DOMRange;
|
|
232
|
+
needsDomUpdate: boolean;
|
|
233
|
+
hydrationPending: boolean;
|
|
234
|
+
/** @internal Stable owner for validated intrinsic blueprints in list items. */
|
|
235
|
+
blueprintOwner?: object;
|
|
236
|
+
render(renderFn: () => VNode): VNode;
|
|
237
|
+
markDirty(): void;
|
|
238
|
+
dispose(): void;
|
|
239
|
+
}
|
|
240
|
+
interface ChildScopeOwnership {
|
|
241
|
+
add(scope: ChildScope): void;
|
|
242
|
+
delete(scope: ChildScope): void;
|
|
243
|
+
bulkDispose(run: () => void): void;
|
|
244
|
+
}
|
|
245
|
+
/** @internal Snapshot used to restore a child scope after a failed commit. */
|
|
246
|
+
interface ChildScopeTransactionSnapshot {
|
|
247
|
+
previousVnode: VNode | undefined;
|
|
248
|
+
vnode: VNode | undefined;
|
|
249
|
+
dom: Node | undefined;
|
|
250
|
+
range: DOMRange | undefined;
|
|
251
|
+
domTextData: string | undefined;
|
|
252
|
+
needsDomUpdate: boolean;
|
|
253
|
+
hydrationPending: boolean;
|
|
254
|
+
renderFn: (() => VNode) | undefined;
|
|
255
|
+
}
|
|
256
|
+
//#endregion
|
|
257
|
+
//#region src/runtime/for-signals.d.ts
|
|
258
|
+
type ForItemSignal<T> = ReadableSource<T> & (() => T) & {
|
|
259
|
+
peek(): T;
|
|
260
|
+
set(newValue: T, notifyReaders?: boolean): void;
|
|
261
|
+
};
|
|
262
|
+
type ForItemPropertySignal = ReadableSource<unknown> & (() => unknown) & {
|
|
263
|
+
peek(): unknown;
|
|
264
|
+
set(newValue: unknown, notifyReaders?: boolean): void;
|
|
265
|
+
};
|
|
266
|
+
type ForIndexSignal = ReadableSource<number> & (() => number) & {
|
|
267
|
+
peek(): number;
|
|
268
|
+
set(newValue: number | ((prev: number) => number), notifyReaders?: boolean): void;
|
|
269
|
+
};
|
|
270
|
+
interface ReactiveForItemState<T> {
|
|
271
|
+
currentItem: T;
|
|
272
|
+
itemSignal: ForItemSignal<T> | null;
|
|
273
|
+
propertySignals: Map<PropertyKey, ForItemPropertySignal> | null;
|
|
274
|
+
coalescedProperties: PropertyKey | PropertyKey[] | null;
|
|
275
|
+
coalescedProperty2: PropertyKey | null;
|
|
276
|
+
wholeItemRead: boolean;
|
|
277
|
+
proxy: T;
|
|
278
|
+
}
|
|
279
|
+
//#endregion
|
|
280
|
+
//#region src/runtime/for-scopes.d.ts
|
|
281
|
+
interface ForItemInstance<T> {
|
|
282
|
+
key: string | number;
|
|
283
|
+
item: T;
|
|
284
|
+
reactiveItem: T;
|
|
285
|
+
reactiveItemState: ReactiveForItemState<T> | null;
|
|
286
|
+
indexSignal: ForIndexSignal;
|
|
287
|
+
scope: ChildScope;
|
|
288
|
+
}
|
|
289
|
+
//#endregion
|
|
290
|
+
//#region src/runtime/effect.d.ts
|
|
291
|
+
interface FineGrainedEffectHandle<T> {
|
|
292
|
+
cleanup(): void;
|
|
293
|
+
updateCompute(nextCompute: () => T): void;
|
|
294
|
+
flush(): void;
|
|
295
|
+
}
|
|
296
|
+
//#endregion
|
|
297
|
+
//#region src/runtime/for-types.d.ts
|
|
298
|
+
type ForEachSource<T> = T[] | (() => T[]);
|
|
299
|
+
type ForKeySelector<T> = (item: T, index: number) => string | number;
|
|
300
|
+
type ForRenderItem<T> = (item: T, index: () => number) => VNode;
|
|
301
|
+
//#endregion
|
|
302
|
+
//#region src/runtime/for-internal.d.ts
|
|
303
|
+
type ForCommitStrategy = 'APPEND' | 'INSERT_ONE' | 'REMOVE_ONE' | 'TRUNCATE' | 'NO_REORDER' | 'SWAP' | 'FULL_KEYED';
|
|
304
|
+
interface ForState<T> {
|
|
305
|
+
kind: 'for';
|
|
306
|
+
currentItems: T[];
|
|
307
|
+
_committedItems: T[];
|
|
308
|
+
eachSource: ForEachSource<T>;
|
|
309
|
+
fallback: VNode | null;
|
|
310
|
+
fallbackScope: ChildScope | null;
|
|
311
|
+
items: Map<string | number, ForItemInstance<T>>;
|
|
312
|
+
orderedKeys: Array<string | number>;
|
|
313
|
+
orderedItems: ForItemInstance<T>[];
|
|
314
|
+
orderedVNodes: VNode[];
|
|
315
|
+
byFn: ForKeySelector<T>;
|
|
316
|
+
renderFn: ForRenderItem<T>;
|
|
317
|
+
parentInstance: ComponentInstance | null;
|
|
318
|
+
lastCommitStrategy: ForCommitStrategy;
|
|
319
|
+
lastRemovedNodes: Node[];
|
|
320
|
+
lastRemovedRanges: DOMRange[];
|
|
321
|
+
pendingDirtyIndices: number[] | null;
|
|
322
|
+
pendingSwapIndices: [number, number] | null;
|
|
323
|
+
pendingMoveOnly: boolean;
|
|
324
|
+
pendingInsertedIndex: number | null;
|
|
325
|
+
pendingRemovedKey: string | number | null;
|
|
326
|
+
pendingAppendStart: number | null;
|
|
327
|
+
_hasResolvedItemDom: boolean;
|
|
328
|
+
_needsSourceReconcile: boolean;
|
|
329
|
+
_sourceEffect: FineGrainedEffectHandle<T[]> | null;
|
|
330
|
+
_suspendSourceCommit: boolean;
|
|
331
|
+
_enqueueBoundaryCommit?: (() => void) | null;
|
|
332
|
+
_hasPendingBoundaryCommit?: boolean;
|
|
333
|
+
devKeyKinds?: Map<string | number, 'number' | 'string'>;
|
|
334
|
+
_transaction?: ForTransaction<T> | null;
|
|
335
|
+
_scopeOwnership: ChildScopeOwnership;
|
|
336
|
+
}
|
|
337
|
+
interface ForItemTransactionSnapshot<T> {
|
|
338
|
+
item: T;
|
|
339
|
+
itemSignalExists: boolean;
|
|
340
|
+
itemSignalValue: T | undefined;
|
|
341
|
+
itemSignalHasBeenRead: boolean;
|
|
342
|
+
indexValue: number;
|
|
343
|
+
indexHasBeenRead: boolean;
|
|
344
|
+
propertySignalStore: Map<PropertyKey, ForItemPropertySignal> | null;
|
|
345
|
+
propertySignals: Map<PropertyKey, {
|
|
346
|
+
signal: ForItemPropertySignal;
|
|
347
|
+
value: unknown;
|
|
348
|
+
hasBeenRead: boolean;
|
|
349
|
+
}> | null;
|
|
350
|
+
scope: ChildScopeTransactionSnapshot;
|
|
351
|
+
}
|
|
352
|
+
interface ForTransaction<T> {
|
|
353
|
+
collectionSnapshotMode: 'copy' | 'reset-empty' | 'preserve-clear' | 'reuse';
|
|
354
|
+
currentItems: T[];
|
|
355
|
+
items: Map<string | number, ForItemInstance<T>>;
|
|
356
|
+
orderedKeys: Array<string | number>;
|
|
357
|
+
orderedItems: ForItemInstance<T>[];
|
|
358
|
+
orderedVNodes: VNode[];
|
|
359
|
+
fallbackScope: ChildScope | null;
|
|
360
|
+
lastCommitStrategy: ForCommitStrategy;
|
|
361
|
+
lastRemovedNodes: Node[];
|
|
362
|
+
lastRemovedRanges: DOMRange[];
|
|
363
|
+
pendingDirtyIndices: number[] | null;
|
|
364
|
+
pendingSwapIndices: [number, number] | null;
|
|
365
|
+
pendingMoveOnly: boolean;
|
|
366
|
+
pendingInsertedIndex: number | null;
|
|
367
|
+
pendingRemovedKey: string | number | null;
|
|
368
|
+
pendingAppendStart: number | null;
|
|
369
|
+
hasResolvedItemDom: boolean;
|
|
370
|
+
needsSourceReconcile: boolean;
|
|
371
|
+
devKeyKinds?: Map<string | number, 'number' | 'string'>;
|
|
372
|
+
itemSnapshots: Map<ForItemInstance<T>, ForItemTransactionSnapshot<T>> | null;
|
|
373
|
+
unreadIndexSnapshots: Map<ForIndexSignal, number> | null;
|
|
374
|
+
fallbackScopeSnapshot: ChildScopeTransactionSnapshot | null;
|
|
375
|
+
removedScopes: ChildScope[] | null;
|
|
376
|
+
removedScopeNodes: Node[] | null;
|
|
377
|
+
removeAllItems: boolean;
|
|
378
|
+
signalEffects: Map<ReadableSource<unknown>, {
|
|
379
|
+
parentInstance: ComponentInstance | null;
|
|
380
|
+
notify: boolean;
|
|
381
|
+
skipInstance: ComponentInstance | null;
|
|
382
|
+
skipOwnedBy: ComponentInstance | null;
|
|
383
|
+
}> | null;
|
|
384
|
+
shouldClearDomUpdateState: boolean;
|
|
385
|
+
}
|
|
386
|
+
//#endregion
|
|
387
|
+
//#region src/runtime/control.d.ts
|
|
388
|
+
interface MatchBranch {
|
|
389
|
+
key: string | number;
|
|
390
|
+
render: () => VNode;
|
|
391
|
+
when: unknown;
|
|
392
|
+
}
|
|
393
|
+
interface BranchControlStateBase {
|
|
394
|
+
activeKey: string | number | null;
|
|
395
|
+
activeScope: ChildScope | null;
|
|
396
|
+
activeVNodes: VNode[];
|
|
397
|
+
lastRemovedNodes: Node[];
|
|
398
|
+
lastRemovedRanges: DOMRange[];
|
|
399
|
+
parentInstance: ComponentInstance | null;
|
|
400
|
+
_enqueueBoundaryCommit?: (() => void) | null;
|
|
401
|
+
_hasPendingBoundaryCommit?: boolean;
|
|
402
|
+
_transaction?: ControlTransaction | null;
|
|
403
|
+
}
|
|
404
|
+
interface ShowState extends BranchControlStateBase {
|
|
405
|
+
kind: 'show';
|
|
406
|
+
fallbackScope: ChildScope | null;
|
|
407
|
+
renderFallback: (() => VNode) | null;
|
|
408
|
+
renderTruthy: ((value: unknown) => VNode) | (() => VNode);
|
|
409
|
+
selectedValue: unknown;
|
|
410
|
+
truthyScope: ChildScope | null;
|
|
411
|
+
}
|
|
412
|
+
interface CaseState extends BranchControlStateBase {
|
|
413
|
+
kind: 'case';
|
|
414
|
+
fallback: (() => VNode) | null;
|
|
415
|
+
matches: MatchBranch[];
|
|
416
|
+
}
|
|
417
|
+
type ControlBoundaryState = ForState<unknown> | ShowState | CaseState;
|
|
418
|
+
type BranchStateSnapshot = {
|
|
419
|
+
activeKey: string | number | null;
|
|
420
|
+
activeScope: ChildScope | null;
|
|
421
|
+
activeVNodes: VNode[];
|
|
422
|
+
lastRemovedNodes: Node[];
|
|
423
|
+
lastRemovedRanges: DOMRange[];
|
|
424
|
+
scopeSnapshots: Map<ChildScope, ChildScopeTransactionSnapshot>;
|
|
425
|
+
fallbackScope?: ChildScope | null;
|
|
426
|
+
truthyScope?: ChildScope | null;
|
|
427
|
+
};
|
|
428
|
+
interface ControlTransaction {
|
|
429
|
+
state: ShowState | CaseState;
|
|
430
|
+
snapshot: BranchStateSnapshot;
|
|
431
|
+
removedScopes: ChildScope[];
|
|
432
|
+
shouldClearDomUpdateState: boolean;
|
|
433
|
+
registered: boolean;
|
|
434
|
+
}
|
|
435
|
+
//#endregion
|
|
436
|
+
export { state as _, defineScope as a, RenderableChild as c, DocumentRenderContext as d, DocumentRenderer as f, StateTuple as g, StateSetter as h, Scope as i, VNode as l, State as m, ReadableSource as n, readScope as o, SSRData as p, ComponentInstance as r, ComponentFunction as s, ForEachSource as t, DocumentRenderArgs as u };
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { r as markEagerControlPrimitive, t as __CONTROL_BOUNDARY__ } from "./control-DhFRTIoE.js";
|
|
2
|
+
import { b as isDevelopmentEnvironment } from "./access-Bg4RJNC8.js";
|
|
3
|
+
import { n as Fragment } from "./jsx-CUpRxrLH.js";
|
|
4
|
+
import { m as createShowState, p as createCaseState, s as useForState } from "./for-internal-BKf_Tnv1.js";
|
|
5
|
+
import { t as createFineGrainedEffect } from "./effect-BwnIvLah.js";
|
|
6
|
+
import { t as state } from "./state-DPl8lffD.js";
|
|
7
|
+
//#region src/control/shared.ts
|
|
8
|
+
function normalizeBoundaryChild(value) {
|
|
9
|
+
if (Array.isArray(value)) {
|
|
10
|
+
if (value.length === 0) return null;
|
|
11
|
+
if (value.length === 1) return normalizeBoundaryChild(value[0]);
|
|
12
|
+
return {
|
|
13
|
+
type: Fragment,
|
|
14
|
+
props: { children: value }
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
return value ?? null;
|
|
18
|
+
}
|
|
19
|
+
function resolveMaybeAccessor(value) {
|
|
20
|
+
return typeof value === "function" ? value() : value;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/control/for.ts
|
|
24
|
+
/**
|
|
25
|
+
* For JSX primitive
|
|
26
|
+
*
|
|
27
|
+
* Creates a keyed child-scope boundary for efficient list rendering.
|
|
28
|
+
*/
|
|
29
|
+
function resolveEach(each) {
|
|
30
|
+
const resolved = typeof each === "function" ? each() : each;
|
|
31
|
+
if (!Array.isArray(resolved)) throw new Error("For each must resolve to an array.");
|
|
32
|
+
return resolved;
|
|
33
|
+
}
|
|
34
|
+
function resolveKeyFn(props) {
|
|
35
|
+
if ("by" in props && typeof props.by === "function") return props.by;
|
|
36
|
+
if ("byIndex" in props && props.byIndex === true) return (_item, index) => index;
|
|
37
|
+
throw new Error("[askr] <For> requires a stable `by` key function. Use `byIndex` only as an explicit positional escape hatch.");
|
|
38
|
+
}
|
|
39
|
+
function createForBoundary(props) {
|
|
40
|
+
if ("by" in props && typeof props.by === "function" && "byIndex" in props) throw new Error("[askr] <For> accepts either `by` or `byIndex`, not both.");
|
|
41
|
+
const byFn = resolveKeyFn(props);
|
|
42
|
+
const fallback = normalizeBoundaryChild(props.fallback);
|
|
43
|
+
const forState = useForState(props.each, byFn, props.children, fallback);
|
|
44
|
+
const computeItems = () => resolveEach(forState.eachSource);
|
|
45
|
+
if (!forState._sourceEffect) {
|
|
46
|
+
forState._suspendSourceCommit = true;
|
|
47
|
+
forState._sourceEffect = createFineGrainedEffect({
|
|
48
|
+
lane: "reactive",
|
|
49
|
+
compute: computeItems,
|
|
50
|
+
commit: (items) => {
|
|
51
|
+
forState.currentItems = items;
|
|
52
|
+
if (forState._suspendSourceCommit) return;
|
|
53
|
+
forState._needsSourceReconcile = true;
|
|
54
|
+
if (forState._enqueueBoundaryCommit) {
|
|
55
|
+
forState._enqueueBoundaryCommit();
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
forState.parentInstance?._enqueueRun?.();
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
forState._suspendSourceCommit = false;
|
|
62
|
+
} else {
|
|
63
|
+
forState._suspendSourceCommit = true;
|
|
64
|
+
forState._sourceEffect.updateCompute(computeItems);
|
|
65
|
+
forState._suspendSourceCommit = false;
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
type: __CONTROL_BOUNDARY__,
|
|
69
|
+
_controlState: forState,
|
|
70
|
+
_forState: forState
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function ForPrimitive(props) {
|
|
74
|
+
return createForBoundary(props);
|
|
75
|
+
}
|
|
76
|
+
const For = markEagerControlPrimitive(ForPrimitive);
|
|
77
|
+
//#endregion
|
|
78
|
+
//#region src/control/show.ts
|
|
79
|
+
function createTruthyRenderer(props) {
|
|
80
|
+
if (typeof props.children === "function") return (value) => normalizeBoundaryChild(props.children(value));
|
|
81
|
+
const staticChild = normalizeBoundaryChild(props.children);
|
|
82
|
+
return () => staticChild;
|
|
83
|
+
}
|
|
84
|
+
function createFallbackRenderer(fallback) {
|
|
85
|
+
const normalizedFallback = normalizeBoundaryChild(fallback);
|
|
86
|
+
if (normalizedFallback == null || normalizedFallback === false) return null;
|
|
87
|
+
return () => normalizedFallback;
|
|
88
|
+
}
|
|
89
|
+
function ShowPrimitive(props) {
|
|
90
|
+
const selectedValue = resolveMaybeAccessor(props.when);
|
|
91
|
+
const renderTruthy = createTruthyRenderer(props);
|
|
92
|
+
const renderFallback = createFallbackRenderer(props.fallback);
|
|
93
|
+
const showState = state(createShowState(selectedValue, renderTruthy, renderFallback))();
|
|
94
|
+
showState.selectedValue = selectedValue;
|
|
95
|
+
showState.renderTruthy = renderTruthy;
|
|
96
|
+
showState.renderFallback = renderFallback;
|
|
97
|
+
return {
|
|
98
|
+
type: __CONTROL_BOUNDARY__,
|
|
99
|
+
_controlState: showState
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const Show = markEagerControlPrimitive(ShowPrimitive);
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region src/control/case.ts
|
|
105
|
+
function flattenChildren(children) {
|
|
106
|
+
if (!Array.isArray(children)) return children == null || children === false ? [] : [children];
|
|
107
|
+
const result = [];
|
|
108
|
+
for (const child of children) {
|
|
109
|
+
if (Array.isArray(child)) {
|
|
110
|
+
result.push(...flattenChildren(child));
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
result.push(child);
|
|
114
|
+
}
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
function Match(_props) {
|
|
118
|
+
if (isDevelopmentEnvironment()) throw new Error("[askr] <Match> may only be used as a direct child of <Case>.");
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
function createCaseFallbackRenderer(fallback) {
|
|
122
|
+
const normalizedFallback = normalizeBoundaryChild(fallback);
|
|
123
|
+
if (normalizedFallback == null || normalizedFallback === false) return null;
|
|
124
|
+
return () => normalizedFallback;
|
|
125
|
+
}
|
|
126
|
+
function createMatchBranchKey(key, index) {
|
|
127
|
+
if (key == null) return index;
|
|
128
|
+
return `match:${index}:${typeof key}:${String(key)}`;
|
|
129
|
+
}
|
|
130
|
+
function readMatchBranches(children) {
|
|
131
|
+
const branches = [];
|
|
132
|
+
const flatChildren = flattenChildren(children);
|
|
133
|
+
for (let index = 0; index < flatChildren.length; index += 1) {
|
|
134
|
+
const child = flatChildren[index];
|
|
135
|
+
if (child == null || child === false) continue;
|
|
136
|
+
if (typeof child === "object" && child !== null && "type" in child && child.type === Match) {
|
|
137
|
+
const element = child;
|
|
138
|
+
const props = element.props ?? {};
|
|
139
|
+
const key = createMatchBranchKey(element.key, index);
|
|
140
|
+
const render = typeof props.children === "function" ? () => normalizeBoundaryChild(props.children()) : () => normalizeBoundaryChild(props.children);
|
|
141
|
+
branches.push({
|
|
142
|
+
key,
|
|
143
|
+
render,
|
|
144
|
+
when: props.when
|
|
145
|
+
});
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
if (isDevelopmentEnvironment()) throw new Error("[askr] <Case> only accepts <Match> children.");
|
|
149
|
+
}
|
|
150
|
+
return branches;
|
|
151
|
+
}
|
|
152
|
+
function CasePrimitive(props) {
|
|
153
|
+
const matches = readMatchBranches(props.children);
|
|
154
|
+
const fallback = createCaseFallbackRenderer(props.fallback);
|
|
155
|
+
const caseState = state(createCaseState(matches, fallback))();
|
|
156
|
+
caseState.matches = matches;
|
|
157
|
+
caseState.fallback = fallback;
|
|
158
|
+
return {
|
|
159
|
+
type: __CONTROL_BOUNDARY__,
|
|
160
|
+
_controlState: caseState
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
const Case = markEagerControlPrimitive(CasePrimitive);
|
|
164
|
+
//#endregion
|
|
165
|
+
export { For as i, Match as n, Show as r, Case as t };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { s as Props } from "./jsx-CP0gmYwJ.js";
|
|
2
|
+
|
|
3
|
+
//#region src/common/control.d.ts
|
|
4
|
+
declare const EAGER_CONTROL_PRIMITIVE: unique symbol;
|
|
5
|
+
type EagerControlPrimitive<P extends Props = Props> = ((props: P) => unknown) & {
|
|
6
|
+
[EAGER_CONTROL_PRIMITIVE]?: true;
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { EagerControlPrimitive as t };
|
|
@@ -9,4 +9,4 @@ function isEagerControlPrimitive(value) {
|
|
|
9
9
|
return typeof value === "function" && Boolean(value[EAGER_CONTROL_PRIMITIVE]);
|
|
10
10
|
}
|
|
11
11
|
//#endregion
|
|
12
|
-
export {
|
|
12
|
+
export { isEagerControlPrimitive as n, markEagerControlPrimitive as r, __CONTROL_BOUNDARY__ as t };
|
package/dist/data/index.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { createQuery } from "./query-cell.js";
|
|
4
|
-
import { createDataRuntime, getDefaultDataRuntime } from "./data-runtime.js";
|
|
5
|
-
import { invalidate, invalidateOnInterval, queryScope } from "./invalidation.js";
|
|
6
|
-
export { type DataRuntime, type DataRuntimeOptions, type InvalidateOnIntervalOptions, type InvalidateOptions, type Mutation, type Query, type QueryConsistency, type QueryKeyPart, type QueryScope, type QueryStaleReason, createDataRuntime, createMutation, createQuery, getDefaultDataRuntime, invalidate, invalidateOnInterval, queryScope };
|
|
1
|
+
import { A as ServerQueryHandler, C as Query, D as QueryPrefetchContext, E as QueryKeyPart, O as QueryScope, S as Mutation, T as QueryDefinition, _ as createMutation, a as defineServerQueries, b as InvalidateOnIntervalOptions, c as prefetchQuery, d as invalidate, f as invalidateOnInterval, g as createQuery, h as getDefaultDataRuntime, i as defineQuery, k as QueryStaleReason, l as serveQuery, m as createDataRuntime, n as ServerQueryRegistry, o as dehydrateDataRuntime, p as queryScope, r as createQueryPrefetchContext, s as hydrateDataRuntime, t as ServerQueryEntry, v as DataRuntime, w as QueryConsistency, x as InvalidateOptions, y as DataRuntimeOptions } from "../index-Bki2rqcr.js";
|
|
2
|
+
export { type DataRuntime, type DataRuntimeOptions, type InvalidateOnIntervalOptions, type InvalidateOptions, type Mutation, type Query, type QueryConsistency, type QueryDefinition, type QueryKeyPart, type QueryPrefetchContext, type QueryScope, type QueryStaleReason, type ServerQueryEntry, type ServerQueryHandler, type ServerQueryRegistry, createDataRuntime, createMutation, createQuery, createQueryPrefetchContext, defineQuery, defineServerQueries, dehydrateDataRuntime, getDefaultDataRuntime, hydrateDataRuntime, invalidate, invalidateOnInterval, prefetchQuery, queryScope, serveQuery };
|
package/dist/data/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
export { createDataRuntime, createMutation, createQuery, getDefaultDataRuntime, invalidate, invalidateOnInterval, queryScope };
|
|
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-DnxnDxD-.js";
|
|
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
|
+
export { createDataRuntime, createMutation, createQuery, createQueryPrefetchContext, defineQuery, defineServerQueries, dehydrateDataRuntime, getDefaultDataRuntime, hydrateDataRuntime, invalidate, invalidateOnInterval, prefetchQuery, queryScope, serveQuery };
|