@unrulysystems/native-motion-core 0.1.0-alpha.0
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/CHANGELOG.md +9 -0
- package/LICENSE +21 -0
- package/README.md +48 -0
- package/dist/clock.cjs +71 -0
- package/dist/clock.d.cts +23 -0
- package/dist/clock.d.ts +23 -0
- package/dist/clock.js +66 -0
- package/dist/collect-reads.cjs +68 -0
- package/dist/collect-reads.d.cts +23 -0
- package/dist/collect-reads.d.ts +23 -0
- package/dist/collect-reads.js +62 -0
- package/dist/component/boundedArray.cjs +74 -0
- package/dist/component/boundedArray.d.cts +25 -0
- package/dist/component/boundedArray.d.ts +25 -0
- package/dist/component/boundedArray.js +68 -0
- package/dist/component/index.cjs +57 -0
- package/dist/component/index.d.cts +12 -0
- package/dist/component/index.d.ts +12 -0
- package/dist/component/index.js +22 -0
- package/dist/component/orchestration.cjs +129 -0
- package/dist/component/orchestration.d.cts +66 -0
- package/dist/component/orchestration.d.ts +66 -0
- package/dist/component/orchestration.js +124 -0
- package/dist/component/resolve.cjs +104 -0
- package/dist/component/resolve.d.cts +11 -0
- package/dist/component/resolve.d.ts +11 -0
- package/dist/component/resolve.js +97 -0
- package/dist/component/transition.cjs +352 -0
- package/dist/component/transition.d.cts +33 -0
- package/dist/component/transition.d.ts +33 -0
- package/dist/component/transition.js +339 -0
- package/dist/component/types.cjs +114 -0
- package/dist/component/types.d.cts +60 -0
- package/dist/component/types.d.ts +60 -0
- package/dist/component/types.js +111 -0
- package/dist/component/validate.cjs +1015 -0
- package/dist/component/validate.d.cts +37 -0
- package/dist/component/validate.d.ts +37 -0
- package/dist/component/validate.js +1002 -0
- package/dist/component/variants.cjs +333 -0
- package/dist/component/variants.d.cts +106 -0
- package/dist/component/variants.d.ts +106 -0
- package/dist/component/variants.js +321 -0
- package/dist/config/constants.cjs +41 -0
- package/dist/config/constants.d.cts +29 -0
- package/dist/config/constants.d.ts +29 -0
- package/dist/config/constants.js +38 -0
- package/dist/delay.cjs +72 -0
- package/dist/delay.d.cts +26 -0
- package/dist/delay.d.ts +26 -0
- package/dist/delay.js +70 -0
- package/dist/derived.cjs +143 -0
- package/dist/derived.d.cts +41 -0
- package/dist/derived.d.ts +41 -0
- package/dist/derived.js +139 -0
- package/dist/driver/index.cjs +22 -0
- package/dist/driver/index.d.cts +7 -0
- package/dist/driver/index.d.ts +7 -0
- package/dist/driver/index.js +14 -0
- package/dist/driver/keyframeTiming.cjs +130 -0
- package/dist/driver/keyframeTiming.d.cts +18 -0
- package/dist/driver/keyframeTiming.d.ts +18 -0
- package/dist/driver/keyframeTiming.js +124 -0
- package/dist/driver/keyframeTimingConfig.cjs +24 -0
- package/dist/driver/keyframeTimingConfig.d.cts +5 -0
- package/dist/driver/keyframeTimingConfig.d.ts +5 -0
- package/dist/driver/keyframeTimingConfig.js +22 -0
- package/dist/driver/prepare.cjs +459 -0
- package/dist/driver/prepare.d.cts +4 -0
- package/dist/driver/prepare.d.ts +4 -0
- package/dist/driver/prepare.js +454 -0
- package/dist/driver/reference.cjs +762 -0
- package/dist/driver/reference.d.cts +53 -0
- package/dist/driver/reference.d.ts +53 -0
- package/dist/driver/reference.js +757 -0
- package/dist/driver/step.cjs +55 -0
- package/dist/driver/step.d.cts +9 -0
- package/dist/driver/step.d.ts +9 -0
- package/dist/driver/step.js +52 -0
- package/dist/driver/tiers.cjs +40 -0
- package/dist/driver/tiers.d.cts +2 -0
- package/dist/driver/tiers.d.ts +2 -0
- package/dist/driver/tiers.js +37 -0
- package/dist/driver/types.cjs +9 -0
- package/dist/driver/types.d.cts +68 -0
- package/dist/driver/types.d.ts +68 -0
- package/dist/driver/types.js +8 -0
- package/dist/external-animation-ledger.cjs +1250 -0
- package/dist/external-animation-ledger.d.cts +416 -0
- package/dist/external-animation-ledger.d.ts +416 -0
- package/dist/external-animation-ledger.js +1243 -0
- package/dist/gesture/directionLock.cjs +25 -0
- package/dist/gesture/directionLock.d.cts +8 -0
- package/dist/gesture/directionLock.d.ts +8 -0
- package/dist/gesture/directionLock.js +21 -0
- package/dist/gesture/dragConfig.cjs +634 -0
- package/dist/gesture/dragConfig.d.cts +298 -0
- package/dist/gesture/dragConfig.d.ts +298 -0
- package/dist/gesture/dragConfig.js +624 -0
- package/dist/gesture/elastic.cjs +44 -0
- package/dist/gesture/elastic.d.cts +4 -0
- package/dist/gesture/elastic.d.ts +4 -0
- package/dist/gesture/elastic.js +39 -0
- package/dist/gesture/handoffSession.cjs +161 -0
- package/dist/gesture/handoffSession.d.cts +35 -0
- package/dist/gesture/handoffSession.d.ts +35 -0
- package/dist/gesture/handoffSession.js +158 -0
- package/dist/gesture/index.cjs +37 -0
- package/dist/gesture/index.d.cts +12 -0
- package/dist/gesture/index.d.ts +12 -0
- package/dist/gesture/index.js +11 -0
- package/dist/gesture/projection.cjs +95 -0
- package/dist/gesture/projection.d.cts +7 -0
- package/dist/gesture/projection.d.ts +7 -0
- package/dist/gesture/projection.js +87 -0
- package/dist/gesture/session.cjs +162 -0
- package/dist/gesture/session.d.cts +29 -0
- package/dist/gesture/session.d.ts +29 -0
- package/dist/gesture/session.js +158 -0
- package/dist/gesture/types.cjs +5 -0
- package/dist/gesture/types.d.cts +13 -0
- package/dist/gesture/types.d.ts +13 -0
- package/dist/gesture/types.js +4 -0
- package/dist/gesture/viewportConstraints.cjs +38 -0
- package/dist/gesture/viewportConstraints.d.cts +6 -0
- package/dist/gesture/viewportConstraints.d.ts +6 -0
- package/dist/gesture/viewportConstraints.js +34 -0
- package/dist/graph.cjs +226 -0
- package/dist/graph.d.cts +2 -0
- package/dist/graph.d.ts +2 -0
- package/dist/graph.js +223 -0
- package/dist/index.cjs +140 -0
- package/dist/index.d.cts +33 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +70 -0
- package/dist/inertia.cjs +214 -0
- package/dist/inertia.d.cts +53 -0
- package/dist/inertia.d.ts +53 -0
- package/dist/inertia.js +212 -0
- package/dist/instant.cjs +66 -0
- package/dist/instant.d.cts +16 -0
- package/dist/instant.d.ts +16 -0
- package/dist/instant.js +63 -0
- package/dist/internal-driver.cjs +81 -0
- package/dist/internal-driver.d.cts +19 -0
- package/dist/internal-driver.d.ts +19 -0
- package/dist/internal-driver.js +35 -0
- package/dist/keyframes.cjs +191 -0
- package/dist/keyframes.d.cts +13 -0
- package/dist/keyframes.d.ts +13 -0
- package/dist/keyframes.js +188 -0
- package/dist/layout/commitDetector.cjs +67 -0
- package/dist/layout/commitDetector.d.cts +21 -0
- package/dist/layout/commitDetector.d.ts +21 -0
- package/dist/layout/commitDetector.js +64 -0
- package/dist/layout/compose.cjs +67 -0
- package/dist/layout/compose.d.cts +30 -0
- package/dist/layout/compose.d.ts +30 -0
- package/dist/layout/compose.js +65 -0
- package/dist/layout/constants.cjs +13 -0
- package/dist/layout/constants.d.cts +6 -0
- package/dist/layout/constants.d.ts +6 -0
- package/dist/layout/constants.js +10 -0
- package/dist/layout/identity.cjs +700 -0
- package/dist/layout/identity.d.cts +67 -0
- package/dist/layout/identity.d.ts +67 -0
- package/dist/layout/identity.js +698 -0
- package/dist/layout/index.cjs +36 -0
- package/dist/layout/index.d.cts +18 -0
- package/dist/layout/index.d.ts +18 -0
- package/dist/layout/index.js +13 -0
- package/dist/layout/measure.cjs +81 -0
- package/dist/layout/measure.d.cts +43 -0
- package/dist/layout/measure.d.ts +43 -0
- package/dist/layout/measure.js +78 -0
- package/dist/layout/projection.cjs +99 -0
- package/dist/layout/projection.d.cts +23 -0
- package/dist/layout/projection.d.ts +23 -0
- package/dist/layout/projection.js +97 -0
- package/dist/layout/scroll.cjs +27 -0
- package/dist/layout/scroll.d.cts +13 -0
- package/dist/layout/scroll.d.ts +13 -0
- package/dist/layout/scroll.js +24 -0
- package/dist/layout/session.cjs +207 -0
- package/dist/layout/session.d.cts +73 -0
- package/dist/layout/session.d.ts +73 -0
- package/dist/layout/session.js +205 -0
- package/dist/layout/tree.cjs +826 -0
- package/dist/layout/tree.d.cts +70 -0
- package/dist/layout/tree.d.ts +70 -0
- package/dist/layout/tree.js +823 -0
- package/dist/layout/types.cjs +36 -0
- package/dist/layout/types.d.cts +31 -0
- package/dist/layout/types.d.ts +31 -0
- package/dist/layout/types.js +35 -0
- package/dist/motion-arc.cjs +184 -0
- package/dist/motion-arc.d.cts +78 -0
- package/dist/motion-arc.d.ts +78 -0
- package/dist/motion-arc.js +183 -0
- package/dist/motion-mix.cjs +205 -0
- package/dist/motion-mix.d.cts +3 -0
- package/dist/motion-mix.d.ts +3 -0
- package/dist/motion-mix.js +202 -0
- package/dist/motion-value-driver-port.cjs +636 -0
- package/dist/motion-value-driver-port.d.cts +406 -0
- package/dist/motion-value-driver-port.d.ts +406 -0
- package/dist/motion-value-driver-port.js +627 -0
- package/dist/motion-value.cjs +189 -0
- package/dist/motion-value.d.cts +51 -0
- package/dist/motion-value.d.ts +51 -0
- package/dist/motion-value.js +185 -0
- package/dist/presence/controller.cjs +657 -0
- package/dist/presence/controller.d.cts +6 -0
- package/dist/presence/controller.d.ts +6 -0
- package/dist/presence/controller.js +652 -0
- package/dist/presence/index.cjs +19 -0
- package/dist/presence/index.d.cts +4 -0
- package/dist/presence/index.d.ts +4 -0
- package/dist/presence/index.js +12 -0
- package/dist/presence/machine.cjs +50 -0
- package/dist/presence/machine.d.cts +10 -0
- package/dist/presence/machine.d.ts +10 -0
- package/dist/presence/machine.js +46 -0
- package/dist/presence/types.cjs +6 -0
- package/dist/presence/types.d.cts +32 -0
- package/dist/presence/types.d.ts +32 -0
- package/dist/presence/types.js +5 -0
- package/dist/repeat.cjs +311 -0
- package/dist/repeat.d.cts +174 -0
- package/dist/repeat.d.ts +174 -0
- package/dist/repeat.js +300 -0
- package/dist/spring.cjs +128 -0
- package/dist/spring.d.cts +18 -0
- package/dist/spring.d.ts +18 -0
- package/dist/spring.js +125 -0
- package/dist/subscriptions.cjs +74 -0
- package/dist/subscriptions.d.cts +19 -0
- package/dist/subscriptions.d.ts +19 -0
- package/dist/subscriptions.js +69 -0
- package/dist/subset/index.cjs +23 -0
- package/dist/subset/index.d.cts +6 -0
- package/dist/subset/index.d.ts +6 -0
- package/dist/subset/index.js +13 -0
- package/dist/subset/normalize.cjs +90 -0
- package/dist/subset/normalize.d.cts +10 -0
- package/dist/subset/normalize.d.ts +10 -0
- package/dist/subset/normalize.js +85 -0
- package/dist/subset/registry.cjs +259 -0
- package/dist/subset/registry.d.cts +25 -0
- package/dist/subset/registry.d.ts +25 -0
- package/dist/subset/registry.js +256 -0
- package/dist/subset/resolve.cjs +98 -0
- package/dist/subset/resolve.d.cts +24 -0
- package/dist/subset/resolve.d.ts +24 -0
- package/dist/subset/resolve.js +90 -0
- package/dist/timing.cjs +206 -0
- package/dist/timing.d.cts +17 -0
- package/dist/timing.d.ts +17 -0
- package/dist/timing.js +201 -0
- package/dist/transformTemplate.cjs +219 -0
- package/dist/transformTemplate.d.cts +29 -0
- package/dist/transformTemplate.d.ts +29 -0
- package/dist/transformTemplate.js +215 -0
- package/dist/transition.cjs +231 -0
- package/dist/transition.d.cts +89 -0
- package/dist/transition.d.ts +89 -0
- package/dist/transition.js +223 -0
- package/dist/types.cjs +4 -0
- package/dist/types.d.cts +175 -0
- package/dist/types.d.ts +175 -0
- package/dist/types.js +3 -0
- package/dist/value-types/color.cjs +220 -0
- package/dist/value-types/color.d.cts +19 -0
- package/dist/value-types/color.d.ts +19 -0
- package/dist/value-types/color.js +218 -0
- package/dist/value-types/complex.cjs +160 -0
- package/dist/value-types/complex.d.cts +19 -0
- package/dist/value-types/complex.d.ts +19 -0
- package/dist/value-types/complex.js +155 -0
- package/dist/value-types/constants.cjs +15 -0
- package/dist/value-types/constants.d.cts +6 -0
- package/dist/value-types/constants.d.ts +6 -0
- package/dist/value-types/constants.js +12 -0
- package/dist/value-types/discrete.cjs +62 -0
- package/dist/value-types/discrete.d.cts +4 -0
- package/dist/value-types/discrete.d.ts +4 -0
- package/dist/value-types/discrete.js +56 -0
- package/dist/value-types/index.cjs +59 -0
- package/dist/value-types/index.d.cts +14 -0
- package/dist/value-types/index.d.ts +14 -0
- package/dist/value-types/index.js +24 -0
- package/dist/value-types/measure-resolve.cjs +325 -0
- package/dist/value-types/measure-resolve.d.cts +91 -0
- package/dist/value-types/measure-resolve.d.ts +91 -0
- package/dist/value-types/measure-resolve.js +313 -0
- package/dist/value-types/mix.cjs +90 -0
- package/dist/value-types/mix.d.cts +27 -0
- package/dist/value-types/mix.d.ts +27 -0
- package/dist/value-types/mix.js +85 -0
- package/dist/value-types/named-colors.cjs +61 -0
- package/dist/value-types/named-colors.d.cts +2 -0
- package/dist/value-types/named-colors.d.ts +2 -0
- package/dist/value-types/named-colors.js +58 -0
- package/dist/value-types/numeric.cjs +86 -0
- package/dist/value-types/numeric.d.cts +16 -0
- package/dist/value-types/numeric.d.ts +16 -0
- package/dist/value-types/numeric.js +79 -0
- package/dist/worklet-layout/config/constants.js +39 -0
- package/dist/worklet-layout/layout/constants.js +11 -0
- package/dist/worklet-layout/layout/identity.js +699 -0
- package/dist/worklet-layout/layout/projection.js +98 -0
- package/dist/worklet-layout/layout/session.js +206 -0
- package/dist/worklet-layout/layout/tree.js +824 -0
- package/dist/worklet-layout/layout/types.js +36 -0
- package/dist/worklet-layout/spring.js +125 -0
- package/dist/worklet-layout/timing.js +201 -0
- package/dist/worklet-layout/transition.js +223 -0
- package/dist/worklet-layout.cjs +47 -0
- package/dist/worklet-layout.d.cts +15 -0
- package/dist/worklet-layout.d.ts +15 -0
- package/dist/worklet-layout.js +28 -0
- package/dist/wrap.cjs +7 -0
- package/dist/wrap.d.cts +1 -0
- package/dist/wrap.d.ts +1 -0
- package/dist/wrap.js +4 -0
- package/package.json +45 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type SpringConfig } from "../transition.cjs";
|
|
2
|
+
import { type TimingConfig } from "../timing.cjs";
|
|
3
|
+
import type { MotionGraph } from "../types.cjs";
|
|
4
|
+
import { type LayoutIdToken, type Transform, type WindowSpaceRect } from "./types.cjs";
|
|
5
|
+
export type LayoutIdentityRole = 'sole' | 'lead';
|
|
6
|
+
/**
|
|
7
|
+
* Opaque pre-resolved holder handle, minted once per holder at enter() (round-7 major 4): the
|
|
8
|
+
* per-frame readInto(handle, out) dereferences it O(1) instead of re-resolving the token through
|
|
9
|
+
* a linear holder scan per painted holder per frame (H painted holders on one id were H×H
|
|
10
|
+
* comparisons, REQ-DRIVER-015/021). Valid while the registry tracks the holder (holders ∪
|
|
11
|
+
* exiting); a departed holder's handle fails loud exactly like the by-token read discipline.
|
|
12
|
+
* The brand keeps the internals private — callers never construct or inspect one.
|
|
13
|
+
*/
|
|
14
|
+
export interface IdentityHolderHandle {
|
|
15
|
+
readonly __identityHolderHandle: true;
|
|
16
|
+
}
|
|
17
|
+
/** The result of enter(): the one-time role plus the durable per-holder handle. */
|
|
18
|
+
export interface IdentityEnterResult {
|
|
19
|
+
readonly role: LayoutIdentityRole;
|
|
20
|
+
readonly handle: IdentityHolderHandle;
|
|
21
|
+
}
|
|
22
|
+
export interface IdentityRead {
|
|
23
|
+
readonly transform: Transform;
|
|
24
|
+
readonly opacity: number;
|
|
25
|
+
}
|
|
26
|
+
export interface IdentityHolderWrite {
|
|
27
|
+
translateX: number;
|
|
28
|
+
translateY: number;
|
|
29
|
+
scaleX: number;
|
|
30
|
+
scaleY: number;
|
|
31
|
+
opacity: number;
|
|
32
|
+
zLifted: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface LayoutIdentityRegistryOptions {
|
|
35
|
+
readonly graph: MotionGraph;
|
|
36
|
+
readonly spring?: SpringConfig;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Per-edge flight options for layout-identity lifecycle (enter / commitRect / leave).
|
|
40
|
+
* `instant: true` settles the shared flight + crossfade on the same edge — pin `type: false`
|
|
41
|
+
* under MotionConfig reducedMotion / skipAnimations / isStatic (REQ-API-035 layout lane).
|
|
42
|
+
* `timing` (family-3): duration/ease tween for the shared projection flight + crossfade scalar
|
|
43
|
+
* when a layoutId host authors `transition={{ duration }}` (TimingConfig is ms, not seconds).
|
|
44
|
+
* `spring` (T22): a per-flight engine SpringConfig (ms — physics or time-defined) when the host
|
|
45
|
+
* authors `type: 'spring'`; absent, the registry-global default flies. One edge carries at most
|
|
46
|
+
* one of `timing`/`spring` — the host resolver is single-outcome (fail loud on both).
|
|
47
|
+
*/
|
|
48
|
+
export interface LayoutIdentityFlightOptions {
|
|
49
|
+
readonly instant?: boolean;
|
|
50
|
+
readonly timing?: TimingConfig;
|
|
51
|
+
readonly spring?: SpringConfig;
|
|
52
|
+
}
|
|
53
|
+
export interface LayoutIdentityRegistry {
|
|
54
|
+
enter(id: string, holder: LayoutIdToken, rect: WindowSpaceRect | null, options?: LayoutIdentityFlightOptions): IdentityEnterResult;
|
|
55
|
+
commitRect(id: string, holder: LayoutIdToken, rect: WindowSpaceRect, options?: LayoutIdentityFlightOptions): void;
|
|
56
|
+
leave(id: string, holder: LayoutIdToken, options?: LayoutIdentityFlightOptions): void;
|
|
57
|
+
read(id: string, holder: LayoutIdToken): IdentityRead;
|
|
58
|
+
readInto(handle: IdentityHolderHandle, out: IdentityHolderWrite): void;
|
|
59
|
+
releasable(id: string, holder: LayoutIdToken): boolean;
|
|
60
|
+
zLifted(id: string, holder: LayoutIdToken): boolean;
|
|
61
|
+
isSettled(id: string): boolean;
|
|
62
|
+
holds(id: string, holder: LayoutIdToken): boolean;
|
|
63
|
+
isLead(id: string, holder: LayoutIdToken): boolean;
|
|
64
|
+
tickExclusiveHandoffs(): void;
|
|
65
|
+
hasPendingExclusiveHandoffs(): boolean;
|
|
66
|
+
}
|
|
67
|
+
export declare function createLayoutIdentityRegistry(options: LayoutIdentityRegistryOptions): LayoutIdentityRegistry;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type SpringConfig } from "../transition.js";
|
|
2
|
+
import { type TimingConfig } from "../timing.js";
|
|
3
|
+
import type { MotionGraph } from "../types.js";
|
|
4
|
+
import { type LayoutIdToken, type Transform, type WindowSpaceRect } from "./types.js";
|
|
5
|
+
export type LayoutIdentityRole = 'sole' | 'lead';
|
|
6
|
+
/**
|
|
7
|
+
* Opaque pre-resolved holder handle, minted once per holder at enter() (round-7 major 4): the
|
|
8
|
+
* per-frame readInto(handle, out) dereferences it O(1) instead of re-resolving the token through
|
|
9
|
+
* a linear holder scan per painted holder per frame (H painted holders on one id were H×H
|
|
10
|
+
* comparisons, REQ-DRIVER-015/021). Valid while the registry tracks the holder (holders ∪
|
|
11
|
+
* exiting); a departed holder's handle fails loud exactly like the by-token read discipline.
|
|
12
|
+
* The brand keeps the internals private — callers never construct or inspect one.
|
|
13
|
+
*/
|
|
14
|
+
export interface IdentityHolderHandle {
|
|
15
|
+
readonly __identityHolderHandle: true;
|
|
16
|
+
}
|
|
17
|
+
/** The result of enter(): the one-time role plus the durable per-holder handle. */
|
|
18
|
+
export interface IdentityEnterResult {
|
|
19
|
+
readonly role: LayoutIdentityRole;
|
|
20
|
+
readonly handle: IdentityHolderHandle;
|
|
21
|
+
}
|
|
22
|
+
export interface IdentityRead {
|
|
23
|
+
readonly transform: Transform;
|
|
24
|
+
readonly opacity: number;
|
|
25
|
+
}
|
|
26
|
+
export interface IdentityHolderWrite {
|
|
27
|
+
translateX: number;
|
|
28
|
+
translateY: number;
|
|
29
|
+
scaleX: number;
|
|
30
|
+
scaleY: number;
|
|
31
|
+
opacity: number;
|
|
32
|
+
zLifted: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface LayoutIdentityRegistryOptions {
|
|
35
|
+
readonly graph: MotionGraph;
|
|
36
|
+
readonly spring?: SpringConfig;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Per-edge flight options for layout-identity lifecycle (enter / commitRect / leave).
|
|
40
|
+
* `instant: true` settles the shared flight + crossfade on the same edge — pin `type: false`
|
|
41
|
+
* under MotionConfig reducedMotion / skipAnimations / isStatic (REQ-API-035 layout lane).
|
|
42
|
+
* `timing` (family-3): duration/ease tween for the shared projection flight + crossfade scalar
|
|
43
|
+
* when a layoutId host authors `transition={{ duration }}` (TimingConfig is ms, not seconds).
|
|
44
|
+
* `spring` (T22): a per-flight engine SpringConfig (ms — physics or time-defined) when the host
|
|
45
|
+
* authors `type: 'spring'`; absent, the registry-global default flies. One edge carries at most
|
|
46
|
+
* one of `timing`/`spring` — the host resolver is single-outcome (fail loud on both).
|
|
47
|
+
*/
|
|
48
|
+
export interface LayoutIdentityFlightOptions {
|
|
49
|
+
readonly instant?: boolean;
|
|
50
|
+
readonly timing?: TimingConfig;
|
|
51
|
+
readonly spring?: SpringConfig;
|
|
52
|
+
}
|
|
53
|
+
export interface LayoutIdentityRegistry {
|
|
54
|
+
enter(id: string, holder: LayoutIdToken, rect: WindowSpaceRect | null, options?: LayoutIdentityFlightOptions): IdentityEnterResult;
|
|
55
|
+
commitRect(id: string, holder: LayoutIdToken, rect: WindowSpaceRect, options?: LayoutIdentityFlightOptions): void;
|
|
56
|
+
leave(id: string, holder: LayoutIdToken, options?: LayoutIdentityFlightOptions): void;
|
|
57
|
+
read(id: string, holder: LayoutIdToken): IdentityRead;
|
|
58
|
+
readInto(handle: IdentityHolderHandle, out: IdentityHolderWrite): void;
|
|
59
|
+
releasable(id: string, holder: LayoutIdToken): boolean;
|
|
60
|
+
zLifted(id: string, holder: LayoutIdToken): boolean;
|
|
61
|
+
isSettled(id: string): boolean;
|
|
62
|
+
holds(id: string, holder: LayoutIdToken): boolean;
|
|
63
|
+
isLead(id: string, holder: LayoutIdToken): boolean;
|
|
64
|
+
tickExclusiveHandoffs(): void;
|
|
65
|
+
hasPendingExclusiveHandoffs(): boolean;
|
|
66
|
+
}
|
|
67
|
+
export declare function createLayoutIdentityRegistry(options: LayoutIdentityRegistryOptions): LayoutIdentityRegistry;
|