gesso-core 0.7.0 → 0.8.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 +21 -0
- package/dist/{CanvasSurface-BpgbOku2.js → CanvasSurface-Cy2UErXI.js} +3366 -2617
- package/dist/CanvasSurface-Cy2UErXI.js.map +1 -0
- package/dist/{index-B5r1ETCh.d.ts → index-CQPJZwhG.d.ts} +753 -310
- package/dist/index.d.ts +2 -2
- package/dist/index.js +550 -205
- package/dist/index.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/package.json +1 -1
- package/dist/CanvasSurface-BpgbOku2.js.map +0 -1
|
@@ -8,6 +8,13 @@ import { BehaviorSubject, Observable, Subject } from "rxjs";
|
|
|
8
8
|
* easing — so nothing downstream clamps what it returns.
|
|
9
9
|
*/
|
|
10
10
|
type UiEasing = (t: number) => number;
|
|
11
|
+
/**
|
|
12
|
+
* The easing as CSS writes it, `cubic-bezier(0.2, 0, 0, 1)` or `linear`,
|
|
13
|
+
* for an easing made by `cubicBezier` or `linear`; undefined for one
|
|
14
|
+
* that is only a function, which CSS cannot name. What a design tool's
|
|
15
|
+
* handoff writes into a `transition`.
|
|
16
|
+
*/
|
|
17
|
+
declare function easingCss(easing: UiEasing): string | undefined;
|
|
11
18
|
/** Progress equals time. What a spinner and a sweep want. */
|
|
12
19
|
declare const linear: UiEasing;
|
|
13
20
|
/**
|
|
@@ -291,11 +298,30 @@ declare function interpolatorFor(from: unknown, to: unknown): UiInterpolator<unk
|
|
|
291
298
|
* it has forty opinions. the rule for colour —
|
|
292
299
|
* tokens only, never a literal in a component — applies to time.
|
|
293
300
|
*/
|
|
294
|
-
type UiDurationToken = 'instant' | 'fast' | 'normal' | 'slow' | 'deliberate';
|
|
301
|
+
type UiDurationToken = 'instant' | 'fast' | 'normal' | 'slow' | 'deliberate' | (keyof UiDurationExtensions & string);
|
|
295
302
|
/** The named curves; see `UiEasing.ts` for what each one is for. */
|
|
296
|
-
type UiEasingToken = keyof typeof easings;
|
|
303
|
+
type UiEasingToken = keyof typeof easings | (keyof UiEasingExtensions & string);
|
|
297
304
|
/** The named springs, for a movement that follows a gesture. */
|
|
298
|
-
type UiSpringToken = 'gentle' | 'snappy' | 'stiff';
|
|
305
|
+
type UiSpringToken = 'gentle' | 'snappy' | 'stiff' | (keyof UiSpringExtensions & string);
|
|
306
|
+
/**
|
|
307
|
+
* Names an application adds to the vocabulary, as typography roles are
|
|
308
|
+
* added (`UiTypographyExtensions`): a design's own `press` beside
|
|
309
|
+
* `fast`, given its value in the motion it provides (`defineMotion`).
|
|
310
|
+
*
|
|
311
|
+
* declare module 'gesso-core' {
|
|
312
|
+
* interface UiDurationExtensions {
|
|
313
|
+
* readonly press: unknown;
|
|
314
|
+
* }
|
|
315
|
+
* }
|
|
316
|
+
*
|
|
317
|
+
* Only the key is used. Declaring one makes `transition={{ opacity:
|
|
318
|
+
* 'press' }}` legal and a misspelling a compile error.
|
|
319
|
+
*/
|
|
320
|
+
interface UiDurationExtensions {}
|
|
321
|
+
/** Curves an application names; see `UiDurationExtensions`. */
|
|
322
|
+
interface UiEasingExtensions {}
|
|
323
|
+
/** Springs an application names; see `UiDurationExtensions`. */
|
|
324
|
+
interface UiSpringExtensions {}
|
|
299
325
|
/**
|
|
300
326
|
* A spring, in the physical sense: `stiffness` pulls towards the
|
|
301
327
|
* target, `damping` resists velocity, `mass` resists both.
|
|
@@ -314,21 +340,42 @@ interface UiSpringSpec {
|
|
|
314
340
|
/**
|
|
315
341
|
* A vocabulary of motion, beside the palette and the type scale.
|
|
316
342
|
*
|
|
317
|
-
* It is deliberately **not** a field on `UiTheme
|
|
318
|
-
* resolved per node
|
|
319
|
-
*
|
|
320
|
-
*
|
|
321
|
-
* the
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
* is per runtime, as everything else in front of the graph is.
|
|
343
|
+
* It is deliberately **not** a field on `UiTheme`: a theme value is
|
|
344
|
+
* resolved per node at paint, and a name in an animation is resolved
|
|
345
|
+
* once, when the animation starts. An application that wants a
|
|
346
|
+
* different feel installs one with `AnimationService.setMotion`, for
|
|
347
|
+
* the whole runtime, and a part of the tree may provide another over it
|
|
348
|
+
* (`UiEnvironmentKeys.motion`): a name in a `transition` or a `motion`
|
|
349
|
+
* state resolves against the motion where it is drawn (`motionOf`).
|
|
325
350
|
*/
|
|
326
351
|
interface UiMotion {
|
|
327
352
|
readonly durations: Readonly<Record<UiDurationToken, number>>;
|
|
328
353
|
readonly easings: Readonly<Record<UiEasingToken, UiEasing>>;
|
|
329
354
|
readonly springs: Readonly<Record<UiSpringToken, UiSpringSpec>>;
|
|
330
355
|
}
|
|
356
|
+
/** What a design changes in the vocabulary: any name, its own included. */
|
|
357
|
+
interface UiMotionChanges {
|
|
358
|
+
readonly durations?: Readonly<Partial<Record<UiDurationToken, number>>>;
|
|
359
|
+
readonly easings?: Readonly<Partial<Record<UiEasingToken, UiEasing>>>;
|
|
360
|
+
readonly springs?: Readonly<Partial<Record<UiSpringToken, UiSpringSpec>>>;
|
|
361
|
+
}
|
|
331
362
|
declare const defaultMotion: UiMotion;
|
|
363
|
+
/**
|
|
364
|
+
* A vocabulary with a design's own values, Gesso's for the rest:
|
|
365
|
+
*
|
|
366
|
+
* export const motion = defineMotion({ durations: { fast: 100, press: 90 } });
|
|
367
|
+
*
|
|
368
|
+
* Provided to a part of the tree (`UiEnvironmentKeys.motion`) or to the
|
|
369
|
+
* whole runtime (`AnimationService.setMotion`), it is what a name in a
|
|
370
|
+
* `transition`, a `motion` state or `AnimationService` resolves to.
|
|
371
|
+
*/
|
|
372
|
+
declare function defineMotion(changes: UiMotionChanges): UiMotion;
|
|
373
|
+
/** A duration by name or in milliseconds, as `motion` has it; `normal` for a name it lacks. */
|
|
374
|
+
declare function durationIn(motion: UiMotion, duration: number | UiDurationToken | undefined): number;
|
|
375
|
+
/** A curve by name, or given outright; `standard` for none or a name it lacks. */
|
|
376
|
+
declare function easingIn(motion: UiMotion, easing: UiEasing | UiEasingToken | undefined): UiEasing;
|
|
377
|
+
/** A spring by name, or given outright; `snappy` for none or a name it lacks. */
|
|
378
|
+
declare function springIn(motion: UiMotion, spring: UiSpringSpec | UiSpringToken | undefined): UiSpringSpec;
|
|
332
379
|
//#endregion
|
|
333
380
|
//#region src/animation/UiAnimation.d.ts
|
|
334
381
|
/**
|
|
@@ -499,7 +546,8 @@ declare abstract class UiAnimation<T> {
|
|
|
499
546
|
*/
|
|
500
547
|
continueFrom(previous: UiAnimation<T>): void;
|
|
501
548
|
protected onBegin(): void;
|
|
502
|
-
|
|
549
|
+
/** `hold`: at its end, stay there, unfinished, to be sampled again at an earlier time (`UiClock.holding`). */
|
|
550
|
+
advance(now: number, hold?: boolean): void;
|
|
503
551
|
/**
|
|
504
552
|
* Moves the ideal timeline on by one step.
|
|
505
553
|
*
|
|
@@ -597,13 +645,15 @@ declare function createTween<T>(cell: AnimatedCell<T>, to: T, options: UiTweenOp
|
|
|
597
645
|
*/
|
|
598
646
|
type UiTransitionSpec = {
|
|
599
647
|
readonly kind: 'tween';
|
|
600
|
-
|
|
601
|
-
readonly
|
|
648
|
+
/** Milliseconds, or a name resolved against the motion where it is drawn. */
|
|
649
|
+
readonly duration: number | UiDurationToken;
|
|
650
|
+
readonly easing?: UiEasing | UiEasingToken;
|
|
602
651
|
readonly stepMs?: number;
|
|
603
652
|
readonly reducedMotion?: UiReducedMotionPolicy;
|
|
604
653
|
} | {
|
|
605
654
|
readonly kind: 'spring';
|
|
606
|
-
|
|
655
|
+
/** Given outright, or a name resolved against the motion where it is drawn. */
|
|
656
|
+
readonly spring: UiSpringSpec | UiSpringToken;
|
|
607
657
|
readonly restDelta?: number;
|
|
608
658
|
readonly reducedMotion?: UiReducedMotionPolicy;
|
|
609
659
|
};
|
|
@@ -615,10 +665,10 @@ type UiTransitionSpec = {
|
|
|
615
665
|
* transition does. A spring is for a property that is one number, like
|
|
616
666
|
* `opacity`: a transform only tweens (see `spring`).
|
|
617
667
|
*/
|
|
618
|
-
type UiTransitionValue = number | UiTransitionSpec;
|
|
668
|
+
type UiTransitionValue = number | UiDurationToken | UiTransitionSpec;
|
|
619
669
|
/** A tween of `duration` milliseconds along `easing`. */
|
|
620
|
-
declare function tween(duration: number, options?: {
|
|
621
|
-
easing?: UiEasing;
|
|
670
|
+
declare function tween(duration: number | UiDurationToken, options?: {
|
|
671
|
+
easing?: UiEasing | UiEasingToken;
|
|
622
672
|
stepMs?: number;
|
|
623
673
|
reducedMotion?: UiReducedMotionPolicy;
|
|
624
674
|
}): UiTransitionSpec;
|
|
@@ -639,143 +689,6 @@ declare function normalizeTransition(value: UiTransitionValue): UiTransitionSpec
|
|
|
639
689
|
*/
|
|
640
690
|
declare function assertTransitionMap(nodeId: string, value: unknown, isKnownProperty: (name: string) => boolean): ReadonlyMap<string, UiTransitionSpec>;
|
|
641
691
|
//#endregion
|
|
642
|
-
//#region src/animation/AnimationDriver.d.ts
|
|
643
|
-
/**
|
|
644
|
-
* The running animations of one runtime, and the thing the `ticks`
|
|
645
|
-
* phase advances.
|
|
646
|
-
*
|
|
647
|
-
* **One animation per cell.** Starting a second one on a cell
|
|
648
|
-
* supersedes the first, which completes without reaching its target.
|
|
649
|
-
* That rule is not a simplification: it is what makes a gesture work
|
|
650
|
-
* — every retarget while a finger moves is a new animation on the same
|
|
651
|
-
* cell — and it removes the whole question of what two animations
|
|
652
|
-
* writing one value would mean.
|
|
653
|
-
*
|
|
654
|
-
* The driver is per runtime for the reason `MediaService` is: the
|
|
655
|
-
* playground runs several runtimes in one worker, and a module-level
|
|
656
|
-
* set of animations would tick a disposed runtime's cells.
|
|
657
|
-
*/
|
|
658
|
-
declare class AnimationDriver {
|
|
659
|
-
private readonly running;
|
|
660
|
-
private reducedMotion;
|
|
661
|
-
private hidden;
|
|
662
|
-
private wake;
|
|
663
|
-
/**
|
|
664
|
-
* Called when an animation enters the running set on an idle driver.
|
|
665
|
-
*
|
|
666
|
-
* The runtime arms a frame here. Without it an animation started
|
|
667
|
-
* from a click handler that changes nothing else would never get a
|
|
668
|
-
* first frame: the scheduler arms only on dirt, the animation's dirt
|
|
669
|
-
* is made inside a frame, and no frame would ever come. Re-arming
|
|
670
|
-
* *between* frames is `scheduleAnimationTick`'s job; this is only
|
|
671
|
-
* the first one.
|
|
672
|
-
*/
|
|
673
|
-
setWakeListener(listener: (() => void) | null): void;
|
|
674
|
-
/** Whether anything is running, so the `ticks` phase can report 0. */
|
|
675
|
-
get isRunning(): boolean;
|
|
676
|
-
get size(): number;
|
|
677
|
-
/** Whether a person has asked for less motion; see `UiReducedMotionPolicy`. */
|
|
678
|
-
get isReducedMotion(): boolean;
|
|
679
|
-
/**
|
|
680
|
-
* Whether an animation should be put where it is going instead of
|
|
681
|
-
* being run there.
|
|
682
|
-
*
|
|
683
|
-
* Two questions with one answer: a person who has asked for less
|
|
684
|
-
* motion and a page nobody is looking at both want the end state and
|
|
685
|
-
* not the journey to it, and in both cases `keep` is the way an
|
|
686
|
-
* animation says its movement is the information rather than the
|
|
687
|
-
* decoration.
|
|
688
|
-
*/
|
|
689
|
-
private lands;
|
|
690
|
-
/**
|
|
691
|
-
* Starts an animation, replacing whatever was driving its cell.
|
|
692
|
-
*
|
|
693
|
-
* Returns the values it will write. Under reduced motion, or while
|
|
694
|
-
* the document is hidden, an animation whose policy is `snap` never
|
|
695
|
-
* enters the set at all: the cell takes its target here, in the
|
|
696
|
-
* caller's turn, and the returned observable has already completed.
|
|
697
|
-
* So a reduced-motion app runs no animation frames, rather than
|
|
698
|
-
* running them and drawing the same thing sixty times.
|
|
699
|
-
*/
|
|
700
|
-
start<T>(animation: UiAnimation<T>): Observable<T>;
|
|
701
|
-
/** The animation currently driving a cell, if any. */
|
|
702
|
-
animationFor<T>(cell: AnimatedCell<T>): UiAnimation<T> | undefined;
|
|
703
|
-
/**
|
|
704
|
-
* Stops whatever is driving a cell, leaving it where it stands.
|
|
705
|
-
*
|
|
706
|
-
* This is how a node leaving the tree releases its animations, which
|
|
707
|
-
* is the leak the media tier names for image bitmaps and which
|
|
708
|
-
* matters here too: a driver holding a cell holds every closure the
|
|
709
|
-
* component that made it captured.
|
|
710
|
-
*/
|
|
711
|
-
stop<T>(cell: AnimatedCell<T>): boolean;
|
|
712
|
-
stopAll(): void;
|
|
713
|
-
/**
|
|
714
|
-
* A person's motion preference changed.
|
|
715
|
-
*
|
|
716
|
-
* Turning it on finishes everything already in flight that is
|
|
717
|
-
* willing to be finished, rather than leaving a dialog stuck
|
|
718
|
-
* half-faded until the animation it was told not to run runs out.
|
|
719
|
-
*/
|
|
720
|
-
setReducedMotion(reduced: boolean): void;
|
|
721
|
-
/**
|
|
722
|
-
* The document went out of sight, or came back.
|
|
723
|
-
*
|
|
724
|
-
* A hidden page still paints. The runtime deliberately keeps giving
|
|
725
|
-
* frames to a change that genuinely happened, so the canvas holds a
|
|
726
|
-
* correct picture rather than whatever was on it when the tab went
|
|
727
|
-
* away, and a route loaded hidden is drawn once its images have
|
|
728
|
-
* decoded rather than being left half empty. What it does not do is
|
|
729
|
-
* advance animations, because frames spent watching something move
|
|
730
|
-
* that nobody can see are frames spent for nothing.
|
|
731
|
-
*
|
|
732
|
-
* Those two together leave an animation frozen at whatever value it
|
|
733
|
-
* had reached, and painted there. For most animations that is
|
|
734
|
-
* harmless: a colour halfway between two colours is still a colour.
|
|
735
|
-
* For an **entrance** it is not, because an entrance begins at
|
|
736
|
-
* `opacity: 0` and its frozen first value is an element that is not
|
|
737
|
-
* there. Segue's track page, opened in a background tab, held sixty
|
|
738
|
-
* two pixels of empty page where its play button belonged, and every
|
|
739
|
-
* screen built from `motion({ initial })` did the same. It came back
|
|
740
|
-
* the moment the tab did, which is exactly why it reads as a
|
|
741
|
-
* rendering bug rather than as a tab that is not being drawn.
|
|
742
|
-
*
|
|
743
|
-
* So a hidden page lands its animations instead of freezing them, in
|
|
744
|
-
* the same way and for the same reason a reduced-motion preference
|
|
745
|
-
* does: what an animation has to say to nobody is nothing, and the
|
|
746
|
-
* state it was going to end at is the one the page should be holding
|
|
747
|
-
* while it waits to be looked at. An animation whose movement is the
|
|
748
|
-
* information (`keep`) is left alone either way, so a spinner is
|
|
749
|
-
* still a spinner when the tab comes back.
|
|
750
|
-
*/
|
|
751
|
-
setHidden(hidden: boolean): void;
|
|
752
|
-
/** Puts everything that may be landed where it was going. */
|
|
753
|
-
private landRunning;
|
|
754
|
-
/**
|
|
755
|
-
* When the earliest animation next wants a frame, or undefined when
|
|
756
|
-
* nothing is running.
|
|
757
|
-
*
|
|
758
|
-
* This is the whole answer to "how does an animation keep frames
|
|
759
|
-
* coming on an idle app". The runtime asks after every frame: an
|
|
760
|
-
* answer at or before `now` means arm the next frame, a later one
|
|
761
|
-
* means a timer, and undefined means arm nothing — which is why an
|
|
762
|
-
* idle app's profile reads `ticks 0.00` for the strong reason (no
|
|
763
|
-
* frames at all) rather than the weak one (frames that did nothing).
|
|
764
|
-
*/
|
|
765
|
-
nextTickAt(now: number): number | undefined;
|
|
766
|
-
/**
|
|
767
|
-
* Advances every animation whose next sample is due, writing each
|
|
768
|
-
* one's cell. This is the `ticks` phase.
|
|
769
|
-
*
|
|
770
|
-
* It runs before the dirty set is snapshotted for exactly the reason
|
|
771
|
-
* `patches` and `environment` do: the writes it makes have to belong
|
|
772
|
-
* to the frame about to be collected, or a frame would draw the
|
|
773
|
-
* previous tick's values and every animation would run one frame
|
|
774
|
-
* behind.
|
|
775
|
-
*/
|
|
776
|
-
advance(now: number): void;
|
|
777
|
-
}
|
|
778
|
-
//#endregion
|
|
779
692
|
//#region src/graph/DirtyFlags.d.ts
|
|
780
693
|
declare enum DirtyFlags {
|
|
781
694
|
None = 0,
|
|
@@ -841,6 +754,27 @@ declare function createEnvironmentKey<T>(options: {
|
|
|
841
754
|
* declared as a key.
|
|
842
755
|
*/
|
|
843
756
|
declare function findEnvironmentKey(name: string): UiEnvironmentKey<unknown> | undefined;
|
|
757
|
+
/**
|
|
758
|
+
* A value a node provides for a key of your own, to everything under
|
|
759
|
+
* it: `provide={[provided(Session, session)]}`.
|
|
760
|
+
*
|
|
761
|
+
* The keys Gesso declares are provided by props of their own (`theme`,
|
|
762
|
+
* `pointer`, `contentColor`); this is how a key made with
|
|
763
|
+
* `createEnvironmentKey` is. A component under the node reads it with
|
|
764
|
+
* `ctx.environment(key)`. What the environment holds is compared by
|
|
765
|
+
* the key's `compare`, else by identity, so a value that changes often
|
|
766
|
+
* is better provided as a source (a cell) than as each new value: the
|
|
767
|
+
* source is set once and never compares unequal again.
|
|
768
|
+
*/
|
|
769
|
+
interface UiProvision<T = unknown> {
|
|
770
|
+
readonly key: UiEnvironmentKey<T>;
|
|
771
|
+
readonly value: T;
|
|
772
|
+
}
|
|
773
|
+
/**
|
|
774
|
+
* A value for `key`, for a node's `provide`. Typed against the key
|
|
775
|
+
* here and erased in the result, so one list holds keys of any type.
|
|
776
|
+
*/
|
|
777
|
+
declare function provided<T>(key: UiEnvironmentKey<T>, value: T): UiProvision;
|
|
844
778
|
//#endregion
|
|
845
779
|
//#region src/environment/UiEnvironment.d.ts
|
|
846
780
|
/**
|
|
@@ -909,6 +843,86 @@ declare class UiEnvironment {
|
|
|
909
843
|
providesOwn(name: string): boolean;
|
|
910
844
|
}
|
|
911
845
|
//#endregion
|
|
846
|
+
//#region src/layout/LayoutTypes.d.ts
|
|
847
|
+
interface Size {
|
|
848
|
+
width: number;
|
|
849
|
+
height: number;
|
|
850
|
+
}
|
|
851
|
+
interface LayoutBox {
|
|
852
|
+
x: number;
|
|
853
|
+
y: number;
|
|
854
|
+
width: number;
|
|
855
|
+
height: number;
|
|
856
|
+
}
|
|
857
|
+
/**
|
|
858
|
+
* Options applied to a Constraints instance.
|
|
859
|
+
*
|
|
860
|
+
* An explicit width/height makes that axis tight
|
|
861
|
+
* (min === max), mirroring CSS replaced sizing.
|
|
862
|
+
*/
|
|
863
|
+
interface TightenOptions {
|
|
864
|
+
width?: number;
|
|
865
|
+
height?: number;
|
|
866
|
+
minWidth?: number;
|
|
867
|
+
maxWidth?: number;
|
|
868
|
+
minHeight?: number;
|
|
869
|
+
maxHeight?: number;
|
|
870
|
+
}
|
|
871
|
+
/**
|
|
872
|
+
* Immutable bounds handed down the layout tree.
|
|
873
|
+
*
|
|
874
|
+
* Unbounded axes use Infinity for max.
|
|
875
|
+
*/
|
|
876
|
+
declare class Constraints {
|
|
877
|
+
readonly minWidth: number;
|
|
878
|
+
readonly maxWidth: number;
|
|
879
|
+
readonly minHeight: number;
|
|
880
|
+
readonly maxHeight: number;
|
|
881
|
+
constructor(minWidth?: number, maxWidth?: number, minHeight?: number, maxHeight?: number);
|
|
882
|
+
static unbounded(): Constraints;
|
|
883
|
+
static tight(width: number, height: number): Constraints;
|
|
884
|
+
static loose(width: number, height: number): Constraints;
|
|
885
|
+
hasBoundedWidth(): boolean;
|
|
886
|
+
hasBoundedHeight(): boolean;
|
|
887
|
+
}
|
|
888
|
+
/** What one layout call did; see LayoutEngine.stats. */
|
|
889
|
+
interface LayoutStats {
|
|
890
|
+
/** Nodes whose measure ran (memo hits excluded). */
|
|
891
|
+
measured: number;
|
|
892
|
+
/** Nodes whose place ran. */
|
|
893
|
+
placed: number;
|
|
894
|
+
/** Laid-out subtrees that moved without changing size, and were shifted rather than placed again. */
|
|
895
|
+
shifted: number;
|
|
896
|
+
/** Subtrees laid out from a relayout boundary instead of the root. */
|
|
897
|
+
relayoutRoots: number;
|
|
898
|
+
/** Whether the pass started from the root. */
|
|
899
|
+
fullLayout: boolean;
|
|
900
|
+
/** Every node whose measure ran, in order, when `LayoutEngine.trace` is on. */
|
|
901
|
+
measuredNodes: UiNode[];
|
|
902
|
+
}
|
|
903
|
+
/**
|
|
904
|
+
* The result of a full layout pass for the layout root.
|
|
905
|
+
*
|
|
906
|
+
* Descendant geometry is read from LayoutRecords.
|
|
907
|
+
*/
|
|
908
|
+
interface LayoutResult {
|
|
909
|
+
root: UiNode;
|
|
910
|
+
box: LayoutBox;
|
|
911
|
+
contentWidth: number;
|
|
912
|
+
contentHeight: number;
|
|
913
|
+
scrollX: number;
|
|
914
|
+
scrollY: number;
|
|
915
|
+
clip: LayoutBox;
|
|
916
|
+
}
|
|
917
|
+
declare function clampSize(constraints: Constraints, width: number, height: number): Size;
|
|
918
|
+
declare function constraintsEqual(a: Constraints, b: Constraints): boolean;
|
|
919
|
+
/**
|
|
920
|
+
* Returns new constraints with the options applied on top of
|
|
921
|
+
* the supplied constraints. Explicit sizes make an axis tight,
|
|
922
|
+
* min/max values tighten the existing bounds.
|
|
923
|
+
*/
|
|
924
|
+
declare function tightenConstraints(constraints: Constraints, options: TightenOptions): Constraints;
|
|
925
|
+
//#endregion
|
|
912
926
|
//#region src/layout/TextMeasurer.d.ts
|
|
913
927
|
type TextWrap = 'word' | 'char' | 'none';
|
|
914
928
|
type TextOverflow = 'clip' | 'ellipsis';
|
|
@@ -1880,8 +1894,11 @@ declare const UI_SUBGRID_AXES: readonly UiSubgridAxis[];
|
|
|
1880
1894
|
declare function validateSubgrid(value: unknown): string | undefined;
|
|
1881
1895
|
type UiPosition = 'static' | 'relative' | 'absolute' | 'sticky';
|
|
1882
1896
|
type UiOverflow = 'visible' | 'hidden' | 'scroll' | 'auto';
|
|
1883
|
-
/**
|
|
1884
|
-
|
|
1897
|
+
/**
|
|
1898
|
+
* Side and alignment of an anchored node against its anchor, or `over`
|
|
1899
|
+
* it: laid over the anchor's box, grown by the offset on every side.
|
|
1900
|
+
*/
|
|
1901
|
+
type UiPlacement = 'over' | 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
|
|
1885
1902
|
type UiTextWrapValue = 'word' | 'char' | 'none';
|
|
1886
1903
|
type UiTextOverflowValue = 'clip' | 'ellipsis';
|
|
1887
1904
|
/**
|
|
@@ -2062,6 +2079,12 @@ interface UiPropertyOverride {
|
|
|
2062
2079
|
readonly name: string;
|
|
2063
2080
|
order: number;
|
|
2064
2081
|
value: unknown;
|
|
2082
|
+
/**
|
|
2083
|
+
* Drawn at once, past any transition the node declares, and taken
|
|
2084
|
+
* away at once too: a design tool's preview of a value being chosen,
|
|
2085
|
+
* which has to keep up with the drag that chooses it.
|
|
2086
|
+
*/
|
|
2087
|
+
readonly snap?: boolean;
|
|
2065
2088
|
}
|
|
2066
2089
|
/**
|
|
2067
2090
|
* The cascade for one overridden property: the element's own value,
|
|
@@ -2087,6 +2110,10 @@ interface UiPropertyOverrides {
|
|
|
2087
2110
|
interface UiNodeTransitions {
|
|
2088
2111
|
/** Takes over a write by animating towards it, or declines it. */
|
|
2089
2112
|
write(property: NodeProperty, value: unknown, flags: DirtyFlags): boolean;
|
|
2113
|
+
/** Stops animating one property, leaving it where it stands, for a write that is drawn at once. */
|
|
2114
|
+
cancel(property: NodeProperty): void;
|
|
2115
|
+
/** What the element declares, by property, as written: a name stays a name. For a tool that reads it. */
|
|
2116
|
+
readonly declared: ReadonlyMap<NodeProperty, UiTransitionSpec>;
|
|
2090
2117
|
/** Cancels everything, for a node leaving the tree. */
|
|
2091
2118
|
release(): void;
|
|
2092
2119
|
}
|
|
@@ -2147,117 +2174,254 @@ declare class UiNode {
|
|
|
2147
2174
|
/**
|
|
2148
2175
|
* The scoped environment this node reads inherited values from.
|
|
2149
2176
|
*
|
|
2150
|
-
* Null means the node uses the default environment values. The
|
|
2151
|
-
* environment is assigned by the graph builder when a node or an
|
|
2152
|
-
* ancestor provides environment values.
|
|
2177
|
+
* Null means the node uses the default environment values. The
|
|
2178
|
+
* environment is assigned by the graph builder when a node or an
|
|
2179
|
+
* ancestor provides environment values.
|
|
2180
|
+
*/
|
|
2181
|
+
environment: UiEnvironment | null;
|
|
2182
|
+
/**
|
|
2183
|
+
* Shapes the node's modifiers put in its own paint pass, merged in
|
|
2184
|
+
* modifier order.
|
|
2185
|
+
*
|
|
2186
|
+
* Null until a modifier decorates, so the cost to an undecorated
|
|
2187
|
+
* node is the one null check each renderer already makes per node,
|
|
2188
|
+
* and a tree of ten thousand plain boxes pays nothing. Written only
|
|
2189
|
+
* through `UiModifierHost.decorate`; see `rendering/Decorations.ts`
|
|
2190
|
+
* for what a shape means and where it lands.
|
|
2191
|
+
*/
|
|
2192
|
+
decorations: readonly DecorationShape[] | null;
|
|
2193
|
+
/**
|
|
2194
|
+
* How this node's properties get from one value to the next.
|
|
2195
|
+
*
|
|
2196
|
+
* Null until the element declares a `transition`, so the cost to a
|
|
2197
|
+
* tree without one is a field read on the property write path — the
|
|
2198
|
+
* same shape, and the same argument, as `overrides` above.
|
|
2199
|
+
*/
|
|
2200
|
+
transitions: UiNodeTransitions | null;
|
|
2201
|
+
hasChildren(): boolean;
|
|
2202
|
+
isDirty(): boolean;
|
|
2203
|
+
getProperty<T>(property: NodeProperty): T | undefined;
|
|
2204
|
+
setProperty<T>(property: NodeProperty, value: T): void;
|
|
2205
|
+
/** Removes a property; whether it was there. */
|
|
2206
|
+
removeProperty(property: NodeProperty): boolean;
|
|
2207
|
+
}
|
|
2208
|
+
//#endregion
|
|
2209
|
+
//#region src/animation/UiClock.d.ts
|
|
2210
|
+
/**
|
|
2211
|
+
* How time passes for the animations under a node: at a speed of its
|
|
2212
|
+
* own, or not at all.
|
|
2213
|
+
*
|
|
2214
|
+
* A node provides one to its subtree,
|
|
2215
|
+
* `provide={[provided(UiEnvironmentKeys.clock, clock)]}`, and every
|
|
2216
|
+
* animation started there runs on it: a transition, a `motion` state,
|
|
2217
|
+
* hover and press, and `AnimationService.animate` given the node it
|
|
2218
|
+
* animates `on`. Nothing provided is real time.
|
|
2219
|
+
*
|
|
2220
|
+
* What a design tool needs to show one screen two ways at once. The
|
|
2221
|
+
* frames on its board are pictures: under a `settled` clock every
|
|
2222
|
+
* animation lands where it is going the moment it starts, and a loop
|
|
2223
|
+
* holds still. The screen it plays runs at the person's own speed, a
|
|
2224
|
+
* quarter of it to watch a press closely, or paused. Reduced motion and
|
|
2225
|
+
* a hidden page are the whole app's; this is one part of it.
|
|
2226
|
+
*
|
|
2227
|
+
* An animation takes all its time from the driver, which hands each
|
|
2228
|
+
* the local time of its clock, so nothing inside a tween or a spring
|
|
2229
|
+
* knows; and the driver asks for the next frame in real time, so a
|
|
2230
|
+
* slowed clock asks for frames as often as it needs them and a paused
|
|
2231
|
+
* one asks for none.
|
|
2232
|
+
*/
|
|
2233
|
+
declare class UiClock {
|
|
2234
|
+
private rate;
|
|
2235
|
+
/** A real time and the local time it was, from the last change of speed: where local time is measured from. */
|
|
2236
|
+
private anchor;
|
|
2237
|
+
/** The real time last asked about, where a change of speed takes effect. */
|
|
2238
|
+
private lastReal;
|
|
2239
|
+
/** Every animation lands where it is going, and none runs. */
|
|
2240
|
+
settled: boolean;
|
|
2241
|
+
/**
|
|
2242
|
+
* Animations that reach their end stay, held there, rather than
|
|
2243
|
+
* finishing: so moving the time back (`seek`) plays them back. What a
|
|
2244
|
+
* design tool scrubs a transition with; let go, they finish as they
|
|
2245
|
+
* would have. A spring, which is worked out step by step rather than
|
|
2246
|
+
* from the time, holds but does not run back.
|
|
2247
|
+
*/
|
|
2248
|
+
holding: boolean;
|
|
2249
|
+
/** Bumped by `seek`, so a driver knows to draw again at the new time. */
|
|
2250
|
+
moves: number;
|
|
2251
|
+
constructor(options?: {
|
|
2252
|
+
readonly speed?: number;
|
|
2253
|
+
readonly settled?: boolean;
|
|
2254
|
+
});
|
|
2255
|
+
/** How fast time passes: 1 is real time, 0.25 a quarter of it, 0 paused. */
|
|
2256
|
+
get speed(): number;
|
|
2257
|
+
set speed(next: number);
|
|
2258
|
+
/** The local time now, as last asked: where a seek is measured from. */
|
|
2259
|
+
get now(): number;
|
|
2260
|
+
/**
|
|
2261
|
+
* Puts local time at `at`, from now on: forward, or back to replay
|
|
2262
|
+
* what is held (`holding`). Paused, it stays there; running, it goes
|
|
2263
|
+
* on from there.
|
|
2264
|
+
*/
|
|
2265
|
+
seek(at: number): void;
|
|
2266
|
+
/** The local time at real time `now`. The first time asked, the two agree. */
|
|
2267
|
+
local(now: number): number;
|
|
2268
|
+
/** The real time at which local time `at` comes; Infinity while paused. */
|
|
2269
|
+
real(at: number): number;
|
|
2270
|
+
}
|
|
2271
|
+
/** The motion vocabulary names resolve to under `node`: the nearest provided above it, or Gesso's. */
|
|
2272
|
+
declare function motionOf(node: UiNode | null | undefined): UiMotion;
|
|
2273
|
+
/** The clock the animations under `node` run on: the nearest one provided above it, or null for real time. */
|
|
2274
|
+
declare function clockOf(node: UiNode | null | undefined): UiClock | null;
|
|
2275
|
+
//#endregion
|
|
2276
|
+
//#region src/animation/AnimationDriver.d.ts
|
|
2277
|
+
/**
|
|
2278
|
+
* The running animations of one runtime, and the thing the `ticks`
|
|
2279
|
+
* phase advances.
|
|
2280
|
+
*
|
|
2281
|
+
* **One animation per cell.** Starting a second one on a cell
|
|
2282
|
+
* supersedes the first, which completes without reaching its target.
|
|
2283
|
+
* That rule is not a simplification: it is what makes a gesture work
|
|
2284
|
+
* — every retarget while a finger moves is a new animation on the same
|
|
2285
|
+
* cell — and it removes the whole question of what two animations
|
|
2286
|
+
* writing one value would mean.
|
|
2287
|
+
*
|
|
2288
|
+
* The driver is per runtime for the reason `MediaService` is: the
|
|
2289
|
+
* playground runs several runtimes in one worker, and a module-level
|
|
2290
|
+
* set of animations would tick a disposed runtime's cells.
|
|
2291
|
+
*/
|
|
2292
|
+
declare class AnimationDriver {
|
|
2293
|
+
private readonly running;
|
|
2294
|
+
/** The clock each running animation was started on, when it was not real time; see `UiClock`. */
|
|
2295
|
+
private readonly clocks;
|
|
2296
|
+
/** Each clock's `moves` as last drawn: one moved since (a seek) is drawn at its new time at once. */
|
|
2297
|
+
private readonly seenMoves;
|
|
2298
|
+
private reducedMotion;
|
|
2299
|
+
private hidden;
|
|
2300
|
+
private advancing;
|
|
2301
|
+
private wake;
|
|
2302
|
+
/**
|
|
2303
|
+
* Called when an animation enters the running set on an idle driver.
|
|
2304
|
+
*
|
|
2305
|
+
* The runtime arms a frame here. Without it an animation started
|
|
2306
|
+
* from a click handler that changes nothing else would never get a
|
|
2307
|
+
* first frame: the scheduler arms only on dirt, the animation's dirt
|
|
2308
|
+
* is made inside a frame, and no frame would ever come. Re-arming
|
|
2309
|
+
* *between* frames is `scheduleAnimationTick`'s job; this is only
|
|
2310
|
+
* the first one.
|
|
2311
|
+
*/
|
|
2312
|
+
setWakeListener(listener: (() => void) | null): void;
|
|
2313
|
+
/**
|
|
2314
|
+
* Whether a frame of the running animations is being written now: a
|
|
2315
|
+
* value written meanwhile is a step of an animation, not a change for
|
|
2316
|
+
* a transition to animate again.
|
|
2317
|
+
*/
|
|
2318
|
+
get isAdvancing(): boolean;
|
|
2319
|
+
/** Whether anything is running, so the `ticks` phase can report 0. */
|
|
2320
|
+
get isRunning(): boolean;
|
|
2321
|
+
get size(): number;
|
|
2322
|
+
/** Whether a person has asked for less motion; see `UiReducedMotionPolicy`. */
|
|
2323
|
+
get isReducedMotion(): boolean;
|
|
2324
|
+
/**
|
|
2325
|
+
* Whether an animation should be put where it is going instead of
|
|
2326
|
+
* being run there.
|
|
2327
|
+
*
|
|
2328
|
+
* Two questions with one answer: a person who has asked for less
|
|
2329
|
+
* motion and a page nobody is looking at both want the end state and
|
|
2330
|
+
* not the journey to it, and in both cases `keep` is the way an
|
|
2331
|
+
* animation says its movement is the information rather than the
|
|
2332
|
+
* decoration.
|
|
2333
|
+
*/
|
|
2334
|
+
private lands;
|
|
2335
|
+
/**
|
|
2336
|
+
* Starts an animation, replacing whatever was driving its cell.
|
|
2337
|
+
*
|
|
2338
|
+
* Returns the values it will write. Under reduced motion, or while
|
|
2339
|
+
* the document is hidden, an animation whose policy is `snap` never
|
|
2340
|
+
* enters the set at all: the cell takes its target here, in the
|
|
2341
|
+
* caller's turn, and the returned observable has already completed.
|
|
2342
|
+
* So a reduced-motion app runs no animation frames, rather than
|
|
2343
|
+
* running them and drawing the same thing sixty times.
|
|
2344
|
+
*/
|
|
2345
|
+
start<T>(animation: UiAnimation<T>, clock?: UiClock | null): Observable<T>;
|
|
2346
|
+
/** The animation currently driving a cell, if any. */
|
|
2347
|
+
animationFor<T>(cell: AnimatedCell<T>): UiAnimation<T> | undefined;
|
|
2348
|
+
/**
|
|
2349
|
+
* Stops whatever is driving a cell, leaving it where it stands.
|
|
2350
|
+
*
|
|
2351
|
+
* This is how a node leaving the tree releases its animations, which
|
|
2352
|
+
* is the leak the media tier names for image bitmaps and which
|
|
2353
|
+
* matters here too: a driver holding a cell holds every closure the
|
|
2354
|
+
* component that made it captured.
|
|
2355
|
+
*/
|
|
2356
|
+
stop<T>(cell: AnimatedCell<T>): boolean;
|
|
2357
|
+
stopAll(): void;
|
|
2358
|
+
/**
|
|
2359
|
+
* A person's motion preference changed.
|
|
2360
|
+
*
|
|
2361
|
+
* Turning it on finishes everything already in flight that is
|
|
2362
|
+
* willing to be finished, rather than leaving a dialog stuck
|
|
2363
|
+
* half-faded until the animation it was told not to run runs out.
|
|
2364
|
+
*/
|
|
2365
|
+
setReducedMotion(reduced: boolean): void;
|
|
2366
|
+
/**
|
|
2367
|
+
* The document went out of sight, or came back.
|
|
2368
|
+
*
|
|
2369
|
+
* A hidden page still paints. The runtime deliberately keeps giving
|
|
2370
|
+
* frames to a change that genuinely happened, so the canvas holds a
|
|
2371
|
+
* correct picture rather than whatever was on it when the tab went
|
|
2372
|
+
* away, and a route loaded hidden is drawn once its images have
|
|
2373
|
+
* decoded rather than being left half empty. What it does not do is
|
|
2374
|
+
* advance animations, because frames spent watching something move
|
|
2375
|
+
* that nobody can see are frames spent for nothing.
|
|
2376
|
+
*
|
|
2377
|
+
* Those two together leave an animation frozen at whatever value it
|
|
2378
|
+
* had reached, and painted there. For most animations that is
|
|
2379
|
+
* harmless: a colour halfway between two colours is still a colour.
|
|
2380
|
+
* For an **entrance** it is not, because an entrance begins at
|
|
2381
|
+
* `opacity: 0` and its frozen first value is an element that is not
|
|
2382
|
+
* there. Segue's track page, opened in a background tab, held sixty
|
|
2383
|
+
* two pixels of empty page where its play button belonged, and every
|
|
2384
|
+
* screen built from `motion({ initial })` did the same. It came back
|
|
2385
|
+
* the moment the tab did, which is exactly why it reads as a
|
|
2386
|
+
* rendering bug rather than as a tab that is not being drawn.
|
|
2387
|
+
*
|
|
2388
|
+
* So a hidden page lands its animations instead of freezing them, in
|
|
2389
|
+
* the same way and for the same reason a reduced-motion preference
|
|
2390
|
+
* does: what an animation has to say to nobody is nothing, and the
|
|
2391
|
+
* state it was going to end at is the one the page should be holding
|
|
2392
|
+
* while it waits to be looked at. An animation whose movement is the
|
|
2393
|
+
* information (`keep`) is left alone either way, so a spinner is
|
|
2394
|
+
* still a spinner when the tab comes back.
|
|
2153
2395
|
*/
|
|
2154
|
-
|
|
2396
|
+
setHidden(hidden: boolean): void;
|
|
2397
|
+
/** Puts everything that may be landed where it was going. */
|
|
2398
|
+
private landRunning;
|
|
2155
2399
|
/**
|
|
2156
|
-
*
|
|
2157
|
-
*
|
|
2400
|
+
* When the earliest animation next wants a frame, or undefined when
|
|
2401
|
+
* nothing is running.
|
|
2158
2402
|
*
|
|
2159
|
-
*
|
|
2160
|
-
*
|
|
2161
|
-
*
|
|
2162
|
-
*
|
|
2163
|
-
*
|
|
2403
|
+
* This is the whole answer to "how does an animation keep frames
|
|
2404
|
+
* coming on an idle app". The runtime asks after every frame: an
|
|
2405
|
+
* answer at or before `now` means arm the next frame, a later one
|
|
2406
|
+
* means a timer, and undefined means arm nothing — which is why an
|
|
2407
|
+
* idle app's profile reads `ticks 0.00` for the strong reason (no
|
|
2408
|
+
* frames at all) rather than the weak one (frames that did nothing).
|
|
2164
2409
|
*/
|
|
2165
|
-
|
|
2410
|
+
nextTickAt(now: number): number | undefined;
|
|
2166
2411
|
/**
|
|
2167
|
-
*
|
|
2412
|
+
* Advances every animation whose next sample is due, writing each
|
|
2413
|
+
* one's cell. This is the `ticks` phase.
|
|
2168
2414
|
*
|
|
2169
|
-
*
|
|
2170
|
-
*
|
|
2171
|
-
*
|
|
2415
|
+
* It runs before the dirty set is snapshotted for exactly the reason
|
|
2416
|
+
* `patches` and `environment` do: the writes it makes have to belong
|
|
2417
|
+
* to the frame about to be collected, or a frame would draw the
|
|
2418
|
+
* previous tick's values and every animation would run one frame
|
|
2419
|
+
* behind.
|
|
2172
2420
|
*/
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
getProperty<T>(property: NodeProperty): T | undefined;
|
|
2177
|
-
setProperty<T>(property: NodeProperty, value: T): void;
|
|
2178
|
-
/** Removes a property; whether it was there. */
|
|
2179
|
-
removeProperty(property: NodeProperty): boolean;
|
|
2180
|
-
}
|
|
2181
|
-
//#endregion
|
|
2182
|
-
//#region src/layout/LayoutTypes.d.ts
|
|
2183
|
-
interface Size {
|
|
2184
|
-
width: number;
|
|
2185
|
-
height: number;
|
|
2186
|
-
}
|
|
2187
|
-
interface LayoutBox {
|
|
2188
|
-
x: number;
|
|
2189
|
-
y: number;
|
|
2190
|
-
width: number;
|
|
2191
|
-
height: number;
|
|
2192
|
-
}
|
|
2193
|
-
/**
|
|
2194
|
-
* Options applied to a Constraints instance.
|
|
2195
|
-
*
|
|
2196
|
-
* An explicit width/height makes that axis tight
|
|
2197
|
-
* (min === max), mirroring CSS replaced sizing.
|
|
2198
|
-
*/
|
|
2199
|
-
interface TightenOptions {
|
|
2200
|
-
width?: number;
|
|
2201
|
-
height?: number;
|
|
2202
|
-
minWidth?: number;
|
|
2203
|
-
maxWidth?: number;
|
|
2204
|
-
minHeight?: number;
|
|
2205
|
-
maxHeight?: number;
|
|
2206
|
-
}
|
|
2207
|
-
/**
|
|
2208
|
-
* Immutable bounds handed down the layout tree.
|
|
2209
|
-
*
|
|
2210
|
-
* Unbounded axes use Infinity for max.
|
|
2211
|
-
*/
|
|
2212
|
-
declare class Constraints {
|
|
2213
|
-
readonly minWidth: number;
|
|
2214
|
-
readonly maxWidth: number;
|
|
2215
|
-
readonly minHeight: number;
|
|
2216
|
-
readonly maxHeight: number;
|
|
2217
|
-
constructor(minWidth?: number, maxWidth?: number, minHeight?: number, maxHeight?: number);
|
|
2218
|
-
static unbounded(): Constraints;
|
|
2219
|
-
static tight(width: number, height: number): Constraints;
|
|
2220
|
-
static loose(width: number, height: number): Constraints;
|
|
2221
|
-
hasBoundedWidth(): boolean;
|
|
2222
|
-
hasBoundedHeight(): boolean;
|
|
2223
|
-
}
|
|
2224
|
-
/** What one layout call did; see LayoutEngine.stats. */
|
|
2225
|
-
interface LayoutStats {
|
|
2226
|
-
/** Nodes whose measure ran (memo hits excluded). */
|
|
2227
|
-
measured: number;
|
|
2228
|
-
/** Nodes whose place ran. */
|
|
2229
|
-
placed: number;
|
|
2230
|
-
/** Laid-out subtrees that moved without changing size, and were shifted rather than placed again. */
|
|
2231
|
-
shifted: number;
|
|
2232
|
-
/** Subtrees laid out from a relayout boundary instead of the root. */
|
|
2233
|
-
relayoutRoots: number;
|
|
2234
|
-
/** Whether the pass started from the root. */
|
|
2235
|
-
fullLayout: boolean;
|
|
2236
|
-
/** Every node whose measure ran, in order, when `LayoutEngine.trace` is on. */
|
|
2237
|
-
measuredNodes: UiNode[];
|
|
2238
|
-
}
|
|
2239
|
-
/**
|
|
2240
|
-
* The result of a full layout pass for the layout root.
|
|
2241
|
-
*
|
|
2242
|
-
* Descendant geometry is read from LayoutRecords.
|
|
2243
|
-
*/
|
|
2244
|
-
interface LayoutResult {
|
|
2245
|
-
root: UiNode;
|
|
2246
|
-
box: LayoutBox;
|
|
2247
|
-
contentWidth: number;
|
|
2248
|
-
contentHeight: number;
|
|
2249
|
-
scrollX: number;
|
|
2250
|
-
scrollY: number;
|
|
2251
|
-
clip: LayoutBox;
|
|
2421
|
+
advance(now: number): void;
|
|
2422
|
+
private advanceRunning;
|
|
2423
|
+
private advanceEach;
|
|
2252
2424
|
}
|
|
2253
|
-
declare function clampSize(constraints: Constraints, width: number, height: number): Size;
|
|
2254
|
-
declare function constraintsEqual(a: Constraints, b: Constraints): boolean;
|
|
2255
|
-
/**
|
|
2256
|
-
* Returns new constraints with the options applied on top of
|
|
2257
|
-
* the supplied constraints. Explicit sizes make an axis tight,
|
|
2258
|
-
* min/max values tighten the existing bounds.
|
|
2259
|
-
*/
|
|
2260
|
-
declare function tightenConstraints(constraints: Constraints, options: TightenOptions): Constraints;
|
|
2261
2425
|
//#endregion
|
|
2262
2426
|
//#region src/animation/UiSharedElements.d.ts
|
|
2263
2427
|
/**
|
|
@@ -3238,8 +3402,11 @@ interface ComponentResolver {
|
|
|
3238
3402
|
* Called on every reconcile pass that reaches the slot. Returning
|
|
3239
3403
|
* the same value for an unchanged component is expected; the
|
|
3240
3404
|
* builder reconciles it idempotently.
|
|
3405
|
+
*
|
|
3406
|
+
* `anchor` is the slot's node, already under its parent, so what
|
|
3407
|
+
* the component is placed in can be read while its body runs.
|
|
3241
3408
|
*/
|
|
3242
|
-
resolve(element: ComponentLikeElement, anchorId: string): UiChild;
|
|
3409
|
+
resolve(element: ComponentLikeElement, anchorId: string, anchor?: UiNode): UiChild;
|
|
3243
3410
|
/**
|
|
3244
3411
|
* Tears down the host owning `anchorId`.
|
|
3245
3412
|
*
|
|
@@ -3333,6 +3500,12 @@ type FocusModality = 'pointer' | 'keyboard';
|
|
|
3333
3500
|
* dialog modal for the keyboard. `popScope()` restores focus to
|
|
3334
3501
|
* whatever held it when the scope was pushed. Components reach both
|
|
3335
3502
|
* through `FocusService`, never directly.
|
|
3503
|
+
*
|
|
3504
|
+
* A scope inside a bound (`setFocusBounds`) is modal only inside it. A
|
|
3505
|
+
* dialog open in one of a design tool's frames confines the keyboard in
|
|
3506
|
+
* that frame, when it is there, and leaves the tool around it, and every
|
|
3507
|
+
* other frame, to the person: it takes no focus from outside, and gives
|
|
3508
|
+
* none back when it closes.
|
|
3336
3509
|
*/
|
|
3337
3510
|
declare class UiFocusManager {
|
|
3338
3511
|
private readonly dispatcher;
|
|
@@ -3349,11 +3522,17 @@ declare class UiFocusManager {
|
|
|
3349
3522
|
private readonly listeners;
|
|
3350
3523
|
private readonly scopeListeners;
|
|
3351
3524
|
private readonly scopes;
|
|
3525
|
+
private isBound;
|
|
3352
3526
|
/** The field of each editing group that last had focus, where Tab back into the group lands. */
|
|
3353
3527
|
private readonly groupEntries;
|
|
3354
3528
|
constructor(root: UiNode, dispatcher: UiInputDispatcher);
|
|
3355
3529
|
/** The root used for focus-order traversal. Clears any active scope. */
|
|
3356
3530
|
setRoot(root: UiNode): void;
|
|
3531
|
+
/**
|
|
3532
|
+
* Which nodes bound a scope taken inside them: a trap under one is
|
|
3533
|
+
* modal only inside it. `OverlayScope`'s, set by the framework.
|
|
3534
|
+
*/
|
|
3535
|
+
setFocusBounds(isBound: ((node: UiNode) => boolean) | null): void;
|
|
3357
3536
|
/** The node that currently holds logical focus, or null. */
|
|
3358
3537
|
get focusedNode(): UiNode | null;
|
|
3359
3538
|
hasFocus(): boolean;
|
|
@@ -3421,7 +3600,8 @@ declare class UiFocusManager {
|
|
|
3421
3600
|
/** Moves focus to the previous focusable node, wrapping to the last. */
|
|
3422
3601
|
focusPrevious(): boolean;
|
|
3423
3602
|
/**
|
|
3424
|
-
* Confines focus to `root` until the matching `popScope
|
|
3603
|
+
* Confines focus to `root` until the matching `popScope`; inside a
|
|
3604
|
+
* bound, only for focus inside it (see the class's note).
|
|
3425
3605
|
*
|
|
3426
3606
|
* Focus that is outside the new scope moves to its first focusable,
|
|
3427
3607
|
* so the very next Tab stays inside; a scope with nothing focusable
|
|
@@ -3491,6 +3671,12 @@ declare class UiFocusManager {
|
|
|
3491
3671
|
* stops, which is what lets a dialog body be the keyboard's home of
|
|
3492
3672
|
* last resort without becoming a stop of its own.
|
|
3493
3673
|
*/
|
|
3674
|
+
/**
|
|
3675
|
+
* The tab stops under `within`, or in the active scope, in the order
|
|
3676
|
+
* Tab visits them: what a design tool numbers to show a screen's
|
|
3677
|
+
* keyboard order.
|
|
3678
|
+
*/
|
|
3679
|
+
tabStops(within?: UiNode): UiNode[];
|
|
3494
3680
|
private collectFocusable;
|
|
3495
3681
|
/** Whether an ancestor is hidden or disabled, which takes the node's focus away with it. */
|
|
3496
3682
|
private insideHidden;
|
|
@@ -3498,6 +3684,18 @@ declare class UiFocusManager {
|
|
|
3498
3684
|
private groupOf;
|
|
3499
3685
|
/** Whether the node may hold focus given the active scope, if any. */
|
|
3500
3686
|
private withinScope;
|
|
3687
|
+
/**
|
|
3688
|
+
* The innermost scope that confines a node: a bounded one only inside
|
|
3689
|
+
* its bound, so a node, or no focus at all, outside it answers to the
|
|
3690
|
+
* scope under it.
|
|
3691
|
+
*/
|
|
3692
|
+
private scopeFor;
|
|
3693
|
+
/**
|
|
3694
|
+
* The bound above a scope's root, found once the root is in the tree
|
|
3695
|
+
* (a trap is taken from a `ref`, which may fire before) and kept, so
|
|
3696
|
+
* a scope whose subtree has gone still knows it.
|
|
3697
|
+
*/
|
|
3698
|
+
private boundOf;
|
|
3501
3699
|
/** Whether the node is still connected to the traversal root. */
|
|
3502
3700
|
private isAttached;
|
|
3503
3701
|
private isWithin;
|
|
@@ -3644,6 +3842,19 @@ interface UiModifierHost {
|
|
|
3644
3842
|
* one is painted unsettled and warned about rather than hanging.
|
|
3645
3843
|
*/
|
|
3646
3844
|
onLayout(listener: (box: LayoutBox) => void): void;
|
|
3845
|
+
/**
|
|
3846
|
+
* Called after any frame that changed the node's `flowBox` or its own
|
|
3847
|
+
* scroll offset, with the `flowBox`; not when a scroll or a transform
|
|
3848
|
+
* above it only moves it on screen. Removed on detach.
|
|
3849
|
+
*
|
|
3850
|
+
* The one to use when what the listener reads is the node's own place
|
|
3851
|
+
* in the layout — its size for a breakpoint, its box for a layout
|
|
3852
|
+
* animation, its offset for a scroll position — which a pan of a
|
|
3853
|
+
* design tool's board, or a page's scroll, does not change. Asking
|
|
3854
|
+
* nothing on those frames is most of what it is for. Runs where
|
|
3855
|
+
* `onLayout` runs, with the same freedom to change layout.
|
|
3856
|
+
*/
|
|
3857
|
+
onFlowLayout(listener: (box: LayoutBox) => void): void;
|
|
3647
3858
|
/**
|
|
3648
3859
|
* The value the node inherits for an environment key: what the
|
|
3649
3860
|
* nearest provider above it supplies, else the key's default.
|
|
@@ -3819,6 +4030,8 @@ interface UiModifierLayout {
|
|
|
3819
4030
|
*/
|
|
3820
4031
|
viewport?(): LayoutBox | null;
|
|
3821
4032
|
onLayout(node: UiNode, listener: (box: LayoutBox) => void): () => void;
|
|
4033
|
+
/** See `UiModifierHost.onFlowLayout`. Absent, `onLayout` stands in, which tells a listener more often, never less. */
|
|
4034
|
+
onFlowLayout?(node: UiNode, listener: (box: LayoutBox) => void): () => void;
|
|
3822
4035
|
}
|
|
3823
4036
|
/**
|
|
3824
4037
|
* Where a modifier's focus access comes from.
|
|
@@ -3870,6 +4083,8 @@ declare class UiModifierSet {
|
|
|
3870
4083
|
private decorationsFor;
|
|
3871
4084
|
/** The names of what is attached, in order, for the inspector. */
|
|
3872
4085
|
get names(): string[];
|
|
4086
|
+
/** What is attached, each kind with its current arguments, in order: for a tool reading what a node does. */
|
|
4087
|
+
get modifiers(): readonly UiModifier[];
|
|
3873
4088
|
get size(): number;
|
|
3874
4089
|
/**
|
|
3875
4090
|
* Brings the attached set in line with what the element declares.
|
|
@@ -4628,6 +4843,14 @@ declare const BOX_SHADOW_BLUR_REACH = 1.5;
|
|
|
4628
4843
|
* one's hole shrinks with it. A square corner stays square, as CSS
|
|
4629
4844
|
* keeps it.
|
|
4630
4845
|
*/
|
|
4846
|
+
/**
|
|
4847
|
+
* A box's corner radius as its shadows take it: no more than half its
|
|
4848
|
+
* shorter side, as CSS shrinks radii to fit the box before a shadow is
|
|
4849
|
+
* spread from them. A box of no size with a 16 radius has no corners,
|
|
4850
|
+
* so the hole an outer shadow leaves under it is nothing: a spotlight's
|
|
4851
|
+
* hole shrunk to a point showed a 16-pixel circle where there was none.
|
|
4852
|
+
*/
|
|
4853
|
+
declare function fittedShadowRadius(boxRadius: number, width: number, height: number): number;
|
|
4631
4854
|
declare function boxShadowRadius(boxRadius: number, spreadRadius: number, inset: boolean): number;
|
|
4632
4855
|
/**
|
|
4633
4856
|
* How far past each side of the box a node's outer shadows may paint,
|
|
@@ -5195,6 +5418,16 @@ interface UiGradientStop {
|
|
|
5195
5418
|
* does.
|
|
5196
5419
|
*/
|
|
5197
5420
|
readonly color: UiColorValue;
|
|
5421
|
+
/**
|
|
5422
|
+
* How much of the colour shows, 0 to 1, multiplied into its alpha once
|
|
5423
|
+
* a palette name has been resolved: `{ color: 'background', opacity: 0 }`.
|
|
5424
|
+
*
|
|
5425
|
+
* What a fade to nothing is made of. A canvas blends a gradient's stops
|
|
5426
|
+
* without premultiplying, so a ramp from white to `transparent`, which
|
|
5427
|
+
* is transparent *black*, passes through grey on its way out; a ramp to
|
|
5428
|
+
* the same colour at no opacity stays that colour all the way.
|
|
5429
|
+
*/
|
|
5430
|
+
readonly opacity?: number;
|
|
5198
5431
|
}
|
|
5199
5432
|
interface UiLinearGradient {
|
|
5200
5433
|
readonly kind: 'linear';
|
|
@@ -5422,12 +5655,44 @@ interface PaintSurface {
|
|
|
5422
5655
|
/** Multiplies into the opacity already in force, as a node's does. */
|
|
5423
5656
|
alpha(value: number): void;
|
|
5424
5657
|
/**
|
|
5425
|
-
* Blurs everything drawn after it, by a radius
|
|
5658
|
+
* Blurs everything drawn after it, by a radius (CSS's standard
|
|
5659
|
+
* deviation) in the current coordinates, so a blur under a `scale`
|
|
5660
|
+
* scales with what it blurs. The transform in force at the call is
|
|
5661
|
+
* the one it is measured in.
|
|
5426
5662
|
*
|
|
5427
5663
|
* Scoped by `save` and `restore` like every other style value, so a
|
|
5428
5664
|
* frosted panel is `save`, `blur`, draw, `restore`. Zero clears it.
|
|
5429
5665
|
*/
|
|
5430
5666
|
blur(radius: number): void;
|
|
5667
|
+
/**
|
|
5668
|
+
* Starts a masked layer: what is drawn from here to `layerMask` is
|
|
5669
|
+
* the layer's content, kept apart from what is drawn already and cut
|
|
5670
|
+
* to this rectangle, in the current coordinates.
|
|
5671
|
+
*
|
|
5672
|
+
* Saves the state as `save` does. The content starts with the
|
|
5673
|
+
* transform in force and an empty path, and with every other style
|
|
5674
|
+
* value at its initial one: the alpha, blur and clip in force here
|
|
5675
|
+
* apply to the layer as a whole, when `endMaskedLayer` draws it.
|
|
5676
|
+
*
|
|
5677
|
+
* An SVG `<mask>` and a drop shadow are both drawn this way. A host
|
|
5678
|
+
* that cannot keep a layer apart draws the content unmasked and the
|
|
5679
|
+
* mask not at all, which is a picture that is wrong in one detail
|
|
5680
|
+
* rather than missing.
|
|
5681
|
+
*/
|
|
5682
|
+
beginMaskedLayer(x: number, y: number, width: number, height: number): void;
|
|
5683
|
+
/**
|
|
5684
|
+
* Ends the layer's content and starts its mask: the state is as
|
|
5685
|
+
* `beginMaskedLayer` found it, the path empty, and the mask cut to the
|
|
5686
|
+
* same rectangle. Where the mask is drawn the content shows, by how
|
|
5687
|
+
* much `mode` says; where nothing is, nothing does.
|
|
5688
|
+
*/
|
|
5689
|
+
layerMask(mode?: PaintMaskMode): void;
|
|
5690
|
+
/**
|
|
5691
|
+
* Draws the layer's content, masked, where it began, and restores the
|
|
5692
|
+
* state `beginMaskedLayer` saved. A layer ended without a mask draws
|
|
5693
|
+
* its content as it is.
|
|
5694
|
+
*/
|
|
5695
|
+
endMaskedLayer(): void;
|
|
5431
5696
|
/** Fills the current path. The default rule is `nonzero`. */
|
|
5432
5697
|
fill(rule?: PaintFillRule): void;
|
|
5433
5698
|
stroke(): void;
|
|
@@ -5449,6 +5714,13 @@ type PaintFillRule = 'nonzero' | 'evenodd';
|
|
|
5449
5714
|
type PaintLineCap = 'butt' | 'round' | 'square';
|
|
5450
5715
|
type PaintLineJoin = 'miter' | 'round' | 'bevel';
|
|
5451
5716
|
type PaintTextAlign = 'left' | 'center' | 'right';
|
|
5717
|
+
/**
|
|
5718
|
+
* How a layer's mask says how much of it shows. `luminance`, the
|
|
5719
|
+
* default, is SVG's `<mask>` and CSS's `mask-type: luminance`: the
|
|
5720
|
+
* mask's brightness times its alpha, so white shows the content and
|
|
5721
|
+
* black hides it. `alpha` is the mask's alpha alone, whatever its colour.
|
|
5722
|
+
*/
|
|
5723
|
+
type PaintMaskMode = 'luminance' | 'alpha';
|
|
5452
5724
|
/** The little of a text style a single painted line can carry. */
|
|
5453
5725
|
interface PaintTextStyle {
|
|
5454
5726
|
readonly fontSize?: number;
|
|
@@ -7151,7 +7423,10 @@ declare const UiProperties: {
|
|
|
7151
7423
|
* Side and alignment against the anchor: 'bottom' (default),
|
|
7152
7424
|
* 'bottom-start', 'bottom-end', 'top', 'top-start', 'top-end',
|
|
7153
7425
|
* 'left', 'left-start', 'left-end', 'right', 'right-start',
|
|
7154
|
-
* 'right-end'
|
|
7426
|
+
* 'right-end'; or 'over', which lays the node over the anchor at its
|
|
7427
|
+
* size, grown by `anchorOffset` on every side: a spotlight's hole, a
|
|
7428
|
+
* focus ring drawn above everything, following the anchor as any
|
|
7429
|
+
* anchored node does.
|
|
7155
7430
|
*/
|
|
7156
7431
|
readonly placement: UiPropertyDefinition<UiPlacement | undefined>;
|
|
7157
7432
|
/**
|
|
@@ -7573,6 +7848,8 @@ declare const UiProperties: {
|
|
|
7573
7848
|
*/
|
|
7574
7849
|
readonly textStyle: UiPropertyDefinition<UiTextStyle | UiTypographyRole | undefined>;
|
|
7575
7850
|
readonly contentColor: UiPropertyDefinition<UiColorValue | undefined>;
|
|
7851
|
+
/** Values for keys of the application's own, provided to the subtree; see `UiProvision`. */
|
|
7852
|
+
readonly provide: UiPropertyDefinition<readonly UiProvision<unknown>[] | undefined>;
|
|
7576
7853
|
/**
|
|
7577
7854
|
* Declares this node a size query container: its content size is
|
|
7578
7855
|
* published to the subtree through `UiEnvironmentKeys.containerSize`,
|
|
@@ -7745,7 +8022,7 @@ type InteractionProps = PropsOf<'cursor' | 'pointerEvents' | 'touchEmulation' |
|
|
|
7745
8022
|
*/
|
|
7746
8023
|
type SemanticsProps = PropsOf<'role' | 'label' | 'description' | 'live' | 'states' | 'valueNow' | 'valueMin' | 'valueMax' | 'valueText' | 'posInSet' | 'setSize' | 'level' | 'rowIndex' | 'columnIndex' | 'rowCount' | 'columnCount' | 'activeDescendant' | 'controls' | 'autocomplete' | 'orientation'>;
|
|
7747
8024
|
/** Environment values an element provides to its subtree. */
|
|
7748
|
-
type EnvironmentProps = PropsOf<'theme' | 'pointer' | 'textStyle' | 'contentColor' | 'containerSize' | 'insets'>;
|
|
8025
|
+
type EnvironmentProps = PropsOf<'theme' | 'pointer' | 'textStyle' | 'contentColor' | 'containerSize' | 'insets' | 'provide'>;
|
|
7749
8026
|
/**
|
|
7750
8027
|
* Behaviour attached to an element without wrapping it: hover and
|
|
7751
8028
|
* press state, a focus ring, a tooltip, drag. See `packages/core/src/modifiers`.
|
|
@@ -8430,15 +8707,10 @@ declare class UiGraph {
|
|
|
8430
8707
|
*/
|
|
8431
8708
|
removeNodeProperty(node: UiNode, property: string, dirtyFlags?: DirtyFlags): boolean;
|
|
8432
8709
|
/**
|
|
8433
|
-
* Writes a property
|
|
8434
|
-
*
|
|
8435
|
-
*
|
|
8436
|
-
*
|
|
8437
|
-
* transition check would have each frame start an animation towards
|
|
8438
|
-
* the value it had just produced. Everything below this — the
|
|
8439
|
-
* override cascade, the equality check, the dirty marking — is
|
|
8440
|
-
* unchanged, so an animated value is overridable by a modifier
|
|
8441
|
-
* exactly as a bound one is.
|
|
8710
|
+
* Writes the element's value for a property: onto the node, or into
|
|
8711
|
+
* the cascade under a modifier writing over it. The same as
|
|
8712
|
+
* `updateNodeProperty`, kept by its name for the callers that write
|
|
8713
|
+
* a value of the runtime's own, such as the root's pointer.
|
|
8442
8714
|
*/
|
|
8443
8715
|
updateNodePropertyNow<T>(node: UiNode, property: string, value: T, dirtyFlags?: DirtyFlags): boolean;
|
|
8444
8716
|
/**
|
|
@@ -8448,8 +8720,18 @@ declare class UiGraph {
|
|
|
8448
8720
|
* Removing rather than writing a default is what lets a detaching
|
|
8449
8721
|
* modifier restore inheritance: a node that never declared `color`
|
|
8450
8722
|
* reads it from the environment again, as it did before.
|
|
8723
|
+
*
|
|
8724
|
+
* `snap` draws it at once, past any transition the node declares;
|
|
8725
|
+
* see `UiPropertyOverride.snap`.
|
|
8451
8726
|
*/
|
|
8452
|
-
applyResolvedProperty(node: UiNode, property: NodeProperty, present: boolean, value: unknown, dirtyFlags: DirtyFlags): boolean;
|
|
8727
|
+
applyResolvedProperty(node: UiNode, property: NodeProperty, present: boolean, value: unknown, dirtyFlags: DirtyFlags, snap?: boolean): boolean;
|
|
8728
|
+
/**
|
|
8729
|
+
* Writes what a transition's frame drew, without consulting the
|
|
8730
|
+
* transition again: the frame is already the animation towards the
|
|
8731
|
+
* target, and re-entering it would start an animation towards the
|
|
8732
|
+
* value it had just produced.
|
|
8733
|
+
*/
|
|
8734
|
+
applyAnimatedValue(node: UiNode, property: NodeProperty, value: unknown, dirtyFlags: DirtyFlags): boolean;
|
|
8453
8735
|
/**
|
|
8454
8736
|
* Adds the environment flag to a write of `color` or of a text
|
|
8455
8737
|
* style field, which a node provides to its subtree as well as
|
|
@@ -9761,6 +10043,10 @@ declare const UiEnvironmentKeys: {
|
|
|
9761
10043
|
* with two windows provides one per window.
|
|
9762
10044
|
*/
|
|
9763
10045
|
readonly insets: UiEnvironmentKey<UiInsetSource>;
|
|
10046
|
+
/** The durations, easings and springs a name resolves to under a node; see `UiMotion`. */
|
|
10047
|
+
readonly motion: UiEnvironmentKey<UiMotion>;
|
|
10048
|
+
/** The clock the animations under a node run on; null is real time. See `UiClock`. */
|
|
10049
|
+
readonly clock: UiEnvironmentKey<UiClock | null>;
|
|
9764
10050
|
};
|
|
9765
10051
|
//#endregion
|
|
9766
10052
|
//#region src/environment/UiEnvironmentProvider.d.ts
|
|
@@ -10549,16 +10835,17 @@ declare class NodeTransitions implements UiNodeTransitions {
|
|
|
10549
10835
|
write(property: NodeProperty, value: unknown, flags: DirtyFlags): boolean;
|
|
10550
10836
|
/** Cancels everything, for a node leaving the tree or dropping the prop. */
|
|
10551
10837
|
release(): void;
|
|
10838
|
+
cancel(property: NodeProperty): void;
|
|
10839
|
+
get declared(): ReadonlyMap<NodeProperty, UiTransitionSpec>;
|
|
10552
10840
|
private stopProperty;
|
|
10553
10841
|
/**
|
|
10554
10842
|
* The cell one property animates through, kept for the life of the
|
|
10555
10843
|
* node: the driver keys its running set by cell identity, so a fresh
|
|
10556
10844
|
* adapter per write would leave the previous animation running.
|
|
10557
10845
|
*
|
|
10558
|
-
*
|
|
10559
|
-
*
|
|
10560
|
-
*
|
|
10561
|
-
* bound one.
|
|
10846
|
+
* It writes what is drawn (`applyAnimatedValue`): the target already
|
|
10847
|
+
* is the value the element and any modifier over it settled on, so a
|
|
10848
|
+
* frame of the way there goes onto the node as it is.
|
|
10562
10849
|
*/
|
|
10563
10850
|
private cellFor;
|
|
10564
10851
|
private startAnimation;
|
|
@@ -11058,11 +11345,27 @@ declare class UiWheelController {
|
|
|
11058
11345
|
* wheel of a burst land correctly even though the first could not.
|
|
11059
11346
|
*/
|
|
11060
11347
|
lastWheelTarget: UiNode | null;
|
|
11348
|
+
/** Where the last wheel event was, for the latch; see `latched`. */
|
|
11349
|
+
private lastX;
|
|
11350
|
+
private lastY;
|
|
11061
11351
|
/**
|
|
11062
11352
|
* The container the wheel last scrolled, for a frame's report of where
|
|
11063
11353
|
* scrolling put it. Null until the wheel has scrolled something.
|
|
11064
11354
|
*/
|
|
11065
11355
|
lastScrolled: UiNode | null;
|
|
11356
|
+
/**
|
|
11357
|
+
* The node the last wheel event landed on, while this one belongs to
|
|
11358
|
+
* the same gesture: close behind it, with the pointer where it was.
|
|
11359
|
+
* Null when it does not, and the point is tested afresh.
|
|
11360
|
+
*
|
|
11361
|
+
* A browser does the same, latching a wheel gesture to the element its
|
|
11362
|
+
* first step landed on, and for the reason it matters here: testing the
|
|
11363
|
+
* point asks for bounds that the gesture's own last step may have made
|
|
11364
|
+
* out of date. A pinch over a design tool's board scales every name on
|
|
11365
|
+
* it, and each step of it filled in the bounds of 1,800 names again,
|
|
11366
|
+
* 4 ms, to find what the step before had found.
|
|
11367
|
+
*/
|
|
11368
|
+
private latched;
|
|
11066
11369
|
wheel(x: number, y: number, deltaX: number, deltaY: number, modifiers?: UiKeyModifiers, deltaMode?: UiWheelDeltaMode, wheelDeltaY?: number,
|
|
11067
11370
|
/**
|
|
11068
11371
|
* When the event happened, on this controller's clock. Pacing
|
|
@@ -13543,8 +13846,21 @@ declare class LayoutEngine {
|
|
|
13543
13846
|
* from the first move to the last.
|
|
13544
13847
|
*/
|
|
13545
13848
|
private layoutVersion;
|
|
13546
|
-
/**
|
|
13547
|
-
|
|
13849
|
+
/**
|
|
13850
|
+
* Where the subtree bounds are out of date: everything, after a full
|
|
13851
|
+
* pass; otherwise the nodes whose box or children or transform
|
|
13852
|
+
* changed (`boundsMoved`) and the subtrees moved whole
|
|
13853
|
+
* (`boundsShifted`), which `refreshSubtreeBounds` fills in again with
|
|
13854
|
+
* their ancestors and nothing else.
|
|
13855
|
+
*/
|
|
13856
|
+
private boundsWhole;
|
|
13857
|
+
private readonly boundsMoved;
|
|
13858
|
+
private readonly boundsShifted;
|
|
13859
|
+
/**
|
|
13860
|
+
* How many transforms changed: a transform moves no box, so it leaves
|
|
13861
|
+
* `layoutVersion` alone, and `geometryVersion` adds these to it.
|
|
13862
|
+
*/
|
|
13863
|
+
private transformMoves;
|
|
13548
13864
|
constructor(textMeasurer?: TextMeasurer);
|
|
13549
13865
|
recordFor(node: UiNode): LayoutRecord | undefined;
|
|
13550
13866
|
/**
|
|
@@ -14096,6 +14412,8 @@ declare class LayoutEngine {
|
|
|
14096
14412
|
* into the same visible space before comparing them.
|
|
14097
14413
|
*/
|
|
14098
14414
|
private placeAnchored;
|
|
14415
|
+
/** Lays a node exactly over a box, at its size, whatever size it asks for: `placement: 'over'`. */
|
|
14416
|
+
private placeOver;
|
|
14099
14417
|
/**
|
|
14100
14418
|
* Places a measured node beside a box — an anchor's, or a point's of
|
|
14101
14419
|
* no size — flipping to the opposite side when the named one would
|
|
@@ -14173,6 +14491,8 @@ declare class LayoutEngine {
|
|
|
14173
14491
|
* chain the renderer composes on the way down, walked up; a turned box
|
|
14174
14492
|
* is the box its corners span.
|
|
14175
14493
|
*/
|
|
14494
|
+
/** How many changed nodes are refilled one by one before the whole tree is; see `WHOLE_BOUNDS_REFILL`. */
|
|
14495
|
+
private wholeBoundsRefill;
|
|
14176
14496
|
private projectBox;
|
|
14177
14497
|
/**
|
|
14178
14498
|
* A canvas box brought into the space an absolute child's record is
|
|
@@ -14567,8 +14887,28 @@ interface NotifiedLayout {
|
|
|
14567
14887
|
declare class LayoutNotifier {
|
|
14568
14888
|
private readonly listeners;
|
|
14569
14889
|
private readonly last;
|
|
14890
|
+
/**
|
|
14891
|
+
* Listeners told about the node's place in the layout and its scroll
|
|
14892
|
+
* offset, and not about where it is drawn (`addFlow`).
|
|
14893
|
+
*/
|
|
14894
|
+
private readonly flowListeners;
|
|
14895
|
+
private readonly flowLast;
|
|
14570
14896
|
/** Registers a listener; the returned function removes it. */
|
|
14571
14897
|
add(node: UiNode, listener: (box: LayoutBox) => void): () => void;
|
|
14898
|
+
/**
|
|
14899
|
+
* Registers a listener told when the node's laid-out box or its own
|
|
14900
|
+
* scroll offset changes, and not when a scroll or a transform above it
|
|
14901
|
+
* moves it on screen; the returned function removes it.
|
|
14902
|
+
*
|
|
14903
|
+
* Most listeners are this kind: a size container, a breakpoint, a
|
|
14904
|
+
* layout animation, a scroll position read only the node's own box
|
|
14905
|
+
* and offset. Told of every move on screen, each of them was asked
|
|
14906
|
+
* on every step of a pan over a design tool's board, 2,600 of them,
|
|
14907
|
+
* to find nothing it reads had changed; and each answer was where
|
|
14908
|
+
* the node was drawn, worked out through every ancestor. Its place in
|
|
14909
|
+
* the layout is its record, read at once.
|
|
14910
|
+
*/
|
|
14911
|
+
addFlow(node: UiNode, listener: (box: LayoutBox) => void): () => void;
|
|
14572
14912
|
get size(): number;
|
|
14573
14913
|
/** Whether anything is listening, so a frame can skip the walk. */
|
|
14574
14914
|
isEmpty(): boolean;
|
|
@@ -14576,7 +14916,7 @@ declare class LayoutNotifier {
|
|
|
14576
14916
|
* Calls the listeners of every watched node whose box or scroll
|
|
14577
14917
|
* offset differs from what it was last told about.
|
|
14578
14918
|
*/
|
|
14579
|
-
notify(read: (node: UiNode) => NotifiedLayout): void;
|
|
14919
|
+
notify(read: (node: UiNode) => NotifiedLayout, readFlow?: (node: UiNode) => NotifiedLayout): void;
|
|
14580
14920
|
/** Drops a removed node's listeners, so nothing keeps it alive. */
|
|
14581
14921
|
handleNodeRemoved(node: UiNode): void;
|
|
14582
14922
|
}
|
|
@@ -14901,6 +15241,18 @@ declare function bundle(...parts: readonly (UiModifier | UiModifierBundle)[]): U
|
|
|
14901
15241
|
declare const noModifiers: UiModifierBundle;
|
|
14902
15242
|
//#endregion
|
|
14903
15243
|
//#region src/modifiers/interaction.d.ts
|
|
15244
|
+
/** A pointer or keyboard state a tool draws an element in without the pointer or the keyboard. */
|
|
15245
|
+
type UiShownAs = 'hovered' | 'pressed' | 'focused';
|
|
15246
|
+
/**
|
|
15247
|
+
* Draws what is under a node as though it were hovered, pressed or
|
|
15248
|
+
* focused: every `interactive` modifier there shows its hover or press
|
|
15249
|
+
* look, and every `focusRing` its ring. What a design tool draws a
|
|
15250
|
+
* component's pointer states with, beside its other states, where no
|
|
15251
|
+
* pointer is over it. Read as each modifier attaches, so a node drawn
|
|
15252
|
+
* under it starts so and stays so; the pointer still adds its own.
|
|
15253
|
+
* Pressed is hovered too, as a press under a pointer is.
|
|
15254
|
+
*/
|
|
15255
|
+
declare const ShownAsKey: UiEnvironmentKey<UiShownAs | null>;
|
|
14904
15256
|
/**
|
|
14905
15257
|
* Pointer state, as a property anything can read, and the property
|
|
14906
15258
|
* writes that follow from it.
|
|
@@ -15642,10 +15994,10 @@ interface SvgXmlElement {
|
|
|
15642
15994
|
*
|
|
15643
15995
|
* What a design tool exports is what is read: shapes and paths, groups
|
|
15644
15996
|
* and `<use>`, transforms, solid fills and strokes with their
|
|
15645
|
-
* opacities, linear and radial gradients, clip paths, a
|
|
15646
|
-
*
|
|
15647
|
-
*
|
|
15648
|
-
* look subtly wrong.
|
|
15997
|
+
* opacities, linear and radial gradients, clip paths, masks, a filter
|
|
15998
|
+
* that is one drop shadow, a `<style>` of simple selectors, and nested
|
|
15999
|
+
* `<svg>`. What is not drawn yet is named in `unsupported`, so a file
|
|
16000
|
+
* that leans on it can say so rather than look subtly wrong.
|
|
15649
16001
|
*/
|
|
15650
16002
|
interface SvgDocument {
|
|
15651
16003
|
/** The `<svg>` element. */
|
|
@@ -15655,11 +16007,16 @@ interface SvgDocument {
|
|
|
15655
16007
|
readonly height: number;
|
|
15656
16008
|
/** The region of the drawing's own coordinates that fills that size. */
|
|
15657
16009
|
readonly viewBox: SvgRect;
|
|
15658
|
-
/** Every element with an `id`, for `<use>`, gradients
|
|
16010
|
+
/** Every element with an `id`, for `<use>`, gradients, clip paths, masks and filters. */
|
|
15659
16011
|
readonly ids: ReadonlyMap<string, SvgXmlElement>;
|
|
15660
16012
|
/** The rules of its `<style>` elements, in document order. */
|
|
15661
16013
|
readonly rules: readonly SvgStyleRule[];
|
|
15662
|
-
/**
|
|
16014
|
+
/**
|
|
16015
|
+
* What the file uses that is not drawn: `text`, `image`, `marker` and
|
|
16016
|
+
* so on, once each. `filter` is a filter that is anything but one
|
|
16017
|
+
* `<feDropShadow>`, or a `filter` that names something else; `mask`
|
|
16018
|
+
* is a `mask` that names something other than a `<mask>`.
|
|
16019
|
+
*/
|
|
15663
16020
|
readonly unsupported: readonly string[];
|
|
15664
16021
|
}
|
|
15665
16022
|
interface SvgRect {
|
|
@@ -17974,6 +18331,17 @@ type PaintOp = {
|
|
|
17974
18331
|
} | {
|
|
17975
18332
|
readonly op: 'blur';
|
|
17976
18333
|
readonly radius: number;
|
|
18334
|
+
} | {
|
|
18335
|
+
readonly op: 'beginMaskedLayer';
|
|
18336
|
+
readonly x: number;
|
|
18337
|
+
readonly y: number;
|
|
18338
|
+
readonly width: number;
|
|
18339
|
+
readonly height: number;
|
|
18340
|
+
} | {
|
|
18341
|
+
readonly op: 'layerMask';
|
|
18342
|
+
readonly mode: PaintMaskMode;
|
|
18343
|
+
} | {
|
|
18344
|
+
readonly op: 'endMaskedLayer';
|
|
17977
18345
|
} | {
|
|
17978
18346
|
readonly op: 'fill';
|
|
17979
18347
|
readonly rule: PaintFillRule;
|
|
@@ -18057,6 +18425,9 @@ declare class PaintRecorder implements PaintSurface {
|
|
|
18057
18425
|
lineDash(segments: readonly number[], offset?: number): void;
|
|
18058
18426
|
alpha(value: number): void;
|
|
18059
18427
|
blur(radius: number): void;
|
|
18428
|
+
beginMaskedLayer(x: number, y: number, width: number, height: number): void;
|
|
18429
|
+
layerMask(mode?: PaintMaskMode): void;
|
|
18430
|
+
endMaskedLayer(): void;
|
|
18060
18431
|
fill(rule?: PaintFillRule): void;
|
|
18061
18432
|
stroke(): void;
|
|
18062
18433
|
clip(rule?: PaintFillRule): void;
|
|
@@ -18146,12 +18517,74 @@ interface PaintContext2D {
|
|
|
18146
18517
|
* rather than none.
|
|
18147
18518
|
*/
|
|
18148
18519
|
filter?: string;
|
|
18520
|
+
/**
|
|
18521
|
+
* What a masked layer needs of a context, all optional for the reason
|
|
18522
|
+
* `filter` is: a host or a double without them draws the layer's
|
|
18523
|
+
* content unmasked. The context drawn into reads and sets its whole
|
|
18524
|
+
* transform, to place a layer in device pixels; a layer's own canvas
|
|
18525
|
+
* also composites and reads its pixels back.
|
|
18526
|
+
*/
|
|
18527
|
+
getTransform?(): PaintMatrix;
|
|
18528
|
+
setTransform?(a: number, b: number, c: number, d: number, e: number, f: number): void;
|
|
18529
|
+
globalCompositeOperation?: string;
|
|
18530
|
+
getImageData?(x: number, y: number, width: number, height: number): PaintPixels;
|
|
18531
|
+
putImageData?(pixels: PaintPixels, x: number, y: number): void;
|
|
18149
18532
|
fillStyle: string | PaintGradient;
|
|
18150
18533
|
strokeStyle: string | PaintGradient;
|
|
18151
18534
|
font: string;
|
|
18152
18535
|
textAlign: 'left' | 'center' | 'right';
|
|
18153
18536
|
textBaseline: 'alphabetic';
|
|
18154
18537
|
}
|
|
18538
|
+
/** An affine matrix to device pixels, `a b c d e f`, as `getTransform` reports one. */
|
|
18539
|
+
interface PaintMatrix {
|
|
18540
|
+
readonly a: number;
|
|
18541
|
+
readonly b: number;
|
|
18542
|
+
readonly c: number;
|
|
18543
|
+
readonly d: number;
|
|
18544
|
+
readonly e: number;
|
|
18545
|
+
readonly f: number;
|
|
18546
|
+
}
|
|
18547
|
+
/** A context's pixels, unpremultiplied RGBA, as `getImageData` reads them. */
|
|
18548
|
+
interface PaintPixels {
|
|
18549
|
+
readonly width: number;
|
|
18550
|
+
readonly height: number;
|
|
18551
|
+
readonly data: Uint8ClampedArray;
|
|
18552
|
+
}
|
|
18553
|
+
/**
|
|
18554
|
+
* The canvas a picture is drawn into, and the bitmap it becomes.
|
|
18555
|
+
*
|
|
18556
|
+
* `IconCanvas`'s sibling, and injectable for the same two reasons: the
|
|
18557
|
+
* suite has no `OffscreenCanvas`, and a host that lacks one should
|
|
18558
|
+
* fail by drawing nothing rather than by throwing in a frame.
|
|
18559
|
+
*
|
|
18560
|
+
* `take()` is synchronous, which is the whole reason the default is
|
|
18561
|
+
* `transferToImageBitmap` and not `createImageBitmap`. An asynchronous
|
|
18562
|
+
* raster would put the picture a frame behind its inputs and would
|
|
18563
|
+
* need a way to ask for another frame from inside a renderer, which no
|
|
18564
|
+
* renderer has and none should.
|
|
18565
|
+
*/
|
|
18566
|
+
interface PaintCanvas {
|
|
18567
|
+
context(): PaintContext2D | null;
|
|
18568
|
+
take(): UiImage;
|
|
18569
|
+
}
|
|
18570
|
+
type PaintCanvasFactory = (width: number, height: number) => PaintCanvas | null;
|
|
18571
|
+
/**
|
|
18572
|
+
* Where a target's masked layers come from: a canvas per layer, and the
|
|
18573
|
+
* rectangle of the context drawn into, in its device pixels, that a
|
|
18574
|
+
* layer is cut to. Without one a target draws a layer's content
|
|
18575
|
+
* unmasked.
|
|
18576
|
+
*/
|
|
18577
|
+
interface PaintLayers {
|
|
18578
|
+
readonly create: PaintCanvasFactory;
|
|
18579
|
+
readonly bounds: PaintDeviceRect;
|
|
18580
|
+
}
|
|
18581
|
+
/** A rectangle in device pixels. */
|
|
18582
|
+
interface PaintDeviceRect {
|
|
18583
|
+
readonly x: number;
|
|
18584
|
+
readonly y: number;
|
|
18585
|
+
readonly width: number;
|
|
18586
|
+
readonly height: number;
|
|
18587
|
+
}
|
|
18155
18588
|
/** The part of a canvas gradient a picture uses. */
|
|
18156
18589
|
interface PaintGradient {
|
|
18157
18590
|
addColorStop(offset: number, color: string): void;
|
|
@@ -18180,8 +18613,8 @@ interface PaintResolver {
|
|
|
18180
18613
|
* picture's cache key.
|
|
18181
18614
|
*/
|
|
18182
18615
|
declare class PaintTarget implements PaintSurface {
|
|
18183
|
-
private readonly ctx;
|
|
18184
18616
|
private readonly resolver;
|
|
18617
|
+
private readonly layerSource?;
|
|
18185
18618
|
/**
|
|
18186
18619
|
* The pending blur radius per save level.
|
|
18187
18620
|
*
|
|
@@ -18191,7 +18624,17 @@ declare class PaintTarget implements PaintSurface {
|
|
|
18191
18624
|
*/
|
|
18192
18625
|
private readonly blurStack;
|
|
18193
18626
|
private blurRadius;
|
|
18194
|
-
|
|
18627
|
+
/** The context drawn into now: the one given, or a layer's while its content or mask is drawn. */
|
|
18628
|
+
private ctx;
|
|
18629
|
+
/** The masked layers begun and not yet ended, innermost last. */
|
|
18630
|
+
private readonly layers;
|
|
18631
|
+
/**
|
|
18632
|
+
* How many layers are drawing nothing at the moment: one cut to
|
|
18633
|
+
* nothing, or a mask a host could not keep apart. Fills, strokes,
|
|
18634
|
+
* text and images are dropped while it is above zero.
|
|
18635
|
+
*/
|
|
18636
|
+
private suppressed;
|
|
18637
|
+
constructor(ctx: PaintContext2D, resolver: PaintResolver, layerSource?: PaintLayers | undefined);
|
|
18195
18638
|
save(): void;
|
|
18196
18639
|
restore(): void;
|
|
18197
18640
|
translate(x: number, y: number): void;
|
|
@@ -18223,7 +18666,25 @@ declare class PaintTarget implements PaintSurface {
|
|
|
18223
18666
|
miterLimit(limit: number): void;
|
|
18224
18667
|
lineDash(segments: readonly number[], offset?: number): void;
|
|
18225
18668
|
alpha(value: number): void;
|
|
18669
|
+
/**
|
|
18670
|
+
* A canvas's filter is measured in device pixels whatever the
|
|
18671
|
+
* transform, so the radius is scaled by the transform's here, where
|
|
18672
|
+
* there is one to read.
|
|
18673
|
+
*/
|
|
18226
18674
|
blur(radius: number): void;
|
|
18675
|
+
/**
|
|
18676
|
+
* The content is drawn into a canvas of its own, the size of the
|
|
18677
|
+
* layer's rectangle in device pixels and cut to the part of the
|
|
18678
|
+
* context drawn into that it covers, under the same transform less
|
|
18679
|
+
* the canvas's corner. A fresh canvas per layer, sized once: drawing
|
|
18680
|
+
* into a canvas just blended from makes Chrome copy it first (see
|
|
18681
|
+
* `GroupOpacity.ts`).
|
|
18682
|
+
*/
|
|
18683
|
+
beginMaskedLayer(x: number, y: number, width: number, height: number): void;
|
|
18684
|
+
layerMask(mode?: PaintMaskMode): void;
|
|
18685
|
+
endMaskedLayer(): void;
|
|
18686
|
+
/** A canvas for a layer's content or mask, placed and cut as the layer is; null where none can be had. */
|
|
18687
|
+
private openLayerCanvas;
|
|
18227
18688
|
fill(rule?: PaintFillRule): void;
|
|
18228
18689
|
stroke(): void;
|
|
18229
18690
|
clip(rule?: PaintFillRule): void;
|
|
@@ -18232,24 +18693,6 @@ declare class PaintTarget implements PaintSurface {
|
|
|
18232
18693
|
}
|
|
18233
18694
|
//#endregion
|
|
18234
18695
|
//#region src/rendering/PaintPicture.d.ts
|
|
18235
|
-
/**
|
|
18236
|
-
* The canvas a picture is drawn into, and the bitmap it becomes.
|
|
18237
|
-
*
|
|
18238
|
-
* `IconCanvas`'s sibling, and injectable for the same two reasons: the
|
|
18239
|
-
* suite has no `OffscreenCanvas`, and a host that lacks one should
|
|
18240
|
-
* fail by drawing nothing rather than by throwing in a frame.
|
|
18241
|
-
*
|
|
18242
|
-
* `take()` is synchronous, which is the whole reason the default is
|
|
18243
|
-
* `transferToImageBitmap` and not `createImageBitmap`. An asynchronous
|
|
18244
|
-
* raster would put the picture a frame behind its inputs and would
|
|
18245
|
-
* need a way to ask for another frame from inside a renderer, which no
|
|
18246
|
-
* renderer has and none should.
|
|
18247
|
-
*/
|
|
18248
|
-
interface PaintCanvas {
|
|
18249
|
-
context(): PaintContext2D | null;
|
|
18250
|
-
take(): UiImage;
|
|
18251
|
-
}
|
|
18252
|
-
type PaintCanvasFactory = (width: number, height: number) => PaintCanvas | null;
|
|
18253
18696
|
/** What a painted frame did, for `PaintPicture.budget.spec.ts`. */
|
|
18254
18697
|
interface PaintStats {
|
|
18255
18698
|
/** How many times a painter's `draw` ran. */
|
|
@@ -20422,5 +20865,5 @@ interface UiSemanticsAction {
|
|
|
20422
20865
|
readonly value?: string;
|
|
20423
20866
|
}
|
|
20424
20867
|
//#endregion
|
|
20425
|
-
export { Mp4AudioTrack as $, EditingControllerOptions as $a, ResponsiveProps as $c, darkTheme as $d, UiTextLink as $f, createTween as $g, borderRadiusCorners as $h, parseCrossAxisAlignment as $i, UiPropertyValueOf as $l, slideFrom as $m, BreakpointArgs as $n, HitTester as $o, UiModifierTeardown as $p, pinchable as $r, drawText as $s, registerFontStack as $t, hasVisualState as $u, offsetAtPointIn as A, linear as A_, UiHostFrameClock as Aa, selectableTextOf as Ac, FrLength as Ad, UiBoxShadow as Af, TextWrap as Ag, UiContentDistribution as Ah, noModifiers as Ai, EditableTextProps as Al, UiPointerEvent as Am, UiRenderer as An, UiScrollability as Ao, containerBands as Ap, IconRasterizerOptions as Ar, EDITOR_PROP as As, createTextCache as At, LazyGridOptions as Au, markNow as B, isSubtreeInert as Ba, offsetAtPoint as Bc, isPercentLength as Bd, UiTypography as Bf, UiTransitionValue as Bg, UiPosition as Bh, propertyIsInherited as Bi, PositionProps as Bl, MOTION_REST as Bm, createCanvasSurface as Bn, resetTransitionWarnings as Bo, edgeField as Bp, DefaultImageResolver as Br, EditingPlatform as Bs, isWebGPUAvailable as Bt, VirtualViewport as Bu, hasTextLinks as C, normalizeColor as C_, labelNode as Ca, normalizeVerticalAlign as Cc, UiRadialGradient as Cd, relativeLuminance as Cf, TextLineRun as Cg, decorationRect as Ch, hoverable as Ci, UiGraphBuilder as Cl, UiGestureEvent as Cm, CanvasTextMeasurer as Cn, KeyboardControllerOptions as Co, UiInsets as Cp, ImageSources as Cr, findMatchesIn as Cs, RenderList as Ct, SheetSourceArgs as Cu, setLinkHover as D, UiEasing as D_, UiFrameClock as Da, TextRange as Dc, radialGradient as Dd, defaultShadows as Df, TextRunMeasurer as Dg, UiAlignment as Dh, pressable as Di, ColumnProps as Dl, UiPasteEvent as Dm, LayerCanvasFactory as Dn, ScrollContainerState as Do, UiContainerSize as Dp, IconCanvas as Dr, EnvironmentNotifier as Ds, TEXTURED_STRIDE_FLOATS as Dt, VIRTUAL_SHEET_PROP as Du, linkRunAtPointIn as E, rgba as E_, UiAnimationFrameClock as Ea, TEXT_SELECTION_PROP as Ec, linearGradient as Ed, UiShadows as Ef, TextOverflow as Eg, UI_SUBGRID_AXES as Eh, measureFlow as Ei, ButtonProps as El, UiKeyboardEvent as Em, traceRoundedRect as En, UiPointerController as Eo, observeViewportInsets as Ep, mediaLoadsInFlight as Er, UiEnvironmentKeys as Es, TEXTURED_STRIDE_BYTES as Et, UiVirtualSheetOptions as Eu, UiFrameCallback as F, isNodeFocusable as Fa, RunMeasure as Fc, auto as Fd, boxShadowRadius as Ff, findEnvironmentKey as Fg, UiGridAutoFlow as Fh, findPropertyDefinition as Fi, GridProps as Fl, UiWheelEvent as Fm, OverlayShape as Fn, UiGestureRecognizer as Fo, UiEditingGroup as Fp, SvgResolver as Fr, isMultiline as Fs, GlyphSlot as Ft, VIRTUAL_INDEX_PROP as Fu, VttTrack as G, PlatformEventTarget as Ga, lineEndAt as Gc, UiPropertyDefinition as Gd, typographyEqual as Gf, AnimatedCell as Gg, UiTextOverflowValue as Gh, GridPlacement as Gi, StackProps as Gl, ResolvedMotionState as Gm, resolveString as Gn, writeOverrideProperty as Go, UiModifierSet as Gp, ContextMenuOptions as Gr, CanvasTextStyle as Gs, WebGPURenderer as Gt, MAX_MEASURES_PER_CHILD as Gu, performanceMarksEnabled as H, resolveCursor as Ha, offsetForVerticalMove as Hc, percent as Hd, UiTypographyRole as Hf, normalizeTransition as Hg, UiSubgridAxis as Hh, propertyValuesEqualByName as Hi, Reactive as Hl, MotionState as Hm, resolveNumber as Hn, overrideSources as Ho, UiModifierEnvironment as Hp, ImageResolver as Hr, detectEditingPlatform as Hs, CapturedFrame as Ht, UiVideoSurface as Hu, UiScheduler as I, isNodeHitTestable as Ia, caretRectFor as Ic, fr as Id, boxShadowReach as If, UiNodeType as Ig, UiObjectFit as Ih, getPropertyNames as Ii, IdentityProps as Il, noKeyModifiers as Im, drawOverlayShapes as In, PinchRecognizerOptions as Io, UiGroupEdit as Ip, isSvgSource as Ir, isReadOnly as Is, GlyphUpload as It, VIRTUAL_LEAD_PROP as Iu, ByteSource as J, capturePointer as Ja, nextWordEnd as Jc, TOUCH_TARGET as Jd, UiFontStyle as Jf, UiReducedMotionPolicy as Jg, UiVerticalAlign as Jh, sizeGridTracks as Ji, TypographyProps as Jl, pop as Jm, sameArgs as Jn, SelectionControllerOptions as Jo, UiModifier as Jp, contextMenu as Jr, TextLinePlacement as Js, WebGPUSurface as Jt, UiLayoutProtocol as Ju, cueAt as K, PlatformSurface as Ka, lineStartAt as Kc, defineProperty as Kd, UiFontKerning as Kf, UiAnimation as Kg, UiTextWrapValue as Kh, GridTrack as Ki, TextContentProps as Kl, fade as Km, ThemeTokenTarget as Kn, FindHost as Ko, UiUnknownModifierPropertyError as Kp, ShortcutOptions as Kr, PlacedTextRun as Ks, WebGPURendererOptions as Kt, UiLayoutChild as Ku, UiSchedulerOptions as L, isNodeInert as La, lineIndexAtY as Lc, isAutoLength as Ld, boxShadowValuesEqual as Lf, DirtyFlags as Lg, UiOverflow as Lh, inheritedPropertyFlags as Li, InteractionProps as Ll, wheelDeltaYOf as Lm, labelOrigin as Ln, UiPinchRecognizer as Lo, UiTextPosition as Lp, SvgDocument as Lr, nextCaretToggle as Ls, WebGPUGlyphAtlas as Lt, VIRTUAL_WINDOW_PROP as Lu, paragraphGeometryFrom as M, UiManualFrameClock as Ma, setSelectionRange as Mc, PercentLength as Md, UiShadowName as Mf, UiEnvironment as Mg, UiDirection as Mh, accumulatedOffsetTo as Mi, FlexContainerProps as Ml, UiSelectionChangeEvent as Mm, RenderChanges as Mn, isScrollContainer as Mo, UiTextInput as Mp, iconKey as Mr, editorFor as Ms, textRuns as Mt, LazyListOptions as Mu, selectionRectsIn as N, UiTimerFrameClock as Na, CaretRect as Nc, UiLength as Nd, boxShadow as Nf, UiEnvironmentKey as Ng, UiFlexWrap as Nh, contentOffset as Ni, FlexItemProps as Nl, UiTextChangeEvent as Nm, RenderContext as Nn, GestureInput as No, UiTextInputState as Np, DefaultSvgResolver as Nr, editorOf as Ns, GlyphShaper as Nt, LazySourceArgs as Nu, ParagraphGeometry as O, cubicBezier as O_, UiFrameClockFactory as Oa, clearSelectionRange as Oc, validateGradient as Od, shadowsEqual as Of, TextRunSpan as Og, UiBorderRadiusValue as Oh, UiModifierBundle as Oi, CommonProps as Ol, UiPinchEvent as Om, ScrollLayerStats as On, ScrollSink as Oo, UiContainerSizeSource as Op, IconContext as Or, CARET_BLINK_MS as Os, TextRunDraw as Ot, sheetSource as Ou, wordRangeIn as P, UiTimerFrameClockOptions as Pa, PlacedLine as Pc, UiTrackSize as Pd, boxShadowArraysEqual as Pf, createEnvironmentKey as Pg, UiFontWeight as Ph, closestPropertyName as Pi, GridItemProps as Pl, UiWheelDeltaMode as Pm, LABEL_PADDING_X as Pn, GestureRecognizerOptions as Po, textInputOf as Pp, DefaultSvgResolverOptions as Pr, isEditableNode as Ps, GLYPH_SUBPIXEL_PHASES as Pt, UiVirtualWindow as Pu, rangeSource as Q, touchActionFor as Qa, Responsive as Qc, UiTheme as Qd, UiTextDecoration as Qf, UiTweenOptions as Qg, borderRadius as Qh, parseAlignContent as Qi, UiPropertyName as Ql, slideDown as Qm, publishInset as Qn, HitTestResult as Qo, UiModifierHost as Qp, ZoomState as Qr, createCanvasTextStyle as Qs, fontStackFor as Qt, defaultVisualState as Qu, MARK_PREFIX as R, isNodeSelectable as Ra, lineIndexForOffset as Rc, isFrLength as Rd, boxShadowsEqual as Rf, AnimationDriver as Rg, UiPlacement as Rh, inheritedPropertyNames as Ri, PaintElementProps as Rl, DirtyNodeSet as Rm, CanvasHost as Rn, FocusNotifier as Ro, adjacentField as Rp, SvgRect as Rr, syncEditorValue as Rs, WebGPUTextureCache as Rt, VirtualItemMeasure as Ru, clearLinkHover as S, colorsEqual as S_, formatExplanation as Sa, normalizeTextAlign as Sc, UiLinearGradient as Sd, raiseContrast as Sf, TextLine as Sg, decorationColor as Sh, InteractiveOptions as Si, UiChildrenBinding as Sl, UiFocusEvent as Sm, LayoutInspectorOptions as Sn, shortcutKeyCaps as So, UiInsetSource as Sp, ImageSourceArgs as Sr, FindOptions as Ss, RenderCommand as St, SheetRowRenderer as Su, linkOf as T, rgb8 as T_, UiFrame as Ta, DEFAULT_LINE_HEIGHT_FACTOR as Tc, gradientsEqual as Td, densityFactors as Tf, TextMeasurer as Tg, paintsAfterChildren as Th, measure as Ti, BoxProps as Tl, UiKeyModifiers as Tm, Canvas2DRendererOptions as Tn, PointerControllerOptions as To, noInsets as Tp, imageSource as Tr, provideEnvironment as Ts, ScissorRect as Tt, UiVirtualSheet as Tu, setPerformanceMarks as U, CanvasPlatformSurface as Ua, selectionRects as Uc, repeat as Ud, defaultTypography as Uf, spring as Ug, UiTextAlign as Uh, GridContribution as Ui, RowProps as Ul, MotionStateInput as Um, resolveProperty as Un, resetOverrideWarnings as Uo, UiModifierFocus as Up, AnimateLayoutOptions as Ur, isPrintable as Us, DrawStats as Ut, isVideoSurface as Uu, measureSpan as V, pointerEventsOf as Va, offsetAtX as Vc, minmax as Vd, UiTypographyExtensions as Vf, assertTransitionMap as Vg, UiSelfAlignment as Vh, propertyNarrowers as Vi, PropsOf as Vl, MotionChannel as Vm, resolveBoolean as Vn, clearOverrideProperty as Vo, editingGroupOf as Vp, DefaultImageResolverOptions as Vr, commandForKey as Vs, WebGPUError as Vt, lazySource as Vu, VttCue as W, PlatformAdapterOptions as Wa, graphemeBoundaries as Wc, resolveLength as Wd, isTypographyRole as Wf, tween as Wg, UiTextDirection as Wh, GridItemRequest as Wi, ScrollViewProps as Wl, MotionTiming as Wm, resolvePropertyByName as Wn, writeDeclaredProperty as Wo, UiModifierLayout as Wp, animateLayout as Wr, EditableLayout as Ws, RenderHooks as Wt, videoFrameSize as Wu, RangeSourceOptions as X, pointerDeviceOf as Xa, previousWordStart as Xc, UiThemeTouch as Xd, UiResolvedTextSpan as Xf, UiSpringOptions as Xg, UiBorderRadius as Xh, CrossAxisAlignment as Xi, UiNodeRef as Xl, rotateFrom as Xm, PublishInsetArgs as Xn, UiSelectionController as Xo, defineModifier as Xp, shortcuts as Xr, applyCanvasTextStyle as Xs, bumpFontStack as Xt, UiVisualState as Xu, DEFAULT_BLOCK_SIZE as Y, isImeKey as Ya, previousGraphemeStart as Yc, UiPointer as Yd, UiFontVariant as Yf, UiSpring as Yg, validateSubgrid as Yh, AlignContent as Yi, UiEventProps as Yl, resolveMotionState as Ym, InsetPaddingArgs as Yn, SelectionHost as Yo, UiModifierKind as Yp, shortcut as Yr, TextRunRect as Ys, createWebGPUSurface as Yt, isLayoutProtocol as Yu, bufferSource as Z, prepareInputSurface as Za, wordRangeAt as Zc, withPointer as Zd, UiSpannedText as Zf, UiTween as Zg, UiBorderRadiuses as Zh, MainAxisAlignment as Zi, UiProperties as Zl, scaleFrom as Zm, insetPadding as Zn, HitTestLayoutReader as Zo, isUiModifier as Zp, PinchableOptions as Zr, buildFontString as Zs, clearFontStacks as Zt, UiVisualStateSet as Zu, buildSemanticsTree as _, UiBasicColors as __, RelayoutExplanation as _a, VerticalAlign as _c, ResolvedGradient as _d, withThemeExtension as _f, FixedMetricsOptions as _g, UiPropertyOverrides as _h, borderShapes as _i, BindingId as _l, UiListenerErrorReporter as _m, drawSvg as _n, UiShortcutRegistry as _o, scaleSpacing as _p, MotionArgs as _r, TEXT_MATCHES_PROP as _s, INSTANCE_STRIDE_FLOATS as _t, EditableTextModel as _u, diffSemantics as a, defaultMotion as a_, proportionalFontMetrics as aa, textRunDecorations as ac, PaintLineJoin as ad, UiUnits as af, UiShapeExtensions as ag, LayoutResult as ah, dropTarget as ai, Box as al, UiChild as am, PaintContext2D as an, EXTERNAL_FILES as ao, editableSpansOf as ap, scrollPosition as ar, SCROLLBAR_THICKNESS as as, Mp3Frame as at, UiOrientation as au, semanticsMemory as b, colorToRgba as b_, describeOverrides as ba, createPaintState as bc, UiGradientOffset as bd, contrastRatio as bf, ParagraphTextMeasurer as bg, DecorationShape as bh, focusRing as bi, UiEventBinding as bl, UiCompositionEvent as bm, InspectorOverlay as bn, formatShortcut as bo, UiInsetEdge as bp, sharedElement as br, setMatchRanges as bs, PrimitiveCommand as bt, SheetHeaderRenderer as bu, SemanticsMemory as c, interpolateNumber as c_, SCROLLBAR_FADE_MS as ca, DEFAULT_FONT_FAMILY as cc, PaintTextStyle as cd, unitsEqual as cf, defaultShapes as cg, TightenOptions as ch, DraggableOptions as ci, EditableText as cl, isComponentLikeElement as cm, PaintTarget as cn, UiDragState as co, resolvedSpansOf as cp, VideoState as cr, ScrollbarThumb as cs, readMp3Header as ct, UiSemanticStates as cu, SemanticsRewalk as d, UiTransform as d_, AxisExplanation as da, DEFAULT_TEXT_COLOR as dc, inputsEqual as dd, UiThemeExtensions as df, UiColors as dg, tightenConstraints as dh, clickOutside as di, Row as dl, isUiElement as dm, PaintOp as dn, UiDroppedFile as do, spansDifferOnlyInPaint as dp, DefaultVideoResolver as dr, scrollRange as ds, Affine as dt, normalizeStates as du, UiDurationToken as e_, parseMainAxisAlignment as ea, fillTextRects as ec, visualState as ed, lightTheme as ef, borderRadiusEqual as eg, slideUp as eh, AutoScrollOptions as ei, LazyColumn as el, FocusOptions as em, PaintCanvas as en, EditingHost as eo, UiTextMetrics as ep, SizeContainerArgs as er, UiHitTester as es, Mp4Sample as et, UiPropertyValues as eu, SemanticsSpan as f, UiTransforms as f_, CustomLayoutExplanation as fa, ObjectFit as fc, paintValuesEqual as fd, defineThemeExtension as ff, colorsEqualPalette as fg, NodeId as fh, autoFocus as fi, ScrollView as fl, UiPropValue as fm, PaintRecorder as fn, UiFileDropMessage as fo, textContentOf as fp, DefaultVideoResolverOptions as fr, scrollbarThumb as fs, CLIP_STRIDE_BYTES as ft, statesEqual as fu, buildSemanticsSubtree as g, transformsEqual as g_, OverrideSources as ga, TextAlign as gc, MAX_GRADIENT_STOPS as gd, themeExtensionsEqual as gf, CharacterCountTextMeasurer as gg, UiPropertyOverride as gh, FocusRingOptions as gi, UiDefinition as gl, UiInputDispatcher as gm, SvgFit as gn, UiShortcutBinding as go, defaultSpacing as gp, canDecodeVideo as gr, SubtreeBounds as gs, INSTANCE_STRIDE_BYTES as gt, EditUnit as gu, UiSemanticsRecord as h, transformIsIdentity as h_, LayoutStateExplanation as ha, PaintTextSpan as hc, GradientPaint as hd, themeExtension as hf, LayoutRecord as hg, UiNodeTransitions as hh, Decorations as hi, createElement as hl, UiEventListenerOptions as hm, SvgDrawOptions as hn, UiShortcut as ho, UiSpacing as hp, VideoResolver as hr, scrollsFromRight as hs, GlyphCommand as ht, CompositionRange as hu, UiSemanticsPatch as i, UiSpringToken as i_, layoutParagraph as ia, textRunBackgrounds as ic, PaintLineCap as id, UiLengths as if, uniformBorderRadius as ig, LayoutBox as ih, dragSource as ii, LazyRow as il, ComponentLikeElement as im, paintPictures as in, UiTouchScroller as io, defaultTextStyle as ip, ScrollPositionArgs as ir, SCROLLBAR_MIN_THUMB as is, Mp3Format as it, UiLiveRegion as iu, paragraphGeometry as j, steps as j_, UiHostFrameClockOptions as ja, selectionRangeOf as jc, MinMaxTrack as jd, UiBoxShadows as jf, spannedRunsFor as jg, UiCursor as jh, Transform as ji, EnvironmentProps as jl, UiPointerKind as jm, LayoutReader as jn, UiWheelController as jo, unknownContainerSize as jp, IconSpec as jr, caretVisibleAt as js, glyphCount as jt, LazyItemRenderer as ju, hasDrawnText as k, easings as k_, UiFrameTime as ka, selectableTextNodes as kc, AutoLength as kd, BOX_SHADOW_BLUR_REACH as kf, TextRunStyle as kg, UiColorValue as kh, bundle as ki, ContainerProps as kl, UiPointerDevice as km, RendererBackend as kn, UiScrollBehavior as ko, bandOf as kp, IconRasterizer as kr, CARET_WIDTH as ks, buildRenderList as kt, LazyAxis as ku, SemanticsPlacement as l, interpolateTransform as l_, SCROLLBAR_LINGER_MS as la, DEFAULT_FONT_SIZE as lc, UiPaint as ld, UiThemeExtension as lf, isShapeName as lg, clampSize as lh, draggable as li, Grid as ll, isObservable$1 as lm, tracePathData as ln, UiDropEffect as lo, spanAtOffset as lp, VideoTransport as lr, scrollBounds as ls, splitMp3Frames as lt, isUiRole as lu, UiSemanticsMap as m, transform as m_, LayoutExplanation as ma, PaintState as mc, UiImage as md, noThemeExtensions as mf, lightColors as mg, UiNode as mh, BordersOptions as mi, Text as ml, UiEventListener as mm, replayPaint as mn, ShortcutRegistryOptions as mo, textStylesEqual as mp, VideoPlayback as mr, scrollbarZoneAt as ms, CommandKind as mt, validateStates as mu, UiSemanticsBox as n, UiMotion as n_, parseFlexDirection as na, runCanvasStyleInto as nc, PaintBox as nd, withContrast as nf, borderRadiusValuesEqual as ng, UiSharedElements as nh, DropTargetOptions as ni, LazyGridProps as nl, UiFocusManager as nm, PaintPictureCache as nn, UiEditingController as no, UiTextSpan as np, sizeContainer as nr, SCROLLBAR_HOVER_ZONE as ns, demuxMp4Audio as nt, UI_SEMANTIC_STATES as nu, dropIndexShifts as o, UiInterpolator as o_, LayoutNotifier as oa, Canvas2DContext as oc, PaintSurface as od, defaultUnits as of, UiShapeName as og, LayoutStats as oh, reorderable as oi, Button as ol, UiElement as om, PaintGradient as on, UiDragPayload as oo, flattenTextSpans as op, VideoClock as or, ScrollBounds as os, Mp3Frames as ot, UiRole as ou, TEXT_RUN_ID_SEPARATOR as p, parseTransform as p_, Edges as pa, PaintBoxShadow as pc, pathValuesEqual as pd, hasThemeExtension as pf, darkColors as pg, NodeProperty as ph, BorderEdge as pi, Stack as pl, UiProps as pm, PaintRecording as pn, dragSessionFor as po, textSpansEqual as pp, RangeResponse as pr, scrollbarThumbs as ps, CLIP_STRIDE_FLOATS as pt, validateRole as pu, parseWebVtt as q, UiPlatformAdapter as qa, nextGraphemeEnd as qc, propertyValuesEqual as qd, UiFontStretch as qf, UiAnimationOptions as qg, UiThemeColorName as qh, placeGridItems as qi, TextProps as ql, isMotionRest as qm, themeTokens as qn, UiFindController as qo, assertModifierList as qp, ShortcutsOptions as qr, SpanPaint as qs, WebGPUCanvasHost as qt, UiLayoutContext as qu, UiSemanticsUpdate as r, UiSpringSpec as r_, ELLIPSIS as ra, runFontString as rc, PaintFillRule as rd, withDensity as rf, normalizeBorderRadius as rg, Constraints as rh, ReorderableOptions as ri, LazyListProps as rl, ComponentResolver as rm, PaintStats as rn, TouchScrollerOptions as ro, UiTextStyle as rp, ScrollOffset as rr, SCROLLBAR_INSET as rs, demuxMp4Video as rt, UiAutocomplete as ru, recordsEqual as s, interpolateColor as s_, LayoutEngine as sa, Canvas2DGradient as sc, PaintTextAlign as sd, lengths as sf, UiShapes as sg, Size as sh, DragOffset as si, Column as sl, UiSourceLocation as sm, PaintResolver as sn, UiDragSession as so, hiddenRangesOf as sp, VideoSourceArgs as sr, ScrollbarAxis as ss, Mp3Header as st, UiSemanticState as su, UiSemanticsAction as t, UiEasingToken as t_, FlexDirection as ta, layoutTextLines as tc, visualStatesEqual as td, themesEqual as tf, borderRadiusIsZero as tg, SharedClaim as th, DragSourceOptions as ti, LazyGrid as tl, FocusSource as tm, PaintCanvasFactory as tn, EditingState as to, UiTextRange as tp, breakpoint as tr, UiPoint as ts, Mp4VideoTrack as tt, UI_ROLES as tu, SemanticsReuse as u, interpolatorFor as u_, ScrollAdjustment as ua, DEFAULT_FONT_WEIGHT as uc, UiPath as ud, UiThemeExtensionOptions as uf, shapesEqual as ug, constraintsEqual as uh, ClickOutsideOptions as ui, Paint as ul, isUiChild as um, EMPTY_RECORDING as un, UiDropZone as uo, spannedTextOf as up, videoSource as ur, scrollLeaderOf as us, WebGPUGlyphPages as ut, isUiSemanticState as uu, rewalkSemantics as v, UiColor as v_, SizeDecision as va, colorToCss as vc, ResolvedGradientStop as vd, HighContrastOptions as vf, FontMetrics as vg, DecorationFill as vh, borders as vi, UiBinding as vl, MOUSE_POINTER as vm, svgPaint as vn, UiShortcutStep as vo, spacingEqual as vp, SharedElementArgs as vr, clearMatchRanges as vs, ImageCommand as vt, LazySheet as vu, linkHoverOf as w, parseColor as w_, withOverrideSource as wa, resolvePaintState as wc, gradientPaint as wd, UiDensity as wf, TextMeasureRequest as wg, hasDecorationPhase as wh, interactive as wi, BoxModelProps as wl, UiInputEvent as wm, Canvas2DRenderer as wn, UiKeyboardController as wo, insetsEqual as wp, iconSource as wr, UiEnvironmentProvider as ws, RenderTextCache as wt, SheetViewport as wu, textRunOfRecordId as x, colorValuesEqual as x_, formatConstraints as xa, isPaintVisible as xc, UiGradientStop as xd, highContrastColors as xf, SpannedRuns as xg, DecorationStroke as xh, BUTTON_INTERACTION as xi, ChildrenBindingId as xl, UiEventType as xm, LayoutInspector as xn, parseShortcut as xo, UiInsetRegistry as xp, IconSourceArgs as xr, FindMatch as xs, PrimitiveKind as xt, SheetRange as xu, semanticsInertAbove as y, colorToHex as y_, describeLength as ya, computeObjectFitRect as yc, UiGradient as yd, UiContrast as yf, ParagraphLayout as yg, DecorationRect as yh, decorated as yi, UiGraph as yl, UiBeforeInputEvent as ym, INSPECTOR_HEAT_MS as yn, describeShortcut as yo, spacingSteps as yp, motion as yr, matchRangesOf as ys, NO_CLIP_INDEX as yt, LazySheetProps as yu, markInstant as z, isNodeTabStop as za, lineLimit as zc, isMinMaxTrack as zd, shadowsOf as zf, UiTransitionSpec as zg, UiPointerEvents as zh, propertyEffects as zi, PaintProps as zl, MOTION_CHANNELS as zm, CanvasSurface as zn, NodeTransitions as zo, comparePositions as zp, parseSvg as zr, EditCommand as zs, initializeWebGPU as zt, VirtualUpdate as zu };
|
|
20426
|
-
//# sourceMappingURL=index-
|
|
20868
|
+
export { Mp4AudioTrack as $, steps as $_, UiPlatformAdapter as $a, nextGraphemeEnd as $c, defineProperty as $d, typographyEqual as $f, UiTransitionValue as $g, UiBorderRadius as $h, placeGridItems as $i, TextProps as $l, ResolvedMotionState as $m, InsetPaddingArgs as $n, UiFindController as $o, UiModifierSet as $p, shortcut as $r, SpanPaint as $s, registerFontStack as $t, UiLayoutContext as $u, offsetAtPointIn as A, interpolateTransform as A_, withOverrideSource as Aa, resolvePaintState as Ac, UiRadialGradient as Ad, relativeLuminance as Af, TextRunMeasurer as Ag, UiAlignment as Ah, interactive as Ai, BoxModelProps as Al, UiFocusEvent as Am, traceRoundedRect as An, UiKeyboardController as Ao, UiInsetSource as Ap, mediaLoadsInFlight as Ar, UiEnvironmentProvider as As, createTextCache as At, SheetViewport as Au, markNow as B, colorToHex as B_, UiTimerFrameClockOptions as Ba, PlacedLine as Bc, UiLength as Bd, boxShadow as Bf, TightenOptions as Bg, UiOverflow as Bh, closestPropertyName as Bi, GridItemProps as Bl, UiSelectionChangeEvent as Bm, drawOverlayShapes as Bn, GestureRecognizerOptions as Bo, UiTextInput as Bp, isSvgSource as Br, isEditableNode as Bs, isWebGPUAvailable as Bt, UiVirtualWindow as Bu, hasTextLinks as C, defineMotion as C_, RelayoutExplanation as Ca, VerticalAlign as Cc, MAX_GRADIENT_STOPS as Cd, themeExtensionsEqual as Cf, ParagraphTextMeasurer as Cg, DecorationShape as Ch, decorated as Ci, BindingId as Cl, UiEventListenerOptions as Cm, INSPECTOR_HEAT_MS as Cn, UiShortcutRegistry as Co, UiSpacing as Cp, motion as Cr, TEXT_MATCHES_PROP as Cs, RenderList as Ct, EditableTextModel as Cu, setLinkHover as D, UiInterpolator as D_, formatConstraints as Da, isPaintVisible as Dc, UiGradientOffset as Dd, contrastRatio as Df, TextMeasureRequest as Dg, hasDecorationPhase as Dh, ShownAsKey as Di, ChildrenBindingId as Dl, UiBeforeInputEvent as Dm, CanvasTextMeasurer as Dn, parseShortcut as Do, spacingSteps as Dp, ImageSources as Dr, FindMatch as Ds, TEXTURED_STRIDE_FLOATS as Dt, SheetRange as Du, linkRunAtPointIn as E, springIn as E_, describeOverrides as Ea, createPaintState as Ec, UiGradient as Ed, UiContrast as Ef, TextLineRun as Eg, decorationRect as Eh, InteractiveOptions as Ei, UiEventBinding as El, MOUSE_POINTER as Em, LayoutInspectorOptions as En, formatShortcut as Eo, spacingEqual as Ep, ImageSourceArgs as Er, setMatchRanges as Es, TEXTURED_STRIDE_BYTES as Et, SheetHeaderRenderer as Eu, UiFrameCallback as F, transform as F_, UiFrameTime as Fa, selectableTextNodes as Fc, validateGradient as Fd, shadowsEqual as Ff, Constraints as Fg, UiDirection as Fh, bundle as Fi, ContainerProps as Fl, UiPasteEvent as Fm, LayoutReader as Fn, UiScrollBehavior as Fo, UiContainerSize as Fp, IconSpec as Fr, CARET_WIDTH as Fs, GlyphSlot as Ft, LazyAxis as Fu, VttTrack as G, parseColor as G_, isNodeTabStop as Ga, lineLimit as Gc, isFrLength as Gd, boxShadowsEqual as Gf, UiEnvironmentKey as Gg, UiSubgridAxis as Gh, propertyEffects as Gi, PaintProps as Gl, wheelDeltaYOf as Gm, resolveBoolean as Gn, NodeTransitions as Go, UiTextPosition as Gp, DefaultImageResolverOptions as Gr, EditCommand as Gs, WebGPURenderer as Gt, VirtualUpdate as Gu, performanceMarksEnabled as H, colorValuesEqual as H_, isNodeHitTestable as Ha, caretRectFor as Hc, auto as Hd, boxShadowRadius as Hf, constraintsEqual as Hg, UiPointerEvents as Hh, getPropertyNames as Hi, IdentityProps as Hl, UiWheelDeltaMode as Hm, CanvasHost as Hn, PinchRecognizerOptions as Ho, textInputOf as Hp, SvgRect as Hr, isReadOnly as Hs, CapturedFrame as Ht, VIRTUAL_LEAD_PROP as Hu, UiScheduler as I, transformIsIdentity as I_, UiHostFrameClock as Ia, selectableTextOf as Ic, AutoLength as Id, BOX_SHADOW_BLUR_REACH as If, LayoutBox as Ig, UiFlexWrap as Ih, noModifiers as Ii, EditableTextProps as Il, UiPinchEvent as Im, RenderChanges as In, UiScrollability as Io, UiContainerSizeSource as Ip, iconKey as Ir, EDITOR_PROP as Is, GlyphUpload as It, LazyGridOptions as Iu, ByteSource as J, UiEasing as J_, resolveCursor as Ja, offsetForVerticalMove as Jc, minmax as Jd, UiTypography as Jf, findEnvironmentKey as Jg, UiTextOverflowValue as Jh, propertyValuesEqualByName as Ji, Reactive as Jl, MOTION_REST as Jm, resolvePropertyByName as Jn, overrideSources as Jo, edgeField as Jp, animateLayout as Jr, detectEditingPlatform as Js, WebGPUSurface as Jt, UiVideoSurface as Ju, cueAt as K, rgb8 as K_, isSubtreeInert as Ka, offsetAtPoint as Kc, isMinMaxTrack as Kd, fittedShadowRadius as Kf, UiProvision as Kg, UiTextAlign as Kh, propertyIsInherited as Ki, PositionProps as Kl, DirtyNodeSet as Km, resolveNumber as Kn, resetTransitionWarnings as Ko, adjacentField as Kp, ImageResolver as Kr, EditingPlatform as Ks, WebGPURendererOptions as Kt, VirtualViewport as Ku, UiSchedulerOptions as L, transformsEqual as L_, UiHostFrameClockOptions as La, selectionRangeOf as Lc, FrLength as Ld, UiBoxShadow as Lf, LayoutResult as Lg, UiFontWeight as Lh, Transform as Li, EnvironmentProps as Ll, UiPointerDevice as Lm, RenderContext as Ln, UiWheelController as Lo, bandOf as Lp, DefaultSvgResolver as Lr, caretVisibleAt as Ls, WebGPUGlyphAtlas as Lt, LazyItemRenderer as Lu, paragraphGeometryFrom as M, UiTransform as M_, UiAnimationFrameClock as Ma, TEXT_SELECTION_PROP as Mc, gradientsEqual as Md, densityFactors as Mf, TextRunStyle as Mg, UiColorValue as Mh, measureFlow as Mi, ButtonProps as Ml, UiInputEvent as Mm, ScrollLayerStats as Mn, UiPointerController as Mo, insetsEqual as Mp, IconContext as Mr, UiEnvironmentKeys as Ms, textRuns as Mt, UiVirtualSheetOptions as Mu, selectionRectsIn as N, UiTransforms as N_, UiFrameClock as Na, TextRange as Nc, linearGradient as Nd, UiShadows as Nf, TextWrap as Ng, UiContentDistribution as Nh, pressable as Ni, ColumnProps as Nl, UiKeyModifiers as Nm, RendererBackend as Nn, ScrollContainerState as No, noInsets as Np, IconRasterizer as Nr, EnvironmentNotifier as Ns, GlyphShaper as Nt, VIRTUAL_SHEET_PROP as Nu, ParagraphGeometry as O, interpolateColor as O_, formatExplanation as Oa, normalizeTextAlign as Oc, UiGradientStop as Od, highContrastColors as Of, TextMeasurer as Og, paintsAfterChildren as Oh, UiShownAs as Oi, UiChildrenBinding as Ol, UiCompositionEvent as Om, Canvas2DRenderer as On, shortcutKeyCaps as Oo, UiInsetEdge as Op, iconSource as Or, FindOptions as Os, TextRunDraw as Ot, SheetRowRenderer as Ou, wordRangeIn as P, parseTransform as P_, UiFrameClockFactory as Pa, clearSelectionRange as Pc, radialGradient as Pd, defaultShadows as Pf, spannedRunsFor as Pg, UiCursor as Ph, UiModifierBundle as Pi, CommonProps as Pl, UiKeyboardEvent as Pm, UiRenderer as Pn, ScrollSink as Po, observeViewportInsets as Pp, IconRasterizerOptions as Pr, CARET_BLINK_MS as Ps, GLYPH_SUBPIXEL_PHASES as Pt, sheetSource as Pu, rangeSource as Q, linear as Q_, PlatformSurface as Qa, lineStartAt as Qc, UiPropertyDefinition as Qd, isTypographyRole as Qf, UiTransitionSpec as Qg, validateSubgrid as Qh, GridTrack as Qi, TextContentProps as Ql, MotionTiming as Qm, sameArgs as Qn, FindHost as Qo, UiModifierLayout as Qp, contextMenu as Qr, PlacedTextRun as Qs, fontStackFor as Qt, UiLayoutChild as Qu, MARK_PREFIX as R, UiBasicColors as R_, UiManualFrameClock as Ra, setSelectionRange as Rc, MinMaxTrack as Rd, UiBoxShadows as Rf, LayoutStats as Rg, UiGridAutoFlow as Rh, accumulatedOffsetTo as Ri, FlexContainerProps as Rl, UiPointerEvent as Rm, LABEL_PADDING_X as Rn, isScrollContainer as Ro, containerBands as Rp, DefaultSvgResolverOptions as Rr, editorFor as Rs, WebGPUTextureCache as Rt, LazyListOptions as Ru, clearLinkHover as S, defaultMotion as S_, OverrideSources as Sa, TextAlign as Sc, GradientPaint as Sd, themeExtension as Sf, ParagraphLayout as Sg, DecorationRect as Sh, borders as Si, UiDefinition as Sl, UiEventListener as Sm, svgPaint as Sn, UiShortcutBinding as So, textStylesEqual as Sp, SharedElementArgs as Sr, SubtreeBounds as Ss, RenderCommand as St, EditUnit as Su, linkOf as T, easingIn as T_, describeLength as Ta, computeObjectFitRect as Tc, ResolvedGradientStop as Td, HighContrastOptions as Tf, TextLine as Tg, decorationColor as Th, BUTTON_INTERACTION as Ti, UiGraph as Tl, UiListenerErrorReporter as Tm, LayoutInspector as Tn, describeShortcut as To, scaleSpacing as Tp, IconSourceArgs as Tr, matchRangesOf as Ts, ScissorRect as Tt, LazySheetProps as Tu, setPerformanceMarks as U, colorsEqual as U_, isNodeInert as Ua, lineIndexAtY as Uc, fr as Ud, boxShadowReach as Uf, tightenConstraints as Ug, UiPosition as Uh, inheritedPropertyFlags as Ui, InteractionProps as Ul, UiWheelEvent as Um, CanvasSurface as Un, UiPinchRecognizer as Uo, UiEditingGroup as Up, parseSvg as Ur, nextCaretToggle as Us, DrawStats as Ut, VIRTUAL_WINDOW_PROP as Uu, measureSpan as V, colorToRgba as V_, isNodeFocusable as Va, RunMeasure as Vc, UiTrackSize as Vd, boxShadowArraysEqual as Vf, clampSize as Vg, UiPlacement as Vh, findPropertyDefinition as Vi, GridProps as Vl, UiTextChangeEvent as Vm, labelOrigin as Vn, UiGestureRecognizer as Vo, UiTextInputState as Vp, SvgDocument as Vr, isMultiline as Vs, WebGPUError as Vt, VIRTUAL_INDEX_PROP as Vu, VttCue as W, normalizeColor as W_, isNodeSelectable as Wa, lineIndexForOffset as Wc, isAutoLength as Wd, boxShadowValuesEqual as Wf, UiEnvironment as Wg, UiSelfAlignment as Wh, inheritedPropertyNames as Wi, PaintElementProps as Wl, noKeyModifiers as Wm, createCanvasSurface as Wn, FocusNotifier as Wo, UiGroupEdit as Wp, DefaultImageResolver as Wr, syncEditorValue as Ws, RenderHooks as Wt, VirtualItemMeasure as Wu, RangeSourceOptions as X, easingCss as X_, PlatformAdapterOptions as Xa, graphemeBoundaries as Xc, repeat as Xd, UiTypographyRole as Xf, UiNodeType as Xg, UiThemeColorName as Xh, GridItemRequest as Xi, ScrollViewProps as Xl, MotionState as Xm, ThemeTokenTarget as Xn, writeDeclaredProperty as Xo, UiModifierEnvironment as Xp, ShortcutOptions as Xr, EditableLayout as Xs, bumpFontStack as Xt, videoFrameSize as Xu, DEFAULT_BLOCK_SIZE as Y, cubicBezier as Y_, CanvasPlatformSurface as Ya, selectionRects as Yc, percent as Yd, UiTypographyExtensions as Yf, provided as Yg, UiTextWrapValue as Yh, GridContribution as Yi, RowProps as Yl, MotionChannel as Ym, resolveString as Yn, resetOverrideWarnings as Yo, editingGroupOf as Yp, ContextMenuOptions as Yr, isPrintable as Ys, createWebGPUSurface as Yt, isVideoSurface as Yu, bufferSource as Z, easings as Z_, PlatformEventTarget as Za, lineEndAt as Zc, resolveLength as Zd, defaultTypography as Zf, DirtyFlags as Zg, UiVerticalAlign as Zh, GridPlacement as Zi, StackProps as Zl, MotionStateInput as Zm, themeTokens as Zn, writeOverrideProperty as Zo, UiModifierFocus as Zp, ShortcutsOptions as Zr, CanvasTextStyle as Zs, clearFontStacks as Zt, MAX_MEASURES_PER_CHILD as Zu, buildSemanticsTree as _, UiMotion as __, AxisExplanation as _a, DEFAULT_TEXT_COLOR as _c, UiPath as _d, UiThemeExtensionOptions as _f, lightColors as _g, UiNode as _h, BorderEdge as _i, Row as _l, isObservable$1 as _m, PaintRecording as _n, UiDroppedFile as _o, spanAtOffset as _p, RangeResponse as _r, scrollRange as _s, INSTANCE_STRIDE_FLOATS as _t, normalizeStates as _u, diffSemantics as a, UiAnimation as a_, parseCrossAxisAlignment as aa, drawText as ac, hasVisualState as ad, UiTheme as af, borderRadiusValuesEqual as ag, scaleFrom as ah, DragSourceOptions as ai, ResponsiveProps as al, isUiModifier as am, PaintContext2D as an, EditingControllerOptions as ao, UiSpannedText as ap, breakpoint as ar, HitTester as as, Mp3Frame as at, UiPropertyValueOf as au, semanticsMemory as b, UiSpringSpec as b_, LayoutExplanation as ba, PaintState as bc, pathValuesEqual as bd, hasThemeExtension as bf, FixedMetricsOptions as bg, UiPropertyOverrides as bh, FocusRingOptions as bi, Text as bl, UiPropValue as bm, SvgFit as bn, ShortcutRegistryOptions as bo, textContentOf as bp, canDecodeVideo as br, scrollbarZoneAt as bs, PrimitiveCommand as bt, validateStates as bu, SemanticsMemory as c, UiSpring as c_, parseFlexDirection as ca, runCanvasStyleInto as cc, PaintBox as cd, themesEqual as cf, UiShapeExtensions as cg, slideUp as ch, dragSource as ci, LazyGridProps as cl, FocusOptions as cm, PaintLayers as cn, UiEditingController as co, UiTextMetrics as cp, ScrollPositionArgs as cr, SCROLLBAR_HOVER_ZONE as cs, readMp3Header as ct, UI_SEMANTIC_STATES as cu, SemanticsRewalk as d, UiTweenOptions as d_, proportionalFontMetrics as da, textRunDecorations as dc, PaintLineJoin as dd, UiLengths as df, defaultShapes as dg, AnimationDriver as dh, DragOffset as di, Box as dl, ComponentResolver as dm, PaintResolver as dn, EXTERNAL_FILES as do, UiTextStyle as dp, VideoSourceArgs as dr, SCROLLBAR_THICKNESS as ds, Affine as dt, UiOrientation as du, assertTransitionMap as e_, sizeGridTracks as ea, TextLinePlacement as ec, UiLayoutProtocol as ed, propertyValuesEqual as ef, UiBorderRadiuses as eg, fade as eh, shortcuts as ei, nextWordEnd as el, UiUnknownModifierPropertyError as em, PaintPictureCache as en, capturePointer as eo, UiFontKerning as ep, PublishInsetArgs as er, SelectionControllerOptions as es, Mp4Sample as et, TypographyProps as eu, SemanticsSpan as f, createTween as f_, LayoutNotifier as fa, Canvas2DContext as fc, PaintMaskMode as fd, UiUnits as ff, isShapeName as fg, UiClock as fh, DraggableOptions as fi, Button as fl, ComponentLikeElement as fm, PaintTarget as fn, UiDragPayload as fo, defaultTextStyle as fp, VideoState as fr, ScrollBounds as fs, CLIP_STRIDE_BYTES as ft, UiRole as fu, buildSemanticsSubtree as g, UiEasingToken as g_, ScrollAdjustment as ga, DEFAULT_FONT_WEIGHT as gc, UiPaint as gd, UiThemeExtension as gf, darkColors as gg, NodeProperty as gh, autoFocus as gi, Paint as gl, isComponentLikeElement as gm, PaintRecorder as gn, UiDropZone as go, resolvedSpansOf as gp, DefaultVideoResolverOptions as gr, scrollLeaderOf as gs, INSTANCE_STRIDE_BYTES as gt, isUiSemanticState as gu, UiSemanticsRecord as h, UiEasingExtensions as h_, SCROLLBAR_LINGER_MS as ha, DEFAULT_FONT_SIZE as hc, PaintTextStyle as hd, unitsEqual as hf, colorsEqualPalette as hg, NodeId as hh, clickOutside as hi, Grid as hl, UiSourceLocation as hm, PaintOp as hn, UiDropEffect as ho, hiddenRangesOf as hp, DefaultVideoResolver as hr, scrollBounds as hs, GlyphCommand as ht, isUiRole as hu, UiSemanticsPatch as i, AnimatedCell as i_, parseAlignContent as ia, createCanvasTextStyle as ic, defaultVisualState as id, withPointer as if, borderRadiusIsZero as ig, rotateFrom as ih, AutoScrollOptions as ii, Responsive as il, defineModifier as im, PaintCanvasFactory as in, touchActionFor as io, UiResolvedTextSpan as ip, SizeContainerArgs as ir, HitTestResult as is, Mp3Format as it, UiPropertyName as iu, paragraphGeometry as j, interpolatorFor as j_, UiFrame as ja, DEFAULT_LINE_HEIGHT_FACTOR as jc, gradientPaint as jd, UiDensity as jf, TextRunSpan as jg, UiBorderRadiusValue as jh, measure as ji, BoxProps as jl, UiGestureEvent as jm, LayerCanvasFactory as jn, PointerControllerOptions as jo, UiInsets as jp, IconCanvas as jr, provideEnvironment as js, glyphCount as jt, UiVirtualSheet as ju, hasDrawnText as k, interpolateNumber as k_, labelNode as ka, normalizeVerticalAlign as kc, UiLinearGradient as kd, raiseContrast as kf, TextOverflow as kg, UI_SUBGRID_AXES as kh, hoverable as ki, UiGraphBuilder as kl, UiEventType as km, Canvas2DRendererOptions as kn, KeyboardControllerOptions as ko, UiInsetRegistry as kp, imageSource as kr, findMatchesIn as ks, buildRenderList as kt, SheetSourceArgs as ku, SemanticsPlacement as l, UiSpringOptions as l_, ELLIPSIS as la, runFontString as lc, PaintFillRule as ld, withContrast as lf, UiShapeName as lg, SharedClaim as lh, dropTarget as li, LazyListProps as ll, FocusSource as lm, PaintMatrix as ln, TouchScrollerOptions as lo, UiTextRange as lp, scrollPosition as lr, SCROLLBAR_INSET as ls, splitMp3Frames as lt, UiAutocomplete as lu, UiSemanticsMap as m, UiDurationToken as m_, SCROLLBAR_FADE_MS as ma, DEFAULT_FONT_FAMILY as mc, PaintTextAlign as md, lengths as mf, UiColors as mg, motionOf as mh, ClickOutsideOptions as mi, EditableText as ml, UiElement as mm, EMPTY_RECORDING as mn, UiDragState as mo, flattenTextSpans as mp, videoSource as mr, ScrollbarThumb as ms, CommandKind as mt, UiSemanticStates as mu, UiSemanticsBox as n, spring as n_, CrossAxisAlignment as na, applyCanvasTextStyle as nc, UiVisualState as nd, UiPointer as nf, borderRadiusCorners as ng, pop as nh, ZoomState as ni, previousWordStart as nl, UiModifier as nm, paintPictures as nn, pointerDeviceOf as no, UiFontStyle as np, publishInset as nr, UiSelectionController as ns, demuxMp4Audio as nt, UiNodeRef as nu, dropIndexShifts as o, UiAnimationOptions as o_, parseMainAxisAlignment as oa, fillTextRects as oc, visualState as od, darkTheme as of, normalizeBorderRadius as og, slideDown as oh, DropTargetOptions as oi, LazyColumn as ol, UiModifierHost as om, PaintDeviceRect as on, EditingHost as oo, UiTextDecoration as op, sizeContainer as or, UiHitTester as os, Mp3Frames as ot, UiPropertyValues as ou, TEXT_RUN_ID_SEPARATOR as p, UiDurationExtensions as p_, LayoutEngine as pa, Canvas2DGradient as pc, PaintSurface as pd, defaultUnits as pf, shapesEqual as pg, clockOf as ph, draggable as pi, Column as pl, UiChild as pm, tracePathData as pn, UiDragSession as po, editableSpansOf as pp, VideoTransport as pr, ScrollbarAxis as ps, CLIP_STRIDE_FLOATS as pt, UiSemanticState as pu, parseWebVtt as q, rgba as q_, pointerEventsOf as qa, offsetAtX as qc, isPercentLength as qd, shadowsOf as qf, createEnvironmentKey as qg, UiTextDirection as qh, propertyNarrowers as qi, PropsOf as ql, MOTION_CHANNELS as qm, resolveProperty as qn, clearOverrideProperty as qo, comparePositions as qp, AnimateLayoutOptions as qr, commandForKey as qs, WebGPUCanvasHost as qt, lazySource as qu, UiSemanticsUpdate as r, tween as r_, MainAxisAlignment as ra, buildFontString as rc, UiVisualStateSet as rd, UiThemeTouch as rf, borderRadiusEqual as rg, resolveMotionState as rh, pinchable as ri, wordRangeAt as rl, UiModifierKind as rm, PaintCanvas as rn, prepareInputSurface as ro, UiFontVariant as rp, BreakpointArgs as rr, HitTestLayoutReader as rs, demuxMp4Video as rt, UiProperties as ru, recordsEqual as s, UiReducedMotionPolicy as s_, FlexDirection as sa, layoutTextLines as sc, visualStatesEqual as sd, lightTheme as sf, uniformBorderRadius as sg, slideFrom as sh, ReorderableOptions as si, LazyGrid as sl, UiModifierTeardown as sm, PaintGradient as sn, EditingState as so, UiTextLink as sp, ScrollOffset as sr, UiPoint as ss, Mp3Header as st, UI_ROLES as su, UiSemanticsAction as t, normalizeTransition as t_, AlignContent as ta, TextRunRect as tc, isLayoutProtocol as td, TOUCH_TARGET as tf, borderRadius as tg, isMotionRest as th, PinchableOptions as ti, previousGraphemeStart as tl, assertModifierList as tm, PaintStats as tn, isImeKey as to, UiFontStretch as tp, insetPadding as tr, SelectionHost as ts, Mp4VideoTrack as tt, UiEventProps as tu, SemanticsReuse as u, UiTween as u_, layoutParagraph as ua, textRunBackgrounds as uc, PaintLineCap as ud, withDensity as uf, UiShapes as ug, UiSharedElements as uh, reorderable as ui, LazyRow as ul, UiFocusManager as um, PaintPixels as un, UiTouchScroller as uo, UiTextSpan as up, VideoClock as ur, SCROLLBAR_MIN_THUMB as us, WebGPUGlyphPages as ut, UiLiveRegion as uu, rewalkSemantics as v, UiMotionChanges as v_, CustomLayoutExplanation as va, ObjectFit as vc, inputsEqual as vd, UiThemeExtensions as vf, LayoutRecord as vg, UiNodeTransitions as vh, BordersOptions as vi, ScrollView as vl, isUiChild as vm, replayPaint as vn, UiFileDropMessage as vo, spannedTextOf as vp, VideoPlayback as vr, scrollbarThumb as vs, ImageCommand as vt, statesEqual as vu, linkHoverOf as w, durationIn as w_, SizeDecision as wa, colorToCss as wc, ResolvedGradient as wd, withThemeExtension as wf, SpannedRuns as wg, DecorationStroke as wh, focusRing as wi, UiBinding as wl, UiInputDispatcher as wm, InspectorOverlay as wn, UiShortcutStep as wo, defaultSpacing as wp, sharedElement as wr, clearMatchRanges as ws, RenderTextCache as wt, LazySheet as wu, textRunOfRecordId as x, UiSpringToken as x_, LayoutStateExplanation as xa, PaintTextSpan as xc, UiImage as xd, noThemeExtensions as xf, FontMetrics as xg, DecorationFill as xh, borderShapes as xi, createElement as xl, UiProps as xm, drawSvg as xn, UiShortcut as xo, textSpansEqual as xp, MotionArgs as xr, scrollsFromRight as xs, PrimitiveKind as xt, CompositionRange as xu, semanticsInertAbove as y, UiSpringExtensions as y_, Edges as ya, PaintBoxShadow as yc, paintValuesEqual as yd, defineThemeExtension as yf, CharacterCountTextMeasurer as yg, UiPropertyOverride as yh, Decorations as yi, Stack as yl, isUiElement as ym, SvgDrawOptions as yn, dragSessionFor as yo, spansDifferOnlyInPaint as yp, VideoResolver as yr, scrollbarThumbs as ys, NO_CLIP_INDEX as yt, validateRole as yu, markInstant as z, UiColor as z_, UiTimerFrameClock as za, CaretRect as zc, PercentLength as zd, UiShadowName as zf, Size as zg, UiObjectFit as zh, contentOffset as zi, FlexItemProps as zl, UiPointerKind as zm, OverlayShape as zn, GestureInput as zo, unknownContainerSize as zp, SvgResolver as zr, editorOf as zs, initializeWebGPU as zt, LazySourceArgs as zu };
|
|
20869
|
+
//# sourceMappingURL=index-CQPJZwhG.d.ts.map
|