@flemo/core 2.1.0 → 2.2.1
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/dist/core/TaskManger.d.ts +5 -5
- package/dist/core/engine/__tests__/riderSwipe.test.d.ts +1 -0
- package/dist/core/engine/barPartStaging.d.ts +39 -0
- package/dist/core/engine/cancelResume.d.ts +6 -0
- package/dist/core/engine/createSwipeController.d.ts +10 -0
- package/dist/core/engine/flightRouting.d.ts +2 -2
- package/dist/core/engine/layerSettleHold.d.ts +0 -1
- package/dist/core/engine/riderSwipe.d.ts +28 -0
- package/dist/core/engine/types.d.ts +1 -0
- package/dist/dom/__tests__/staging.test.d.ts +1 -0
- package/dist/dom/attributes.d.ts +57 -4
- package/dist/dom/staging.d.ts +25 -0
- package/dist/history/historyDriver.d.ts +2 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.mjs +2353 -2155
- package/dist/morph/__tests__/morphFace.test.d.ts +1 -0
- package/dist/morph/__tests__/morphLine.test.d.ts +1 -0
- package/dist/morph/morphFace.d.ts +61 -0
- package/dist/morph/morphGeometry.d.ts +48 -0
- package/dist/morph/morphKeyframes.d.ts +121 -4
- package/dist/morph/morphLine.d.ts +73 -0
- package/dist/morph/morphPose.d.ts +30 -0
- package/dist/morph/morphSheet.d.ts +9 -0
- package/dist/morph/morphSide.d.ts +6 -0
- package/dist/platform/profile.d.ts +41 -15
- package/dist/screen/__tests__/partLayer.test.d.ts +1 -0
- package/dist/screen/computeScreenFreeze.d.ts +0 -1
- package/dist/screen/partLayer.d.ts +14 -0
- package/dist/transition/__tests__/gestureScrub.test.d.ts +1 -0
- package/dist/transition/__tests__/partClockInheritance.test.d.ts +1 -0
- package/dist/transition/compileTransitionStyles.d.ts +9 -1
- package/dist/transition/gestureScrub.d.ts +33 -0
- package/dist/transition/partTransition/__tests__/resolvePartDefinition.test.d.ts +1 -0
- package/dist/transition/partTransition/createPartTransition.d.ts +4 -5
- package/dist/transition/partTransition/createRawPartTransition.d.ts +10 -11
- package/dist/transition/partTransition/partTransition.d.ts +17 -0
- package/dist/transition/partTransition/resolvePartClock.d.ts +41 -0
- package/dist/transition/partTransition/typing.d.ts +8 -2
- package/package.json +1 -1
- package/dist/core/engine/__tests__/diagnosticRegistry.test.d.ts +0 -10
- package/dist/core/engine/diagnosticFlags.d.ts +0 -16
- package/dist/core/engine/diagnosticRegistry.d.ts +0 -38
- package/dist/core/engine/imageRevealHold.d.ts +0 -2
- package/dist/morph/morphAnimations.d.ts +0 -2
- /package/dist/core/engine/__tests__/{createTransitionEngine.flightImageHold.test.d.ts → barPartStaging.test.d.ts} +0 -0
- /package/dist/core/engine/__tests__/{diagnosticFlags.test.d.ts → createSwipeController.barPartStaging.test.d.ts} +0 -0
- /package/dist/core/engine/__tests__/{documentedDefaults.test.d.ts → createSwipeController.dragRiders.test.d.ts} +0 -0
- /package/dist/core/engine/__tests__/{imageRevealHold.test.d.ts → createTransitionEngine.barPartStaging.test.d.ts} +0 -0
- /package/dist/{morph/__tests__/morphAnimations.test.d.ts → core/engine/__tests__/platformDefaults.test.d.ts} +0 -0
|
@@ -1,2 +1,19 @@
|
|
|
1
|
+
import { BaseTransition, Transition } from '../typing';
|
|
1
2
|
import { PartTransition, PartTransitionName } from './typing';
|
|
2
3
|
export declare const partTransitionMap: Map<PartTransitionName, PartTransition>;
|
|
4
|
+
/**
|
|
5
|
+
* A registered part, with the clock the CURRENT flight gives it.
|
|
6
|
+
*
|
|
7
|
+
* Every reader of a part's timing goes through here, because the compiled CSS
|
|
8
|
+
* does: the rule a part actually runs carries the resolved clock (see
|
|
9
|
+
* resolvePartClock and the pair pass in compileTransitionStyles), so a reader
|
|
10
|
+
* that resolved the authored variants instead would disagree with the glass.
|
|
11
|
+
* That disagreement is not cosmetic — the choreography span decides how long
|
|
12
|
+
* the whole flight stays open, and the layer pin decides what stays promoted
|
|
13
|
+
* across the COMPLETED flip.
|
|
14
|
+
*
|
|
15
|
+
* `transition` is null only where there is no flight to inherit from, which is
|
|
16
|
+
* a part mounted outside any screen. It then reads exactly what it authored,
|
|
17
|
+
* matching the by-name rule that is the only one such a part selects.
|
|
18
|
+
*/
|
|
19
|
+
export declare const resolvePartDefinition: (name: string | null, transition: Pick<Transition, "variants"> | null) => Pick<BaseTransition, "initial" | "variants"> | undefined;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BaseTransition, Transition } from '../typing';
|
|
2
|
+
import { PartTransition } from './typing';
|
|
3
|
+
/**
|
|
4
|
+
* A part's variant table with its clock filled in from the screen transition
|
|
5
|
+
* carrying the flight.
|
|
6
|
+
*
|
|
7
|
+
* A `<Part>` declares a POSE: what the piece of chrome looks like on each side
|
|
8
|
+
* of a hand-over. How long it takes to get there is not its own question — it
|
|
9
|
+
* is the flight's, and the flight already answered it. Authoring the length a
|
|
10
|
+
* second time is how the two drift apart, and an omitted length was worse than
|
|
11
|
+
* drift: it resolved to zero and the part SNAPPED while the screen carrying it
|
|
12
|
+
* took three quarters of a second.
|
|
13
|
+
*
|
|
14
|
+
* This is the rule `resolveDecoratorClock` already applies to decorators, for
|
|
15
|
+
* the same reason and by the same mapping: the SAME VARIANT KEY. A part's
|
|
16
|
+
* PUSHING-false sits with the screen's PUSHING-false, so a preset whose push
|
|
17
|
+
* and pop differ (material runs 0.35s and 0.25s) gives its parts the same
|
|
18
|
+
* asymmetry without the author restating it.
|
|
19
|
+
*
|
|
20
|
+
* WHERE IT DIFFERS from a decorator, and why this could not simply reuse it: a
|
|
21
|
+
* decorator is reached through `transition.decoratorName`, so it belongs to one
|
|
22
|
+
* transition and can be resolved once. A part is referenced by NAME and may
|
|
23
|
+
* appear under any transition in the Router, so the pair is resolved per
|
|
24
|
+
* transition and the compiled rule carries a `data-flemo-transition` term to
|
|
25
|
+
* select the right one. A part mounted outside any screen has no transition to
|
|
26
|
+
* inherit from and keeps what it authored.
|
|
27
|
+
*
|
|
28
|
+
* `transition` is null where there is no flight to inherit from — the by-name
|
|
29
|
+
* pass, and a part mounted outside any screen. It then normalizes rather than
|
|
30
|
+
* inherits: every variant comes back with a clock, so nothing downstream has to
|
|
31
|
+
* carry the optional shape. That normalization is the reason PartVariantValue's
|
|
32
|
+
* looseness stops here, exactly as DecoratorVariantValue's does.
|
|
33
|
+
*
|
|
34
|
+
* Resolution is COMPILE TIME and produces a literal. It must never become a
|
|
35
|
+
* `var()` in `animation-duration`: timing that depended on custom properties
|
|
36
|
+
* lost WebKit's accelerated playback and collapsed to a 2-frame snap under
|
|
37
|
+
* main-thread starvation (device-bisected 2026-08-13, see
|
|
38
|
+
* compileTransitionStyles.ts).
|
|
39
|
+
*/
|
|
40
|
+
export declare const resolvePartClock: (transition: Pick<Transition, "variants"> | null, part: Pick<PartTransition, "initial" | "variants">) => Pick<BaseTransition, "initial" | "variants">;
|
|
41
|
+
export default resolvePartClock;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AnimationOptions, TransitionTarget } from '../cssTypes';
|
|
2
|
+
import { BaseTransition, SwipeAnimate, TransitionVariant } from '../typing';
|
|
3
|
+
export type PartVariantValue = {
|
|
4
|
+
value: TransitionTarget;
|
|
5
|
+
options?: AnimationOptions;
|
|
6
|
+
};
|
|
2
7
|
export interface RegisterPartTransition {
|
|
3
8
|
}
|
|
4
9
|
export type PartTransitionName = RegisterPartTransition[keyof RegisterPartTransition] | (string & {});
|
|
@@ -19,6 +24,7 @@ export type PartTransitionOptions = {
|
|
|
19
24
|
active: boolean;
|
|
20
25
|
}) => void;
|
|
21
26
|
};
|
|
22
|
-
export interface PartTransition extends Omit<BaseTransition, "name">, PartTransitionOptions {
|
|
27
|
+
export interface PartTransition extends Omit<BaseTransition, "name" | "variants">, PartTransitionOptions {
|
|
23
28
|
name: PartTransitionName;
|
|
29
|
+
variants: Record<TransitionVariant, PartVariantValue>;
|
|
24
30
|
}
|
package/package.json
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export declare const readImageHoldFlag: () => "on" | "off" | null;
|
|
2
|
-
export declare const morphTraceArmed: () => boolean;
|
|
3
|
-
export declare const readSettleGateFlag: () => boolean;
|
|
4
|
-
export declare const readArrivalHoldFlag: () => boolean;
|
|
5
|
-
export declare const readDesktopReleaseFlipFlag: () => boolean;
|
|
6
|
-
export declare const readCreepHeadFlag: () => boolean;
|
|
7
|
-
export declare const readDeferReleaseCommitFlag: () => boolean;
|
|
8
|
-
export declare const readDesktopHeadFlag: () => boolean;
|
|
9
|
-
export declare const readPrerasterFlag: () => boolean;
|
|
10
|
-
export declare const readRestLayerPromotionFlag: () => boolean;
|
|
11
|
-
export declare const readImageOffloadOverride: () => "on" | "off" | null;
|
|
12
|
-
export declare const readBlinkGovernedOverride: () => "on" | "off" | null;
|
|
13
|
-
export declare const residentScreenLayers: () => boolean;
|
|
14
|
-
export declare const resetResidentLayersForTesting: () => void;
|
|
15
|
-
export declare const shallowFreeze: () => boolean;
|
|
16
|
-
export declare const resetShallowFreezeForTesting: () => void;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What kind of thing a flag is — which decides how a report should read it.
|
|
3
|
-
*
|
|
4
|
-
* - `production-state`: written by the library itself (a learned ledger). Never
|
|
5
|
-
* set by hand; the KEY STRINGS are frozen, since users' devices carry
|
|
6
|
-
* persisted values.
|
|
7
|
-
* - `production-default-with-override`: the library computes a default and the
|
|
8
|
-
* key overrides it both ways, for field debugging.
|
|
9
|
-
* - `opt-in-diagnostic`: default OFF. A measurement instrument that ships so a
|
|
10
|
-
* device session can be probed without a custom build.
|
|
11
|
-
*/
|
|
12
|
-
export type DiagnosticFlagKind = "production-state" | "production-default-with-override" | "opt-in-diagnostic";
|
|
13
|
-
export interface DiagnosticFlag {
|
|
14
|
-
readonly key: string;
|
|
15
|
-
readonly storage: "session" | "local";
|
|
16
|
-
readonly kind: DiagnosticFlagKind;
|
|
17
|
-
/** Accepted values, for a report or a panel to offer. */
|
|
18
|
-
readonly values: string;
|
|
19
|
-
/** The default when the key is unset. */
|
|
20
|
-
readonly fallback: string;
|
|
21
|
-
readonly effect: string;
|
|
22
|
-
}
|
|
23
|
-
/** Every `flemo:*` key the library reads today. */
|
|
24
|
-
export declare const DIAGNOSTIC_FLAGS: readonly DiagnosticFlag[];
|
|
25
|
-
export interface RetiredDiagnosticFlag {
|
|
26
|
-
readonly key: string;
|
|
27
|
-
readonly storage: "session" | "local";
|
|
28
|
-
/** What it used to do, and when it stopped doing it. */
|
|
29
|
-
readonly retiredWith: string;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Keys the library once read and no longer does. Declared so a report can say
|
|
33
|
-
* "this is set, and it does nothing" — residue that is merely unknown reads as
|
|
34
|
-
* a lead worth chasing, and one such key once burned a multi-day investigation.
|
|
35
|
-
*
|
|
36
|
-
* Values persisted on users' devices are never read again.
|
|
37
|
-
*/
|
|
38
|
-
export declare const RETIRED_DIAGNOSTIC_FLAGS: readonly RetiredDiagnosticFlag[];
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|