@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,279 +0,0 @@
|
|
|
1
|
-
import { _isDOMElement } from "../common/vnode.js";
|
|
2
|
-
import "./types.js";
|
|
3
|
-
import { teardownNodeSubtree } from "./cleanup.js";
|
|
4
|
-
import { extractKey } from "./utils.js";
|
|
5
|
-
import { keyedElements } from "./keyed.js";
|
|
6
|
-
import { getParentNamespace } from "./namespaces.js";
|
|
7
|
-
import { clearControlBoundaryCommitOwner, commitForBoundaryChildren, evaluateControlBoundaryState, getControlBoundaryState, getDirectControlBoundaryVNode, registerControlBoundaryCommitOwner, trySyncControlBoundaryChild } from "./boundaries.js";
|
|
8
|
-
import { isBulkTextFastPathEligible, performBulkTextReplace } from "./children.js";
|
|
9
|
-
import { isFragmentVNode, normalizeComponentChildren } from "./child-shape.js";
|
|
10
|
-
import { getRendererDOMHost } from "./dom-host.js";
|
|
11
|
-
import { trySyncScalarChildSequenceInPlace } from "./reactive-children.js";
|
|
12
|
-
import { reconcileKeyedChildren } from "./reconcile.js";
|
|
13
|
-
import { tagsEqualIgnoreCase } from "./static-reuse.js";
|
|
14
|
-
//#region src/renderer/element-children.ts
|
|
15
|
-
const rendererReactiveChildDOMHost = {
|
|
16
|
-
createDOMNode: (node, parentNamespace) => getRendererDOMHost().createDOMNode(node, parentNamespace),
|
|
17
|
-
updateElementChildren: (el, children, forceUpdate) => updateElementChildren(el, children, forceUpdate)
|
|
18
|
-
};
|
|
19
|
-
function updateElementChildren(el, children, forceUpdate = false) {
|
|
20
|
-
const directControlBoundary = getDirectControlBoundaryVNode(children);
|
|
21
|
-
if (directControlBoundary) {
|
|
22
|
-
const controlState = getControlBoundaryState(directControlBoundary);
|
|
23
|
-
if (!controlState) throw new Error("[updateElementChildren] Control boundary missing internal state");
|
|
24
|
-
registerControlBoundaryCommitOwner(el, controlState);
|
|
25
|
-
commitForBoundaryChildren(el, controlState, evaluateControlBoundaryState(controlState));
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
clearControlBoundaryCommitOwner(el);
|
|
29
|
-
if (children === null || children === void 0) {
|
|
30
|
-
for (let n = el.firstChild; n;) {
|
|
31
|
-
const next = n.nextSibling;
|
|
32
|
-
teardownNodeSubtree(n);
|
|
33
|
-
n = next;
|
|
34
|
-
}
|
|
35
|
-
el.textContent = "";
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
if (!Array.isArray(children) && isFragmentVNode(children)) {
|
|
39
|
-
updateUnkeyedChildren(el, normalizeComponentChildren(children), forceUpdate);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
if (!Array.isArray(children) && (typeof children === "string" || typeof children === "number")) {
|
|
43
|
-
if (el.childNodes.length === 1 && el.firstChild?.nodeType === 3) {
|
|
44
|
-
const s = String(children);
|
|
45
|
-
const t = el.firstChild;
|
|
46
|
-
if (t.data !== s) t.data = s;
|
|
47
|
-
} else {
|
|
48
|
-
for (let n = el.firstChild; n;) {
|
|
49
|
-
const next = n.nextSibling;
|
|
50
|
-
teardownNodeSubtree(n);
|
|
51
|
-
n = next;
|
|
52
|
-
}
|
|
53
|
-
el.textContent = String(children);
|
|
54
|
-
}
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
if (Array.isArray(children)) {
|
|
58
|
-
const normalizedChildren = normalizeComponentChildren(children);
|
|
59
|
-
if (trySyncScalarChildSequenceInPlace(el, normalizedChildren, rendererReactiveChildDOMHost)) {
|
|
60
|
-
keyedElements.delete(el);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (hasKeyedVNodeChildren(normalizedChildren)) {
|
|
64
|
-
const newKeyMap = reconcileKeyedChildren(el, normalizedChildren, getOrBuildDomKeyMap(el));
|
|
65
|
-
keyedElements.set(el, newKeyMap);
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
if (isBulkTextFastPathEligible(el, normalizedChildren)) {
|
|
69
|
-
performBulkTextReplace(el, normalizedChildren);
|
|
70
|
-
keyedElements.delete(el);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
updateUnkeyedChildren(el, normalizedChildren, forceUpdate);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
if (_isDOMElement(children)) {
|
|
77
|
-
updateUnkeyedChildren(el, [children], forceUpdate);
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
for (let n = el.firstChild; n;) {
|
|
81
|
-
const next = n.nextSibling;
|
|
82
|
-
teardownNodeSubtree(n);
|
|
83
|
-
n = next;
|
|
84
|
-
}
|
|
85
|
-
el.textContent = "";
|
|
86
|
-
const dom = getRendererDOMHost().createDOMNode(children);
|
|
87
|
-
if (dom) el.appendChild(dom);
|
|
88
|
-
}
|
|
89
|
-
function hasKeyedVNodeChildren(children) {
|
|
90
|
-
for (let i = 0; i < children.length; i++) if (extractKey(children[i]) !== void 0) return true;
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
function isEmptyChild(child) {
|
|
94
|
-
return child === null || child === void 0 || child === false;
|
|
95
|
-
}
|
|
96
|
-
function getOrBuildDomKeyMap(parent) {
|
|
97
|
-
let keyMap = keyedElements.get(parent);
|
|
98
|
-
if (!keyMap) {
|
|
99
|
-
keyMap = /* @__PURE__ */ new Map();
|
|
100
|
-
for (let child = parent.firstElementChild; child; child = child.nextElementSibling) {
|
|
101
|
-
const key = child.getAttribute("data-key");
|
|
102
|
-
if (key !== null) {
|
|
103
|
-
keyMap.set(key, child);
|
|
104
|
-
const numericKey = Number(key);
|
|
105
|
-
if (!Number.isNaN(numericKey)) keyMap.set(numericKey, child);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (keyMap.size > 0) keyedElements.set(parent, keyMap);
|
|
109
|
-
}
|
|
110
|
-
return keyMap.size > 0 ? keyMap : void 0;
|
|
111
|
-
}
|
|
112
|
-
function updateUnkeyedChildren(parent, newChildren, forceUpdate = false) {
|
|
113
|
-
const parentNamespace = getParentNamespace(parent);
|
|
114
|
-
const domHost = getRendererDOMHost();
|
|
115
|
-
const trySyncComponentChild = (currentDom, next) => {
|
|
116
|
-
if (typeof next.type !== "function") return null;
|
|
117
|
-
return domHost.syncComponentElement(currentDom, next, next.type, (next.props ?? {}) || {}, parentNamespace, forceUpdate);
|
|
118
|
-
};
|
|
119
|
-
const hasText = newChildren.some((c) => typeof c === "string" || typeof c === "number");
|
|
120
|
-
const hasElements = newChildren.some((c) => _isDOMElement(c));
|
|
121
|
-
const hasEmptyChildren = newChildren.some(isEmptyChild);
|
|
122
|
-
const hasComponentChildren = newChildren.some((c) => _isDOMElement(c) && typeof c.type === "function");
|
|
123
|
-
const hasNonElementDomChildren = parent.childNodes.length !== parent.children.length;
|
|
124
|
-
if (!hasEmptyChildren && !hasText && !hasComponentChildren && !hasNonElementDomChildren && hasElements && parent.children.length === newChildren.length) {
|
|
125
|
-
const c = parent.children;
|
|
126
|
-
for (let i = 0; i < newChildren.length; i++) {
|
|
127
|
-
const next = newChildren[i];
|
|
128
|
-
const current = c[i];
|
|
129
|
-
if (!current || next === void 0) continue;
|
|
130
|
-
if (_isDOMElement(next) && typeof next.type === "string") if (tagsEqualIgnoreCase(current.tagName, next.type)) domHost.updateElementFromVnode(current, next, true, forceUpdate);
|
|
131
|
-
else {
|
|
132
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
133
|
-
if (dom) {
|
|
134
|
-
teardownNodeSubtree(current);
|
|
135
|
-
parent.replaceChild(dom, current);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
else if (_isDOMElement(next)) {
|
|
139
|
-
if (trySyncControlBoundaryChild(parent, current, next)) continue;
|
|
140
|
-
const synced = trySyncComponentChild(current, next);
|
|
141
|
-
if (synced && synced !== current) teardownNodeSubtree(current);
|
|
142
|
-
else if (!synced) {
|
|
143
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
144
|
-
if (dom) {
|
|
145
|
-
teardownNodeSubtree(current);
|
|
146
|
-
parent.replaceChild(dom, current);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
} else {
|
|
150
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
151
|
-
if (dom) {
|
|
152
|
-
teardownNodeSubtree(current);
|
|
153
|
-
parent.replaceChild(dom, current);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
const existing = Array.from(parent.children);
|
|
160
|
-
if (hasText || hasComponentChildren || hasEmptyChildren || hasNonElementDomChildren) {
|
|
161
|
-
const allNodes = Array.from(parent.childNodes);
|
|
162
|
-
const max = Math.max(allNodes.length, newChildren.length);
|
|
163
|
-
for (let i = 0; i < max; i++) {
|
|
164
|
-
const currentNode = allNodes[i];
|
|
165
|
-
const next = newChildren[i];
|
|
166
|
-
const nextIsEmpty = isEmptyChild(next);
|
|
167
|
-
if (nextIsEmpty && currentNode) {
|
|
168
|
-
teardownNodeSubtree(currentNode);
|
|
169
|
-
currentNode.remove();
|
|
170
|
-
continue;
|
|
171
|
-
}
|
|
172
|
-
if (!currentNode && !nextIsEmpty) {
|
|
173
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
174
|
-
if (dom) parent.appendChild(dom);
|
|
175
|
-
continue;
|
|
176
|
-
}
|
|
177
|
-
if (!currentNode || nextIsEmpty) continue;
|
|
178
|
-
if (typeof next === "string" || typeof next === "number") if (currentNode.nodeType === 3) currentNode.data = String(next);
|
|
179
|
-
else {
|
|
180
|
-
const textNode = document.createTextNode(String(next));
|
|
181
|
-
parent.replaceChild(textNode, currentNode);
|
|
182
|
-
}
|
|
183
|
-
else if (_isDOMElement(next)) if (currentNode.nodeType === 1) {
|
|
184
|
-
const currentEl = currentNode;
|
|
185
|
-
if (typeof next.type === "string") if (tagsEqualIgnoreCase(currentEl.tagName, next.type)) domHost.updateElementFromVnode(currentEl, next, true, forceUpdate);
|
|
186
|
-
else {
|
|
187
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
188
|
-
if (dom) {
|
|
189
|
-
teardownNodeSubtree(currentEl);
|
|
190
|
-
parent.replaceChild(dom, currentNode);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
if (trySyncControlBoundaryChild(parent, currentNode, next)) continue;
|
|
195
|
-
const synced = trySyncComponentChild(currentEl, next);
|
|
196
|
-
if (synced && synced !== currentNode) teardownNodeSubtree(currentEl);
|
|
197
|
-
else if (!synced) {
|
|
198
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
199
|
-
if (dom) {
|
|
200
|
-
teardownNodeSubtree(currentEl);
|
|
201
|
-
parent.replaceChild(dom, currentNode);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
} else {
|
|
206
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
207
|
-
if (dom) parent.replaceChild(dom, currentNode);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
if (newChildren.length === 1 && existing.length === 0 && parent.childNodes.length === 1) {
|
|
213
|
-
const firstNewChild = newChildren[0];
|
|
214
|
-
const firstExisting = parent.firstChild;
|
|
215
|
-
if ((typeof firstNewChild === "string" || typeof firstNewChild === "number") && firstExisting?.nodeType === 3) {
|
|
216
|
-
firstExisting.data = String(firstNewChild);
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
if (existing.length === 0 && parent.childNodes.length > 0) {
|
|
221
|
-
for (let n = parent.firstChild; n;) {
|
|
222
|
-
const next = n.nextSibling;
|
|
223
|
-
teardownNodeSubtree(n);
|
|
224
|
-
n = next;
|
|
225
|
-
}
|
|
226
|
-
parent.textContent = "";
|
|
227
|
-
}
|
|
228
|
-
const max = Math.max(existing.length, newChildren.length);
|
|
229
|
-
for (let i = 0; i < max; i++) {
|
|
230
|
-
const current = existing[i];
|
|
231
|
-
const next = newChildren[i];
|
|
232
|
-
const nextIsEmpty = isEmptyChild(next);
|
|
233
|
-
if (nextIsEmpty && current) {
|
|
234
|
-
teardownNodeSubtree(current);
|
|
235
|
-
current.remove();
|
|
236
|
-
continue;
|
|
237
|
-
}
|
|
238
|
-
if (!current && !nextIsEmpty) {
|
|
239
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
240
|
-
if (dom) parent.appendChild(dom);
|
|
241
|
-
continue;
|
|
242
|
-
}
|
|
243
|
-
if (!current || nextIsEmpty) continue;
|
|
244
|
-
if (typeof next === "string" || typeof next === "number") {
|
|
245
|
-
const textNode = document.createTextNode(String(next));
|
|
246
|
-
teardownNodeSubtree(current);
|
|
247
|
-
parent.replaceChild(textNode, current);
|
|
248
|
-
} else if (_isDOMElement(next)) if (typeof next.type === "string") if (tagsEqualIgnoreCase(current.tagName, next.type)) domHost.updateElementFromVnode(current, next, true, forceUpdate);
|
|
249
|
-
else {
|
|
250
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
251
|
-
if (dom) {
|
|
252
|
-
teardownNodeSubtree(current);
|
|
253
|
-
parent.replaceChild(dom, current);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
else {
|
|
257
|
-
const synced = trySyncComponentChild(current, next);
|
|
258
|
-
if (synced && synced !== current) teardownNodeSubtree(current);
|
|
259
|
-
else if (!synced) {
|
|
260
|
-
const dom = domHost.createDOMNode(next, parentNamespace);
|
|
261
|
-
if (dom) {
|
|
262
|
-
teardownNodeSubtree(current);
|
|
263
|
-
parent.replaceChild(dom, current);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
else {
|
|
268
|
-
const dom = domHost.createDOMNode(next);
|
|
269
|
-
if (dom) {
|
|
270
|
-
teardownNodeSubtree(current);
|
|
271
|
-
parent.replaceChild(dom, current);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
//#endregion
|
|
277
|
-
export { rendererReactiveChildDOMHost, updateElementChildren, updateUnkeyedChildren };
|
|
278
|
-
|
|
279
|
-
//# sourceMappingURL=element-children.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"element-children.js","names":[],"sources":["../../src/renderer/element-children.ts"],"sourcesContent":["import type { ComponentFunction } from '../runtime';\nimport { clearControlBoundaryCommitOwner } from './boundaries';\nimport {\n commitForBoundaryChildren,\n evaluateControlBoundaryState,\n getControlBoundaryState,\n getDirectControlBoundaryVNode,\n registerControlBoundaryCommitOwner,\n trySyncControlBoundaryChild,\n} from './boundaries';\nimport { isBulkTextFastPathEligible, performBulkTextReplace } from './children';\nimport { isFragmentVNode, normalizeComponentChildren } from './child-shape';\nimport { teardownNodeSubtree } from './cleanup';\nimport { getRendererDOMHost, type ElementWithContext } from './dom-host';\nimport { keyedElements } from './keyed';\nimport { getParentNamespace } from './namespaces';\nimport {\n trySyncScalarChildSequenceInPlace,\n type ReactiveChildDOMHost,\n} from './reactive-children';\nimport { reconcileKeyedChildren } from './reconcile';\nimport { tagsEqualIgnoreCase } from './static-reuse';\nimport { _isDOMElement, type DOMElement, type VNode } from './types';\nimport { extractKey } from './utils';\n\nexport const rendererReactiveChildDOMHost: ReactiveChildDOMHost = {\n createDOMNode: (node, parentNamespace) =>\n getRendererDOMHost().createDOMNode(node, parentNamespace),\n updateElementChildren: (el, children, forceUpdate) =>\n updateElementChildren(el, children, forceUpdate),\n};\n\nexport function updateElementChildren(\n el: Element,\n children: VNode | VNode[] | undefined,\n forceUpdate = false\n): void {\n const directControlBoundary = getDirectControlBoundaryVNode(children);\n if (directControlBoundary) {\n const controlState = getControlBoundaryState(directControlBoundary);\n if (!controlState) {\n throw new Error(\n '[updateElementChildren] Control boundary missing internal state'\n );\n }\n\n registerControlBoundaryCommitOwner(el, controlState);\n const childrenVNodes = evaluateControlBoundaryState(controlState);\n commitForBoundaryChildren(el, controlState, childrenVNodes as VNode[]);\n return;\n }\n\n clearControlBoundaryCommitOwner(el);\n\n if (children === null || children === undefined) {\n for (let n = el.firstChild; n; ) {\n const next = n.nextSibling;\n teardownNodeSubtree(n);\n n = next;\n }\n el.textContent = '';\n return;\n }\n\n if (!Array.isArray(children) && isFragmentVNode(children)) {\n updateUnkeyedChildren(\n el,\n normalizeComponentChildren(children),\n forceUpdate\n );\n return;\n }\n\n if (\n !Array.isArray(children) &&\n (typeof children === 'string' || typeof children === 'number')\n ) {\n if (el.childNodes.length === 1 && el.firstChild?.nodeType === 3) {\n const s = String(children);\n const t = el.firstChild as Text;\n if (t.data !== s) t.data = s;\n } else {\n for (let n = el.firstChild; n; ) {\n const next = n.nextSibling;\n teardownNodeSubtree(n);\n n = next;\n }\n el.textContent = String(children);\n }\n return;\n }\n\n if (Array.isArray(children)) {\n const normalizedChildren = normalizeComponentChildren(children) as VNode[];\n\n if (\n trySyncScalarChildSequenceInPlace(\n el,\n normalizedChildren,\n rendererReactiveChildDOMHost\n )\n ) {\n keyedElements.delete(el);\n return;\n }\n\n if (hasKeyedVNodeChildren(normalizedChildren)) {\n const oldKeyMap = getOrBuildDomKeyMap(el);\n const newKeyMap = reconcileKeyedChildren(\n el,\n normalizedChildren,\n oldKeyMap\n );\n keyedElements.set(el, newKeyMap);\n return;\n }\n if (isBulkTextFastPathEligible(el, normalizedChildren)) {\n performBulkTextReplace(el, normalizedChildren);\n keyedElements.delete(el);\n return;\n }\n updateUnkeyedChildren(el, normalizedChildren, forceUpdate);\n return;\n }\n\n if (_isDOMElement(children)) {\n updateUnkeyedChildren(el, [children], forceUpdate);\n return;\n }\n\n for (let n = el.firstChild; n; ) {\n const next = n.nextSibling;\n teardownNodeSubtree(n);\n n = next;\n }\n el.textContent = '';\n const dom = getRendererDOMHost().createDOMNode(children);\n if (dom) el.appendChild(dom);\n}\n\nfunction hasKeyedVNodeChildren(children: VNode[]): boolean {\n for (let i = 0; i < children.length; i++) {\n if (extractKey(children[i]) !== undefined) return true;\n }\n return false;\n}\n\nfunction isEmptyChild(child: unknown): boolean {\n return child === null || child === undefined || child === false;\n}\n\nfunction getOrBuildDomKeyMap(\n parent: Element\n): Map<string | number, Element> | undefined {\n let keyMap = keyedElements.get(parent);\n if (!keyMap) {\n keyMap = new Map<string | number, Element>();\n for (\n let child = parent.firstElementChild;\n child;\n child = child.nextElementSibling\n ) {\n const key = child.getAttribute('data-key');\n if (key !== null) {\n keyMap.set(key, child);\n const numericKey = Number(key);\n if (!Number.isNaN(numericKey)) keyMap.set(numericKey, child);\n }\n }\n if (keyMap.size > 0) keyedElements.set(parent, keyMap);\n }\n return keyMap.size > 0 ? keyMap : undefined;\n}\n\nexport function updateUnkeyedChildren(\n parent: Element,\n newChildren: unknown[],\n forceUpdate = false\n): void {\n const parentNamespace = getParentNamespace(parent);\n const domHost = getRendererDOMHost();\n\n const trySyncComponentChild = (\n currentDom: Element,\n next: DOMElement\n ): Node | null => {\n if (typeof next.type !== 'function') {\n return null;\n }\n\n return domHost.syncComponentElement(\n currentDom,\n next as ElementWithContext,\n next.type as ComponentFunction,\n (((next as DOMElement).props ?? {}) as Record<string, unknown>) || {},\n parentNamespace,\n forceUpdate\n );\n };\n\n const hasText = newChildren.some(\n (c) => typeof c === 'string' || typeof c === 'number'\n );\n const hasElements = newChildren.some((c) => _isDOMElement(c));\n const hasEmptyChildren = newChildren.some(isEmptyChild);\n const hasComponentChildren = newChildren.some(\n (c) => _isDOMElement(c) && typeof (c as DOMElement).type === 'function'\n );\n const hasNonElementDomChildren =\n parent.childNodes.length !== parent.children.length;\n\n if (\n !hasEmptyChildren &&\n !hasText &&\n !hasComponentChildren &&\n !hasNonElementDomChildren &&\n hasElements &&\n parent.children.length === newChildren.length\n ) {\n const c = parent.children;\n for (let i = 0; i < newChildren.length; i++) {\n const next = newChildren[i];\n const current = c[i];\n if (!current || next === undefined) continue;\n if (_isDOMElement(next) && typeof next.type === 'string') {\n if (tagsEqualIgnoreCase(current.tagName, next.type)) {\n domHost.updateElementFromVnode(current, next, true, forceUpdate);\n } else {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) {\n teardownNodeSubtree(current);\n parent.replaceChild(dom, current);\n }\n }\n } else if (_isDOMElement(next)) {\n if (trySyncControlBoundaryChild(parent, current, next)) {\n continue;\n }\n\n const synced = trySyncComponentChild(current, next);\n if (synced && synced !== current) {\n teardownNodeSubtree(current);\n } else if (!synced) {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) {\n teardownNodeSubtree(current);\n parent.replaceChild(dom, current);\n }\n }\n } else {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) {\n teardownNodeSubtree(current);\n parent.replaceChild(dom, current);\n }\n }\n }\n return;\n }\n\n const existing = Array.from(parent.children);\n\n if (\n hasText ||\n hasComponentChildren ||\n hasEmptyChildren ||\n hasNonElementDomChildren\n ) {\n const allNodes = Array.from(parent.childNodes);\n const max = Math.max(allNodes.length, newChildren.length);\n\n for (let i = 0; i < max; i++) {\n const currentNode = allNodes[i];\n const next = newChildren[i];\n const nextIsEmpty = isEmptyChild(next);\n\n if (nextIsEmpty && currentNode) {\n teardownNodeSubtree(currentNode);\n currentNode.remove();\n continue;\n }\n\n if (!currentNode && !nextIsEmpty) {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) parent.appendChild(dom);\n continue;\n }\n\n if (!currentNode || nextIsEmpty) continue;\n\n if (typeof next === 'string' || typeof next === 'number') {\n if (currentNode.nodeType === 3) {\n (currentNode as Text).data = String(next);\n } else {\n const textNode = document.createTextNode(String(next));\n parent.replaceChild(textNode, currentNode);\n }\n } else if (_isDOMElement(next)) {\n if (currentNode.nodeType === 1) {\n const currentEl = currentNode as Element;\n if (typeof next.type === 'string') {\n if (tagsEqualIgnoreCase(currentEl.tagName, next.type)) {\n domHost.updateElementFromVnode(\n currentEl,\n next,\n true,\n forceUpdate\n );\n } else {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) {\n teardownNodeSubtree(currentEl);\n parent.replaceChild(dom, currentNode);\n }\n }\n } else {\n if (trySyncControlBoundaryChild(parent, currentNode, next)) {\n continue;\n }\n\n const synced = trySyncComponentChild(currentEl, next);\n if (synced && synced !== currentNode) {\n teardownNodeSubtree(currentEl);\n } else if (!synced) {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) {\n teardownNodeSubtree(currentEl);\n parent.replaceChild(dom, currentNode);\n }\n }\n }\n } else {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) parent.replaceChild(dom, currentNode);\n }\n }\n }\n return;\n }\n\n if (\n newChildren.length === 1 &&\n existing.length === 0 &&\n parent.childNodes.length === 1\n ) {\n const firstNewChild = newChildren[0];\n const firstExisting = parent.firstChild;\n if (\n (typeof firstNewChild === 'string' ||\n typeof firstNewChild === 'number') &&\n firstExisting?.nodeType === 3\n ) {\n (firstExisting as Text).data = String(firstNewChild);\n return;\n }\n }\n\n if (existing.length === 0 && parent.childNodes.length > 0) {\n for (let n = parent.firstChild; n; ) {\n const next = n.nextSibling;\n teardownNodeSubtree(n);\n n = next;\n }\n parent.textContent = '';\n }\n const max = Math.max(existing.length, newChildren.length);\n\n for (let i = 0; i < max; i++) {\n const current = existing[i];\n const next = newChildren[i];\n const nextIsEmpty = isEmptyChild(next);\n\n if (nextIsEmpty && current) {\n teardownNodeSubtree(current);\n current.remove();\n continue;\n }\n\n if (!current && !nextIsEmpty) {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) parent.appendChild(dom);\n continue;\n }\n\n if (!current || nextIsEmpty) continue;\n\n if (typeof next === 'string' || typeof next === 'number') {\n const textNode = document.createTextNode(String(next));\n teardownNodeSubtree(current);\n parent.replaceChild(textNode, current);\n } else if (_isDOMElement(next)) {\n if (typeof next.type === 'string') {\n if (tagsEqualIgnoreCase(current.tagName, next.type)) {\n domHost.updateElementFromVnode(current, next, true, forceUpdate);\n } else {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) {\n teardownNodeSubtree(current);\n parent.replaceChild(dom, current);\n }\n }\n } else {\n const synced = trySyncComponentChild(current, next);\n if (synced && synced !== current) {\n teardownNodeSubtree(current);\n } else if (!synced) {\n const dom = domHost.createDOMNode(next, parentNamespace);\n if (dom) {\n teardownNodeSubtree(current);\n parent.replaceChild(dom, current);\n }\n }\n }\n } else {\n const dom = domHost.createDOMNode(next);\n if (dom) {\n teardownNodeSubtree(current);\n parent.replaceChild(dom, current);\n }\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/renderer/env.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { isDevelopmentEnvironment } from "../common/env.js";
|
|
2
|
-
import { logger } from "../common/logger.js";
|
|
3
|
-
import { createBoundaryReset, reportBoundaryError } from "../runtime/error-boundary.js";
|
|
4
|
-
import "../runtime/index.js";
|
|
5
|
-
import { getRendererDOMHost } from "./dom-host.js";
|
|
6
|
-
//#region src/renderer/error-boundary-dom.ts
|
|
7
|
-
function getBoundaryMessage(error) {
|
|
8
|
-
if (error instanceof Error) return error.message || error.name || "Unknown error";
|
|
9
|
-
if (typeof error === "string") return error;
|
|
10
|
-
try {
|
|
11
|
-
return JSON.stringify(error);
|
|
12
|
-
} catch {
|
|
13
|
-
return String(error);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function createDefaultFallbackNode(error, reset) {
|
|
17
|
-
const message = getBoundaryMessage(error);
|
|
18
|
-
const wrapper = document.createElement("div");
|
|
19
|
-
wrapper.setAttribute("role", "alert");
|
|
20
|
-
wrapper.setAttribute("data-askr-error-boundary", "true");
|
|
21
|
-
wrapper.style.boxSizing = "border-box";
|
|
22
|
-
wrapper.style.padding = "1rem";
|
|
23
|
-
wrapper.style.border = "1px solid currentColor";
|
|
24
|
-
wrapper.style.borderRadius = "0.75rem";
|
|
25
|
-
wrapper.style.display = "grid";
|
|
26
|
-
wrapper.style.gap = "0.75rem";
|
|
27
|
-
wrapper.style.maxWidth = "100%";
|
|
28
|
-
const title = document.createElement("strong");
|
|
29
|
-
title.textContent = "Something went wrong while rendering this view.";
|
|
30
|
-
const summary = document.createElement("p");
|
|
31
|
-
summary.textContent = "The app recovered into a visible fallback so the error is not hidden in the console.";
|
|
32
|
-
summary.style.margin = "0";
|
|
33
|
-
const details = document.createElement("details");
|
|
34
|
-
details.open = isDevelopmentEnvironment();
|
|
35
|
-
const detailsSummary = document.createElement("summary");
|
|
36
|
-
detailsSummary.textContent = "Error details";
|
|
37
|
-
const pre = document.createElement("pre");
|
|
38
|
-
pre.textContent = message;
|
|
39
|
-
pre.style.margin = "0";
|
|
40
|
-
pre.style.whiteSpace = "pre-wrap";
|
|
41
|
-
pre.style.wordBreak = "break-word";
|
|
42
|
-
const button = document.createElement("button");
|
|
43
|
-
button.type = "button";
|
|
44
|
-
button.textContent = "Try again";
|
|
45
|
-
button.addEventListener("click", () => reset());
|
|
46
|
-
details.append(detailsSummary, pre);
|
|
47
|
-
wrapper.append(title, summary, details, button);
|
|
48
|
-
return wrapper;
|
|
49
|
-
}
|
|
50
|
-
function resolveErrorBoundaryFallback(fallback, error, reset) {
|
|
51
|
-
if (typeof fallback === "function") return fallback(error, reset);
|
|
52
|
-
return fallback ?? createDefaultFallbackNode(error, reset);
|
|
53
|
-
}
|
|
54
|
-
function createErrorBoundaryElement(node, props, parentNamespace) {
|
|
55
|
-
const boundaryState = node.__instance?.errorBoundaryState ?? null;
|
|
56
|
-
const reset = node.__instance ? createBoundaryReset(node.__instance) : () => {};
|
|
57
|
-
const fallback = props.fallback;
|
|
58
|
-
const children = props.children;
|
|
59
|
-
const domHost = getRendererDOMHost();
|
|
60
|
-
if (boundaryState?.error != null) {
|
|
61
|
-
const fallbackValue = resolveErrorBoundaryFallback(fallback, boundaryState.error, reset);
|
|
62
|
-
if (fallbackValue instanceof Node) return fallbackValue;
|
|
63
|
-
return domHost.createDOMNode(fallbackValue, parentNamespace) ?? document.createComment("");
|
|
64
|
-
}
|
|
65
|
-
try {
|
|
66
|
-
return domHost.createDOMNode(children, parentNamespace) ?? document.createComment("");
|
|
67
|
-
} catch (error) {
|
|
68
|
-
if (node.__instance) reportBoundaryError(node.__instance, error, props.onError);
|
|
69
|
-
else logger.error("[Askr] ErrorBoundary caught render error:", error);
|
|
70
|
-
const fallbackValue = resolveErrorBoundaryFallback(fallback, error, reset);
|
|
71
|
-
if (fallbackValue instanceof Node) return fallbackValue;
|
|
72
|
-
return domHost.createDOMNode(fallbackValue, parentNamespace) ?? document.createComment("");
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//#endregion
|
|
76
|
-
export { createErrorBoundaryElement };
|
|
77
|
-
|
|
78
|
-
//# sourceMappingURL=error-boundary-dom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-boundary-dom.js","names":[],"sources":["../../src/renderer/error-boundary-dom.ts"],"sourcesContent":["import {\n type ErrorBoundaryFallbackValue,\n type ErrorBoundaryProps,\n} from '../common/error-boundary';\nimport { isDevelopmentEnvironment } from '../common/env';\nimport { logger } from '../common/logger';\nimport { createBoundaryReset, reportBoundaryError } from '../runtime';\nimport type { ComponentInstance } from '../runtime';\nimport { getRendererDOMHost } from './dom-host';\nimport type { DOMElement } from './types';\n\nexport type ErrorBoundaryVNode = DOMElement & {\n __instance?: ComponentInstance;\n};\n\nfunction getBoundaryMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message || error.name || 'Unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n try {\n return JSON.stringify(error);\n } catch {\n return String(error);\n }\n}\n\nfunction createDefaultFallbackNode(error: unknown, reset: () => void): Node {\n const message = getBoundaryMessage(error);\n const wrapper = document.createElement('div');\n wrapper.setAttribute('role', 'alert');\n wrapper.setAttribute('data-askr-error-boundary', 'true');\n wrapper.style.boxSizing = 'border-box';\n wrapper.style.padding = '1rem';\n wrapper.style.border = '1px solid currentColor';\n wrapper.style.borderRadius = '0.75rem';\n wrapper.style.display = 'grid';\n wrapper.style.gap = '0.75rem';\n wrapper.style.maxWidth = '100%';\n\n const title = document.createElement('strong');\n title.textContent = 'Something went wrong while rendering this view.';\n\n const summary = document.createElement('p');\n summary.textContent =\n 'The app recovered into a visible fallback so the error is not hidden in the console.';\n summary.style.margin = '0';\n\n const details = document.createElement('details');\n details.open = isDevelopmentEnvironment();\n\n const detailsSummary = document.createElement('summary');\n detailsSummary.textContent = 'Error details';\n\n const pre = document.createElement('pre');\n pre.textContent = message;\n pre.style.margin = '0';\n pre.style.whiteSpace = 'pre-wrap';\n pre.style.wordBreak = 'break-word';\n\n const button = document.createElement('button');\n button.type = 'button';\n button.textContent = 'Try again';\n button.addEventListener('click', () => reset());\n\n details.append(detailsSummary, pre);\n wrapper.append(title, summary, details, button);\n return wrapper;\n}\n\nfunction resolveErrorBoundaryFallback(\n fallback: ErrorBoundaryProps['fallback'],\n error: unknown,\n reset: () => void\n): ErrorBoundaryFallbackValue {\n if (typeof fallback === 'function') {\n return fallback(error, reset);\n }\n\n return fallback ?? createDefaultFallbackNode(error, reset);\n}\n\nexport function createErrorBoundaryElement(\n node: ErrorBoundaryVNode,\n props: Record<string, unknown>,\n parentNamespace?: string\n): Node {\n const boundaryState = node.__instance?.errorBoundaryState ?? null;\n const reset = node.__instance\n ? createBoundaryReset(node.__instance)\n : () => {};\n const fallback = props.fallback as ErrorBoundaryProps['fallback'];\n const children = props.children as ErrorBoundaryProps['children'];\n const domHost = getRendererDOMHost();\n\n if (boundaryState?.error != null) {\n const fallbackValue = resolveErrorBoundaryFallback(\n fallback,\n boundaryState.error,\n reset\n );\n if (fallbackValue instanceof Node) {\n return fallbackValue;\n }\n const fallbackDom = domHost.createDOMNode(fallbackValue, parentNamespace);\n return fallbackDom ?? document.createComment('');\n }\n\n try {\n const dom = domHost.createDOMNode(children, parentNamespace);\n return dom ?? document.createComment('');\n } catch (error) {\n if (node.__instance) {\n reportBoundaryError(\n node.__instance,\n error,\n props.onError as ((next: unknown) => void) | undefined\n );\n } else {\n logger.error('[Askr] ErrorBoundary caught render error:', error);\n }\n\n const fallbackValue = resolveErrorBoundaryFallback(fallback, error, reset);\n if (fallbackValue instanceof Node) {\n return fallbackValue;\n }\n const fallbackDom = domHost.createDOMNode(fallbackValue, parentNamespace);\n return fallbackDom ?? document.createComment('');\n }\n}\n"],"mappings":";;;;;;AAeA,SAAS,mBAAmB,OAAwB;CAClD,IAAI,iBAAiB,OACnB,OAAO,MAAM,WAAW,MAAM,QAAQ;CAGxC,IAAI,OAAO,UAAU,UACnB,OAAO;CAGT,IAAI;EACF,OAAO,KAAK,UAAU,KAAK;CAC7B,QAAQ;EACN,OAAO,OAAO,KAAK;CACrB;AACF;AAEA,SAAS,0BAA0B,OAAgB,OAAyB;CAC1E,MAAM,UAAU,mBAAmB,KAAK;CACxC,MAAM,UAAU,SAAS,cAAc,KAAK;CAC5C,QAAQ,aAAa,QAAQ,OAAO;CACpC,QAAQ,aAAa,4BAA4B,MAAM;CACvD,QAAQ,MAAM,YAAY;CAC1B,QAAQ,MAAM,UAAU;CACxB,QAAQ,MAAM,SAAS;CACvB,QAAQ,MAAM,eAAe;CAC7B,QAAQ,MAAM,UAAU;CACxB,QAAQ,MAAM,MAAM;CACpB,QAAQ,MAAM,WAAW;CAEzB,MAAM,QAAQ,SAAS,cAAc,QAAQ;CAC7C,MAAM,cAAc;CAEpB,MAAM,UAAU,SAAS,cAAc,GAAG;CAC1C,QAAQ,cACN;CACF,QAAQ,MAAM,SAAS;CAEvB,MAAM,UAAU,SAAS,cAAc,SAAS;CAChD,QAAQ,OAAO,yBAAyB;CAExC,MAAM,iBAAiB,SAAS,cAAc,SAAS;CACvD,eAAe,cAAc;CAE7B,MAAM,MAAM,SAAS,cAAc,KAAK;CACxC,IAAI,cAAc;CAClB,IAAI,MAAM,SAAS;CACnB,IAAI,MAAM,aAAa;CACvB,IAAI,MAAM,YAAY;CAEtB,MAAM,SAAS,SAAS,cAAc,QAAQ;CAC9C,OAAO,OAAO;CACd,OAAO,cAAc;CACrB,OAAO,iBAAiB,eAAe,MAAM,CAAC;CAE9C,QAAQ,OAAO,gBAAgB,GAAG;CAClC,QAAQ,OAAO,OAAO,SAAS,SAAS,MAAM;CAC9C,OAAO;AACT;AAEA,SAAS,6BACP,UACA,OACA,OAC4B;CAC5B,IAAI,OAAO,aAAa,YACtB,OAAO,SAAS,OAAO,KAAK;CAG9B,OAAO,YAAY,0BAA0B,OAAO,KAAK;AAC3D;AAEA,SAAgB,2BACd,MACA,OACA,iBACM;CACN,MAAM,gBAAgB,KAAK,YAAY,sBAAsB;CAC7D,MAAM,QAAQ,KAAK,aACf,oBAAoB,KAAK,UAAU,UAC7B,CAAC;CACX,MAAM,WAAW,MAAM;CACvB,MAAM,WAAW,MAAM;CACvB,MAAM,UAAU,mBAAmB;CAEnC,IAAI,eAAe,SAAS,MAAM;EAChC,MAAM,gBAAgB,6BACpB,UACA,cAAc,OACd,KACF;EACA,IAAI,yBAAyB,MAC3B,OAAO;EAGT,OADoB,QAAQ,cAAc,eAAe,eAClD,KAAe,SAAS,cAAc,EAAE;CACjD;CAEA,IAAI;EAEF,OADY,QAAQ,cAAc,UAAU,eACrC,KAAO,SAAS,cAAc,EAAE;CACzC,SAAS,OAAO;EACd,IAAI,KAAK,YACP,oBACE,KAAK,YACL,OACA,MAAM,OACR;OAEA,OAAO,MAAM,6CAA6C,KAAK;EAGjE,MAAM,gBAAgB,6BAA6B,UAAU,OAAO,KAAK;EACzE,IAAI,yBAAyB,MAC3B,OAAO;EAGT,OADoB,QAAQ,cAAc,eAAe,eAClD,KAAe,SAAS,cAAc,EAAE;CACjD;AACF"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { _isDOMElement } from "../common/vnode.js";
|
|
2
|
-
import "./types.js";
|
|
3
|
-
import { teardownNodeSubtree } from "./cleanup.js";
|
|
4
|
-
import { getRendererDOMHost } from "./dom-host.js";
|
|
5
|
-
import { smartUpdateElement, tagNamesEqualIgnoreCase } from "./evaluate-reconcile.js";
|
|
6
|
-
//#region src/renderer/evaluate-dom-range.ts
|
|
7
|
-
const domRanges = /* @__PURE__ */ new WeakMap();
|
|
8
|
-
function hasDOMRange(context) {
|
|
9
|
-
return domRanges.has(context);
|
|
10
|
-
}
|
|
11
|
-
function createDOMRange(target, context, node) {
|
|
12
|
-
const start = document.createComment("component-start");
|
|
13
|
-
const end = document.createComment("component-end");
|
|
14
|
-
target.appendChild(start);
|
|
15
|
-
target.appendChild(end);
|
|
16
|
-
domRanges.set(context, {
|
|
17
|
-
start,
|
|
18
|
-
end
|
|
19
|
-
});
|
|
20
|
-
const dom = getRendererDOMHost().createDOMNode(node);
|
|
21
|
-
if (dom) target.insertBefore(dom, end);
|
|
22
|
-
}
|
|
23
|
-
function cleanupRangeNode(node) {
|
|
24
|
-
teardownNodeSubtree(node);
|
|
25
|
-
}
|
|
26
|
-
function updateDOMRangeForContext(target, context, children) {
|
|
27
|
-
const range = domRanges.get(context);
|
|
28
|
-
if (!range) return;
|
|
29
|
-
let current = range.start.nextSibling;
|
|
30
|
-
const domHost = getRendererDOMHost();
|
|
31
|
-
for (let i = 0; i < children.length; i++) {
|
|
32
|
-
const nextChild = children[i];
|
|
33
|
-
const currentNode = current === range.end ? null : current;
|
|
34
|
-
const nextCurrent = currentNode?.nextSibling ?? null;
|
|
35
|
-
if (nextChild === null || nextChild === void 0 || nextChild === false) {
|
|
36
|
-
if (currentNode) {
|
|
37
|
-
cleanupRangeNode(currentNode);
|
|
38
|
-
target.removeChild(currentNode);
|
|
39
|
-
}
|
|
40
|
-
current = nextCurrent;
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
if (typeof nextChild === "string" || typeof nextChild === "number") {
|
|
44
|
-
if (currentNode?.nodeType === 3) currentNode.data = String(nextChild);
|
|
45
|
-
else {
|
|
46
|
-
const textNode = document.createTextNode(String(nextChild));
|
|
47
|
-
if (currentNode) {
|
|
48
|
-
cleanupRangeNode(currentNode);
|
|
49
|
-
target.replaceChild(textNode, currentNode);
|
|
50
|
-
} else target.insertBefore(textNode, range.end);
|
|
51
|
-
}
|
|
52
|
-
current = nextCurrent;
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
if (currentNode instanceof Element && _isDOMElement(nextChild) && typeof nextChild.type === "string" && tagNamesEqualIgnoreCase(currentNode.tagName, nextChild.type)) {
|
|
56
|
-
smartUpdateElement(currentNode, nextChild, cleanupRangeNode);
|
|
57
|
-
current = nextCurrent;
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
const newDom = domHost.createDOMNode(nextChild);
|
|
61
|
-
if (!newDom) {
|
|
62
|
-
if (currentNode) {
|
|
63
|
-
cleanupRangeNode(currentNode);
|
|
64
|
-
target.removeChild(currentNode);
|
|
65
|
-
}
|
|
66
|
-
current = nextCurrent;
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
if (currentNode) {
|
|
70
|
-
cleanupRangeNode(currentNode);
|
|
71
|
-
target.replaceChild(newDom, currentNode);
|
|
72
|
-
} else target.insertBefore(newDom, range.end);
|
|
73
|
-
current = nextCurrent;
|
|
74
|
-
}
|
|
75
|
-
while (current && current !== range.end) {
|
|
76
|
-
const next = current.nextSibling;
|
|
77
|
-
cleanupRangeNode(current);
|
|
78
|
-
target.removeChild(current);
|
|
79
|
-
current = next;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
//#endregion
|
|
83
|
-
export { cleanupRangeNode, createDOMRange, hasDOMRange, updateDOMRangeForContext };
|
|
84
|
-
|
|
85
|
-
//# sourceMappingURL=evaluate-dom-range.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate-dom-range.js","names":[],"sources":["../../src/renderer/evaluate-dom-range.ts"],"sourcesContent":["import { teardownNodeSubtree } from './cleanup';\nimport { getRendererDOMHost } from './dom-host';\nimport {\n smartUpdateElement,\n tagNamesEqualIgnoreCase,\n} from './evaluate-reconcile';\nimport { _isDOMElement } from './types';\n\ninterface DOMRange {\n start: Node;\n end: Node;\n}\n\nconst domRanges = new WeakMap<object, DOMRange>();\n\nexport function hasDOMRange(context: object): boolean {\n return domRanges.has(context);\n}\n\nexport function createDOMRange(\n target: Element,\n context: object,\n node: unknown\n): void {\n const start = document.createComment('component-start');\n const end = document.createComment('component-end');\n target.appendChild(start);\n target.appendChild(end);\n domRanges.set(context, { start, end });\n\n const dom = getRendererDOMHost().createDOMNode(node);\n if (dom) {\n target.insertBefore(dom, end);\n }\n}\n\nexport function cleanupRangeNode(node: Node): void {\n teardownNodeSubtree(node);\n}\n\nexport function updateDOMRangeForContext(\n target: Element,\n context: object,\n children: unknown[]\n): void {\n const range = domRanges.get(context);\n if (!range) {\n return;\n }\n\n let current: Node | null = range.start.nextSibling;\n const domHost = getRendererDOMHost();\n\n for (let i = 0; i < children.length; i++) {\n const nextChild = children[i];\n const currentNode = current === range.end ? null : current;\n const nextCurrent = currentNode?.nextSibling ?? null;\n\n if (nextChild === null || nextChild === undefined || nextChild === false) {\n if (currentNode) {\n cleanupRangeNode(currentNode);\n target.removeChild(currentNode);\n }\n current = nextCurrent;\n continue;\n }\n\n if (typeof nextChild === 'string' || typeof nextChild === 'number') {\n if (currentNode?.nodeType === 3) {\n (currentNode as Text).data = String(nextChild);\n } else {\n const textNode = document.createTextNode(String(nextChild));\n if (currentNode) {\n cleanupRangeNode(currentNode);\n target.replaceChild(textNode, currentNode);\n } else {\n target.insertBefore(textNode, range.end);\n }\n }\n current = nextCurrent;\n continue;\n }\n\n if (\n currentNode instanceof Element &&\n _isDOMElement(nextChild) &&\n typeof nextChild.type === 'string' &&\n tagNamesEqualIgnoreCase(currentNode.tagName, nextChild.type)\n ) {\n smartUpdateElement(currentNode, nextChild, cleanupRangeNode);\n current = nextCurrent;\n continue;\n }\n\n const newDom = domHost.createDOMNode(nextChild);\n if (!newDom) {\n if (currentNode) {\n cleanupRangeNode(currentNode);\n target.removeChild(currentNode);\n }\n current = nextCurrent;\n continue;\n }\n\n if (currentNode) {\n cleanupRangeNode(currentNode);\n target.replaceChild(newDom, currentNode);\n } else {\n target.insertBefore(newDom, range.end);\n }\n\n current = nextCurrent;\n }\n\n while (current && current !== range.end) {\n const next = current.nextSibling;\n cleanupRangeNode(current);\n target.removeChild(current);\n current = next;\n }\n}\n\nexport function clearDOMRange(context: object): void {\n domRanges.delete(context);\n}\n"],"mappings":";;;;;;AAaA,MAAM,4BAAY,IAAI,QAA0B;AAEhD,SAAgB,YAAY,SAA0B;CACpD,OAAO,UAAU,IAAI,OAAO;AAC9B;AAEA,SAAgB,eACd,QACA,SACA,MACM;CACN,MAAM,QAAQ,SAAS,cAAc,iBAAiB;CACtD,MAAM,MAAM,SAAS,cAAc,eAAe;CAClD,OAAO,YAAY,KAAK;CACxB,OAAO,YAAY,GAAG;CACtB,UAAU,IAAI,SAAS;EAAE;EAAO;CAAI,CAAC;CAErC,MAAM,MAAM,mBAAmB,CAAC,CAAC,cAAc,IAAI;CACnD,IAAI,KACF,OAAO,aAAa,KAAK,GAAG;AAEhC;AAEA,SAAgB,iBAAiB,MAAkB;CACjD,oBAAoB,IAAI;AAC1B;AAEA,SAAgB,yBACd,QACA,SACA,UACM;CACN,MAAM,QAAQ,UAAU,IAAI,OAAO;CACnC,IAAI,CAAC,OACH;CAGF,IAAI,UAAuB,MAAM,MAAM;CACvC,MAAM,UAAU,mBAAmB;CAEnC,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,YAAY,SAAS;EAC3B,MAAM,cAAc,YAAY,MAAM,MAAM,OAAO;EACnD,MAAM,cAAc,aAAa,eAAe;EAEhD,IAAI,cAAc,QAAQ,cAAc,UAAa,cAAc,OAAO;GACxE,IAAI,aAAa;IACf,iBAAiB,WAAW;IAC5B,OAAO,YAAY,WAAW;GAChC;GACA,UAAU;GACV;EACF;EAEA,IAAI,OAAO,cAAc,YAAY,OAAO,cAAc,UAAU;GAClE,IAAI,aAAa,aAAa,GAC5B,YAAsB,OAAO,OAAO,SAAS;QACxC;IACL,MAAM,WAAW,SAAS,eAAe,OAAO,SAAS,CAAC;IAC1D,IAAI,aAAa;KACf,iBAAiB,WAAW;KAC5B,OAAO,aAAa,UAAU,WAAW;IAC3C,OACE,OAAO,aAAa,UAAU,MAAM,GAAG;GAE3C;GACA,UAAU;GACV;EACF;EAEA,IACE,uBAAuB,WACvB,cAAc,SAAS,KACvB,OAAO,UAAU,SAAS,YAC1B,wBAAwB,YAAY,SAAS,UAAU,IAAI,GAC3D;GACA,mBAAmB,aAAa,WAAW,gBAAgB;GAC3D,UAAU;GACV;EACF;EAEA,MAAM,SAAS,QAAQ,cAAc,SAAS;EAC9C,IAAI,CAAC,QAAQ;GACX,IAAI,aAAa;IACf,iBAAiB,WAAW;IAC5B,OAAO,YAAY,WAAW;GAChC;GACA,UAAU;GACV;EACF;EAEA,IAAI,aAAa;GACf,iBAAiB,WAAW;GAC5B,OAAO,aAAa,QAAQ,WAAW;EACzC,OACE,OAAO,aAAa,QAAQ,MAAM,GAAG;EAGvC,UAAU;CACZ;CAEA,OAAO,WAAW,YAAY,MAAM,KAAK;EACvC,MAAM,OAAO,QAAQ;EACrB,iBAAiB,OAAO;EACxB,OAAO,YAAY,OAAO;EAC1B,UAAU;CACZ;AACF"}
|