@askrjs/askr 0.0.51 → 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} +190 -20
- 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 -3
- package/dist/benchmark.d.ts +7 -4
- package/dist/benchmark.js +63 -13
- package/dist/boot/index.d.ts +62 -4
- package/dist/boot/index.js +1 -194
- 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} +35 -9
- 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 -2
- 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 -3
- 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} +35 -36
- package/dist/deferred-lKE8uR0z.js +386 -0
- package/dist/effect-BwnIvLah.js +260 -0
- 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 -9
- package/dist/index-SJXJkssx.d.ts +44 -0
- package/dist/index.d.ts +8 -13
- package/dist/index.js +150 -17
- package/dist/interactions-w7gQN4ha.js +280 -0
- package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -3
- package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -6
- package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -3
- package/dist/jsx-dev-runtime.d.ts +17 -5
- package/dist/jsx-dev-runtime.js +3 -10
- package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
- package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
- package/dist/jsx-runtime.d.ts +3 -22
- package/dist/jsx-runtime.js +17 -20
- package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-D9va7GOU.js} +9 -11
- package/dist/navigate-BVDCzOuB.d.ts +34 -0
- package/dist/navigate-CmPLSXyw.js +1449 -0
- package/dist/{runtime/portal.js → portal-CyU3Ucf2.js} +124 -35
- package/dist/query-registry-CQIT4mXr.js +73 -0
- package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -8
- package/dist/renderer-DzPjeLby.js +6197 -0
- package/dist/resource-operation-CEzfpnDk.js +276 -0
- 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 -3
- 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 -29
- package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -3
- package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -4
- package/dist/{runtime/selector.js → selector-DafVYzV4.js} +35 -20
- package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -3
- 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 -3
- package/dist/ssr-D3t80Rc0.js +1413 -0
- package/dist/{runtime/state.js → state-DPl8lffD.js} +4 -8
- package/dist/structures-DUB3HchX.js +221 -0
- package/dist/testing/index.d.ts +4 -4
- package/dist/testing/index.js +2 -7
- package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -6
- package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -3
- package/dist/{ssr/verify-hydration.js → verify-hydration-io9ahUeq.js} +2 -4
- package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -4
- package/package.json +63 -45
- package/dist/bench/components/benchmark-row.d.ts +0 -20
- package/dist/bench/components/benchmark-row.d.ts.map +0 -1
- package/dist/bench/components/benchmark-row.js +0 -42
- package/dist/bench/components/benchmark-row.js.map +0 -1
- package/dist/bench/components/benchmark-table.js +0 -25
- package/dist/bench/components/benchmark-table.js.map +0 -1
- package/dist/benchmark.d.ts.map +0 -1
- package/dist/benchmark.js.map +0 -1
- package/dist/bin/askr-ssg.d.ts +0 -28
- package/dist/bin/askr-ssg.d.ts.map +0 -1
- package/dist/bin/askr-ssg.js +0 -171
- package/dist/bin/askr-ssg.js.map +0 -1
- package/dist/boot/hydration.js +0 -140
- package/dist/boot/hydration.js.map +0 -1
- package/dist/boot/index.d.ts.map +0 -1
- package/dist/boot/index.js.map +0 -1
- package/dist/boot/root-lifecycle.d.ts +0 -15
- package/dist/boot/root-lifecycle.d.ts.map +0 -1
- package/dist/boot/root-lifecycle.js +0 -205
- package/dist/boot/root-lifecycle.js.map +0 -1
- package/dist/boot/route-startup.js +0 -45
- package/dist/boot/route-startup.js.map +0 -1
- package/dist/boot/types.d.ts +0 -62
- package/dist/boot/types.d.ts.map +0 -1
- package/dist/common/attr-names.js.map +0 -1
- package/dist/common/component.d.ts +0 -19
- package/dist/common/component.d.ts.map +0 -1
- package/dist/common/control.d.ts +0 -13
- package/dist/common/control.d.ts.map +0 -1
- package/dist/common/control.js.map +0 -1
- package/dist/common/env.js +0 -47
- package/dist/common/env.js.map +0 -1
- package/dist/common/error-boundary.d.ts +0 -16
- package/dist/common/error-boundary.d.ts.map +0 -1
- package/dist/common/invariant.js +0 -17
- package/dist/common/invariant.js.map +0 -1
- package/dist/common/jsx.d.ts +0 -23
- package/dist/common/jsx.d.ts.map +0 -1
- package/dist/common/jsx.js.map +0 -1
- package/dist/common/logger.js +0 -36
- package/dist/common/logger.js.map +0 -1
- package/dist/common/promise.js +0 -8
- package/dist/common/promise.js.map +0 -1
- package/dist/common/props.d.ts.map +0 -1
- package/dist/common/render-context.js.map +0 -1
- package/dist/common/route-activity.js.map +0 -1
- package/dist/common/router-internal.js.map +0 -1
- package/dist/common/router.d.ts.map +0 -1
- package/dist/common/ssr-errors.d.ts +0 -11
- package/dist/common/ssr-errors.d.ts.map +0 -1
- package/dist/common/ssr-errors.js +0 -16
- package/dist/common/ssr-errors.js.map +0 -1
- package/dist/common/ssr.d.ts +0 -42
- package/dist/common/ssr.d.ts.map +0 -1
- package/dist/common/ssr.js.map +0 -1
- package/dist/common/vnode.d.ts +0 -22
- package/dist/common/vnode.d.ts.map +0 -1
- package/dist/common/vnode.js.map +0 -1
- package/dist/components/error-boundary.d.ts +0 -15
- package/dist/components/error-boundary.d.ts.map +0 -1
- package/dist/components/error-boundary.js +0 -43
- package/dist/components/error-boundary.js.map +0 -1
- package/dist/components/link.d.ts +0 -68
- package/dist/components/link.d.ts.map +0 -1
- package/dist/components/link.js +0 -76
- package/dist/components/link.js.map +0 -1
- package/dist/control/case.d.ts +0 -19
- package/dist/control/case.d.ts.map +0 -1
- package/dist/control/case.js +0 -70
- package/dist/control/case.js.map +0 -1
- package/dist/control/for.d.ts +0 -24
- package/dist/control/for.d.ts.map +0 -1
- package/dist/control/for.js +0 -63
- package/dist/control/for.js.map +0 -1
- package/dist/control/shared.d.ts +0 -9
- package/dist/control/shared.d.ts.map +0 -1
- package/dist/control/shared.js +0 -20
- package/dist/control/shared.js.map +0 -1
- package/dist/control/show.d.ts +0 -15
- package/dist/control/show.d.ts.map +0 -1
- package/dist/control/show.js +0 -34
- package/dist/control/show.js.map +0 -1
- package/dist/data/data-runtime.d.ts +0 -28
- package/dist/data/data-runtime.d.ts.map +0 -1
- package/dist/data/data-runtime.js.map +0 -1
- package/dist/data/invalidation-listeners.js.map +0 -1
- package/dist/data/invalidation.d.ts +0 -9
- package/dist/data/invalidation.d.ts.map +0 -1
- package/dist/data/invalidation.js +0 -27
- package/dist/data/invalidation.js.map +0 -1
- package/dist/data/mutation-cell.d.ts +0 -28
- package/dist/data/mutation-cell.d.ts.map +0 -1
- package/dist/data/mutation-cell.js +0 -132
- package/dist/data/mutation-cell.js.map +0 -1
- package/dist/data/query-cell.d.ts +0 -46
- package/dist/data/query-cell.d.ts.map +0 -1
- package/dist/data/query-cell.js +0 -290
- package/dist/data/query-cell.js.map +0 -1
- package/dist/data/query-key.js +0 -42
- package/dist/data/query-key.js.map +0 -1
- package/dist/data/shared.js +0 -21
- package/dist/data/shared.js.map +0 -1
- package/dist/data/testing.js +0 -2
- package/dist/data/types.d.ts +0 -161
- package/dist/data/types.d.ts.map +0 -1
- package/dist/foundations/icon/icon.d.ts +0 -53
- package/dist/foundations/icon/icon.d.ts.map +0 -1
- package/dist/foundations/icon/icon.js +0 -88
- package/dist/foundations/icon/icon.js.map +0 -1
- package/dist/foundations/icon/icon.types.d.ts +0 -22
- package/dist/foundations/icon/icon.types.d.ts.map +0 -1
- package/dist/foundations/interactions/dismissable.d.ts +0 -72
- package/dist/foundations/interactions/dismissable.d.ts.map +0 -1
- package/dist/foundations/interactions/dismissable.js +0 -26
- package/dist/foundations/interactions/dismissable.js.map +0 -1
- package/dist/foundations/interactions/focusable.d.ts +0 -22
- package/dist/foundations/interactions/focusable.d.ts.map +0 -1
- package/dist/foundations/interactions/focusable.js +0 -18
- package/dist/foundations/interactions/focusable.js.map +0 -1
- package/dist/foundations/interactions/hoverable.d.ts +0 -26
- package/dist/foundations/interactions/hoverable.d.ts.map +0 -1
- package/dist/foundations/interactions/hoverable.js +0 -15
- package/dist/foundations/interactions/hoverable.js.map +0 -1
- package/dist/foundations/interactions/interaction-policy.d.ts +0 -50
- package/dist/foundations/interactions/interaction-policy.d.ts.map +0 -1
- package/dist/foundations/interactions/interaction-policy.js +0 -122
- package/dist/foundations/interactions/interaction-policy.js.map +0 -1
- package/dist/foundations/interactions/pressable.d.ts +0 -61
- package/dist/foundations/interactions/pressable.d.ts.map +0 -1
- package/dist/foundations/interactions/pressable.js +0 -51
- package/dist/foundations/interactions/pressable.js.map +0 -1
- package/dist/foundations/interactions/roving-focus.d.ts +0 -52
- package/dist/foundations/interactions/roving-focus.d.ts.map +0 -1
- package/dist/foundations/interactions/roving-focus.js +0 -71
- package/dist/foundations/interactions/roving-focus.js.map +0 -1
- package/dist/foundations/state/controllable.d.ts +0 -33
- package/dist/foundations/state/controllable.d.ts.map +0 -1
- package/dist/foundations/state/controllable.js +0 -82
- package/dist/foundations/state/controllable.js.map +0 -1
- package/dist/foundations/structures/collection.d.ts +0 -52
- package/dist/foundations/structures/collection.d.ts.map +0 -1
- package/dist/foundations/structures/collection.js +0 -51
- package/dist/foundations/structures/collection.js.map +0 -1
- package/dist/foundations/structures/layer.d.ts +0 -81
- package/dist/foundations/structures/layer.d.ts.map +0 -1
- package/dist/foundations/structures/layer.js +0 -81
- package/dist/foundations/structures/layer.js.map +0 -1
- package/dist/foundations/structures/layout.d.ts +0 -33
- package/dist/foundations/structures/layout.d.ts.map +0 -1
- package/dist/foundations/structures/layout.js +0 -13
- package/dist/foundations/structures/layout.js.map +0 -1
- 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 -37
- package/dist/foundations/structures/presence.d.ts.map +0 -1
- package/dist/foundations/structures/presence.js +0 -39
- package/dist/foundations/structures/presence.js.map +0 -1
- package/dist/foundations/structures/slot.d.ts +0 -35
- package/dist/foundations/structures/slot.d.ts.map +0 -1
- package/dist/foundations/structures/slot.js +0 -41
- package/dist/foundations/structures/slot.js.map +0 -1
- package/dist/foundations/utilities/aria.d.ts +0 -16
- package/dist/foundations/utilities/aria.d.ts.map +0 -1
- package/dist/foundations/utilities/aria.js +0 -17
- package/dist/foundations/utilities/aria.js.map +0 -1
- package/dist/foundations/utilities/compose-handlers.d.ts +0 -37
- package/dist/foundations/utilities/compose-handlers.d.ts.map +0 -1
- package/dist/foundations/utilities/compose-handlers.js +0 -20
- package/dist/foundations/utilities/compose-handlers.js.map +0 -1
- package/dist/foundations/utilities/compose-ref.d.ts.map +0 -1
- package/dist/foundations/utilities/compose-ref.js +0 -18
- package/dist/foundations/utilities/compose-ref.js.map +0 -1
- package/dist/foundations/utilities/event-types.d.ts +0 -20
- package/dist/foundations/utilities/event-types.d.ts.map +0 -1
- package/dist/foundations/utilities/merge-props.d.ts +0 -5
- package/dist/foundations/utilities/merge-props.d.ts.map +0 -1
- package/dist/foundations/utilities/merge-props.js +0 -49
- package/dist/foundations/utilities/merge-props.js.map +0 -1
- package/dist/foundations/utilities/use-id.d.ts +0 -32
- package/dist/foundations/utilities/use-id.d.ts.map +0 -1
- package/dist/foundations/utilities/use-id.js.map +0 -1
- package/dist/fx/fx.d.ts +0 -33
- package/dist/fx/fx.d.ts.map +0 -1
- package/dist/fx/fx.js +0 -213
- package/dist/fx/fx.js.map +0 -1
- package/dist/fx/noop.js +0 -9
- package/dist/fx/noop.js.map +0 -1
- package/dist/fx/timing.d.ts +0 -159
- package/dist/fx/timing.d.ts.map +0 -1
- package/dist/fx/timing.js +0 -243
- package/dist/fx/timing.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/jsx/index.d.ts +0 -2
- package/dist/jsx/index.js +0 -4
- package/dist/jsx/types.d.ts.map +0 -1
- package/dist/jsx/types.js +0 -2
- package/dist/jsx/utils.d.ts +0 -5
- package/dist/jsx/utils.d.ts.map +0 -1
- package/dist/jsx/utils.js +0 -19
- package/dist/jsx/utils.js.map +0 -1
- package/dist/jsx-dev-runtime.d.ts.map +0 -1
- package/dist/jsx-dev-runtime.js.map +0 -1
- package/dist/jsx-runtime.d.ts.map +0 -1
- package/dist/jsx-runtime.js.map +0 -1
- package/dist/jsx-runtime2.d.ts +0 -3
- package/dist/jsx-runtime2.js +0 -4
- package/dist/renderer/attributes.js +0 -232
- package/dist/renderer/attributes.js.map +0 -1
- package/dist/renderer/boundaries.js +0 -266
- package/dist/renderer/boundaries.js.map +0 -1
- package/dist/renderer/child-shape.js +0 -85
- package/dist/renderer/child-shape.js.map +0 -1
- package/dist/renderer/children-fastpath.js +0 -149
- package/dist/renderer/children-fastpath.js.map +0 -1
- package/dist/renderer/children.js +0 -160
- package/dist/renderer/children.js.map +0 -1
- package/dist/renderer/cleanup.js +0 -210
- package/dist/renderer/cleanup.js.map +0 -1
- package/dist/renderer/component-host-cleanup.js +0 -68
- package/dist/renderer/component-host-cleanup.js.map +0 -1
- package/dist/renderer/component-host-instances.js +0 -65
- package/dist/renderer/component-host-instances.js.map +0 -1
- package/dist/renderer/component-host.js +0 -247
- package/dist/renderer/component-host.js.map +0 -1
- package/dist/renderer/dom-host.js +0 -13
- package/dist/renderer/dom-host.js.map +0 -1
- package/dist/renderer/dom-internal.js +0 -186
- package/dist/renderer/dom-internal.js.map +0 -1
- package/dist/renderer/dom.js +0 -10
- package/dist/renderer/element-children.js +0 -279
- package/dist/renderer/element-children.js.map +0 -1
- package/dist/renderer/env.js +0 -2
- package/dist/renderer/error-boundary-dom.js +0 -78
- package/dist/renderer/error-boundary-dom.js.map +0 -1
- package/dist/renderer/evaluate-dom-range.js +0 -85
- package/dist/renderer/evaluate-dom-range.js.map +0 -1
- package/dist/renderer/evaluate-reconcile.js +0 -282
- package/dist/renderer/evaluate-reconcile.js.map +0 -1
- package/dist/renderer/evaluate.js +0 -84
- package/dist/renderer/evaluate.js.map +0 -1
- package/dist/renderer/fastpath.js +0 -150
- package/dist/renderer/fastpath.js.map +0 -1
- package/dist/renderer/for-commit-dom-map.js +0 -83
- package/dist/renderer/for-commit-dom-map.js.map +0 -1
- package/dist/renderer/for-commit-removal.js +0 -36
- package/dist/renderer/for-commit-removal.js.map +0 -1
- package/dist/renderer/for-commit-reorder.js +0 -89
- package/dist/renderer/for-commit-reorder.js.map +0 -1
- package/dist/renderer/for-commit.js +0 -314
- package/dist/renderer/for-commit.js.map +0 -1
- package/dist/renderer/index.js +0 -38
- package/dist/renderer/index.js.map +0 -1
- package/dist/renderer/keyed-children.js +0 -32
- package/dist/renderer/keyed-children.js.map +0 -1
- package/dist/renderer/keyed.js +0 -167
- package/dist/renderer/keyed.js.map +0 -1
- package/dist/renderer/namespaces.js +0 -23
- package/dist/renderer/namespaces.js.map +0 -1
- package/dist/renderer/prop-bindings.js +0 -280
- package/dist/renderer/prop-bindings.js.map +0 -1
- package/dist/renderer/reactive-child-dom.js +0 -133
- package/dist/renderer/reactive-child-dom.js.map +0 -1
- package/dist/renderer/reactive-child-sources.js +0 -184
- package/dist/renderer/reactive-child-sources.js.map +0 -1
- package/dist/renderer/reactive-children.js +0 -294
- package/dist/renderer/reactive-children.js.map +0 -1
- package/dist/renderer/reconcile-commit.js +0 -38
- package/dist/renderer/reconcile-commit.js.map +0 -1
- package/dist/renderer/reconcile-fastpaths.js +0 -107
- package/dist/renderer/reconcile-fastpaths.js.map +0 -1
- package/dist/renderer/reconcile-resolution.js +0 -187
- package/dist/renderer/reconcile-resolution.js.map +0 -1
- package/dist/renderer/reconcile.js +0 -39
- package/dist/renderer/reconcile.js.map +0 -1
- package/dist/renderer/retained-element-rollback.js +0 -277
- package/dist/renderer/retained-element-rollback.js.map +0 -1
- package/dist/renderer/stable-patch.js +0 -81
- package/dist/renderer/stable-patch.js.map +0 -1
- package/dist/renderer/static-reuse.js +0 -96
- package/dist/renderer/static-reuse.js.map +0 -1
- package/dist/renderer/types.js +0 -2
- package/dist/renderer/utils.js +0 -256
- package/dist/renderer/utils.js.map +0 -1
- package/dist/router/access.js +0 -36
- package/dist/router/access.js.map +0 -1
- package/dist/router/activity.d.ts +0 -10
- package/dist/router/activity.d.ts.map +0 -1
- package/dist/router/activity.js +0 -87
- package/dist/router/activity.js.map +0 -1
- package/dist/router/authoring.d.ts +0 -22
- package/dist/router/authoring.d.ts.map +0 -1
- package/dist/router/authoring.js +0 -198
- package/dist/router/authoring.js.map +0 -1
- package/dist/router/internal-types.d.ts +0 -31
- package/dist/router/internal-types.d.ts.map +0 -1
- package/dist/router/lazy.d.ts +0 -19
- package/dist/router/lazy.d.ts.map +0 -1
- package/dist/router/lazy.js +0 -52
- package/dist/router/lazy.js.map +0 -1
- package/dist/router/manifest.d.ts +0 -10
- package/dist/router/manifest.d.ts.map +0 -1
- package/dist/router/manifest.js +0 -49
- package/dist/router/manifest.js.map +0 -1
- package/dist/router/match.js +0 -122
- package/dist/router/match.js.map +0 -1
- package/dist/router/navigate.d.ts +0 -11
- package/dist/router/navigate.d.ts.map +0 -1
- package/dist/router/navigate.js +0 -76
- package/dist/router/navigate.js.map +0 -1
- package/dist/router/navigation-registry.d.ts +0 -32
- package/dist/router/navigation-registry.d.ts.map +0 -1
- package/dist/router/navigation-registry.js +0 -105
- package/dist/router/navigation-registry.js.map +0 -1
- package/dist/router/navigation-scroll.d.ts +0 -14
- package/dist/router/navigation-scroll.d.ts.map +0 -1
- package/dist/router/navigation-scroll.js +0 -93
- package/dist/router/navigation-scroll.js.map +0 -1
- package/dist/router/navigation-targets.d.ts +0 -31
- package/dist/router/navigation-targets.d.ts.map +0 -1
- package/dist/router/navigation-targets.js +0 -255
- package/dist/router/navigation-targets.js.map +0 -1
- package/dist/router/policy.d.ts +0 -28
- package/dist/router/policy.d.ts.map +0 -1
- package/dist/router/policy.js +0 -132
- package/dist/router/policy.js.map +0 -1
- package/dist/router/rendering.d.ts +0 -10
- package/dist/router/rendering.d.ts.map +0 -1
- package/dist/router/rendering.js +0 -46
- package/dist/router/rendering.js.map +0 -1
- package/dist/router/resolution.d.ts +0 -4
- package/dist/router/resolution.d.ts.map +0 -1
- package/dist/router/resolution.js +0 -86
- package/dist/router/resolution.js.map +0 -1
- package/dist/router/route-context.js +0 -79
- package/dist/router/route-context.js.map +0 -1
- package/dist/router/route-matching.d.ts +0 -20
- package/dist/router/route-matching.d.ts.map +0 -1
- package/dist/router/route-matching.js +0 -175
- package/dist/router/route-matching.js.map +0 -1
- package/dist/router/route-query.d.ts +0 -17
- package/dist/router/route-query.d.ts.map +0 -1
- package/dist/router/route-query.js +0 -47
- package/dist/router/route-query.js.map +0 -1
- package/dist/router/route.d.ts +0 -8
- package/dist/router/route.js +0 -10
- package/dist/router/store.d.ts +0 -50
- package/dist/router/store.d.ts.map +0 -1
- package/dist/router/store.js +0 -171
- package/dist/router/store.js.map +0 -1
- package/dist/router/testing.js +0 -4
- package/dist/runtime/access.d.ts +0 -20
- package/dist/runtime/access.d.ts.map +0 -1
- package/dist/runtime/access.js +0 -45
- package/dist/runtime/access.js.map +0 -1
- package/dist/runtime/child-scope.d.ts +0 -22
- package/dist/runtime/child-scope.d.ts.map +0 -1
- package/dist/runtime/child-scope.js +0 -87
- package/dist/runtime/child-scope.js.map +0 -1
- package/dist/runtime/component-cleanup.d.ts +0 -16
- package/dist/runtime/component-cleanup.d.ts.map +0 -1
- package/dist/runtime/component-cleanup.js +0 -70
- package/dist/runtime/component-cleanup.js.map +0 -1
- package/dist/runtime/component-commit.js +0 -165
- package/dist/runtime/component-commit.js.map +0 -1
- package/dist/runtime/component-facade.d.ts +0 -5
- package/dist/runtime/component-facade.js +0 -4
- package/dist/runtime/component-internal.d.ts +0 -100
- package/dist/runtime/component-internal.d.ts.map +0 -1
- package/dist/runtime/component-internal.js +0 -219
- package/dist/runtime/component-internal.js.map +0 -1
- package/dist/runtime/component-lifecycle.d.ts +0 -49
- package/dist/runtime/component-lifecycle.d.ts.map +0 -1
- package/dist/runtime/component-lifecycle.js +0 -176
- package/dist/runtime/component-lifecycle.js.map +0 -1
- package/dist/runtime/component-scope.d.ts +0 -55
- package/dist/runtime/component-scope.d.ts.map +0 -1
- package/dist/runtime/component-scope.js.map +0 -1
- package/dist/runtime/component.d.ts +0 -5
- package/dist/runtime/component.js +0 -5
- package/dist/runtime/context.d.ts +0 -69
- package/dist/runtime/context.d.ts.map +0 -1
- package/dist/runtime/context.js +0 -210
- package/dist/runtime/context.js.map +0 -1
- package/dist/runtime/control.d.ts +0 -43
- package/dist/runtime/control.d.ts.map +0 -1
- package/dist/runtime/control.js +0 -126
- package/dist/runtime/control.js.map +0 -1
- package/dist/runtime/derive.d.ts +0 -17
- package/dist/runtime/derive.d.ts.map +0 -1
- package/dist/runtime/derive.js +0 -142
- package/dist/runtime/derive.js.map +0 -1
- package/dist/runtime/dev-namespace.d.ts +0 -31
- package/dist/runtime/dev-namespace.d.ts.map +0 -1
- package/dist/runtime/dev-namespace.js +0 -57
- package/dist/runtime/dev-namespace.js.map +0 -1
- package/dist/runtime/effect.d.ts +0 -32
- package/dist/runtime/effect.d.ts.map +0 -1
- package/dist/runtime/effect.js +0 -177
- package/dist/runtime/effect.js.map +0 -1
- package/dist/runtime/error-boundary.d.ts +0 -5
- package/dist/runtime/error-boundary.d.ts.map +0 -1
- package/dist/runtime/error-boundary.js +0 -31
- package/dist/runtime/error-boundary.js.map +0 -1
- package/dist/runtime/events.d.ts +0 -58
- package/dist/runtime/events.d.ts.map +0 -1
- package/dist/runtime/events.js +0 -204
- package/dist/runtime/events.js.map +0 -1
- package/dist/runtime/execution-model.d.ts +0 -7
- package/dist/runtime/execution-model.d.ts.map +0 -1
- package/dist/runtime/execution-model.js +0 -15
- package/dist/runtime/execution-model.js.map +0 -1
- package/dist/runtime/fastlane.d.ts +0 -34
- package/dist/runtime/fastlane.d.ts.map +0 -1
- package/dist/runtime/fastlane.js +0 -175
- package/dist/runtime/fastlane.js.map +0 -1
- package/dist/runtime/for-bench.d.ts +0 -41
- package/dist/runtime/for-bench.d.ts.map +0 -1
- package/dist/runtime/for-bench.js +0 -171
- package/dist/runtime/for-bench.js.map +0 -1
- package/dist/runtime/for-internal.d.ts +0 -43
- package/dist/runtime/for-internal.d.ts.map +0 -1
- package/dist/runtime/for-internal.js +0 -98
- package/dist/runtime/for-internal.js.map +0 -1
- package/dist/runtime/for-reconcile.d.ts +0 -8
- package/dist/runtime/for-reconcile.d.ts.map +0 -1
- package/dist/runtime/for-reconcile.js +0 -389
- package/dist/runtime/for-reconcile.js.map +0 -1
- package/dist/runtime/for-scopes.d.ts +0 -26
- package/dist/runtime/for-scopes.d.ts.map +0 -1
- package/dist/runtime/for-scopes.js +0 -160
- package/dist/runtime/for-scopes.js.map +0 -1
- package/dist/runtime/for-signals.d.ts +0 -30
- package/dist/runtime/for-signals.d.ts.map +0 -1
- package/dist/runtime/for-signals.js +0 -139
- package/dist/runtime/for-signals.js.map +0 -1
- package/dist/runtime/for-types.d.ts +0 -9
- package/dist/runtime/for-types.d.ts.map +0 -1
- 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 -31
- package/dist/runtime/lifecycle-operations.d.ts +0 -31
- package/dist/runtime/lifecycle-operations.d.ts.map +0 -1
- package/dist/runtime/lifecycle-operations.js.map +0 -1
- package/dist/runtime/operations.d.ts +0 -3
- package/dist/runtime/operations.js +0 -3
- package/dist/runtime/perf-metrics.d.ts +0 -26
- package/dist/runtime/perf-metrics.d.ts.map +0 -1
- package/dist/runtime/perf-metrics.js +0 -70
- package/dist/runtime/perf-metrics.js.map +0 -1
- package/dist/runtime/portal.d.ts +0 -22
- package/dist/runtime/portal.d.ts.map +0 -1
- package/dist/runtime/portal.js.map +0 -1
- package/dist/runtime/readable.d.ts +0 -29
- package/dist/runtime/readable.d.ts.map +0 -1
- package/dist/runtime/readable.js +0 -159
- package/dist/runtime/readable.js.map +0 -1
- package/dist/runtime/resource-cell.js +0 -114
- package/dist/runtime/resource-cell.js.map +0 -1
- package/dist/runtime/resource-operation.d.ts +0 -13
- package/dist/runtime/resource-operation.d.ts.map +0 -1
- package/dist/runtime/resource-operation.js +0 -170
- package/dist/runtime/resource-operation.js.map +0 -1
- package/dist/runtime/runtime.d.ts.map +0 -1
- package/dist/runtime/runtime.js +0 -59
- package/dist/runtime/runtime.js.map +0 -1
- package/dist/runtime/scheduler.d.ts.map +0 -1
- package/dist/runtime/scheduler.js.map +0 -1
- package/dist/runtime/selector-store.js +0 -24
- package/dist/runtime/selector-store.js.map +0 -1
- package/dist/runtime/selector.d.ts +0 -11
- package/dist/runtime/selector.d.ts.map +0 -1
- package/dist/runtime/selector.js.map +0 -1
- package/dist/runtime/snapshot-source.d.ts +0 -10
- package/dist/runtime/snapshot-source.d.ts.map +0 -1
- package/dist/runtime/snapshot-source.js.map +0 -1
- package/dist/runtime/state.d.ts +0 -55
- package/dist/runtime/state.d.ts.map +0 -1
- package/dist/runtime/state.js.map +0 -1
- package/dist/ssg/batch-render.js +0 -103
- package/dist/ssg/batch-render.js.map +0 -1
- package/dist/ssg/create-static-gen.d.ts +0 -64
- package/dist/ssg/create-static-gen.d.ts.map +0 -1
- package/dist/ssg/create-static-gen.js +0 -199
- package/dist/ssg/create-static-gen.js.map +0 -1
- package/dist/ssg/generate-metadata.js +0 -94
- package/dist/ssg/generate-metadata.js.map +0 -1
- package/dist/ssg/generation-plan.js +0 -70
- package/dist/ssg/generation-plan.js.map +0 -1
- package/dist/ssg/incremental-manifest.js +0 -56
- package/dist/ssg/incremental-manifest.js.map +0 -1
- package/dist/ssg/resolve-ssg-data.js +0 -105
- package/dist/ssg/resolve-ssg-data.js.map +0 -1
- package/dist/ssg/route-utils.js +0 -24
- package/dist/ssg/route-utils.js.map +0 -1
- package/dist/ssg/static-routes.js +0 -102
- package/dist/ssg/static-routes.js.map +0 -1
- package/dist/ssg/types.d.ts +0 -189
- package/dist/ssg/types.d.ts.map +0 -1
- package/dist/ssg/write-static-files.js +0 -73
- package/dist/ssg/write-static-files.js.map +0 -1
- package/dist/ssr/attrs.js +0 -94
- package/dist/ssr/attrs.js.map +0 -1
- package/dist/ssr/boundaries.js +0 -113
- package/dist/ssr/boundaries.js.map +0 -1
- package/dist/ssr/component-runtime.js +0 -111
- package/dist/ssr/component-runtime.js.map +0 -1
- package/dist/ssr/context.d.ts +0 -50
- package/dist/ssr/context.d.ts.map +0 -1
- package/dist/ssr/context.js +0 -91
- package/dist/ssr/context.js.map +0 -1
- package/dist/ssr/errors.d.ts +0 -10
- package/dist/ssr/errors.d.ts.map +0 -1
- package/dist/ssr/errors.js +0 -14
- package/dist/ssr/errors.js.map +0 -1
- package/dist/ssr/escape.js +0 -193
- package/dist/ssr/escape.js.map +0 -1
- package/dist/ssr/hydration-data.js +0 -10
- package/dist/ssr/hydration-data.js.map +0 -1
- package/dist/ssr/hydration-verify.d.ts +0 -12
- package/dist/ssr/hydration-verify.d.ts.map +0 -1
- package/dist/ssr/hydration-verify.js +0 -144
- package/dist/ssr/hydration-verify.js.map +0 -1
- package/dist/ssr/index-internal.d.ts +0 -15
- package/dist/ssr/index-internal.d.ts.map +0 -1
- package/dist/ssr/index-internal.js +0 -19
- package/dist/ssr/index-internal.js.map +0 -1
- package/dist/ssr/render-keys.js +0 -16
- package/dist/ssr/render-keys.js.map +0 -1
- package/dist/ssr/render-resolved.d.ts +0 -20
- package/dist/ssr/render-resolved.d.ts.map +0 -1
- package/dist/ssr/render-resolved.js +0 -35
- package/dist/ssr/render-resolved.js.map +0 -1
- package/dist/ssr/render-sync.d.ts +0 -21
- package/dist/ssr/render-sync.d.ts.map +0 -1
- package/dist/ssr/render-sync.js +0 -275
- package/dist/ssr/render-sync.js.map +0 -1
- package/dist/ssr/route-policy-resolution.js +0 -78
- package/dist/ssr/route-policy-resolution.js.map +0 -1
- package/dist/ssr/route-render.d.ts +0 -77
- package/dist/ssr/route-render.d.ts.map +0 -1
- package/dist/ssr/route-render.js +0 -120
- package/dist/ssr/route-render.js.map +0 -1
- package/dist/ssr/sink.d.ts +0 -26
- package/dist/ssr/sink.d.ts.map +0 -1
- package/dist/ssr/sink.js +0 -86
- package/dist/ssr/sink.js.map +0 -1
- package/dist/ssr/types.d.ts +0 -23
- package/dist/ssr/types.d.ts.map +0 -1
- package/dist/ssr/verify-hydration.js.map +0 -1
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js.map +0 -1
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { __ERROR_BOUNDARY__ } from "../common/vnode.js";
|
|
2
|
-
import { ELEMENT_TYPE } from "../common/jsx.js";
|
|
3
|
-
import { getCurrentComponentInstance } from "../runtime/component-scope.js";
|
|
4
|
-
import "../runtime/index.js";
|
|
5
|
-
//#region src/components/error-boundary.tsx
|
|
6
|
-
function ensureBoundaryState(instance, resetKey) {
|
|
7
|
-
const boundaryState = instance.errorBoundaryState ?? (instance.errorBoundaryState = {
|
|
8
|
-
error: null,
|
|
9
|
-
resetKey,
|
|
10
|
-
notified: false
|
|
11
|
-
});
|
|
12
|
-
if (!Object.is(boundaryState.resetKey, resetKey)) {
|
|
13
|
-
boundaryState.error = null;
|
|
14
|
-
boundaryState.resetKey = resetKey;
|
|
15
|
-
boundaryState.notified = false;
|
|
16
|
-
}
|
|
17
|
-
return boundaryState;
|
|
18
|
-
}
|
|
19
|
-
function createBoundaryVNode(instance, props) {
|
|
20
|
-
const key = typeof props.key === "symbol" ? null : props.key ?? null;
|
|
21
|
-
return {
|
|
22
|
-
$$typeof: ELEMENT_TYPE,
|
|
23
|
-
type: __ERROR_BOUNDARY__,
|
|
24
|
-
props: {
|
|
25
|
-
children: props.children,
|
|
26
|
-
fallback: props.fallback,
|
|
27
|
-
onError: props.onError,
|
|
28
|
-
resetKey: props.resetKey
|
|
29
|
-
},
|
|
30
|
-
key,
|
|
31
|
-
__instance: instance
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function ErrorBoundary(props) {
|
|
35
|
-
const instance = getCurrentComponentInstance();
|
|
36
|
-
if (!instance) throw new Error("[Askr] ErrorBoundary() can only be used during component render execution.");
|
|
37
|
-
ensureBoundaryState(instance, props.resetKey);
|
|
38
|
-
return createBoundaryVNode(instance, props);
|
|
39
|
-
}
|
|
40
|
-
//#endregion
|
|
41
|
-
export { ErrorBoundary };
|
|
42
|
-
|
|
43
|
-
//# sourceMappingURL=error-boundary.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-boundary.js","names":[],"sources":["../../src/components/error-boundary.tsx"],"sourcesContent":["import type {\n ErrorBoundaryFallbackRender,\n ErrorBoundaryProps,\n} from '../common/error-boundary';\nimport { ELEMENT_TYPE, type JSXElement } from '../common/jsx';\nimport { __ERROR_BOUNDARY__ } from '../common/vnode';\nimport {\n getCurrentComponentInstance,\n type ComponentInstance,\n} from '../runtime';\n\nexport type { ErrorBoundaryFallbackRender, ErrorBoundaryProps };\n\ntype ErrorBoundaryState = NonNullable<ComponentInstance['errorBoundaryState']>;\n\ntype ErrorBoundaryVNode = JSXElement & {\n __instance?: ComponentInstance;\n};\n\nfunction ensureBoundaryState(\n instance: ComponentInstance,\n resetKey: unknown\n): ErrorBoundaryState {\n const boundaryState =\n instance.errorBoundaryState ??\n (instance.errorBoundaryState = {\n error: null,\n resetKey,\n notified: false,\n });\n\n if (!Object.is(boundaryState.resetKey, resetKey)) {\n boundaryState.error = null;\n boundaryState.resetKey = resetKey;\n boundaryState.notified = false;\n }\n\n return boundaryState;\n}\n\nfunction createBoundaryVNode(\n instance: ComponentInstance,\n props: ErrorBoundaryProps\n): ErrorBoundaryVNode {\n const key =\n typeof props.key === 'symbol'\n ? null\n : ((props.key ?? null) as string | number | null);\n\n return {\n $$typeof: ELEMENT_TYPE,\n type: __ERROR_BOUNDARY__,\n props: {\n children: props.children,\n fallback: props.fallback,\n onError: props.onError,\n resetKey: props.resetKey,\n },\n key,\n __instance: instance,\n };\n}\n\nexport function ErrorBoundary(props: ErrorBoundaryProps): JSXElement {\n const instance = getCurrentComponentInstance();\n if (!instance) {\n throw new Error(\n '[Askr] ErrorBoundary() can only be used during component render execution.'\n );\n }\n\n ensureBoundaryState(instance, props.resetKey);\n return createBoundaryVNode(instance, props);\n}\n\nexport function isErrorBoundaryVNode(\n value: unknown\n): value is ErrorBoundaryVNode {\n return (\n typeof value === 'object' &&\n value !== null &&\n (value as ErrorBoundaryVNode).type === __ERROR_BOUNDARY__\n );\n}\n\nexport function resolveErrorBoundaryState(\n vnode: ErrorBoundaryVNode\n): ErrorBoundaryState | null {\n return vnode.__instance?.errorBoundaryState ?? null;\n}\n"],"mappings":";;;;;AAmBA,SAAS,oBACP,UACA,UACoB;CACpB,MAAM,gBACJ,SAAS,uBACR,SAAS,qBAAqB;EAC7B,OAAO;EACP;EACA,UAAU;CACZ;CAEF,IAAI,CAAC,OAAO,GAAG,cAAc,UAAU,QAAQ,GAAG;EAChD,cAAc,QAAQ;EACtB,cAAc,WAAW;EACzB,cAAc,WAAW;CAC3B;CAEA,OAAO;AACT;AAEA,SAAS,oBACP,UACA,OACoB;CACpB,MAAM,MACJ,OAAO,MAAM,QAAQ,WACjB,OACE,MAAM,OAAO;CAErB,OAAO;EACL,UAAU;EACV,MAAM;EACN,OAAO;GACL,UAAU,MAAM;GAChB,UAAU,MAAM;GAChB,SAAS,MAAM;GACf,UAAU,MAAM;EAClB;EACA;EACA,YAAY;CACd;AACF;AAEA,SAAgB,cAAc,OAAuC;CACnE,MAAM,WAAW,4BAA4B;CAC7C,IAAI,CAAC,UACH,MAAM,IAAI,MACR,4EACF;CAGF,oBAAoB,UAAU,MAAM,QAAQ;CAC5C,OAAO,oBAAoB,UAAU,KAAK;AAC5C"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { Props } from "../common/props.js";
|
|
2
|
-
import { JSXElement } from "../common/jsx.js";
|
|
3
|
-
import { RenderableChild } from "../common/vnode.js";
|
|
4
|
-
//#region src/components/link.d.ts
|
|
5
|
-
type LinkProps = Omit<Props, 'children' | 'href' | 'class' | 'rel' | 'target' | 'aria-current' | 'aria-label'> & {
|
|
6
|
-
href: string;
|
|
7
|
-
class?: string;
|
|
8
|
-
children?: RenderableChild;
|
|
9
|
-
/**
|
|
10
|
-
* Optional rel attribute for link relationships.
|
|
11
|
-
* Common values: "noopener", "noreferrer", "nofollow"
|
|
12
|
-
*/
|
|
13
|
-
rel?: string;
|
|
14
|
-
/**
|
|
15
|
-
* Optional target attribute.
|
|
16
|
-
* Use "_blank" for new tab/window.
|
|
17
|
-
*/
|
|
18
|
-
target?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Optional aria-current attribute for indicating current page/location.
|
|
21
|
-
* Use "page" for the current page in navigation.
|
|
22
|
-
*/
|
|
23
|
-
'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';
|
|
24
|
-
/**
|
|
25
|
-
* Optional aria-label for accessibility when link text isn't descriptive enough.
|
|
26
|
-
*/
|
|
27
|
-
'aria-label'?: string;
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* Link component that prevents default navigation and uses navigate()
|
|
31
|
-
* Provides declarative way to navigate between routes
|
|
32
|
-
*
|
|
33
|
-
* Accessibility features:
|
|
34
|
-
* - Proper semantic <a> element (not a button)
|
|
35
|
-
* - Supports aria-current for indicating active page
|
|
36
|
-
* - Supports aria-label for descriptive labels
|
|
37
|
-
* - Keyboard accessible (Enter key handled by native <a> element)
|
|
38
|
-
*
|
|
39
|
-
* Respects native browser behaviors:
|
|
40
|
-
* - Middle-click (opens in new tab)
|
|
41
|
-
* - Ctrl/Cmd+click (opens in new tab)
|
|
42
|
-
* - Shift+click (opens in new window)
|
|
43
|
-
* - Alt+click (downloads link)
|
|
44
|
-
* - Right-click context menu
|
|
45
|
-
*
|
|
46
|
-
* Best practices:
|
|
47
|
-
* - Use target="_blank" with rel="noopener noreferrer" for external links
|
|
48
|
-
* - Use aria-current="page" for the current page in navigation
|
|
49
|
-
* - Provide descriptive link text or aria-label
|
|
50
|
-
*
|
|
51
|
-
* Uses applyInteractionPolicy to enforce pit-of-success principles:
|
|
52
|
-
* - Interaction behavior centralized in foundations
|
|
53
|
-
* - Keyboard handling automatic
|
|
54
|
-
* - Composable via mergeProps
|
|
55
|
-
*/
|
|
56
|
-
declare function Link({
|
|
57
|
-
href,
|
|
58
|
-
class: className,
|
|
59
|
-
children,
|
|
60
|
-
rel,
|
|
61
|
-
target,
|
|
62
|
-
'aria-current': ariaCurrent,
|
|
63
|
-
'aria-label': ariaLabel,
|
|
64
|
-
...rest
|
|
65
|
-
}: LinkProps): JSXElement;
|
|
66
|
-
//#endregion
|
|
67
|
-
export { Link, LinkProps };
|
|
68
|
-
//# sourceMappingURL=link.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","names":[],"sources":["../../src/components/link.tsx"],"mappings":";;;;KAYY,SAAA,GAAY,IAAA,CACtB,KAAA;EASA,IAAA;EACA,KAAA;EACA,QAAA,GAAW,eAAA;EAAA;;;;EAKX,GAAA;EAPA;;;;EAYA,MAAA;EAAA;;;;EAKA,cAAA;EAyDc;;;EA9Cd,YAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDuB;;iBATT,IAAA;EACd,IAAA;EACA,KAAA,EAAO,SAAA;EACP,QAAA;EACA,GAAA;EACA,MAAA;EAAA,gBACgB,WAAA;EAAA,cACF,SAAA;EAAA,GACX;AAAA,GACF,SAAA,GAAY,UAAA"}
|
package/dist/components/link.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import "../jsx/types.js";
|
|
2
|
-
import { jsx } from "../jsx-runtime.js";
|
|
3
|
-
import "../jsx-runtime2.js";
|
|
4
|
-
import { navigate } from "../router/navigate.js";
|
|
5
|
-
import { mergeProps } from "../foundations/utilities/merge-props.js";
|
|
6
|
-
import "../foundations/utilities/index.js";
|
|
7
|
-
import { applyInteractionPolicy } from "../foundations/interactions/interaction-policy.js";
|
|
8
|
-
import "../foundations/interactions/index.js";
|
|
9
|
-
//#region src/components/link.tsx
|
|
10
|
-
/**
|
|
11
|
-
* Link component for client-side navigation
|
|
12
|
-
*/
|
|
13
|
-
function isSameOriginNavigableHref(href) {
|
|
14
|
-
if (typeof window === "undefined") return true;
|
|
15
|
-
try {
|
|
16
|
-
const target = new URL(href, window.location.href);
|
|
17
|
-
return target.origin === window.location.origin && (target.protocol === "http:" || target.protocol === "https:");
|
|
18
|
-
} catch {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Link component that prevents default navigation and uses navigate()
|
|
24
|
-
* Provides declarative way to navigate between routes
|
|
25
|
-
*
|
|
26
|
-
* Accessibility features:
|
|
27
|
-
* - Proper semantic <a> element (not a button)
|
|
28
|
-
* - Supports aria-current for indicating active page
|
|
29
|
-
* - Supports aria-label for descriptive labels
|
|
30
|
-
* - Keyboard accessible (Enter key handled by native <a> element)
|
|
31
|
-
*
|
|
32
|
-
* Respects native browser behaviors:
|
|
33
|
-
* - Middle-click (opens in new tab)
|
|
34
|
-
* - Ctrl/Cmd+click (opens in new tab)
|
|
35
|
-
* - Shift+click (opens in new window)
|
|
36
|
-
* - Alt+click (downloads link)
|
|
37
|
-
* - Right-click context menu
|
|
38
|
-
*
|
|
39
|
-
* Best practices:
|
|
40
|
-
* - Use target="_blank" with rel="noopener noreferrer" for external links
|
|
41
|
-
* - Use aria-current="page" for the current page in navigation
|
|
42
|
-
* - Provide descriptive link text or aria-label
|
|
43
|
-
*
|
|
44
|
-
* Uses applyInteractionPolicy to enforce pit-of-success principles:
|
|
45
|
-
* - Interaction behavior centralized in foundations
|
|
46
|
-
* - Keyboard handling automatic
|
|
47
|
-
* - Composable via mergeProps
|
|
48
|
-
*/
|
|
49
|
-
function Link({ href, class: className, children, rel, target, "aria-current": ariaCurrent, "aria-label": ariaLabel, ...rest }) {
|
|
50
|
-
return /* @__PURE__ */ jsx("a", {
|
|
51
|
-
...mergeProps(rest, {
|
|
52
|
-
...applyInteractionPolicy({
|
|
53
|
-
isNative: true,
|
|
54
|
-
disabled: false,
|
|
55
|
-
onPress: (e) => {
|
|
56
|
-
const event = e;
|
|
57
|
-
if ((event.button ?? 0) !== 0 || event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) return;
|
|
58
|
-
if (target || !isSameOriginNavigableHref(href)) return;
|
|
59
|
-
event.preventDefault();
|
|
60
|
-
navigate(href);
|
|
61
|
-
}
|
|
62
|
-
}),
|
|
63
|
-
href,
|
|
64
|
-
class: className,
|
|
65
|
-
rel,
|
|
66
|
-
target,
|
|
67
|
-
"aria-current": ariaCurrent,
|
|
68
|
-
"aria-label": ariaLabel
|
|
69
|
-
}),
|
|
70
|
-
children
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
//#endregion
|
|
74
|
-
export { Link };
|
|
75
|
-
|
|
76
|
-
//# sourceMappingURL=link.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","names":[],"sources":["../../src/components/link.tsx"],"sourcesContent":["/**\n * Link component for client-side navigation\n */\n\nimport '../jsx/types';\nimport type { JSXElement } from '../common/jsx';\nimport type { AnchorIntrinsicProps, Props } from '../common/props';\nimport type { RenderableChild } from '../common/vnode';\nimport { navigate } from '../router/navigate';\nimport { applyInteractionPolicy } from '../foundations/interactions';\nimport { mergeProps } from '../foundations/utilities';\n\nexport type LinkProps = Omit<\n Props,\n | 'children'\n | 'href'\n | 'class'\n | 'rel'\n | 'target'\n | 'aria-current'\n | 'aria-label'\n> & {\n href: string;\n class?: string;\n children?: RenderableChild;\n /**\n * Optional rel attribute for link relationships.\n * Common values: \"noopener\", \"noreferrer\", \"nofollow\"\n */\n rel?: string;\n /**\n * Optional target attribute.\n * Use \"_blank\" for new tab/window.\n */\n target?: string;\n /**\n * Optional aria-current attribute for indicating current page/location.\n * Use \"page\" for the current page in navigation.\n */\n 'aria-current'?:\n | 'page'\n | 'step'\n | 'location'\n | 'date'\n | 'time'\n | 'true'\n | 'false';\n /**\n * Optional aria-label for accessibility when link text isn't descriptive enough.\n */\n 'aria-label'?: string;\n};\n\nfunction isSameOriginNavigableHref(href: string): boolean {\n if (typeof window === 'undefined') {\n return true;\n }\n\n try {\n const target = new URL(href, window.location.href);\n return (\n target.origin === window.location.origin &&\n (target.protocol === 'http:' || target.protocol === 'https:')\n );\n } catch {\n return false;\n }\n}\n\n/**\n * Link component that prevents default navigation and uses navigate()\n * Provides declarative way to navigate between routes\n *\n * Accessibility features:\n * - Proper semantic <a> element (not a button)\n * - Supports aria-current for indicating active page\n * - Supports aria-label for descriptive labels\n * - Keyboard accessible (Enter key handled by native <a> element)\n *\n * Respects native browser behaviors:\n * - Middle-click (opens in new tab)\n * - Ctrl/Cmd+click (opens in new tab)\n * - Shift+click (opens in new window)\n * - Alt+click (downloads link)\n * - Right-click context menu\n *\n * Best practices:\n * - Use target=\"_blank\" with rel=\"noopener noreferrer\" for external links\n * - Use aria-current=\"page\" for the current page in navigation\n * - Provide descriptive link text or aria-label\n *\n * Uses applyInteractionPolicy to enforce pit-of-success principles:\n * - Interaction behavior centralized in foundations\n * - Keyboard handling automatic\n * - Composable via mergeProps\n */\nexport function Link({\n href,\n class: className,\n children,\n rel,\n target,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabel,\n ...rest\n}: LinkProps): JSXElement {\n const interaction = applyInteractionPolicy({\n isNative: true,\n disabled: false,\n onPress: (e: Event) => {\n const event = e as MouseEvent;\n\n // Only intercept left-click without modifiers\n // Default button to 0 if undefined (for mock events in tests)\n const button = event.button ?? 0;\n if (\n button !== 0 || // not left-click\n event.ctrlKey || // Ctrl/Cmd+click\n event.metaKey || // Cmd on Mac\n event.shiftKey || // Shift+click\n event.altKey // Alt+click\n ) {\n return; // Let browser handle it (new tab, etc.)\n }\n\n // Don't intercept external links or explicit target.\n if (target || !isSameOriginNavigableHref(href)) {\n return; // Let browser handle it\n }\n\n event.preventDefault();\n navigate(href);\n },\n });\n\n const props = mergeProps(rest, {\n ...interaction,\n href,\n class: className,\n rel,\n target,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabel,\n });\n\n return <a {...(props as AnchorIntrinsicProps)}>{children}</a>;\n}\n"],"mappings":";;;;;;;;;;;;AAqDA,SAAS,0BAA0B,MAAuB;CACxD,IAAI,OAAO,WAAW,aACpB,OAAO;CAGT,IAAI;EACF,MAAM,SAAS,IAAI,IAAI,MAAM,OAAO,SAAS,IAAI;EACjD,OACE,OAAO,WAAW,OAAO,SAAS,WACjC,OAAO,aAAa,WAAW,OAAO,aAAa;CAExD,QAAQ;EACN,OAAO;CACT;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAgB,KAAK,EACnB,MACA,OAAO,WACP,UACA,KACA,QACA,gBAAgB,aAChB,cAAc,WACd,GAAG,QACqB;CAwCxB,OAAO,oBAAC,KAAD;EAAG,GAVI,WAAW,MAAM;GAC7B,GA9BkB,uBAAuB;IACzC,UAAU;IACV,UAAU;IACV,UAAU,MAAa;KACrB,MAAM,QAAQ;KAKd,KADe,MAAM,UAAU,OAElB,KACX,MAAM,WACN,MAAM,WACN,MAAM,YACN,MAAM,QAEN;KAIF,IAAI,UAAU,CAAC,0BAA0B,IAAI,GAC3C;KAGF,MAAM,eAAe;KACrB,SAAS,IAAI;IACf;GACF,CAGK;GACH;GACA,OAAO;GACP;GACA;GACA,gBAAgB;GAChB,cAAc;EAChB,CAEe;EAAiC;CAAY,CAAA;AAC9D"}
|
package/dist/control/case.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { JSXElement } from "../common/jsx.js";
|
|
2
|
-
import { BoundaryChild } from "./shared.js";
|
|
3
|
-
|
|
4
|
-
//#region src/control/case.d.ts
|
|
5
|
-
type MatchChild = BoundaryChild | (() => BoundaryChild);
|
|
6
|
-
type MatchProps = {
|
|
7
|
-
key?: string | number | null;
|
|
8
|
-
when: unknown;
|
|
9
|
-
children: MatchChild;
|
|
10
|
-
};
|
|
11
|
-
type CaseProps = {
|
|
12
|
-
fallback?: BoundaryChild;
|
|
13
|
-
children?: unknown;
|
|
14
|
-
};
|
|
15
|
-
declare function Match(_props: MatchProps): null;
|
|
16
|
-
declare const Case: (props: CaseProps) => JSXElement;
|
|
17
|
-
//#endregion
|
|
18
|
-
export { Case, CaseProps, Match, MatchProps };
|
|
19
|
-
//# sourceMappingURL=case.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"case.d.ts","names":[],"sources":["../../src/control/case.ts"],"mappings":";;;;KAWK,UAAA,GAAa,aAAA,UAAuB,aAAa;AAAA,KAE1C,UAAA;EACV,GAAA;EACA,IAAA;EACA,QAAA,EAAU,UAAU;AAAA;AAAA,KAGV,SAAA;EACV,QAAA,GAAW,aAAa;EACxB,QAAA;AAAA;AAAA,iBAmBc,KAAA,CAAM,MAAkB,EAAV,UAAU;AAAA,cAyF3B,IAAA,GAEP,KAAA,EAAO,SAAA,KAAc,UAAU"}
|
package/dist/control/case.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { __CONTROL_BOUNDARY__, markEagerControlPrimitive } from "../common/control.js";
|
|
2
|
-
import { isDevelopmentEnvironment } from "../common/env.js";
|
|
3
|
-
import { createCaseState } from "../runtime/control.js";
|
|
4
|
-
import { state } from "../runtime/state.js";
|
|
5
|
-
import "../runtime/index.js";
|
|
6
|
-
import { normalizeBoundaryChild } from "./shared.js";
|
|
7
|
-
//#region src/control/case.ts
|
|
8
|
-
function flattenChildren(children) {
|
|
9
|
-
if (!Array.isArray(children)) return children == null || children === false ? [] : [children];
|
|
10
|
-
const result = [];
|
|
11
|
-
for (const child of children) {
|
|
12
|
-
if (Array.isArray(child)) {
|
|
13
|
-
result.push(...flattenChildren(child));
|
|
14
|
-
continue;
|
|
15
|
-
}
|
|
16
|
-
result.push(child);
|
|
17
|
-
}
|
|
18
|
-
return result;
|
|
19
|
-
}
|
|
20
|
-
function Match(_props) {
|
|
21
|
-
if (isDevelopmentEnvironment()) throw new Error("[askr] <Match> may only be used as a direct child of <Case>.");
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
function createCaseFallbackRenderer(fallback) {
|
|
25
|
-
const normalizedFallback = normalizeBoundaryChild(fallback);
|
|
26
|
-
if (normalizedFallback == null || normalizedFallback === false) return null;
|
|
27
|
-
return () => normalizedFallback;
|
|
28
|
-
}
|
|
29
|
-
function createMatchBranchKey(key, index) {
|
|
30
|
-
if (key == null) return index;
|
|
31
|
-
return `match:${index}:${typeof key}:${String(key)}`;
|
|
32
|
-
}
|
|
33
|
-
function readMatchBranches(children) {
|
|
34
|
-
const branches = [];
|
|
35
|
-
const flatChildren = flattenChildren(children);
|
|
36
|
-
for (let index = 0; index < flatChildren.length; index += 1) {
|
|
37
|
-
const child = flatChildren[index];
|
|
38
|
-
if (child == null || child === false) continue;
|
|
39
|
-
if (typeof child === "object" && child !== null && "type" in child && child.type === Match) {
|
|
40
|
-
const element = child;
|
|
41
|
-
const props = element.props ?? {};
|
|
42
|
-
const key = createMatchBranchKey(element.key, index);
|
|
43
|
-
const render = typeof props.children === "function" ? () => normalizeBoundaryChild(props.children()) : () => normalizeBoundaryChild(props.children);
|
|
44
|
-
branches.push({
|
|
45
|
-
key,
|
|
46
|
-
render,
|
|
47
|
-
when: props.when
|
|
48
|
-
});
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
if (isDevelopmentEnvironment()) throw new Error("[askr] <Case> only accepts <Match> children.");
|
|
52
|
-
}
|
|
53
|
-
return branches;
|
|
54
|
-
}
|
|
55
|
-
function CasePrimitive(props) {
|
|
56
|
-
const matches = readMatchBranches(props.children);
|
|
57
|
-
const fallback = createCaseFallbackRenderer(props.fallback);
|
|
58
|
-
const caseState = state(createCaseState(matches, fallback))();
|
|
59
|
-
caseState.matches = matches;
|
|
60
|
-
caseState.fallback = fallback;
|
|
61
|
-
return {
|
|
62
|
-
type: __CONTROL_BOUNDARY__,
|
|
63
|
-
_controlState: caseState
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
const Case = markEagerControlPrimitive(CasePrimitive);
|
|
67
|
-
//#endregion
|
|
68
|
-
export { Case, Match };
|
|
69
|
-
|
|
70
|
-
//# sourceMappingURL=case.js.map
|
package/dist/control/case.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"case.js","names":[],"sources":["../../src/control/case.ts"],"sourcesContent":["import {\n __CONTROL_BOUNDARY__,\n markEagerControlPrimitive,\n} from '../common/control';\nimport type { JSXElement } from '../common/jsx';\nimport type { VNode } from '../common/vnode';\nimport { isDevelopmentEnvironment } from '../common/env';\nimport { createCaseState, type CaseState, type MatchBranch } from '../runtime';\nimport { state } from '../runtime';\nimport { type BoundaryChild, normalizeBoundaryChild } from './shared';\n\ntype MatchChild = BoundaryChild | (() => BoundaryChild);\n\nexport type MatchProps = {\n key?: string | number | null;\n when: unknown;\n children: MatchChild;\n};\n\nexport type CaseProps = {\n fallback?: BoundaryChild;\n children?: unknown;\n};\n\nfunction flattenChildren(children: unknown): unknown[] {\n if (!Array.isArray(children)) {\n return children == null || children === false ? [] : [children];\n }\n\n const result: unknown[] = [];\n for (const child of children) {\n if (Array.isArray(child)) {\n result.push(...flattenChildren(child));\n continue;\n }\n result.push(child);\n }\n return result;\n}\n\nexport function Match(_props: MatchProps): null {\n if (isDevelopmentEnvironment()) {\n throw new Error(\n '[askr] <Match> may only be used as a direct child of <Case>.'\n );\n }\n return null;\n}\n\nfunction createCaseFallbackRenderer(\n fallback: BoundaryChild | undefined\n): (() => VNode) | null {\n const normalizedFallback = normalizeBoundaryChild(fallback);\n if (normalizedFallback == null || normalizedFallback === false) {\n return null;\n }\n return () => normalizedFallback;\n}\n\nfunction createMatchBranchKey(\n key: string | number | null | undefined,\n index: number\n): string | number {\n if (key == null) {\n return index;\n }\n return `match:${index}:${typeof key}:${String(key)}`;\n}\n\nfunction readMatchBranches(children: unknown): MatchBranch[] {\n const branches: MatchBranch[] = [];\n const flatChildren = flattenChildren(children);\n\n for (let index = 0; index < flatChildren.length; index += 1) {\n const child = flatChildren[index];\n if (child == null || child === false) {\n continue;\n }\n\n if (\n typeof child === 'object' &&\n child !== null &&\n 'type' in child &&\n (child as JSXElement).type === Match\n ) {\n const element = child as JSXElement;\n const props = (element.props ?? {}) as MatchProps;\n const key = createMatchBranchKey(element.key, index);\n const render =\n typeof props.children === 'function'\n ? () =>\n normalizeBoundaryChild(\n (props.children as () => BoundaryChild)()\n ) as VNode\n : () => normalizeBoundaryChild(props.children) as VNode;\n branches.push({\n key,\n render,\n when: props.when,\n });\n continue;\n }\n\n if (isDevelopmentEnvironment()) {\n throw new Error('[askr] <Case> only accepts <Match> children.');\n }\n }\n\n return branches;\n}\n\nfunction CasePrimitive(props: CaseProps): JSXElement {\n const matches = readMatchBranches(props.children);\n const fallback = createCaseFallbackRenderer(props.fallback);\n\n const caseStateContainer = state<CaseState>(\n createCaseState(matches, fallback)\n );\n const caseState = caseStateContainer();\n\n caseState.matches = matches;\n caseState.fallback = fallback;\n\n return {\n type: __CONTROL_BOUNDARY__,\n _controlState: caseState,\n } as unknown as JSXElement;\n}\n\nexport const Case = markEagerControlPrimitive(\n CasePrimitive as (props: CaseProps) => JSXElement\n) as (props: CaseProps) => JSXElement;\n"],"mappings":";;;;;;;AAwBA,SAAS,gBAAgB,UAA8B;CACrD,IAAI,CAAC,MAAM,QAAQ,QAAQ,GACzB,OAAO,YAAY,QAAQ,aAAa,QAAQ,CAAC,IAAI,CAAC,QAAQ;CAGhE,MAAM,SAAoB,CAAC;CAC3B,KAAK,MAAM,SAAS,UAAU;EAC5B,IAAI,MAAM,QAAQ,KAAK,GAAG;GACxB,OAAO,KAAK,GAAG,gBAAgB,KAAK,CAAC;GACrC;EACF;EACA,OAAO,KAAK,KAAK;CACnB;CACA,OAAO;AACT;AAEA,SAAgB,MAAM,QAA0B;CAC9C,IAAI,yBAAyB,GAC3B,MAAM,IAAI,MACR,8DACF;CAEF,OAAO;AACT;AAEA,SAAS,2BACP,UACsB;CACtB,MAAM,qBAAqB,uBAAuB,QAAQ;CAC1D,IAAI,sBAAsB,QAAQ,uBAAuB,OACvD,OAAO;CAET,aAAa;AACf;AAEA,SAAS,qBACP,KACA,OACiB;CACjB,IAAI,OAAO,MACT,OAAO;CAET,OAAO,SAAS,MAAM,GAAG,OAAO,IAAI,GAAG,OAAO,GAAG;AACnD;AAEA,SAAS,kBAAkB,UAAkC;CAC3D,MAAM,WAA0B,CAAC;CACjC,MAAM,eAAe,gBAAgB,QAAQ;CAE7C,KAAK,IAAI,QAAQ,GAAG,QAAQ,aAAa,QAAQ,SAAS,GAAG;EAC3D,MAAM,QAAQ,aAAa;EAC3B,IAAI,SAAS,QAAQ,UAAU,OAC7B;EAGF,IACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACT,MAAqB,SAAS,OAC/B;GACA,MAAM,UAAU;GAChB,MAAM,QAAS,QAAQ,SAAS,CAAC;GACjC,MAAM,MAAM,qBAAqB,QAAQ,KAAK,KAAK;GACnD,MAAM,SACJ,OAAO,MAAM,aAAa,mBAEpB,uBACG,MAAM,SAAiC,CAC1C,UACI,uBAAuB,MAAM,QAAQ;GACjD,SAAS,KAAK;IACZ;IACA;IACA,MAAM,MAAM;GACd,CAAC;GACD;EACF;EAEA,IAAI,yBAAyB,GAC3B,MAAM,IAAI,MAAM,8CAA8C;CAElE;CAEA,OAAO;AACT;AAEA,SAAS,cAAc,OAA8B;CACnD,MAAM,UAAU,kBAAkB,MAAM,QAAQ;CAChD,MAAM,WAAW,2BAA2B,MAAM,QAAQ;CAK1D,MAAM,YAHqB,MACzB,gBAAgB,SAAS,QAAQ,CAEjB,CAAA,CAAmB;CAErC,UAAU,UAAU;CACpB,UAAU,WAAW;CAErB,OAAO;EACL,MAAM;EACN,eAAe;CACjB;AACF;AAEA,MAAa,OAAO,0BAClB,aACF"}
|
package/dist/control/for.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { JSXElement } from "../common/jsx.js";
|
|
2
|
-
import { ForEachSource } from "../runtime/for-types.js";
|
|
3
|
-
import { VNode } from "../common/vnode.js";
|
|
4
|
-
import { BoundaryChild } from "./shared.js";
|
|
5
|
-
|
|
6
|
-
//#region src/control/for.d.ts
|
|
7
|
-
type ForBaseProps<T> = {
|
|
8
|
-
each: ForEachSource<T>;
|
|
9
|
-
fallback?: BoundaryChild;
|
|
10
|
-
children: (item: T, index: () => number) => VNode;
|
|
11
|
-
};
|
|
12
|
-
type KeyedForProps<T, K extends string | number> = ForBaseProps<T> & {
|
|
13
|
-
by: (item: T, index: number) => K;
|
|
14
|
-
byIndex?: never;
|
|
15
|
-
};
|
|
16
|
-
type IndexedForProps<T> = ForBaseProps<T> & {
|
|
17
|
-
by?: never;
|
|
18
|
-
byIndex: true;
|
|
19
|
-
};
|
|
20
|
-
type ForProps<T, K extends string | number = string | number> = KeyedForProps<T, K> | IndexedForProps<T>;
|
|
21
|
-
declare const For: <T, K extends string | number = string | number>(props: ForProps<T, K>) => JSXElement;
|
|
22
|
-
//#endregion
|
|
23
|
-
export { For, ForProps };
|
|
24
|
-
//# sourceMappingURL=for.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"for.d.ts","names":[],"sources":["../../src/control/for.ts"],"mappings":";;;;;;KAoBK,YAAA;EACH,IAAA,EAAM,aAAA,CAAc,CAAA;EACpB,QAAA,GAAW,aAAA;EACX,QAAA,GAAW,IAAA,EAAM,CAAA,EAAG,KAAA,mBAAwB,KAAA;AAAA;AAAA,KAGzC,aAAA,iCAA8C,YAAA,CAAa,CAAA;EAC9D,EAAA,GAAK,IAAA,EAAM,CAAA,EAAG,KAAA,aAAkB,CAAA;EAChC,OAAA;AAAA;AAAA,KAGG,eAAA,MAAqB,YAAY,CAAC,CAAA;EACrC,EAAA;EACA,OAAA;AAAA;AAAA,KAGU,QAAA,mDACR,aAAA,CAAc,CAAA,EAAG,CAAA,IACjB,eAAA,CAAgB,CAAA;AAAA,cA0EP,GAAA,mDAKX,KAAA,EAAO,QAAA,CAAS,CAAA,EAAG,CAAA,MAChB,UAAA"}
|
package/dist/control/for.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { __CONTROL_BOUNDARY__, markEagerControlPrimitive } from "../common/control.js";
|
|
2
|
-
import { createFineGrainedEffect } from "../runtime/effect.js";
|
|
3
|
-
import { useForState } from "../runtime/for-internal.js";
|
|
4
|
-
import "../runtime/index.js";
|
|
5
|
-
import { normalizeBoundaryChild } from "./shared.js";
|
|
6
|
-
//#region src/control/for.ts
|
|
7
|
-
/**
|
|
8
|
-
* For JSX primitive
|
|
9
|
-
*
|
|
10
|
-
* Creates a keyed child-scope boundary for efficient list rendering.
|
|
11
|
-
*/
|
|
12
|
-
function resolveEach(each) {
|
|
13
|
-
const resolved = typeof each === "function" ? each() : each;
|
|
14
|
-
if (!Array.isArray(resolved)) throw new Error("For each must resolve to an array.");
|
|
15
|
-
return resolved;
|
|
16
|
-
}
|
|
17
|
-
function resolveKeyFn(props) {
|
|
18
|
-
if ("by" in props && typeof props.by === "function") return props.by;
|
|
19
|
-
if ("byIndex" in props && props.byIndex === true) return (_item, index) => index;
|
|
20
|
-
throw new Error("[askr] <For> requires a stable `by` key function. Use `byIndex` only as an explicit positional escape hatch.");
|
|
21
|
-
}
|
|
22
|
-
function createForBoundary(props) {
|
|
23
|
-
if ("by" in props && typeof props.by === "function" && "byIndex" in props) throw new Error("[askr] <For> accepts either `by` or `byIndex`, not both.");
|
|
24
|
-
const byFn = resolveKeyFn(props);
|
|
25
|
-
const fallback = normalizeBoundaryChild(props.fallback);
|
|
26
|
-
const forState = useForState(props.each, byFn, props.children, fallback);
|
|
27
|
-
const computeItems = () => resolveEach(forState.eachSource);
|
|
28
|
-
if (!forState._sourceEffect) {
|
|
29
|
-
forState._suspendSourceCommit = true;
|
|
30
|
-
forState._sourceEffect = createFineGrainedEffect({
|
|
31
|
-
lane: "reactive",
|
|
32
|
-
compute: computeItems,
|
|
33
|
-
commit: (items) => {
|
|
34
|
-
forState.currentItems = items;
|
|
35
|
-
if (forState._suspendSourceCommit) return;
|
|
36
|
-
forState._needsSourceReconcile = true;
|
|
37
|
-
if (forState._enqueueBoundaryCommit) {
|
|
38
|
-
forState._enqueueBoundaryCommit();
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
forState.parentInstance?._enqueueRun?.();
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
forState._suspendSourceCommit = false;
|
|
45
|
-
} else {
|
|
46
|
-
forState._suspendSourceCommit = true;
|
|
47
|
-
forState._sourceEffect.updateCompute(computeItems);
|
|
48
|
-
forState._suspendSourceCommit = false;
|
|
49
|
-
}
|
|
50
|
-
return {
|
|
51
|
-
type: __CONTROL_BOUNDARY__,
|
|
52
|
-
_controlState: forState,
|
|
53
|
-
_forState: forState
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
function ForPrimitive(props) {
|
|
57
|
-
return createForBoundary(props);
|
|
58
|
-
}
|
|
59
|
-
const For = markEagerControlPrimitive(ForPrimitive);
|
|
60
|
-
//#endregion
|
|
61
|
-
export { For };
|
|
62
|
-
|
|
63
|
-
//# sourceMappingURL=for.js.map
|
package/dist/control/for.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"for.js","names":[],"sources":["../../src/control/for.ts"],"sourcesContent":["/**\n * For JSX primitive\n *\n * Creates a keyed child-scope boundary for efficient list rendering.\n */\n\nimport {\n __CONTROL_BOUNDARY__,\n markEagerControlPrimitive,\n} from '../common/control';\nimport type { JSXElement } from '../common/jsx';\nimport type { DOMElement, VNode } from '../common/vnode';\nimport {\n createFineGrainedEffect,\n type ForEachSource,\n type ForState,\n useForState,\n} from '../runtime';\nimport { type BoundaryChild, normalizeBoundaryChild } from './shared';\n\ntype ForBaseProps<T> = {\n each: ForEachSource<T>;\n fallback?: BoundaryChild;\n children: (item: T, index: () => number) => VNode;\n};\n\ntype KeyedForProps<T, K extends string | number> = ForBaseProps<T> & {\n by: (item: T, index: number) => K;\n byIndex?: never;\n};\n\ntype IndexedForProps<T> = ForBaseProps<T> & {\n by?: never;\n byIndex: true;\n};\n\nexport type ForProps<T, K extends string | number = string | number> =\n | KeyedForProps<T, K>\n | IndexedForProps<T>;\n\nfunction resolveEach<T>(each: ForEachSource<T>): T[] {\n const resolved = typeof each === 'function' ? each() : each;\n if (!Array.isArray(resolved)) {\n throw new Error('For each must resolve to an array.');\n }\n return resolved;\n}\n\nfunction resolveKeyFn<T>(\n props: ForProps<T>\n): (item: T, index: number) => string | number {\n if ('by' in props && typeof props.by === 'function') {\n return props.by;\n }\n if ('byIndex' in props && props.byIndex === true) {\n return (_item, index) => index;\n }\n throw new Error(\n '[askr] <For> requires a stable `by` key function. Use `byIndex` only as an explicit positional escape hatch.'\n );\n}\n\nfunction createForBoundary<T>(props: ForProps<T>): DOMElement {\n if ('by' in props && typeof props.by === 'function' && 'byIndex' in props) {\n throw new Error('[askr] <For> accepts either `by` or `byIndex`, not both.');\n }\n\n const byFn = resolveKeyFn(props);\n const fallback = normalizeBoundaryChild(props.fallback);\n const forState = useForState(props.each, byFn, props.children, fallback);\n\n const computeItems = () => resolveEach(forState.eachSource);\n if (!forState._sourceEffect) {\n forState._suspendSourceCommit = true;\n forState._sourceEffect = createFineGrainedEffect({\n lane: 'reactive',\n compute: computeItems,\n commit: (items) => {\n forState.currentItems = items;\n\n if (forState._suspendSourceCommit) {\n return;\n }\n\n forState._needsSourceReconcile = true;\n\n if (forState._enqueueBoundaryCommit) {\n forState._enqueueBoundaryCommit();\n return;\n }\n\n forState.parentInstance?._enqueueRun?.();\n },\n });\n forState._suspendSourceCommit = false;\n } else {\n forState._suspendSourceCommit = true;\n forState._sourceEffect.updateCompute(computeItems);\n forState._suspendSourceCommit = false;\n }\n\n return {\n type: __CONTROL_BOUNDARY__,\n _controlState: forState as unknown as ForState<unknown>,\n _forState: forState as unknown as ForState<unknown>,\n };\n}\n\nfunction ForPrimitive<T>(props: ForProps<T>): JSXElement {\n return createForBoundary(props) as unknown as JSXElement;\n}\n\nexport const For = markEagerControlPrimitive(\n ForPrimitive as <T, K extends string | number = string | number>(\n props: ForProps<T, K>\n ) => JSXElement\n) as <T, K extends string | number = string | number>(\n props: ForProps<T, K>\n) => JSXElement;\n"],"mappings":";;;;;;;;;;;AAwCA,SAAS,YAAe,MAA6B;CACnD,MAAM,WAAW,OAAO,SAAS,aAAa,KAAK,IAAI;CACvD,IAAI,CAAC,MAAM,QAAQ,QAAQ,GACzB,MAAM,IAAI,MAAM,oCAAoC;CAEtD,OAAO;AACT;AAEA,SAAS,aACP,OAC6C;CAC7C,IAAI,QAAQ,SAAS,OAAO,MAAM,OAAO,YACvC,OAAO,MAAM;CAEf,IAAI,aAAa,SAAS,MAAM,YAAY,MAC1C,QAAQ,OAAO,UAAU;CAE3B,MAAM,IAAI,MACR,8GACF;AACF;AAEA,SAAS,kBAAqB,OAAgC;CAC5D,IAAI,QAAQ,SAAS,OAAO,MAAM,OAAO,cAAc,aAAa,OAClE,MAAM,IAAI,MAAM,0DAA0D;CAG5E,MAAM,OAAO,aAAa,KAAK;CAC/B,MAAM,WAAW,uBAAuB,MAAM,QAAQ;CACtD,MAAM,WAAW,YAAY,MAAM,MAAM,MAAM,MAAM,UAAU,QAAQ;CAEvE,MAAM,qBAAqB,YAAY,SAAS,UAAU;CAC1D,IAAI,CAAC,SAAS,eAAe;EAC3B,SAAS,uBAAuB;EAChC,SAAS,gBAAgB,wBAAwB;GAC/C,MAAM;GACN,SAAS;GACT,SAAS,UAAU;IACjB,SAAS,eAAe;IAExB,IAAI,SAAS,sBACX;IAGF,SAAS,wBAAwB;IAEjC,IAAI,SAAS,wBAAwB;KACnC,SAAS,uBAAuB;KAChC;IACF;IAEA,SAAS,gBAAgB,cAAc;GACzC;EACF,CAAC;EACD,SAAS,uBAAuB;CAClC,OAAO;EACL,SAAS,uBAAuB;EAChC,SAAS,cAAc,cAAc,YAAY;EACjD,SAAS,uBAAuB;CAClC;CAEA,OAAO;EACL,MAAM;EACN,eAAe;EACf,WAAW;CACb;AACF;AAEA,SAAS,aAAgB,OAAgC;CACvD,OAAO,kBAAkB,KAAK;AAChC;AAEA,MAAa,MAAM,0BACjB,YAGF"}
|
package/dist/control/shared.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { RenderableChild, VNode } from "../common/vnode.js";
|
|
2
|
-
|
|
3
|
-
//#region src/control/shared.d.ts
|
|
4
|
-
type BoundaryChild = RenderableChild;
|
|
5
|
-
declare function normalizeBoundaryChild(value: unknown): VNode | null;
|
|
6
|
-
declare function resolveMaybeAccessor<T>(value: T | (() => T)): T;
|
|
7
|
-
//#endregion
|
|
8
|
-
export { BoundaryChild };
|
|
9
|
-
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","names":[],"sources":["../../src/control/shared.ts"],"mappings":";;;KAGY,aAAA,GAAgB,eAAe;AAAA,iBAE3B,sBAAA,CAAuB,KAAA,YAAiB,KAAK;AAAA,iBAmB7C,oBAAA,IAAwB,KAAA,EAAO,CAAA,UAAW,CAAA,IAAK,CAAA"}
|
package/dist/control/shared.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Fragment } from "../common/jsx.js";
|
|
2
|
-
//#region src/control/shared.ts
|
|
3
|
-
function normalizeBoundaryChild(value) {
|
|
4
|
-
if (Array.isArray(value)) {
|
|
5
|
-
if (value.length === 0) return null;
|
|
6
|
-
if (value.length === 1) return normalizeBoundaryChild(value[0]);
|
|
7
|
-
return {
|
|
8
|
-
type: Fragment,
|
|
9
|
-
props: { children: value }
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
return value ?? null;
|
|
13
|
-
}
|
|
14
|
-
function resolveMaybeAccessor(value) {
|
|
15
|
-
return typeof value === "function" ? value() : value;
|
|
16
|
-
}
|
|
17
|
-
//#endregion
|
|
18
|
-
export { normalizeBoundaryChild, resolveMaybeAccessor };
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","names":[],"sources":["../../src/control/shared.ts"],"sourcesContent":["import { Fragment } from '../common/jsx';\nimport type { DOMElement, RenderableChild, VNode } from '../common/vnode';\n\nexport type BoundaryChild = RenderableChild;\n\nexport function normalizeBoundaryChild(value: unknown): VNode | null {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return null;\n }\n if (value.length === 1) {\n return normalizeBoundaryChild(value[0]);\n }\n return {\n type: Fragment,\n props: {\n children: value,\n },\n } as DOMElement;\n }\n\n return (value ?? null) as VNode | null;\n}\n\nexport function resolveMaybeAccessor<T>(value: T | (() => T)): T {\n return typeof value === 'function' ? (value as () => T)() : value;\n}\n"],"mappings":";;AAKA,SAAgB,uBAAuB,OAA8B;CACnE,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxB,IAAI,MAAM,WAAW,GACnB,OAAO;EAET,IAAI,MAAM,WAAW,GACnB,OAAO,uBAAuB,MAAM,EAAE;EAExC,OAAO;GACL,MAAM;GACN,OAAO,EACL,UAAU,MACZ;EACF;CACF;CAEA,OAAQ,SAAS;AACnB;AAEA,SAAgB,qBAAwB,OAAyB;CAC/D,OAAO,OAAO,UAAU,aAAc,MAAkB,IAAI;AAC9D"}
|
package/dist/control/show.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { JSXElement } from "../common/jsx.js";
|
|
2
|
-
import { BoundaryChild } from "./shared.js";
|
|
3
|
-
|
|
4
|
-
//#region src/control/show.d.ts
|
|
5
|
-
type ShowSource<T> = T | (() => T);
|
|
6
|
-
type Truthy<T> = T extends false | '' | 0 | 0n | null | undefined ? never : T;
|
|
7
|
-
type ShowProps<T> = {
|
|
8
|
-
when: ShowSource<T>;
|
|
9
|
-
fallback?: BoundaryChild;
|
|
10
|
-
children: BoundaryChild | ((value: Truthy<T>) => BoundaryChild);
|
|
11
|
-
};
|
|
12
|
-
declare const Show: <T>(props: ShowProps<T>) => JSXElement;
|
|
13
|
-
//#endregion
|
|
14
|
-
export { Show, ShowProps };
|
|
15
|
-
//# sourceMappingURL=show.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"show.d.ts","names":[],"sources":["../../src/control/show.ts"],"mappings":";;;;KAcK,UAAA,MAAgB,CAAA,UAAW,CAAC;AAAA,KAC5B,MAAA,MAAY,CAAA,0DAA2D,CAAC;AAAA,KAEjE,SAAA;EACV,IAAA,EAAM,UAAA,CAAW,CAAA;EACjB,QAAA,GAAW,aAAA;EACX,QAAA,EAAU,aAAA,KAAkB,KAAA,EAAO,MAAA,CAAO,CAAA,MAAO,aAAA;AAAA;AAAA,cA+CtC,IAAA,MAEJ,KAAA,EAAO,SAAA,CAAU,CAAA,MAAO,UAAA"}
|
package/dist/control/show.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { __CONTROL_BOUNDARY__, markEagerControlPrimitive } from "../common/control.js";
|
|
2
|
-
import { createShowState } from "../runtime/control.js";
|
|
3
|
-
import { state } from "../runtime/state.js";
|
|
4
|
-
import "../runtime/index.js";
|
|
5
|
-
import { normalizeBoundaryChild, resolveMaybeAccessor } from "./shared.js";
|
|
6
|
-
//#region src/control/show.ts
|
|
7
|
-
function createTruthyRenderer(props) {
|
|
8
|
-
if (typeof props.children === "function") return (value) => normalizeBoundaryChild(props.children(value));
|
|
9
|
-
const staticChild = normalizeBoundaryChild(props.children);
|
|
10
|
-
return () => staticChild;
|
|
11
|
-
}
|
|
12
|
-
function createFallbackRenderer(fallback) {
|
|
13
|
-
const normalizedFallback = normalizeBoundaryChild(fallback);
|
|
14
|
-
if (normalizedFallback == null || normalizedFallback === false) return null;
|
|
15
|
-
return () => normalizedFallback;
|
|
16
|
-
}
|
|
17
|
-
function ShowPrimitive(props) {
|
|
18
|
-
const selectedValue = resolveMaybeAccessor(props.when);
|
|
19
|
-
const renderTruthy = createTruthyRenderer(props);
|
|
20
|
-
const renderFallback = createFallbackRenderer(props.fallback);
|
|
21
|
-
const showState = state(createShowState(selectedValue, renderTruthy, renderFallback))();
|
|
22
|
-
showState.selectedValue = selectedValue;
|
|
23
|
-
showState.renderTruthy = renderTruthy;
|
|
24
|
-
showState.renderFallback = renderFallback;
|
|
25
|
-
return {
|
|
26
|
-
type: __CONTROL_BOUNDARY__,
|
|
27
|
-
_controlState: showState
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
const Show = markEagerControlPrimitive(ShowPrimitive);
|
|
31
|
-
//#endregion
|
|
32
|
-
export { Show };
|
|
33
|
-
|
|
34
|
-
//# sourceMappingURL=show.js.map
|
package/dist/control/show.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"show.js","names":[],"sources":["../../src/control/show.ts"],"sourcesContent":["import {\n __CONTROL_BOUNDARY__,\n markEagerControlPrimitive,\n} from '../common/control';\nimport type { JSXElement } from '../common/jsx';\nimport type { VNode } from '../common/vnode';\nimport { createShowState, type ShowState } from '../runtime';\nimport { state } from '../runtime';\nimport {\n type BoundaryChild,\n normalizeBoundaryChild,\n resolveMaybeAccessor,\n} from './shared';\n\ntype ShowSource<T> = T | (() => T);\ntype Truthy<T> = T extends false | '' | 0 | 0n | null | undefined ? never : T;\n\nexport type ShowProps<T> = {\n when: ShowSource<T>;\n fallback?: BoundaryChild;\n children: BoundaryChild | ((value: Truthy<T>) => BoundaryChild);\n};\n\nfunction createTruthyRenderer<T>(\n props: ShowProps<T>\n): ShowState['renderTruthy'] {\n if (typeof props.children === 'function') {\n return (value: unknown) =>\n normalizeBoundaryChild(\n (props.children as (resolved: Truthy<T>) => VNode)(value as Truthy<T>)\n ) as VNode;\n }\n\n const staticChild = normalizeBoundaryChild(props.children);\n return () => staticChild as VNode;\n}\n\nfunction createFallbackRenderer(\n fallback: BoundaryChild | undefined\n): (() => VNode) | null {\n const normalizedFallback = normalizeBoundaryChild(fallback);\n if (normalizedFallback == null || normalizedFallback === false) {\n return null;\n }\n return () => normalizedFallback;\n}\n\nfunction ShowPrimitive<T>(props: ShowProps<T>): JSXElement {\n const selectedValue = resolveMaybeAccessor(props.when);\n const renderTruthy = createTruthyRenderer(props);\n const renderFallback = createFallbackRenderer(props.fallback);\n\n const showStateContainer = state<ShowState>(\n createShowState(selectedValue, renderTruthy, renderFallback)\n );\n const showState = showStateContainer();\n\n showState.selectedValue = selectedValue;\n showState.renderTruthy = renderTruthy;\n showState.renderFallback = renderFallback;\n\n return {\n type: __CONTROL_BOUNDARY__,\n _controlState: showState,\n } as unknown as JSXElement;\n}\n\nexport const Show = markEagerControlPrimitive(\n ShowPrimitive as <T>(props: ShowProps<T>) => JSXElement\n) as <T>(props: ShowProps<T>) => JSXElement;\n"],"mappings":";;;;;;AAuBA,SAAS,qBACP,OAC2B;CAC3B,IAAI,OAAO,MAAM,aAAa,YAC5B,QAAQ,UACN,uBACG,MAAM,SAA4C,KAAkB,CACvE;CAGJ,MAAM,cAAc,uBAAuB,MAAM,QAAQ;CACzD,aAAa;AACf;AAEA,SAAS,uBACP,UACsB;CACtB,MAAM,qBAAqB,uBAAuB,QAAQ;CAC1D,IAAI,sBAAsB,QAAQ,uBAAuB,OACvD,OAAO;CAET,aAAa;AACf;AAEA,SAAS,cAAiB,OAAiC;CACzD,MAAM,gBAAgB,qBAAqB,MAAM,IAAI;CACrD,MAAM,eAAe,qBAAqB,KAAK;CAC/C,MAAM,iBAAiB,uBAAuB,MAAM,QAAQ;CAK5D,MAAM,YAHqB,MACzB,gBAAgB,eAAe,cAAc,cAAc,CAE3C,CAAA,CAAmB;CAErC,UAAU,gBAAgB;CAC1B,UAAU,eAAe;CACzB,UAAU,iBAAiB;CAE3B,OAAO;EACL,MAAM;EACN,eAAe;CACjB;AACF;AAEA,MAAa,OAAO,0BAClB,aACF"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ComponentInstance } from "../runtime/component-internal.js";
|
|
2
|
-
import { DataRuntime, DataRuntimeOptions } from "./types.js";
|
|
3
|
-
import { MutationCell } from "./mutation-cell.js";
|
|
4
|
-
import { QueryCell } from "./query-cell.js";
|
|
5
|
-
|
|
6
|
-
//#region src/data/data-runtime.d.ts
|
|
7
|
-
type QuerySlot = {
|
|
8
|
-
key: string;
|
|
9
|
-
cell: QueryCell<unknown>;
|
|
10
|
-
};
|
|
11
|
-
type DataRuntimeState = {
|
|
12
|
-
queryCache: Map<string, QueryCell<unknown>>;
|
|
13
|
-
querySlotsByInstance: WeakMap<ComponentInstance, Map<number, QuerySlot>>;
|
|
14
|
-
mutationSlotsByInstance: WeakMap<ComponentInstance, Map<number, MutationCell<unknown, unknown>>>;
|
|
15
|
-
queryCleanupRegistered: WeakSet<ComponentInstance>;
|
|
16
|
-
mutationCleanupRegistered: WeakSet<ComponentInstance>;
|
|
17
|
-
};
|
|
18
|
-
declare function createDataRuntime(options?: DataRuntimeOptions): DataRuntime;
|
|
19
|
-
declare function getDefaultDataRuntime(): DataRuntime;
|
|
20
|
-
declare function resolveDataRuntimeState(runtime?: DataRuntime): DataRuntimeState;
|
|
21
|
-
declare function getQuerySlotStore(runtimeState: DataRuntimeState, instance: ComponentInstance): Map<number, QuerySlot>;
|
|
22
|
-
declare function getMutationSlotStore(runtimeState: DataRuntimeState, instance: ComponentInstance): Map<number, MutationCell<unknown, unknown>>;
|
|
23
|
-
declare function ensureQueryCleanup(runtimeState: DataRuntimeState, instance: ComponentInstance): void;
|
|
24
|
-
declare function ensureMutationCleanup(runtimeState: DataRuntimeState, instance: ComponentInstance): void;
|
|
25
|
-
declare function invalidateQueriesForRuntime(runtimeState: DataRuntimeState, prefix: string, markPendingWrite: boolean): void;
|
|
26
|
-
//#endregion
|
|
27
|
-
export { DataRuntimeState, QuerySlot, createDataRuntime, getDefaultDataRuntime };
|
|
28
|
-
//# sourceMappingURL=data-runtime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-runtime.d.ts","names":[],"sources":["../../src/data/data-runtime.ts"],"mappings":";;;;;;KAOY,SAAA;EACV,GAAA;EACA,IAAA,EAAM,SAAS;AAAA;AAAA,KAGL,gBAAA;EACV,UAAA,EAAY,GAAA,SAAY,SAAA;EACxB,oBAAA,EAAsB,OAAA,CAAQ,iBAAA,EAAmB,GAAA,SAAY,SAAA;EAC7D,uBAAA,EAAyB,OAAA,CACvB,iBAAA,EACA,GAAA,SAAY,YAAA;EAEd,sBAAA,EAAwB,OAAA,CAAQ,iBAAA;EAChC,yBAAA,EAA2B,OAAA,CAAQ,iBAAA;AAAA;AAAA,iBAqBrB,iBAAA,CACd,OAAA,GAAS,kBAAA,GACR,WAAW;AAAA,iBAWE,qBAAA,IAAyB,WAAW;AAAA,iBAkDpC,uBAAA,CACd,OAAA,GAAU,WAAA,GACT,gBAAgB;AAAA,iBAIH,iBAAA,CACd,YAAA,EAAc,gBAAA,EACd,QAAA,EAAU,iBAAA,GACT,GAAA,SAAY,SAAA;AAAA,iBASC,oBAAA,CACd,YAAA,EAAc,gBAAA,EACd,QAAA,EAAU,iBAAA,GACT,GAAA,SAAY,YAAA;AAAA,iBASC,kBAAA,CACd,YAAA,EAAc,gBAAA,EACd,QAAA,EAAU,iBAAiB;AAAA,iBAwBb,qBAAA,CACd,YAAA,EAAc,gBAAA,EACd,QAAA,EAAU,iBAAiB;AAAA,iBAwBb,2BAAA,CACd,YAAA,EAAc,gBAAgB,EAC9B,MAAA,UACA,gBAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-runtime.js","names":[],"sources":["../../src/data/data-runtime.ts"],"sourcesContent":["import { getActiveRenderContext } from '../common/render-context';\nimport type { ComponentInstance } from '../runtime';\nimport { emitInvalidation } from './invalidation-listeners';\nimport type { MutationCell } from './mutation-cell';\nimport type { QueryCell } from './query-cell';\nimport type { DataRuntime, DataRuntimeOptions } from './types';\n\nexport type QuerySlot = {\n key: string;\n cell: QueryCell<unknown>;\n};\n\nexport type DataRuntimeState = {\n queryCache: Map<string, QueryCell<unknown>>;\n querySlotsByInstance: WeakMap<ComponentInstance, Map<number, QuerySlot>>;\n mutationSlotsByInstance: WeakMap<\n ComponentInstance,\n Map<number, MutationCell<unknown, unknown>>\n >;\n queryCleanupRegistered: WeakSet<ComponentInstance>;\n mutationCleanupRegistered: WeakSet<ComponentInstance>;\n};\n\nconst dataRuntimeStates = new WeakMap<DataRuntime, DataRuntimeState>();\nconst dataRuntimeByQueryCache = new WeakMap<\n Map<string, unknown>,\n DataRuntime\n>();\n\nfunction createDataRuntimeState(\n queryCache: Map<string, unknown>\n): DataRuntimeState {\n return {\n queryCache: queryCache as Map<string, QueryCell<unknown>>,\n querySlotsByInstance: new WeakMap(),\n mutationSlotsByInstance: new WeakMap(),\n queryCleanupRegistered: new WeakSet(),\n mutationCleanupRegistered: new WeakSet(),\n };\n}\n\nexport function createDataRuntime(\n options: DataRuntimeOptions = {}\n): DataRuntime {\n const runtime: DataRuntime = Object.freeze({\n queryCache: options.queryCache ?? new Map<string, unknown>(),\n });\n dataRuntimeStates.set(runtime, createDataRuntimeState(runtime.queryCache));\n dataRuntimeByQueryCache.set(runtime.queryCache, runtime);\n return runtime;\n}\n\nconst defaultDataRuntime = createDataRuntime();\n\nexport function getDefaultDataRuntime(): DataRuntime {\n return defaultDataRuntime;\n}\n\nfunction getDataRuntimeState(runtime: DataRuntime): DataRuntimeState {\n const state = dataRuntimeStates.get(runtime);\n if (!state) {\n throw new Error(\n '[Askr] data runtime was not created by createDataRuntime().'\n );\n }\n return state;\n}\n\nfunction isDataRuntime(value: unknown): value is DataRuntime {\n return (\n typeof value === 'object' &&\n value !== null &&\n dataRuntimeStates.has(value as DataRuntime)\n );\n}\n\nfunction getDataRuntimeForQueryCache(\n queryCache: Map<string, unknown>\n): DataRuntime {\n let runtime = dataRuntimeByQueryCache.get(queryCache);\n if (!runtime) {\n runtime = createDataRuntime({ queryCache });\n dataRuntimeByQueryCache.set(queryCache, runtime);\n }\n return runtime;\n}\n\nfunction getActiveDataRuntime(): DataRuntime {\n const ctx = getActiveRenderContext();\n if (isDataRuntime(ctx?.dataRuntime)) {\n return ctx.dataRuntime;\n }\n\n if (ctx?.queryCache) {\n return getDataRuntimeForQueryCache(ctx.queryCache);\n }\n\n return defaultDataRuntime;\n}\n\nfunction getActiveDataRuntimeState(): DataRuntimeState {\n return getDataRuntimeState(getActiveDataRuntime());\n}\n\nexport function resolveDataRuntimeState(\n runtime?: DataRuntime\n): DataRuntimeState {\n return runtime ? getDataRuntimeState(runtime) : getActiveDataRuntimeState();\n}\n\nexport function getQuerySlotStore(\n runtimeState: DataRuntimeState,\n instance: ComponentInstance\n): Map<number, QuerySlot> {\n let store = runtimeState.querySlotsByInstance.get(instance);\n if (!store) {\n store = new Map();\n runtimeState.querySlotsByInstance.set(instance, store);\n }\n return store;\n}\n\nexport function getMutationSlotStore(\n runtimeState: DataRuntimeState,\n instance: ComponentInstance\n): Map<number, MutationCell<unknown, unknown>> {\n let store = runtimeState.mutationSlotsByInstance.get(instance);\n if (!store) {\n store = new Map();\n runtimeState.mutationSlotsByInstance.set(instance, store);\n }\n return store;\n}\n\nexport function ensureQueryCleanup(\n runtimeState: DataRuntimeState,\n instance: ComponentInstance\n): void {\n if (runtimeState.queryCleanupRegistered.has(instance)) {\n return;\n }\n\n runtimeState.queryCleanupRegistered.add(instance);\n instance.cleanupFns.push(() => {\n const slots = runtimeState.querySlotsByInstance.get(instance);\n if (!slots) {\n runtimeState.queryCleanupRegistered.delete(instance);\n return;\n }\n\n for (const [hookIndex, slot] of slots) {\n slot.cell.detach(instance, hookIndex);\n }\n\n slots.clear();\n runtimeState.querySlotsByInstance.delete(instance);\n runtimeState.queryCleanupRegistered.delete(instance);\n });\n}\n\nexport function ensureMutationCleanup(\n runtimeState: DataRuntimeState,\n instance: ComponentInstance\n): void {\n if (runtimeState.mutationCleanupRegistered.has(instance)) {\n return;\n }\n\n runtimeState.mutationCleanupRegistered.add(instance);\n instance.cleanupFns.push(() => {\n const slots = runtimeState.mutationSlotsByInstance.get(instance);\n if (!slots) {\n runtimeState.mutationCleanupRegistered.delete(instance);\n return;\n }\n\n for (const cell of slots.values()) {\n cell.abort();\n }\n\n slots.clear();\n runtimeState.mutationSlotsByInstance.delete(instance);\n runtimeState.mutationCleanupRegistered.delete(instance);\n });\n}\n\nexport function invalidateQueriesForRuntime(\n runtimeState: DataRuntimeState,\n prefix: string,\n markPendingWrite: boolean\n): void {\n emitInvalidation({ prefix, markPendingWrite });\n\n const cache = runtimeState.queryCache;\n\n for (const [key, query] of cache) {\n if (!key.startsWith(prefix)) {\n continue;\n }\n\n if (markPendingWrite) {\n query.markPendingWrite();\n }\n\n void query.refresh();\n }\n}\n"],"mappings":";;;AAuBA,MAAM,oCAAoB,IAAI,QAAuC;AACrE,MAAM,0CAA0B,IAAI,QAGlC;AAEF,SAAS,uBACP,YACkB;CAClB,OAAO;EACO;EACZ,sCAAsB,IAAI,QAAQ;EAClC,yCAAyB,IAAI,QAAQ;EACrC,wCAAwB,IAAI,QAAQ;EACpC,2CAA2B,IAAI,QAAQ;CACzC;AACF;AAEA,SAAgB,kBACd,UAA8B,CAAC,GAClB;CACb,MAAM,UAAuB,OAAO,OAAO,EACzC,YAAY,QAAQ,8BAAc,IAAI,IAAqB,EAC7D,CAAC;CACD,kBAAkB,IAAI,SAAS,uBAAuB,QAAQ,UAAU,CAAC;CACzE,wBAAwB,IAAI,QAAQ,YAAY,OAAO;CACvD,OAAO;AACT;AAEA,MAAM,qBAAqB,kBAAkB;AAE7C,SAAgB,wBAAqC;CACnD,OAAO;AACT;AAEA,SAAS,oBAAoB,SAAwC;CACnE,MAAM,QAAQ,kBAAkB,IAAI,OAAO;CAC3C,IAAI,CAAC,OACH,MAAM,IAAI,MACR,6DACF;CAEF,OAAO;AACT;AAEA,SAAS,cAAc,OAAsC;CAC3D,OACE,OAAO,UAAU,YACjB,UAAU,QACV,kBAAkB,IAAI,KAAoB;AAE9C;AAEA,SAAS,4BACP,YACa;CACb,IAAI,UAAU,wBAAwB,IAAI,UAAU;CACpD,IAAI,CAAC,SAAS;EACZ,UAAU,kBAAkB,EAAE,WAAW,CAAC;EAC1C,wBAAwB,IAAI,YAAY,OAAO;CACjD;CACA,OAAO;AACT;AAEA,SAAS,uBAAoC;CAC3C,MAAM,MAAM,uBAAuB;CACnC,IAAI,cAAc,KAAK,WAAW,GAChC,OAAO,IAAI;CAGb,IAAI,KAAK,YACP,OAAO,4BAA4B,IAAI,UAAU;CAGnD,OAAO;AACT;AAEA,SAAS,4BAA8C;CACrD,OAAO,oBAAoB,qBAAqB,CAAC;AACnD;AAEA,SAAgB,wBACd,SACkB;CAClB,OAAO,UAAU,oBAAoB,OAAO,IAAI,0BAA0B;AAC5E;AAEA,SAAgB,kBACd,cACA,UACwB;CACxB,IAAI,QAAQ,aAAa,qBAAqB,IAAI,QAAQ;CAC1D,IAAI,CAAC,OAAO;EACV,wBAAQ,IAAI,IAAI;EAChB,aAAa,qBAAqB,IAAI,UAAU,KAAK;CACvD;CACA,OAAO;AACT;AAEA,SAAgB,qBACd,cACA,UAC6C;CAC7C,IAAI,QAAQ,aAAa,wBAAwB,IAAI,QAAQ;CAC7D,IAAI,CAAC,OAAO;EACV,wBAAQ,IAAI,IAAI;EAChB,aAAa,wBAAwB,IAAI,UAAU,KAAK;CAC1D;CACA,OAAO;AACT;AAEA,SAAgB,mBACd,cACA,UACM;CACN,IAAI,aAAa,uBAAuB,IAAI,QAAQ,GAClD;CAGF,aAAa,uBAAuB,IAAI,QAAQ;CAChD,SAAS,WAAW,WAAW;EAC7B,MAAM,QAAQ,aAAa,qBAAqB,IAAI,QAAQ;EAC5D,IAAI,CAAC,OAAO;GACV,aAAa,uBAAuB,OAAO,QAAQ;GACnD;EACF;EAEA,KAAK,MAAM,CAAC,WAAW,SAAS,OAC9B,KAAK,KAAK,OAAO,UAAU,SAAS;EAGtC,MAAM,MAAM;EACZ,aAAa,qBAAqB,OAAO,QAAQ;EACjD,aAAa,uBAAuB,OAAO,QAAQ;CACrD,CAAC;AACH;AAEA,SAAgB,sBACd,cACA,UACM;CACN,IAAI,aAAa,0BAA0B,IAAI,QAAQ,GACrD;CAGF,aAAa,0BAA0B,IAAI,QAAQ;CACnD,SAAS,WAAW,WAAW;EAC7B,MAAM,QAAQ,aAAa,wBAAwB,IAAI,QAAQ;EAC/D,IAAI,CAAC,OAAO;GACV,aAAa,0BAA0B,OAAO,QAAQ;GACtD;EACF;EAEA,KAAK,MAAM,QAAQ,MAAM,OAAO,GAC9B,KAAK,MAAM;EAGb,MAAM,MAAM;EACZ,aAAa,wBAAwB,OAAO,QAAQ;EACpD,aAAa,0BAA0B,OAAO,QAAQ;CACxD,CAAC;AACH;AAEA,SAAgB,4BACd,cACA,QACA,kBACM;CACN,iBAAiB;EAAE;EAAQ;CAAiB,CAAC;CAE7C,MAAM,QAAQ,aAAa;CAE3B,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO;EAChC,IAAI,CAAC,IAAI,WAAW,MAAM,GACxB;EAGF,IAAI,kBACF,MAAM,iBAAiB;EAGzB,AAAK,MAAM,QAAQ;CACrB;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invalidation-listeners.js","names":[],"sources":["../../src/data/invalidation-listeners.ts"],"sourcesContent":["export interface InvalidationEvent {\n prefix: string;\n markPendingWrite: boolean;\n}\n\ntype InvalidationListener = (event: InvalidationEvent) => void;\n\nconst invalidationListeners = new Set<InvalidationListener>();\n\nexport function addInvalidationListener(\n listener: InvalidationListener\n): () => void {\n invalidationListeners.add(listener);\n return () => {\n invalidationListeners.delete(listener);\n };\n}\n\nexport function emitInvalidation(event: InvalidationEvent): void {\n for (const listener of invalidationListeners) {\n listener(event);\n }\n}\n"],"mappings":";AAOA,MAAM,wCAAwB,IAAI,IAA0B;AAE5D,SAAgB,wBACd,UACY;CACZ,sBAAsB,IAAI,QAAQ;CAClC,aAAa;EACX,sBAAsB,OAAO,QAAQ;CACvC;AACF;AAEA,SAAgB,iBAAiB,OAAgC;CAC/D,KAAK,MAAM,YAAY,uBACrB,SAAS,KAAK;AAElB"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { InvalidateOnIntervalOptions, InvalidateOptions, QueryScope } from "./types.js";
|
|
2
|
-
|
|
3
|
-
//#region src/data/invalidation.d.ts
|
|
4
|
-
declare function invalidate(prefix: string, options?: InvalidateOptions): void;
|
|
5
|
-
declare function queryScope(namespace: string): QueryScope;
|
|
6
|
-
declare function invalidateOnInterval(prefix: string, options: InvalidateOnIntervalOptions): void;
|
|
7
|
-
//#endregion
|
|
8
|
-
export { invalidate, invalidateOnInterval, queryScope };
|
|
9
|
-
//# sourceMappingURL=invalidation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invalidation.d.ts","names":[],"sources":["../../src/data/invalidation.ts"],"mappings":";;;iBAkBgB,UAAA,CAAW,MAAA,UAAgB,OAAA,GAAU,iBAAiB;AAAA,iBAQtD,UAAA,CAAW,SAAA,WAAoB,UAAU;AAAA,iBAOzC,oBAAA,CACd,MAAA,UACA,OAAA,EAAS,2BAA2B"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { documentVisible, routeActive, timer, windowFocused } from "../runtime/lifecycle-operations.js";
|
|
2
|
-
import "../runtime/index.js";
|
|
3
|
-
import { invalidateQueriesForRuntime, resolveDataRuntimeState } from "./data-runtime.js";
|
|
4
|
-
import { createQueryScope } from "./query-key.js";
|
|
5
|
-
//#region src/data/invalidation.ts
|
|
6
|
-
function invalidate(prefix, options) {
|
|
7
|
-
invalidateQueriesForRuntime(resolveDataRuntimeState(options?.runtime), prefix, options?.markPendingWrite ?? false);
|
|
8
|
-
}
|
|
9
|
-
function queryScope(namespace) {
|
|
10
|
-
return createQueryScope(namespace, invalidate);
|
|
11
|
-
}
|
|
12
|
-
const INVALIDATE_ON_INTERVAL_OPTIONS_ERROR = "[Askr] invalidateOnInterval() requires an options object with a finite numeric intervalMs.";
|
|
13
|
-
function invalidateOnInterval(prefix, options) {
|
|
14
|
-
if (!options || typeof options !== "object" || typeof options.intervalMs !== "number" || !Number.isFinite(options.intervalMs)) throw new Error(INVALIDATE_ON_INTERVAL_OPTIONS_ERROR);
|
|
15
|
-
const runtimeState = resolveDataRuntimeState(options.runtime);
|
|
16
|
-
const when = [];
|
|
17
|
-
if (options.activeOn) when.push(routeActive(options.activeOn));
|
|
18
|
-
if (options.visibleOnly) when.push(documentVisible());
|
|
19
|
-
if (options.focusedOnly) when.push(windowFocused());
|
|
20
|
-
timer(options.intervalMs, () => {
|
|
21
|
-
invalidateQueriesForRuntime(runtimeState, prefix, options.markPendingWrite ?? false);
|
|
22
|
-
}, when.length > 0 ? { when } : void 0);
|
|
23
|
-
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { invalidate, invalidateOnInterval, queryScope };
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=invalidation.js.map
|