@askrjs/askr 0.0.52 → 0.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +182 -9
- package/dist/actions/index.d.ts +2 -0
- package/dist/actions/index.js +103 -0
- package/dist/{common/attr-names.js → attr-names-CjhzmHOn.js} +1 -1
- package/dist/benchmark.d.ts +6 -2
- package/dist/benchmark.js +63 -11
- package/dist/boot/index.d.ts +61 -2
- package/dist/boot/index.js +1 -203
- package/dist/boot-j2KoN6ss.js +647 -0
- package/dist/cleanup-COv77su2.js +487 -0
- package/dist/component-internal-B3z7GXlD.js +614 -0
- package/dist/component-lifecycle-CO4hXlP4.js +357 -0
- package/dist/{runtime/component-scope.js → component-scope-CC3cojX9.js} +8 -1
- package/dist/component-scope-CvPba6O6.d.ts +12 -0
- package/dist/components/index.d.ts +17 -2
- package/dist/components/index.js +39 -1
- package/dist/compose-ref-Cc_YkUpM.js +92 -0
- package/dist/{foundations/utilities/compose-ref.d.ts → compose-ref-Cizq72-x.d.ts} +1 -1
- package/dist/control/index.d.ts +1 -3
- package/dist/control/index.js +1 -3
- package/dist/control-BQvNVfAd.d.ts +436 -0
- package/dist/control-BYyLTFyw.js +165 -0
- package/dist/control-Bf4Wkdvv.d.ts +9 -0
- package/dist/{common/control.js → control-DhFRTIoE.js} +1 -1
- package/dist/data/index.d.ts +2 -6
- package/dist/data/index.js +4 -5
- package/dist/data-DnxnDxD-.js +559 -0
- package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +32 -31
- package/dist/deferred-lKE8uR0z.js +386 -0
- package/dist/{runtime/effect.js → effect-BwnIvLah.js} +4 -4
- package/dist/fastlane-Dw8SOBr9.js +343 -0
- package/dist/for-internal-BKf_Tnv1.js +1563 -0
- package/dist/foundations/icon/index.d.ts +68 -2
- package/dist/foundations/icon/index.js +85 -1
- package/dist/foundations/index.d.ts +2 -5
- package/dist/foundations/index.js +2 -5
- package/dist/foundations/interactions/index.d.ts +264 -6
- package/dist/foundations/interactions/index.js +1 -6
- package/dist/foundations/state/index.d.ts +32 -1
- package/dist/foundations/state/index.js +78 -1
- package/dist/foundations/structures/index.d.ts +2 -7
- package/dist/foundations/structures/index.js +2 -7
- package/dist/foundations/utilities/index.d.ts +2 -6
- package/dist/foundations/utilities/index.js +2 -5
- package/dist/fx/index.d.ts +190 -3
- package/dist/fx/index.js +454 -4
- package/dist/index-31Uoz_NS.d.ts +239 -0
- package/dist/index-Bki2rqcr.d.ts +233 -0
- package/dist/index-BnU0NPwM.d.ts +101 -0
- package/dist/index-D73jgYx1.d.ts +48 -0
- package/dist/{runtime/runtime.d.ts → index-R2JJIbM-.d.ts} +31 -8
- package/dist/index-SJXJkssx.d.ts +44 -0
- package/dist/index.d.ts +8 -13
- package/dist/index.js +150 -15
- package/dist/interactions-w7gQN4ha.js +280 -0
- package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -1
- package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -5
- package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -1
- package/dist/jsx-dev-runtime.d.ts +2 -4
- package/dist/jsx-dev-runtime.js +7 -5
- package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
- package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
- package/dist/jsx-runtime.d.ts +2 -35
- package/dist/jsx-runtime.js +11 -5
- package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-D9va7GOU.js} +4 -5
- package/dist/navigate-BVDCzOuB.d.ts +34 -0
- package/dist/navigate-CmPLSXyw.js +1449 -0
- package/dist/{runtime/portal.js → portal-CyU3Ucf2.js} +33 -36
- package/dist/query-registry-CQIT4mXr.js +73 -0
- package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -6
- package/dist/renderer-DzPjeLby.js +6197 -0
- package/dist/{runtime/resource-operation.js → resource-operation-CEzfpnDk.js} +118 -15
- package/dist/resources/index.d.ts +42 -3
- package/dist/resources/index.js +3 -4
- package/dist/{common/route-activity.js → route-activity-CNJfpwx-.js} +1 -1
- package/dist/route-matching-vJpvLVbX.js +515 -0
- package/dist/router/index.d.ts +166 -14
- package/dist/router/index.js +150 -12
- package/dist/{common/router.d.ts → router-CeYvjj5_.d.ts} +72 -28
- package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -1
- package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -3
- package/dist/{runtime/selector.js → selector-DafVYzV4.js} +34 -11
- package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -1
- package/dist/ssg/index.d.ts +252 -4
- package/dist/ssg/index.js +857 -1
- package/dist/ssr/index.d.ts +225 -8
- package/dist/ssr/index.js +3 -6
- package/dist/{common/ssr.js → ssr-CbQO5xd3.js} +1 -1
- package/dist/ssr-D3t80Rc0.js +1413 -0
- package/dist/{runtime/state.js → state-DPl8lffD.js} +3 -5
- package/dist/structures-DUB3HchX.js +221 -0
- package/dist/testing/index.d.ts +3 -2
- package/dist/testing/index.js +2 -5
- package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -5
- package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -1
- package/dist/{ssr/verify-hydration.js → verify-hydration-io9ahUeq.js} +2 -2
- package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -2
- package/package.json +12 -7
- package/dist/bench/components/benchmark-row.d.ts +0 -20
- package/dist/bench/components/benchmark-row.js +0 -40
- package/dist/bench/components/benchmark-table.js +0 -23
- package/dist/bin/askr-ssg.d.ts +0 -27
- package/dist/bin/askr-ssg.js +0 -186
- package/dist/boot/hydration.js +0 -139
- package/dist/boot/root-lifecycle.d.ts +0 -18
- package/dist/boot/root-lifecycle.js +0 -209
- package/dist/boot/route-startup.js +0 -54
- package/dist/boot/types.d.ts +0 -61
- package/dist/common/component.d.ts +0 -18
- package/dist/common/control.d.ts +0 -12
- package/dist/common/dom-range.d.ts +0 -13
- package/dist/common/env.js +0 -41
- package/dist/common/error-boundary.d.ts +0 -15
- package/dist/common/invariant.js +0 -15
- package/dist/common/jsx.d.ts +0 -22
- package/dist/common/logger.js +0 -34
- package/dist/common/promise.js +0 -6
- package/dist/common/ssr-errors.d.ts +0 -10
- package/dist/common/ssr-errors.js +0 -14
- package/dist/common/ssr.d.ts +0 -41
- package/dist/common/vnode.d.ts +0 -21
- package/dist/components/error-boundary.d.ts +0 -14
- package/dist/components/error-boundary.js +0 -41
- package/dist/components/link.d.ts +0 -68
- package/dist/components/link.js +0 -74
- package/dist/control/case.d.ts +0 -18
- package/dist/control/case.js +0 -68
- package/dist/control/for.d.ts +0 -23
- package/dist/control/for.js +0 -61
- package/dist/control/shared.d.ts +0 -8
- package/dist/control/shared.js +0 -18
- package/dist/control/show.d.ts +0 -14
- package/dist/control/show.js +0 -32
- package/dist/data/data-runtime.d.ts +0 -27
- package/dist/data/invalidation.d.ts +0 -8
- package/dist/data/invalidation.js +0 -25
- package/dist/data/mutation-cell.d.ts +0 -27
- package/dist/data/mutation-cell.js +0 -133
- package/dist/data/query-cell.d.ts +0 -47
- package/dist/data/query-cell.js +0 -324
- package/dist/data/query-key.js +0 -40
- package/dist/data/shared.js +0 -20
- package/dist/data/testing.js +0 -2
- package/dist/data/types.d.ts +0 -160
- package/dist/foundations/icon/icon.d.ts +0 -52
- package/dist/foundations/icon/icon.js +0 -86
- package/dist/foundations/icon/icon.types.d.ts +0 -21
- package/dist/foundations/interactions/dismissable.d.ts +0 -71
- package/dist/foundations/interactions/dismissable.js +0 -24
- package/dist/foundations/interactions/focusable.d.ts +0 -21
- package/dist/foundations/interactions/focusable.js +0 -16
- package/dist/foundations/interactions/hoverable.d.ts +0 -25
- package/dist/foundations/interactions/hoverable.js +0 -13
- package/dist/foundations/interactions/interaction-policy.d.ts +0 -49
- package/dist/foundations/interactions/interaction-policy.js +0 -120
- package/dist/foundations/interactions/pressable.d.ts +0 -60
- package/dist/foundations/interactions/pressable.js +0 -49
- package/dist/foundations/interactions/roving-focus.d.ts +0 -51
- package/dist/foundations/interactions/roving-focus.js +0 -69
- package/dist/foundations/state/controllable.d.ts +0 -32
- package/dist/foundations/state/controllable.js +0 -80
- package/dist/foundations/structures/collection.d.ts +0 -51
- package/dist/foundations/structures/collection.js +0 -49
- package/dist/foundations/structures/layer.d.ts +0 -80
- package/dist/foundations/structures/layer.js +0 -79
- package/dist/foundations/structures/layout.d.ts +0 -32
- package/dist/foundations/structures/layout.js +0 -11
- package/dist/foundations/structures/portal.d.ts +0 -2
- package/dist/foundations/structures/portal.js +0 -3
- package/dist/foundations/structures/presence.d.ts +0 -36
- package/dist/foundations/structures/presence.js +0 -37
- package/dist/foundations/structures/slot.d.ts +0 -34
- package/dist/foundations/structures/slot.js +0 -39
- package/dist/foundations/utilities/aria.d.ts +0 -15
- package/dist/foundations/utilities/aria.js +0 -15
- package/dist/foundations/utilities/compose-handlers.d.ts +0 -36
- package/dist/foundations/utilities/compose-handlers.js +0 -18
- package/dist/foundations/utilities/compose-ref.js +0 -16
- package/dist/foundations/utilities/event-types.d.ts +0 -19
- package/dist/foundations/utilities/merge-props.d.ts +0 -4
- package/dist/foundations/utilities/merge-props.js +0 -47
- package/dist/foundations/utilities/use-id.d.ts +0 -31
- package/dist/fx/fx.d.ts +0 -32
- package/dist/fx/fx.js +0 -211
- package/dist/fx/noop.js +0 -7
- package/dist/fx/timing.d.ts +0 -158
- package/dist/fx/timing.js +0 -241
- package/dist/jsx/index.d.ts +0 -2
- package/dist/jsx/index.js +0 -4
- package/dist/jsx/types.js +0 -2
- package/dist/jsx/utils.d.ts +0 -4
- package/dist/jsx/utils.js +0 -17
- package/dist/jsx-runtime2.d.ts +0 -3
- package/dist/jsx-runtime2.js +0 -4
- package/dist/renderer/attributes.js +0 -254
- package/dist/renderer/boundaries.js +0 -142
- package/dist/renderer/boundary-materialization.js +0 -72
- package/dist/renderer/boundary-range-adoption.js +0 -76
- package/dist/renderer/boundary-range-sync.js +0 -101
- package/dist/renderer/boundary-state.js +0 -50
- package/dist/renderer/child-shape.js +0 -83
- package/dist/renderer/children-fastpath.js +0 -149
- package/dist/renderer/children.js +0 -158
- package/dist/renderer/cleanup.js +0 -267
- package/dist/renderer/component-host-cleanup.js +0 -143
- package/dist/renderer/component-host-instances.js +0 -116
- package/dist/renderer/component-host-replacement.js +0 -105
- package/dist/renderer/component-host-results.js +0 -138
- package/dist/renderer/component-host.js +0 -172
- package/dist/renderer/dom-host.js +0 -11
- package/dist/renderer/dom-internal.js +0 -243
- package/dist/renderer/dom-range.js +0 -161
- package/dist/renderer/dom.js +0 -11
- package/dist/renderer/element-children.js +0 -359
- package/dist/renderer/env.js +0 -2
- package/dist/renderer/error-boundary-dom.js +0 -86
- package/dist/renderer/evaluate-dom-range.js +0 -84
- package/dist/renderer/evaluate-reconcile.js +0 -257
- package/dist/renderer/evaluate.js +0 -95
- package/dist/renderer/fastpath.js +0 -142
- package/dist/renderer/for-commit-dom-map.js +0 -71
- package/dist/renderer/for-commit-removal.js +0 -27
- package/dist/renderer/for-commit-reorder.js +0 -87
- package/dist/renderer/for-commit.js +0 -442
- package/dist/renderer/hydration-boundaries.js +0 -60
- package/dist/renderer/hydration-listener-transaction.js +0 -49
- package/dist/renderer/index.js +0 -39
- package/dist/renderer/intrinsic-blueprint-analysis.js +0 -202
- package/dist/renderer/intrinsic-blueprint-bindings.js +0 -152
- package/dist/renderer/intrinsic-blueprint-materialization.js +0 -100
- package/dist/renderer/intrinsic-blueprint.js +0 -30
- package/dist/renderer/intrinsic-hydration-adoption.js +0 -66
- package/dist/renderer/keyed-children.js +0 -26
- package/dist/renderer/keyed.js +0 -167
- package/dist/renderer/namespaces.js +0 -21
- package/dist/renderer/prop-bindings.js +0 -315
- package/dist/renderer/reactive-child-dom.js +0 -139
- package/dist/renderer/reactive-child-sources.js +0 -182
- package/dist/renderer/reactive-children.js +0 -303
- package/dist/renderer/reconcile-commit.js +0 -36
- package/dist/renderer/reconcile-fastpaths.js +0 -100
- package/dist/renderer/reconcile-resolution.js +0 -163
- package/dist/renderer/reconcile.js +0 -37
- package/dist/renderer/retained-element-rollback.js +0 -288
- package/dist/renderer/stable-patch.js +0 -80
- package/dist/renderer/static-reuse.js +0 -94
- package/dist/renderer/types.js +0 -2
- package/dist/renderer/utils.js +0 -265
- package/dist/router/access.js +0 -34
- package/dist/router/activity.d.ts +0 -9
- package/dist/router/activity.js +0 -85
- package/dist/router/authoring.d.ts +0 -21
- package/dist/router/authoring.js +0 -196
- package/dist/router/internal-types.d.ts +0 -30
- package/dist/router/lazy.d.ts +0 -18
- package/dist/router/lazy.js +0 -50
- package/dist/router/manifest.d.ts +0 -9
- package/dist/router/manifest.js +0 -47
- package/dist/router/match.js +0 -120
- package/dist/router/navigate.d.ts +0 -10
- package/dist/router/navigate.js +0 -73
- package/dist/router/navigation-registry.d.ts +0 -31
- package/dist/router/navigation-registry.js +0 -103
- package/dist/router/navigation-scroll.d.ts +0 -13
- package/dist/router/navigation-scroll.js +0 -91
- package/dist/router/navigation-targets.d.ts +0 -30
- package/dist/router/navigation-targets.js +0 -634
- package/dist/router/policy.d.ts +0 -27
- package/dist/router/policy.js +0 -130
- package/dist/router/rendering.d.ts +0 -9
- package/dist/router/rendering.js +0 -47
- package/dist/router/resolution.d.ts +0 -3
- package/dist/router/resolution.js +0 -84
- package/dist/router/route-context.js +0 -77
- package/dist/router/route-matching.d.ts +0 -19
- package/dist/router/route-matching.js +0 -173
- package/dist/router/route-query.d.ts +0 -16
- package/dist/router/route-query.js +0 -45
- package/dist/router/route.d.ts +0 -8
- package/dist/router/route.js +0 -10
- package/dist/router/store.d.ts +0 -49
- package/dist/router/store.js +0 -169
- package/dist/router/testing.js +0 -4
- package/dist/runtime/access.d.ts +0 -19
- package/dist/runtime/access.js +0 -43
- package/dist/runtime/child-scope.d.ts +0 -41
- package/dist/runtime/child-scope.js +0 -134
- package/dist/runtime/component-cleanup.d.ts +0 -15
- package/dist/runtime/component-cleanup.js +0 -68
- package/dist/runtime/component-commit.js +0 -167
- package/dist/runtime/component-facade.d.ts +0 -5
- package/dist/runtime/component-facade.js +0 -6
- package/dist/runtime/component-internal.d.ts +0 -105
- package/dist/runtime/component-internal.js +0 -237
- package/dist/runtime/component-lifecycle.d.ts +0 -10
- package/dist/runtime/component-lifecycle.js +0 -33
- package/dist/runtime/component-scope.d.ts +0 -54
- package/dist/runtime/component.d.ts +0 -5
- package/dist/runtime/component.js +0 -6
- package/dist/runtime/context.d.ts +0 -72
- package/dist/runtime/context.js +0 -236
- package/dist/runtime/control.d.ts +0 -62
- package/dist/runtime/control.js +0 -239
- package/dist/runtime/derive.d.ts +0 -16
- package/dist/runtime/derive.js +0 -140
- package/dist/runtime/dev-namespace.d.ts +0 -30
- package/dist/runtime/dev-namespace.js +0 -64
- package/dist/runtime/effect.d.ts +0 -35
- package/dist/runtime/error-boundary.d.ts +0 -4
- package/dist/runtime/error-boundary.js +0 -29
- package/dist/runtime/events.d.ts +0 -58
- package/dist/runtime/events.js +0 -201
- package/dist/runtime/execution-model.d.ts +0 -6
- package/dist/runtime/execution-model.js +0 -13
- package/dist/runtime/fastlane.d.ts +0 -33
- package/dist/runtime/fastlane.js +0 -173
- package/dist/runtime/for-bench.d.ts +0 -40
- package/dist/runtime/for-bench.js +0 -13
- package/dist/runtime/for-internal.d.ts +0 -106
- package/dist/runtime/for-internal.js +0 -285
- package/dist/runtime/for-reconcile.d.ts +0 -7
- package/dist/runtime/for-reconcile.js +0 -442
- package/dist/runtime/for-scopes.d.ts +0 -26
- package/dist/runtime/for-scopes.js +0 -280
- package/dist/runtime/for-signals.d.ts +0 -39
- package/dist/runtime/for-signals.js +0 -213
- package/dist/runtime/for-types.d.ts +0 -8
- package/dist/runtime/for.d.ts +0 -4
- package/dist/runtime/for.js +0 -5
- package/dist/runtime/index.d.ts +0 -24
- package/dist/runtime/index.js +0 -33
- package/dist/runtime/lifecycle-batch.d.ts +0 -59
- package/dist/runtime/lifecycle-batch.js +0 -178
- package/dist/runtime/lifecycle-operation-settlement.d.ts +0 -5
- package/dist/runtime/lifecycle-operation-settlement.js +0 -51
- package/dist/runtime/lifecycle-operations.d.ts +0 -30
- package/dist/runtime/operations.d.ts +0 -3
- package/dist/runtime/operations.js +0 -3
- package/dist/runtime/perf-metrics.d.ts +0 -27
- package/dist/runtime/perf-metrics.js +0 -6
- package/dist/runtime/portal.d.ts +0 -21
- package/dist/runtime/readable.d.ts +0 -34
- package/dist/runtime/readable.js +0 -183
- package/dist/runtime/resource-cell.js +0 -112
- package/dist/runtime/resource-operation.d.ts +0 -12
- package/dist/runtime/runtime.js +0 -57
- package/dist/runtime/selector-store.js +0 -22
- package/dist/runtime/selector.d.ts +0 -10
- package/dist/runtime/snapshot-source.d.ts +0 -9
- package/dist/runtime/state.d.ts +0 -54
- package/dist/ssg/batch-render.js +0 -101
- package/dist/ssg/create-static-gen.d.ts +0 -66
- package/dist/ssg/create-static-gen.js +0 -250
- package/dist/ssg/generate-metadata.js +0 -92
- package/dist/ssg/generation-plan.js +0 -68
- package/dist/ssg/incremental-manifest.js +0 -54
- package/dist/ssg/resolve-ssg-data.js +0 -103
- package/dist/ssg/route-utils.js +0 -22
- package/dist/ssg/static-routes.js +0 -100
- package/dist/ssg/types.d.ts +0 -188
- package/dist/ssg/write-static-files.js +0 -77
- package/dist/ssr/attrs.js +0 -92
- package/dist/ssr/boundaries.js +0 -124
- package/dist/ssr/component-runtime.js +0 -85
- package/dist/ssr/context.d.ts +0 -49
- package/dist/ssr/context.js +0 -89
- package/dist/ssr/errors.d.ts +0 -9
- package/dist/ssr/errors.js +0 -12
- package/dist/ssr/escape.js +0 -191
- package/dist/ssr/hydration-data.js +0 -8
- package/dist/ssr/hydration-verify.d.ts +0 -11
- package/dist/ssr/hydration-verify.js +0 -171
- package/dist/ssr/index-internal.d.ts +0 -14
- package/dist/ssr/index-internal.js +0 -17
- package/dist/ssr/render-keys.js +0 -14
- package/dist/ssr/render-resolved.d.ts +0 -19
- package/dist/ssr/render-resolved.js +0 -33
- package/dist/ssr/render-sync.d.ts +0 -20
- package/dist/ssr/render-sync.js +0 -283
- package/dist/ssr/route-policy-resolution.js +0 -76
- package/dist/ssr/route-render.d.ts +0 -76
- package/dist/ssr/route-render.js +0 -118
- package/dist/ssr/sink.d.ts +0 -25
- package/dist/ssr/sink.js +0 -84
- package/dist/ssr/types.d.ts +0 -22
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ELEMENT_TYPE, Fragment } from "../../common/jsx.js";
|
|
2
|
-
import "../../jsx/index.js";
|
|
3
|
-
//#region src/foundations/structures/presence.ts
|
|
4
|
-
/**
|
|
5
|
-
* Presence
|
|
6
|
-
*
|
|
7
|
-
* Structural policy primitive for conditional mount/unmount.
|
|
8
|
-
* - No timers
|
|
9
|
-
* - No animation coupling
|
|
10
|
-
* - No DOM side-effects
|
|
11
|
-
*
|
|
12
|
-
* POLICY DECISIONS (LOCKED):
|
|
13
|
-
*
|
|
14
|
-
* 1. Present as Function
|
|
15
|
-
* Accepts boolean OR function to support lazy evaluation patterns.
|
|
16
|
-
* Function is called once per render. Use boolean form for static values.
|
|
17
|
-
*
|
|
18
|
-
* 2. Children Type
|
|
19
|
-
* Presence forwards normal renderable child content only.
|
|
20
|
-
* Imperative DOM nodes are not part of the public contract.
|
|
21
|
-
*
|
|
22
|
-
* 3. Immediate Mount/Unmount
|
|
23
|
-
* No exit animations or transitions. When `present` becomes false,
|
|
24
|
-
* children are removed immediately. Animation must be layered above
|
|
25
|
-
* this primitive.
|
|
26
|
-
*/
|
|
27
|
-
function Presence({ present, children }) {
|
|
28
|
-
if (!(typeof present === "function" ? present() : Boolean(present))) return null;
|
|
29
|
-
return {
|
|
30
|
-
$$typeof: ELEMENT_TYPE,
|
|
31
|
-
type: Fragment,
|
|
32
|
-
props: { children },
|
|
33
|
-
key: null
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
//#endregion
|
|
37
|
-
export { Presence };
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { JSXElement } from "../../common/jsx.js";
|
|
2
|
-
import { RenderableChild } from "../../common/vnode.js";
|
|
3
|
-
//#region src/foundations/structures/slot.d.ts
|
|
4
|
-
type SlotProps = {
|
|
5
|
-
asChild: true;
|
|
6
|
-
children: JSXElement;
|
|
7
|
-
[key: string]: unknown;
|
|
8
|
-
} | {
|
|
9
|
-
asChild?: false;
|
|
10
|
-
children?: RenderableChild;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Slot
|
|
14
|
-
*
|
|
15
|
-
* Structural primitive for prop forwarding patterns.
|
|
16
|
-
*
|
|
17
|
-
* POLICY DECISIONS (LOCKED):
|
|
18
|
-
*
|
|
19
|
-
* 1. asChild Pattern
|
|
20
|
-
* When asChild=true, merges props into the single child element.
|
|
21
|
-
* Child must be a valid JSXElement; non-element children return null.
|
|
22
|
-
* **Slot props override child props** (injection pattern).
|
|
23
|
-
*
|
|
24
|
-
* 2. Fallback Behavior
|
|
25
|
-
* When asChild=false, returns a Fragment (structural no-op).
|
|
26
|
-
* No DOM element is introduced.
|
|
27
|
-
*
|
|
28
|
-
* 3. Type Safety
|
|
29
|
-
* asChild=true requires exactly one JSXElement child (enforced by type).
|
|
30
|
-
* Runtime validates with isElement() check.
|
|
31
|
-
*/
|
|
32
|
-
declare function Slot(props: SlotProps): JSXElement | null;
|
|
33
|
-
//#endregion
|
|
34
|
-
export { Slot, SlotProps };
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { ELEMENT_TYPE, Fragment } from "../../common/jsx.js";
|
|
2
|
-
import { cloneElement, isElement } from "../../jsx/utils.js";
|
|
3
|
-
import "../../jsx/index.js";
|
|
4
|
-
//#region src/foundations/structures/slot.tsx
|
|
5
|
-
/**
|
|
6
|
-
* Slot
|
|
7
|
-
*
|
|
8
|
-
* Structural primitive for prop forwarding patterns.
|
|
9
|
-
*
|
|
10
|
-
* POLICY DECISIONS (LOCKED):
|
|
11
|
-
*
|
|
12
|
-
* 1. asChild Pattern
|
|
13
|
-
* When asChild=true, merges props into the single child element.
|
|
14
|
-
* Child must be a valid JSXElement; non-element children return null.
|
|
15
|
-
* **Slot props override child props** (injection pattern).
|
|
16
|
-
*
|
|
17
|
-
* 2. Fallback Behavior
|
|
18
|
-
* When asChild=false, returns a Fragment (structural no-op).
|
|
19
|
-
* No DOM element is introduced.
|
|
20
|
-
*
|
|
21
|
-
* 3. Type Safety
|
|
22
|
-
* asChild=true requires exactly one JSXElement child (enforced by type).
|
|
23
|
-
* Runtime validates with isElement() check.
|
|
24
|
-
*/
|
|
25
|
-
function Slot(props) {
|
|
26
|
-
if (props.asChild) {
|
|
27
|
-
const { children, asChild: _asChild, ...rest } = props;
|
|
28
|
-
if (isElement(children)) return cloneElement(children, rest);
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
$$typeof: ELEMENT_TYPE,
|
|
33
|
-
type: Fragment,
|
|
34
|
-
props: { children: props.children },
|
|
35
|
-
key: null
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
//#endregion
|
|
39
|
-
export { Slot };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
//#region src/foundations/utilities/aria.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* Tiny aria helpers
|
|
4
|
-
*/
|
|
5
|
-
declare function ariaDisabled(disabled?: boolean): {
|
|
6
|
-
'aria-disabled'?: 'true';
|
|
7
|
-
};
|
|
8
|
-
declare function ariaExpanded(expanded?: boolean): {
|
|
9
|
-
'aria-expanded'?: 'true' | 'false';
|
|
10
|
-
};
|
|
11
|
-
declare function ariaSelected(selected?: boolean): {
|
|
12
|
-
'aria-selected'?: 'true' | 'false';
|
|
13
|
-
};
|
|
14
|
-
//#endregion
|
|
15
|
-
export { ariaDisabled, ariaExpanded, ariaSelected };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
//#region src/foundations/utilities/aria.ts
|
|
2
|
-
/**
|
|
3
|
-
* Tiny aria helpers
|
|
4
|
-
*/
|
|
5
|
-
function ariaDisabled(disabled) {
|
|
6
|
-
return disabled ? { "aria-disabled": "true" } : {};
|
|
7
|
-
}
|
|
8
|
-
function ariaExpanded(expanded) {
|
|
9
|
-
return expanded === void 0 ? {} : { "aria-expanded": String(expanded) };
|
|
10
|
-
}
|
|
11
|
-
function ariaSelected(selected) {
|
|
12
|
-
return selected === void 0 ? {} : { "aria-selected": String(selected) };
|
|
13
|
-
}
|
|
14
|
-
//#endregion
|
|
15
|
-
export { ariaDisabled, ariaExpanded, ariaSelected };
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
//#region src/foundations/utilities/compose-handlers.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* composeHandlers
|
|
4
|
-
*
|
|
5
|
-
* Compose two event handlers into one. The first handler runs, and unless it
|
|
6
|
-
* calls `event.preventDefault()` (or sets `defaultPrevented`), the second
|
|
7
|
-
* handler runs. This prevents accidental clobbering of child handlers when
|
|
8
|
-
* injecting props.
|
|
9
|
-
*
|
|
10
|
-
* POLICY DECISIONS (LOCKED):
|
|
11
|
-
*
|
|
12
|
-
* 1. Execution Order
|
|
13
|
-
* First handler runs before second (injected before base).
|
|
14
|
-
* This allows injected handlers to prevent default behavior.
|
|
15
|
-
*
|
|
16
|
-
* 2. Default Prevention Check
|
|
17
|
-
* By default, checks `defaultPrevented` on first argument.
|
|
18
|
-
* Can be disabled via options.checkDefaultPrevented = false.
|
|
19
|
-
*
|
|
20
|
-
* 3. Undefined Handler Support
|
|
21
|
-
* Undefined handlers are skipped (no-op). This simplifies usage
|
|
22
|
-
* where handlers are optional.
|
|
23
|
-
*
|
|
24
|
-
* 4. Type Safety
|
|
25
|
-
* Args are readonly to prevent mutation. Return type matches input.
|
|
26
|
-
*/
|
|
27
|
-
interface ComposeHandlersOptions {
|
|
28
|
-
/**
|
|
29
|
-
* When true (default), do not run the second handler if the first prevented default.
|
|
30
|
-
* When false, always run both handlers.
|
|
31
|
-
*/
|
|
32
|
-
checkDefaultPrevented?: boolean;
|
|
33
|
-
}
|
|
34
|
-
declare function composeHandlers<A extends readonly unknown[]>(first?: (...args: A) => void, second?: (...args: A) => void, options?: ComposeHandlersOptions): (...args: A) => void;
|
|
35
|
-
//#endregion
|
|
36
|
-
export { ComposeHandlersOptions, composeHandlers };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
//#region src/foundations/utilities/compose-handlers.ts
|
|
2
|
-
function isDefaultPrevented(value) {
|
|
3
|
-
return typeof value === "object" && value !== null && "defaultPrevented" in value && value.defaultPrevented === true;
|
|
4
|
-
}
|
|
5
|
-
function composeHandlers(first, second, options) {
|
|
6
|
-
if (!first && !second) return noop;
|
|
7
|
-
if (!first) return second;
|
|
8
|
-
if (!second) return first;
|
|
9
|
-
const checkDefaultPrevented = options?.checkDefaultPrevented !== false;
|
|
10
|
-
return function composed(...args) {
|
|
11
|
-
first(...args);
|
|
12
|
-
if (checkDefaultPrevented && isDefaultPrevented(args[0])) return;
|
|
13
|
-
second(...args);
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
function noop() {}
|
|
17
|
-
//#endregion
|
|
18
|
-
export { composeHandlers };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
//#region src/foundations/utilities/compose-ref.ts
|
|
2
|
-
function setRef(ref, value) {
|
|
3
|
-
if (!ref) return;
|
|
4
|
-
if (typeof ref === "function") {
|
|
5
|
-
ref(value);
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
if (Object.isExtensible(ref)) ref.current = value;
|
|
9
|
-
}
|
|
10
|
-
function composeRefs(...refs) {
|
|
11
|
-
return (value) => {
|
|
12
|
-
for (const ref of refs) setRef(ref, value);
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
//#endregion
|
|
16
|
-
export { composeRefs, setRef };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
//#region src/foundations/utilities/event-types.d.ts
|
|
2
|
-
interface DefaultPreventable {
|
|
3
|
-
defaultPrevented?: boolean;
|
|
4
|
-
preventDefault?: () => void;
|
|
5
|
-
}
|
|
6
|
-
interface PropagationStoppable {
|
|
7
|
-
stopPropagation?: () => void;
|
|
8
|
-
}
|
|
9
|
-
interface KeyboardLikeEvent extends DefaultPreventable, PropagationStoppable {
|
|
10
|
-
key: string;
|
|
11
|
-
}
|
|
12
|
-
interface PointerLikeEvent extends DefaultPreventable, PropagationStoppable {
|
|
13
|
-
target?: unknown;
|
|
14
|
-
}
|
|
15
|
-
interface FocusLikeEvent extends DefaultPreventable, PropagationStoppable {
|
|
16
|
-
relatedTarget?: unknown;
|
|
17
|
-
}
|
|
18
|
-
//#endregion
|
|
19
|
-
export { DefaultPreventable, FocusLikeEvent, KeyboardLikeEvent, PointerLikeEvent, PropagationStoppable };
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { composeHandlers } from "./compose-handlers.js";
|
|
2
|
-
//#region src/foundations/utilities/merge-props.ts
|
|
3
|
-
/**
|
|
4
|
-
* mergeProps
|
|
5
|
-
*
|
|
6
|
-
* Deterministic props merging.
|
|
7
|
-
* - For non-handlers: `base` overwrites `injected`.
|
|
8
|
-
* - For handlers present in both: handlers are composed with `injected` running
|
|
9
|
-
* first; it may call `preventDefault()` to suppress the `base` handler.
|
|
10
|
-
*
|
|
11
|
-
* POLICY DECISIONS (LOCKED):
|
|
12
|
-
*
|
|
13
|
-
* 1. Merge Strategy
|
|
14
|
-
* Base props overwrite injected props (base wins).
|
|
15
|
-
* Exception: Event handlers are composed, not overwritten.
|
|
16
|
-
*
|
|
17
|
-
* 2. Event Handler Detection
|
|
18
|
-
* Keys starting with "on" are treated as event handlers.
|
|
19
|
-
* This matches JSX conventions.
|
|
20
|
-
*
|
|
21
|
-
* 3. Handler Composition Order
|
|
22
|
-
* Injected handler runs first, base handler second.
|
|
23
|
-
* This allows injected handlers to prevent default.
|
|
24
|
-
*
|
|
25
|
-
* 4. Return Type
|
|
26
|
-
* Returns intersection type (TInjected & TBase) for type safety.
|
|
27
|
-
*/
|
|
28
|
-
function isEventHandlerKey(key) {
|
|
29
|
-
return key.startsWith("on");
|
|
30
|
-
}
|
|
31
|
-
function mergeProps(base, injected) {
|
|
32
|
-
const baseKeys = Object.keys(base);
|
|
33
|
-
if (baseKeys.length === 0) return injected;
|
|
34
|
-
const out = { ...injected };
|
|
35
|
-
for (const key of baseKeys) {
|
|
36
|
-
const baseValue = base[key];
|
|
37
|
-
const injectedValue = injected[key];
|
|
38
|
-
if (isEventHandlerKey(key) && typeof baseValue === "function" && typeof injectedValue === "function") {
|
|
39
|
-
out[key] = composeHandlers(injectedValue, baseValue);
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
out[key] = baseValue;
|
|
43
|
-
}
|
|
44
|
-
return out;
|
|
45
|
-
}
|
|
46
|
-
//#endregion
|
|
47
|
-
export { mergeProps };
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
//#region src/foundations/utilities/use-id.d.ts
|
|
2
|
-
interface FormatIdOptions {
|
|
3
|
-
/** Defaults to 'askr' */
|
|
4
|
-
prefix?: string;
|
|
5
|
-
/** Stable, caller-provided identity */
|
|
6
|
-
id: string | number;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* formatId
|
|
10
|
-
*
|
|
11
|
-
* Formats a stable ID from a caller-provided identity.
|
|
12
|
-
* - Pure and deterministic (no time/randomness/global counters)
|
|
13
|
-
* - SSR-safe
|
|
14
|
-
*
|
|
15
|
-
* POLICY DECISIONS (LOCKED):
|
|
16
|
-
*
|
|
17
|
-
* 1. No Auto-Generation
|
|
18
|
-
* Caller must provide the `id`. No random/sequential generation.
|
|
19
|
-
* This ensures determinism and SSR safety.
|
|
20
|
-
*
|
|
21
|
-
* 2. Format Convention
|
|
22
|
-
* IDs are formatted as `{prefix}-{id}`.
|
|
23
|
-
* Default prefix is "askr".
|
|
24
|
-
*
|
|
25
|
-
* 3. Type Coercion
|
|
26
|
-
* Numbers are coerced to strings via String().
|
|
27
|
-
* This is deterministic and consistent.
|
|
28
|
-
*/
|
|
29
|
-
declare function formatId(options: FormatIdOptions): string;
|
|
30
|
-
//#endregion
|
|
31
|
-
export { FormatIdOptions, formatId };
|
package/dist/fx/fx.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
//#region src/fx/fx.d.ts
|
|
2
|
-
type CancelFn = () => void;
|
|
3
|
-
declare function debounceEvent(ms: number, handler: EventListener, options?: {
|
|
4
|
-
leading?: boolean;
|
|
5
|
-
trailing?: boolean;
|
|
6
|
-
}): EventListener & {
|
|
7
|
-
cancel(): void;
|
|
8
|
-
flush(): void;
|
|
9
|
-
};
|
|
10
|
-
declare function throttleEvent(ms: number, handler: EventListener, options?: {
|
|
11
|
-
leading?: boolean;
|
|
12
|
-
trailing?: boolean;
|
|
13
|
-
}): EventListener & {
|
|
14
|
-
cancel(): void;
|
|
15
|
-
};
|
|
16
|
-
declare function rafEvent(handler: EventListener): EventListener & {
|
|
17
|
-
cancel(): void;
|
|
18
|
-
};
|
|
19
|
-
declare function scheduleTimeout(ms: number, fn: () => void): CancelFn;
|
|
20
|
-
declare function scheduleIdle(fn: () => void, options?: {
|
|
21
|
-
timeout?: number;
|
|
22
|
-
}): CancelFn;
|
|
23
|
-
interface RetryOptions {
|
|
24
|
-
maxAttempts?: number;
|
|
25
|
-
delayMs?: number;
|
|
26
|
-
backoff?: (attemptIndex: number) => number;
|
|
27
|
-
}
|
|
28
|
-
declare function scheduleRetry<T>(fn: () => Promise<T>, options?: RetryOptions): {
|
|
29
|
-
cancel(): void;
|
|
30
|
-
};
|
|
31
|
-
//#endregion
|
|
32
|
-
export { CancelFn, RetryOptions, debounceEvent, rafEvent, scheduleIdle, scheduleRetry, scheduleTimeout, throttleEvent };
|
package/dist/fx/fx.js
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import { logger } from "../common/logger.js";
|
|
2
|
-
import { enqueueRuntimeTask } from "../runtime/access.js";
|
|
3
|
-
import { getCurrentComponentInstance } from "../runtime/component-scope.js";
|
|
4
|
-
import "../runtime/index.js";
|
|
5
|
-
import { noopEventListener, noopEventListenerWithFlush } from "./noop.js";
|
|
6
|
-
//#region src/fx/fx.ts
|
|
7
|
-
function throwIfDuringRender() {
|
|
8
|
-
if (getCurrentComponentInstance() !== null) throw new Error("[Askr] calling FX handler during render is not allowed. Move calls to event handlers or effects.");
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Helper: schedule a user callback through the global scheduler
|
|
12
|
-
*/
|
|
13
|
-
function enqueueUserCallback(fn) {
|
|
14
|
-
enqueueRuntimeTask(() => {
|
|
15
|
-
try {
|
|
16
|
-
fn();
|
|
17
|
-
} catch (err) {
|
|
18
|
-
logger.error("[Askr] FX handler error:", err);
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
function debounceEvent(ms, handler, options) {
|
|
23
|
-
const { leading = false, trailing = true } = options || {};
|
|
24
|
-
const inst = getCurrentComponentInstance();
|
|
25
|
-
if (inst && inst.ssr) return noopEventListenerWithFlush;
|
|
26
|
-
let timeoutId = null;
|
|
27
|
-
let lastEvent = null;
|
|
28
|
-
let lastCallTime = 0;
|
|
29
|
-
const debounced = function(ev) {
|
|
30
|
-
throwIfDuringRender();
|
|
31
|
-
const now = Date.now();
|
|
32
|
-
lastEvent = ev;
|
|
33
|
-
if (timeoutId !== null) {
|
|
34
|
-
clearTimeout(timeoutId);
|
|
35
|
-
timeoutId = null;
|
|
36
|
-
}
|
|
37
|
-
if (leading && now - lastCallTime >= ms) {
|
|
38
|
-
enqueueUserCallback(() => handler.call(null, ev));
|
|
39
|
-
lastCallTime = now;
|
|
40
|
-
}
|
|
41
|
-
if (trailing) timeoutId = setTimeout(() => {
|
|
42
|
-
if (lastEvent) enqueueUserCallback(() => handler.call(null, lastEvent));
|
|
43
|
-
timeoutId = null;
|
|
44
|
-
lastCallTime = Date.now();
|
|
45
|
-
}, ms);
|
|
46
|
-
};
|
|
47
|
-
debounced.cancel = () => {
|
|
48
|
-
if (timeoutId !== null) {
|
|
49
|
-
clearTimeout(timeoutId);
|
|
50
|
-
timeoutId = null;
|
|
51
|
-
}
|
|
52
|
-
lastEvent = null;
|
|
53
|
-
};
|
|
54
|
-
debounced.flush = () => {
|
|
55
|
-
if (timeoutId !== null) {
|
|
56
|
-
clearTimeout(timeoutId);
|
|
57
|
-
const ev = lastEvent;
|
|
58
|
-
lastEvent = null;
|
|
59
|
-
timeoutId = null;
|
|
60
|
-
if (ev) enqueueUserCallback(() => handler.call(null, ev));
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
if (inst) (inst.cleanupFns ??= []).push(() => {
|
|
64
|
-
debounced.cancel();
|
|
65
|
-
});
|
|
66
|
-
return debounced;
|
|
67
|
-
}
|
|
68
|
-
function throttleEvent(ms, handler, options) {
|
|
69
|
-
const { leading = true, trailing = true } = options || {};
|
|
70
|
-
const inst = getCurrentComponentInstance();
|
|
71
|
-
if (inst && inst.ssr) return noopEventListener;
|
|
72
|
-
let lastCallTime = 0;
|
|
73
|
-
let timeoutId = null;
|
|
74
|
-
let lastEvent = null;
|
|
75
|
-
const throttled = function(ev) {
|
|
76
|
-
throwIfDuringRender();
|
|
77
|
-
const now = Date.now();
|
|
78
|
-
lastEvent = ev;
|
|
79
|
-
if (leading && now - lastCallTime >= ms) {
|
|
80
|
-
enqueueUserCallback(() => handler.call(null, ev));
|
|
81
|
-
lastCallTime = now;
|
|
82
|
-
if (timeoutId !== null) {
|
|
83
|
-
clearTimeout(timeoutId);
|
|
84
|
-
timeoutId = null;
|
|
85
|
-
}
|
|
86
|
-
} else if (!leading && lastCallTime === 0) lastCallTime = now;
|
|
87
|
-
if (trailing && timeoutId === null) {
|
|
88
|
-
const wait = ms - (now - lastCallTime);
|
|
89
|
-
timeoutId = setTimeout(() => {
|
|
90
|
-
if (lastEvent) enqueueUserCallback(() => handler.call(null, lastEvent));
|
|
91
|
-
lastCallTime = Date.now();
|
|
92
|
-
timeoutId = null;
|
|
93
|
-
}, Math.max(0, wait));
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
throttled.cancel = () => {
|
|
97
|
-
if (timeoutId !== null) {
|
|
98
|
-
clearTimeout(timeoutId);
|
|
99
|
-
timeoutId = null;
|
|
100
|
-
}
|
|
101
|
-
lastEvent = null;
|
|
102
|
-
};
|
|
103
|
-
if (inst) (inst.cleanupFns ??= []).push(() => throttled.cancel());
|
|
104
|
-
return throttled;
|
|
105
|
-
}
|
|
106
|
-
function rafEvent(handler) {
|
|
107
|
-
const inst = getCurrentComponentInstance();
|
|
108
|
-
if (inst && inst.ssr) return noopEventListener;
|
|
109
|
-
let frameId = null;
|
|
110
|
-
let lastEvent = null;
|
|
111
|
-
const scheduleFrame = () => {
|
|
112
|
-
frameId = (typeof requestAnimationFrame !== "undefined" ? requestAnimationFrame : (cb) => setTimeout(() => cb(Date.now()), 16))(() => {
|
|
113
|
-
frameId = null;
|
|
114
|
-
if (lastEvent) {
|
|
115
|
-
const ev = lastEvent;
|
|
116
|
-
lastEvent = null;
|
|
117
|
-
enqueueUserCallback(() => handler.call(null, ev));
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
const fn = function(ev) {
|
|
122
|
-
throwIfDuringRender();
|
|
123
|
-
lastEvent = ev;
|
|
124
|
-
if (frameId === null) scheduleFrame();
|
|
125
|
-
};
|
|
126
|
-
fn.cancel = () => {
|
|
127
|
-
if (frameId !== null) {
|
|
128
|
-
if (typeof cancelAnimationFrame !== "undefined" && typeof frameId === "number") cancelAnimationFrame(frameId);
|
|
129
|
-
else clearTimeout(frameId);
|
|
130
|
-
frameId = null;
|
|
131
|
-
}
|
|
132
|
-
lastEvent = null;
|
|
133
|
-
};
|
|
134
|
-
if (inst) (inst.cleanupFns ??= []).push(() => fn.cancel());
|
|
135
|
-
return fn;
|
|
136
|
-
}
|
|
137
|
-
function scheduleTimeout(ms, fn) {
|
|
138
|
-
throwIfDuringRender();
|
|
139
|
-
const inst = getCurrentComponentInstance();
|
|
140
|
-
if (inst && inst.ssr) return () => {};
|
|
141
|
-
let id = setTimeout(() => {
|
|
142
|
-
id = null;
|
|
143
|
-
enqueueUserCallback(fn);
|
|
144
|
-
}, ms);
|
|
145
|
-
const cancel = () => {
|
|
146
|
-
if (id !== null) {
|
|
147
|
-
clearTimeout(id);
|
|
148
|
-
id = null;
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
if (inst) (inst.cleanupFns ??= []).push(cancel);
|
|
152
|
-
return cancel;
|
|
153
|
-
}
|
|
154
|
-
function scheduleIdle(fn, options) {
|
|
155
|
-
throwIfDuringRender();
|
|
156
|
-
const inst = getCurrentComponentInstance();
|
|
157
|
-
if (inst && inst.ssr) return () => {};
|
|
158
|
-
let id = null;
|
|
159
|
-
let usingRIC = false;
|
|
160
|
-
if (typeof requestIdleCallback !== "undefined") {
|
|
161
|
-
usingRIC = true;
|
|
162
|
-
id = requestIdleCallback(() => {
|
|
163
|
-
id = null;
|
|
164
|
-
enqueueUserCallback(fn);
|
|
165
|
-
}, options);
|
|
166
|
-
} else id = setTimeout(() => {
|
|
167
|
-
id = null;
|
|
168
|
-
enqueueUserCallback(fn);
|
|
169
|
-
}, 0);
|
|
170
|
-
const cancel = () => {
|
|
171
|
-
if (id !== null) {
|
|
172
|
-
if (usingRIC && typeof cancelIdleCallback !== "undefined" && typeof id === "number") cancelIdleCallback(id);
|
|
173
|
-
else clearTimeout(id);
|
|
174
|
-
id = null;
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
if (inst) (inst.cleanupFns ??= []).push(cancel);
|
|
178
|
-
return cancel;
|
|
179
|
-
}
|
|
180
|
-
function scheduleRetry(fn, options) {
|
|
181
|
-
throwIfDuringRender();
|
|
182
|
-
const inst = getCurrentComponentInstance();
|
|
183
|
-
if (inst && inst.ssr) return { cancel: () => {} };
|
|
184
|
-
const { maxAttempts = 3, delayMs = 100, backoff = (i) => delayMs * Math.pow(2, i) } = options || {};
|
|
185
|
-
let cancelled = false;
|
|
186
|
-
const attempt = (index) => {
|
|
187
|
-
if (cancelled) return;
|
|
188
|
-
enqueueRuntimeTask(() => {
|
|
189
|
-
if (cancelled) return;
|
|
190
|
-
fn().then(() => {}, () => {
|
|
191
|
-
if (cancelled) return;
|
|
192
|
-
if (index + 1 < maxAttempts) {
|
|
193
|
-
const delay = backoff(index);
|
|
194
|
-
setTimeout(() => {
|
|
195
|
-
attempt(index + 1);
|
|
196
|
-
}, delay);
|
|
197
|
-
}
|
|
198
|
-
}).catch((e) => {
|
|
199
|
-
logger.error("[Askr] scheduleRetry error:", e);
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
|
-
};
|
|
203
|
-
attempt(0);
|
|
204
|
-
const cancel = () => {
|
|
205
|
-
cancelled = true;
|
|
206
|
-
};
|
|
207
|
-
if (inst) (inst.cleanupFns ??= []).push(cancel);
|
|
208
|
-
return { cancel };
|
|
209
|
-
}
|
|
210
|
-
//#endregion
|
|
211
|
-
export { debounceEvent, rafEvent, scheduleIdle, scheduleRetry, scheduleTimeout, throttleEvent };
|
package/dist/fx/noop.js
DELETED