gesso-framework 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.
@@ -1,7 +1,7 @@
1
- import { L as ChannelToken, R as Command, a as ComponentType, c as Inputs, i as ComponentProps, j as Patch, n as ComponentArgs, p as InternalState, r as ComponentContext, u as Component, v as InputCell, x as ReadableCell, y as OutputCell } from "./FunctionComponent-Czkex8fp.js";
2
- import { C as ServiceRegistry, E as DesignThemes, O as AgentConfirmation, U as ChannelSource, X as WorkerHandle, b as ComponentElement, s as UiHost, t as AgentToolDefinition, w as ChannelRegistry, x as FrameworkChild } from "./tools-BFBwuinE.js";
1
+ import { L as ChannelToken, R as Command, a as ComponentType, c as Inputs, i as ComponentProps, j as Patch, n as ComponentArgs, p as InternalState, r as ComponentContext, u as Component, v as InputCell, x as ReadableCell, y as OutputCell } from "./FunctionComponent-BDVrANP0.js";
2
+ import { C as ServiceRegistry, E as DesignThemes, O as AgentConfirmation, U as ChannelSource, X as WorkerHandle, b as ComponentElement, s as UiHost, t as AgentToolDefinition, w as ChannelRegistry, x as FrameworkChild } from "./tools-Bl8LZ7LR.js";
3
3
  import { BehaviorSubject, Observable, Subscription } from "rxjs";
4
- import { AnimatedCell, AnimationDriver, CanvasHost, CaretRect, ComponentLikeElement, ComponentResolver, EditingState, EditingState as EditingState$1, FocusOptions, IconRasterizer, ImageResolver, LayoutExplanation, LayoutInspector, MARK_PREFIX, MotionStateInput, MotionTiming, Reactive, RendererBackend, Size, SvgResolver, TextMeasureRequest, TextMeasurer, UI_ROLES, UI_SEMANTIC_STATES, UiAnimation, UiChild, UiContrast, UiDurationToken, UiEasing, UiEasingToken, UiEditingController, UiElement, UiFileDropMessage, UiFindController, UiFocusManager, UiFrameClockFactory, UiInputDispatcher, UiInsets, UiKeyModifiers, UiKeyboardController, UiLength, UiModifier, UiMotion, UiNode, UiPlatformAdapter, UiPointer, UiPointerController, UiPointerDevice, UiReducedMotionPolicy, UiRole, UiScrollability, UiSelectionController, UiSemanticState, UiSemanticsAction, UiSemanticsMap, UiSemanticsMap as UiSemanticsMap$1, UiSemanticsPatch, UiSemanticsRecord, UiSemanticsRecord as UiSemanticsRecord$1, UiSemanticsUpdate, UiShortcutRegistry, UiSourceLocation, UiSpringSpec, UiSpringToken, UiTextPosition, UiTheme, UiThemeExtension, UiTouchScroller, UiWheelController, VideoClock, VideoResolver, markInstant, markNow, measureSpan, performanceMarksEnabled, setPerformanceMarks as setPerformanceMarks$1 } from "gesso-core";
4
+ import { AnimatedCell, AnimationDriver, CanvasHost, CaretRect, ComponentLikeElement, ComponentResolver, EditingState, EditingState as EditingState$1, FocusOptions, IconRasterizer, ImageResolver, LayoutExplanation, LayoutInspector, MARK_PREFIX, MotionStateInput, MotionTiming, Reactive, RendererBackend, Size, SvgResolver, TextMeasureRequest, TextMeasurer, UI_ROLES, UI_SEMANTIC_STATES, UiAnimation, UiChild, UiClock, UiContrast, UiDurationToken, UiEasing, UiEasingToken, UiEditingController, UiElement, UiEnvironmentKey, UiFileDropMessage, UiFindController, UiFocusManager, UiFrameClockFactory, UiInputDispatcher, UiInsets, UiKeyModifiers, UiKeyboardController, UiLength, UiModifier, UiMotion, UiNode, UiPlatformAdapter, UiPointer, UiPointerController, UiPointerDevice, UiReducedMotionPolicy, UiRole, UiScrollability, UiSelectionController, UiSemanticState, UiSemanticsAction, UiSemanticsMap, UiSemanticsMap as UiSemanticsMap$1, UiSemanticsPatch, UiSemanticsRecord, UiSemanticsRecord as UiSemanticsRecord$1, UiSemanticsUpdate, UiShortcutRegistry, UiSourceLocation, UiSpringSpec, UiSpringToken, UiTextPosition, UiTheme, UiThemeExtension, UiTouchScroller, UiWheelController, VideoClock, VideoResolver, markInstant, markNow, measureSpan, performanceMarksEnabled, setPerformanceMarks as setPerformanceMarks$1 } from "gesso-core";
5
5
  //#region src/derive.d.ts
6
6
  /** How `derive` decides that a new value is not a change. */
7
7
  type Equality<T> = 'reference' | 'structural' | ((a: T, b: T) => boolean);
@@ -883,6 +883,12 @@ interface ControlledOptions<T> {
883
883
  readonly fallback: T;
884
884
  /** Fired on every change in either form. */
885
885
  readonly onChange: OutputCell<[next: T]>;
886
+ /**
887
+ * Other outputs a parent may hear the change through instead: a
888
+ * drawer's `onClose` beside its `onOpenChange`. A parent listening on
889
+ * any of them owns the value, as one passing `onChange` does.
890
+ */
891
+ readonly heardBy?: readonly OutputCell<never>[];
886
892
  }
887
893
  /**
888
894
  * Controlled by default, self-managing when given only an initial value.
@@ -893,9 +899,58 @@ interface ControlledOptions<T> {
893
899
  * `defaultValue` and the control owns it, still reporting changes;
894
900
  * pass both and it throws, because two owners is a bug. `bind(cell)` is
895
901
  * the spread for the first form when the owner is a local cell.
902
+ *
903
+ * A `value` with no `onChange` beside it has nobody to own it, so it is
904
+ * where the control starts, and the control owns it from there; a new
905
+ * value from the parent starts it again. A screen written as a picture
906
+ * of a moment, `<Switch checked={true} />`, is then one a person can
907
+ * use: the design tool's Play mode runs mocks written exactly so, and a
908
+ * value that only the parent may change is what `readOnly` and
909
+ * `disabled` say, not a missing handler.
896
910
  */
897
911
  declare function controlled<T>(options: ControlledOptions<T>): ControlledValue<T>;
898
912
  //#endregion
913
+ //#region src/sharedValue.d.ts
914
+ /**
915
+ * Named values the components under one node share, with no
916
+ * application behind them: what one screen of a prototype was given
917
+ * (an email typed on Forgot password), shown by the next (Check email),
918
+ * or a wizard's steps passing on what was filled in.
919
+ *
920
+ * A node provides a store to what it holds,
921
+ * `provide={[provided(SharedValuesKey, values)]}`, and a component asks
922
+ * for a value by name with `sharedValue(ctx, name, start)`. Under a
923
+ * store, every component asking for the same name has the same cell;
924
+ * with none above, each has its own, at its own start. So a design tool
925
+ * can draw a screen on its board as written, each frame alone, and play
926
+ * it with the screens before it.
927
+ *
928
+ * It is not where an application's state goes. That survives a reload
929
+ * and is on a channel, written by a command; these are cells, written
930
+ * by whatever holds one, and gone with the store.
931
+ */
932
+ declare class SharedValues {
933
+ private readonly cells;
934
+ /** Every value by name, as it is now, in the order each was first asked for. */
935
+ readonly values: InternalState<ReadonlyMap<string, unknown>>;
936
+ /** The value named `name`: made at `start` by the first to ask, and the same cell for each after. */
937
+ cell<T>(name: string, start: T): InternalState<T>;
938
+ /** Writes a value by name, as a component holding it would; a name nobody has asked for is ignored. */
939
+ set(name: string, value: unknown): void;
940
+ /** Every value back at the start it was made with. */
941
+ reset(): void;
942
+ private publish;
943
+ }
944
+ /** Where a node provides a `SharedValues` to what it holds. */
945
+ declare const SharedValuesKey: import("gesso-core").UiEnvironmentKey<SharedValues | null>;
946
+ /**
947
+ * A value by name: the cell the nearest `SharedValues` above holds for
948
+ * it, shared with every component asking for it there; with none
949
+ * above, a cell of this component's own, at `start`. Bind it as any
950
+ * cell: `<TextInput {...bind(email)} />`.
951
+ */
952
+ declare function sharedValue<T>(ctx: ComponentContext, name: string, start: T): InternalState<T>;
953
+ //#endregion
899
954
  //#region src/decorators.d.ts
900
955
  /**
901
956
  * Declares a class as a Gesso component.
@@ -1093,10 +1148,14 @@ declare function createComponent<C extends ComponentType>(component: C, ...args:
1093
1148
  * edge of the screen whatever the language: an arrow drawn on a
1094
1149
  * diagram, a tooltip on a panel that is always on the left.
1095
1150
  *
1151
+ * `over` lays the entry over the anchor at its size, grown by the
1152
+ * offset on every side: the hole a spotlight leaves around what it
1153
+ * shows. No direction turns it.
1154
+ *
1096
1155
  * The direction is the entry's: the one its content reads in, which is
1097
1156
  * where its theme comes from too. See `OverlayEntry.environment`.
1098
1157
  */
1099
- type OverlayPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end' | 'start' | 'start-start' | 'start-end' | 'end' | 'end-start' | 'end-end';
1158
+ type OverlayPlacement = 'over' | 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end' | 'start' | 'start-start' | 'start-end' | 'end' | 'end-start' | 'end-end';
1100
1159
  /** A rectangle inside an anchor, from its border box's top left. */
1101
1160
  interface OverlayRect {
1102
1161
  readonly x: number;
@@ -1230,6 +1289,104 @@ declare class OverlayService {
1230
1289
  closeAll(): void;
1231
1290
  isOpen(id: string): boolean;
1232
1291
  }
1292
+ /**
1293
+ * The overlays of the `OverlayScope` a node is in: where an entry
1294
+ * opened there goes instead of the runtime's layer. Null outside every
1295
+ * scope.
1296
+ */
1297
+ declare const OverlayScopeKey: import("gesso-core").UiEnvironmentKey<OverlayService | null>;
1298
+ //#endregion
1299
+ //#region src/overlay/OverlayScope.d.ts
1300
+ interface OverlayScopeProps {
1301
+ children?: UiChild;
1302
+ }
1303
+ /**
1304
+ * A part of the tree that holds its own overlays: a dialog, menu or
1305
+ * tooltip opened inside it is drawn inside it, over its content and
1306
+ * nowhere else.
1307
+ *
1308
+ * What a design tool's player needs from the screen it plays: a dialog
1309
+ * on that screen dims the screen, centres in it and is clipped by it,
1310
+ * is scaled with it when the screen is drawn smaller than its own size,
1311
+ * and leaves the tool around it pressable. A menu is placed and flipped
1312
+ * within it, since an anchored entry stays inside the box its layer
1313
+ * covers. Outside a scope, entries open in the runtime's own layer
1314
+ * above the whole application, as they always have.
1315
+ *
1316
+ * It fills what holds it, and is the containing block of what it
1317
+ * holds. `useOverlay` finds the nearest scope above the component that
1318
+ * opens the entry; with none, it uses the runtime's `OverlayService`.
1319
+ *
1320
+ * A dialog's trap inside it holds the keyboard inside it only: the
1321
+ * tool around it, and every other scope, keep their focus, and none is
1322
+ * taken from them when it opens or handed to them when it closes.
1323
+ */
1324
+ declare function OverlayScope(inputs: Inputs<OverlayScopeProps>, _ctx: ComponentContext): UiChild;
1325
+ //#endregion
1326
+ //#region src/startingInputsKey.d.ts
1327
+ /** One component's starting inputs: input names to values. */
1328
+ type StartingInputsRecord = Readonly<Record<string, unknown>>;
1329
+ /**
1330
+ * Starting inputs by component name: one record for every instance of
1331
+ * it, or a list for each in the order they are made (`null` for one
1332
+ * left as written), so the second of three switches can start on.
1333
+ */
1334
+ type StartingInputsByName = Readonly<Record<string, StartingInputsRecord | readonly (StartingInputsRecord | null)[]>>;
1335
+ /**
1336
+ * The inputs components under a node start with, by component name,
1337
+ * over what their parents pass; see `StartingInputs`. Empty outside one.
1338
+ */
1339
+ declare const StartingInputsKey: UiEnvironmentKey<StartingInputsByName>;
1340
+ //#endregion
1341
+ //#region src/StartingInputs.d.ts
1342
+ interface StartingInputsProps {
1343
+ /**
1344
+ * Inputs by component name: `{ ScrollArea: { scrollY: 600 }, Tour: { step: 1 } }`;
1345
+ * or a list for each instance in the order they are made, `null` for
1346
+ * one left as written: `{ Toggle: [null, { on: true }] }`.
1347
+ */
1348
+ of?: StartingInputsByName;
1349
+ children?: UiChild;
1350
+ }
1351
+ /**
1352
+ * Draws what it holds with the components in it started from given
1353
+ * inputs, named by component, over what their parents pass: every
1354
+ * `ScrollArea` in it scrolled to 600, every `Tour` at its second step.
1355
+ *
1356
+ * What a design tool draws a moment of a screen with, beside the
1357
+ * screen as written, without a copy of the screen to drift from it: a
1358
+ * list scrolled far enough for its back-to-top button, a dialog open,
1359
+ * a tour on its second step. A component reads them as it would its
1360
+ * parent's props, so one that takes a value without a handler beside
1361
+ * it starts there and is then the person's to change, in a design
1362
+ * tool's player as anywhere. A preview of inputs (`InspectionService.
1363
+ * previewInputs`) goes over them, and ending it comes back to them.
1364
+ *
1365
+ * They are read as each component is made, so they start a component
1366
+ * rather than steer one: a new `of` reaches components made after it,
1367
+ * and once the parent passes something new for an input, it is the
1368
+ * parent's again, as a dialog saved open closes when its owner closes
1369
+ * it.
1370
+ * Nested, the outer one wins for an input both give a component, and
1371
+ * the inner one's other inputs and names still reach in: what draws a
1372
+ * screen at a moment decides over what the screen starts itself with,
1373
+ * so a moment saved from a moment is the later one. A list per instance
1374
+ * is taken whole. It fills what holds it.
1375
+ */
1376
+ declare function StartingInputs(inputs: Inputs<StartingInputsProps>, ctx: ComponentContext): UiChild;
1377
+ //#endregion
1378
+ //#region src/liveInput.d.ts
1379
+ /**
1380
+ * Says what an input of the component whose body is running holds now,
1381
+ * as the component keeps it, and how to read it again: a switch turned
1382
+ * on, a field typed in, a list scrolled to 600. The inspector reports it
1383
+ * on the component's owner report (`live`), and a design tool saves a
1384
+ * moment of a played screen from it, to start the screen there again
1385
+ * (`StartingInputs`). `controlled` calls it for its value, so a control
1386
+ * written by its contract reports itself; outside a component's body it
1387
+ * does nothing.
1388
+ */
1389
+ declare function liveInput(name: string, read: () => unknown): void;
1233
1390
  //#endregion
1234
1391
  //#region src/overlay/OverlayLayer.d.ts
1235
1392
  /**
@@ -1258,7 +1415,10 @@ declare class OverlayService {
1258
1415
  * why that node and not always the anchor.
1259
1416
  */
1260
1417
  declare class OverlayLayer extends Component {
1261
- overlays: OverlayService;
1418
+ runtimeOverlays: OverlayService;
1419
+ /** The entries to draw, when not the runtime's: an `OverlayScope`'s. */
1420
+ service: InputCell<OverlayService | null>;
1421
+ private get overlays();
1262
1422
  render(): UiElement;
1263
1423
  private renderEntries;
1264
1424
  }
@@ -1289,6 +1449,8 @@ declare class OverlayLayer extends Component {
1289
1449
  declare class ComponentHost<P extends Record<string, unknown> = Record<string, unknown>> {
1290
1450
  private readonly services;
1291
1451
  private readonly channels;
1452
+ /** The slot's node, under its parent, for `ctx.environment`; null for a host made outside a tree. */
1453
+ private readonly anchor;
1292
1454
  /** The class instance; undefined for a functional component. */
1293
1455
  readonly instance: Component | undefined;
1294
1456
  readonly element: ComponentElement<P>;
@@ -1310,11 +1472,29 @@ declare class ComponentHost<P extends Record<string, unknown> = Record<string, u
1310
1472
  private readonly inputSubscriptions;
1311
1473
  /** A functional component's cells, by prop name, as they were handed out. */
1312
1474
  private readonly functionalCells;
1475
+ /**
1476
+ * Inputs it is drawn with over its parent's, from a `StartingInputs`
1477
+ * above it when it was made: a moment of a screen, a tour's second
1478
+ * step. A preview goes over these, and ending one comes back to them.
1479
+ */
1480
+ private started;
1481
+ /** What the parent passed for each started input at birth: a new value from it takes over. */
1482
+ private readonly startedOver;
1483
+ /** A started input the parent passes as a stream: the start, then the stream's changes; one per input, so it is not resubscribed. */
1484
+ private readonly startedStreams;
1485
+ /** What the component says it holds now, by input; see `liveInput`. */
1486
+ private readonly live;
1487
+ /** Inputs a tool draws the component with over its parent's, until it ends them; see `previewInputs`. */
1488
+ private previewed;
1489
+ /** A class's input values from before they were previewed, for the ones its parent does not pass. */
1490
+ private readonly beforePreview;
1313
1491
  private readonly mountHooks;
1314
1492
  private readonly unmountHooks;
1315
1493
  /** True only while the component function runs; hooks may register then. */
1316
1494
  private rendering;
1317
- constructor(element: ComponentElement<P>, services?: ServiceRegistry, channels?: ChannelRegistry);
1495
+ constructor(element: ComponentElement<P>, services?: ServiceRegistry, channels?: ChannelRegistry,
1496
+ /** The slot's node, under its parent, for `ctx.environment`; null for a host made outside a tree. */
1497
+ anchor?: UiNode | null);
1318
1498
  /** The class or function this host mounts. */
1319
1499
  get component(): ComponentType;
1320
1500
  /**
@@ -1338,6 +1518,21 @@ declare class ComponentHost<P extends Record<string, unknown> = Record<string, u
1338
1518
  * cell is what updates the output.
1339
1519
  */
1340
1520
  updateProps(props: P): void;
1521
+ /**
1522
+ * Feeds the inputs `values` names from them instead of from the
1523
+ * parent, until a call with null hands them back to the parent: a
1524
+ * design tool showing one of a component's states on the live tree.
1525
+ * A later call replaces the earlier one; a new prop from the parent
1526
+ * for a previewed input waits until the preview ends.
1527
+ *
1528
+ * Each input a preview starts or ends is handed its value even when
1529
+ * it holds that value already, as a new value from the parent is: a
1530
+ * control that owns what it was started at (`controlled`) starts
1531
+ * again from it, rather than keeping what a person turned it to.
1532
+ */
1533
+ previewInputs(values: Readonly<Record<string, unknown>> | null): void;
1534
+ /** What an input is fed from: a preview's value for it, else what it was started with, else the parent's prop. */
1535
+ private providedFor;
1341
1536
  private renderFunction;
1342
1537
  /**
1343
1538
  * The props record a functional component reads: a cell per name,
@@ -1350,6 +1545,8 @@ declare class ComponentHost<P extends Record<string, unknown> = Record<string, u
1350
1545
  private createInputRecord;
1351
1546
  private createContext;
1352
1547
  private wireInputs;
1548
+ /** What the component says each of its inputs holds now; see `liveInput`. */
1549
+ liveInputs(): ReadonlyMap<string, unknown>;
1353
1550
  /**
1354
1551
  * What the parent most recently supplied for each input, as given:
1355
1552
  * a value, an element or a stream, whether or not the component has
@@ -1398,7 +1595,7 @@ declare class ComponentHostResolver implements ComponentResolver {
1398
1595
  private readonly hosts;
1399
1596
  private pendingMounts;
1400
1597
  constructor(services?: ServiceRegistry, channels?: ChannelRegistry);
1401
- resolve(element: ComponentLikeElement, anchorId: string): UiChild;
1598
+ resolve(element: ComponentLikeElement, anchorId: string, anchor?: UiNode): UiChild;
1402
1599
  release(anchorId: string): void;
1403
1600
  flushMounts(): void;
1404
1601
  /**
@@ -1477,6 +1674,13 @@ interface UiNodeReport {
1477
1674
  */
1478
1675
  readonly beneath: readonly UiBeneathReport[];
1479
1676
  readonly semantics?: UiSemanticsReport;
1677
+ /**
1678
+ * What the node draws while hovered and while pressed, from its
1679
+ * `interactive` modifiers: the props it writes then, as the element
1680
+ * would write them. For a design tool's handoff, which writes them
1681
+ * as `:hover` and `:active`. Absent when it changes nothing.
1682
+ */
1683
+ readonly interaction?: UiInteractionReport;
1480
1684
  /** `formatExplanation` of the node's layout, which is L8's answer. */
1481
1685
  readonly explanation: string;
1482
1686
  /**
@@ -1510,6 +1714,13 @@ interface UiOwnerReport {
1510
1714
  * needs to write a component's use back as code: `label="Email"`.
1511
1715
  */
1512
1716
  readonly inputs?: Readonly<Record<string, UiOwnerInput>>;
1717
+ /**
1718
+ * What the component says its inputs hold now, as it keeps them
1719
+ * (`liveInput`): a switch a person turned on, a list scrolled to 600.
1720
+ * Plain values only. What a design tool saves a moment of a played
1721
+ * screen from.
1722
+ */
1723
+ readonly live?: Readonly<Record<string, string | number | boolean | null>>;
1513
1724
  }
1514
1725
  /** One input's value in an owner report; see `UiOwnerReport.inputs`. */
1515
1726
  type UiOwnerInput = string | number | boolean | null | {
@@ -1625,6 +1836,10 @@ interface UiEnvironmentReport {
1625
1836
  /** Whether this node provides the value rather than inheriting it. */
1626
1837
  readonly provided: boolean;
1627
1838
  }
1839
+ interface UiInteractionReport {
1840
+ readonly hovered?: Readonly<Record<string, unknown>>;
1841
+ readonly pressed?: Readonly<Record<string, unknown>>;
1842
+ }
1628
1843
  interface UiSemanticsReport {
1629
1844
  readonly role?: string;
1630
1845
  readonly label?: string;
@@ -2329,6 +2544,11 @@ interface AnimateOptions {
2329
2544
  reducedMotion?: UiReducedMotionPolicy;
2330
2545
  /** Wait this long before the first sample; see `UiAnimationOptions.delay`. */
2331
2546
  delay?: number;
2547
+ /**
2548
+ * The clock it runs on, where it is drawn: `ctx.environment(UiEnvironmentKeys.clock)`
2549
+ * in a component, `clockOf(node)` from a node. Real time without one. See `UiClock`.
2550
+ */
2551
+ clock?: UiClock | null;
2332
2552
  }
2333
2553
  interface SpringOptions {
2334
2554
  /** A named spring, or one given outright. Defaults to `snappy`. */
@@ -2343,6 +2563,11 @@ interface SpringOptions {
2343
2563
  reducedMotion?: UiReducedMotionPolicy;
2344
2564
  /** Wait this long before the first sample; see `UiAnimationOptions.delay`. */
2345
2565
  delay?: number;
2566
+ /**
2567
+ * The clock it runs on, where it is drawn: `ctx.environment(UiEnvironmentKeys.clock)`
2568
+ * in a component, `clockOf(node)` from a node. Real time without one. See `UiClock`.
2569
+ */
2570
+ clock?: UiClock | null;
2346
2571
  }
2347
2572
  /**
2348
2573
  * Animation, as a store components can inject.
@@ -2382,6 +2607,13 @@ declare class AnimationService {
2382
2607
  * animation drives a cell, which has no node — see `UiMotion`.
2383
2608
  */
2384
2609
  setMotion(motion: UiMotion): void;
2610
+ private motionListener;
2611
+ /**
2612
+ * Called by the runtime, which provides the vocabulary at its root so
2613
+ * a name in a `transition` or a `motion` state resolves to it too; a
2614
+ * part of the tree may provide its own over it (`UiEnvironmentKeys.motion`).
2615
+ */
2616
+ setMotionListener(listener: ((motion: UiMotion) => void) | null): void;
2385
2617
  get motion(): UiMotion;
2386
2618
  /**
2387
2619
  * Turns reduced motion on or off for this runtime.
@@ -3476,6 +3708,8 @@ declare class GessoRuntime {
3476
3708
  private lastEarlyFrame;
3477
3709
  /** When the last discrete input was routed; see `answerInput`. */
3478
3710
  private lastDiscreteInput;
3711
+ /** The wheel's steps since the last frame, added together; see `wheel`. */
3712
+ private heldWheel;
3479
3713
  /** The display time the frame being drawn is for; see `FrameMetrics.time`. */
3480
3714
  private frameTime;
3481
3715
  /** When the frame's first phase began, before its changes were collected; see `FrameMetrics.durationMs`. */
@@ -3580,6 +3814,11 @@ declare class GessoRuntime {
3580
3814
  * them. Only populated while a listener is attached.
3581
3815
  */
3582
3816
  private semanticsBoxes;
3817
+ /** When a frame last moved something, and when the boxes were last swept; see `updateSemantics`. */
3818
+ private semanticsMovedAt;
3819
+ private semanticsSweptAt;
3820
+ /** The sweep owed once a run of moving frames stops. */
3821
+ private semanticsSweepTimer;
3583
3822
  /** What each semantics walk leaves for the next; see `SemanticsMemory`. */
3584
3823
  private readonly semanticsMemory;
3585
3824
  private lastFocusedId;
@@ -3761,6 +4000,25 @@ declare class GessoRuntime {
3761
4000
  * refresh either.
3762
4001
  */
3763
4002
  answerInput(): void;
4003
+ /**
4004
+ * A step of the wheel, or of a trackpad's two fingers or its pinch,
4005
+ * held until the frame and added to the others that arrive before it.
4006
+ *
4007
+ * A trackpad sends a step on every refresh, and a handler that takes
4008
+ * longer than a refresh over one (a design tool's board zoomed over
4009
+ * hundreds of frames, each of whose names it scales) fell behind for
4010
+ * good: each step waited for the one before it, the frame waited for
4011
+ * them all, and a pinch drew nothing until the fingers stopped, then
4012
+ * jumped. Held, the steps that queue while the handler runs are one
4013
+ * step at the next frame, so the handler runs once a frame however
4014
+ * many arrive, and what it draws follows the fingers a frame at a
4015
+ * time. A step with other modifiers or in another unit is not added
4016
+ * to the held one but follows it, and any other input lets the held
4017
+ * step go first (`releaseWheel`), so nothing is answered out of order.
4018
+ */
4019
+ wheel(...step: Parameters<UiWheelController['wheel']>): void;
4020
+ /** Hands the held wheel step to the input now, before what follows it; see `wheel`. */
4021
+ releaseWheel(): void;
3764
4022
  /** Draws the pending frame in a task of its own, if the guards in `answerInput` allow. */
3765
4023
  private drawEarly;
3766
4024
  /**
@@ -4089,6 +4347,8 @@ declare class GessoRuntime {
4089
4347
  private pathOf;
4090
4348
  /** The components that rendered a node, nearest first. */
4091
4349
  private sourceReport;
4350
+ /** The props the node's `interactive` modifiers write while hovered and pressed, later ones over earlier. */
4351
+ private interactionOf;
4092
4352
  private ownersOf;
4093
4353
  private propsOf;
4094
4354
  /**
@@ -4273,6 +4533,13 @@ declare class GessoRuntime {
4273
4533
  */
4274
4534
  applyFileDrop(message: UiFileDropMessage): void;
4275
4535
  applySemanticsAction(action: UiSemanticsAction): void;
4536
+ /**
4537
+ * A semantics action on a node: the mirror's, or `InspectionService.act`'s
4538
+ * on a node with no record of its own. False when it did not take: focus
4539
+ * refused (an open dialog's trap holds it elsewhere), or a field that
4540
+ * takes no text.
4541
+ */
4542
+ private actOn;
4276
4543
  /**
4277
4544
  * An action on an inline link, which is a run and not a node.
4278
4545
  *
@@ -4381,6 +4648,29 @@ declare class GessoRuntime {
4381
4648
  * missing, rather than by scanning every key for the prefix.
4382
4649
  */
4383
4650
  private semanticIdsUnder;
4651
+ /**
4652
+ * The boxes for a frame that moved something but changed no meaning:
4653
+ * all of them when it is the first move after a rest, and otherwise
4654
+ * only the focused node's, with the sweep owed for when the moving
4655
+ * stops (`SEMANTICS_SETTLE_MS`), or for when the boxes have been stale
4656
+ * too long (`SEMANTICS_MOST_STALE_MS`).
4657
+ *
4658
+ * A pan or a zoom moves every box under the camera on every frame. In
4659
+ * Atelier, a board of three dozen screens panned at 15%, the sweep was
4660
+ * 3 to 4 ms of a 4 to 6 ms frame, with frames to 13 ms, past a 120 Hz
4661
+ * display's 8.3; and the main thread wrote four styles on each of 545
4662
+ * elements per frame, which in Chromium was 45% of that thread while
4663
+ * it also had the wheel events to deliver. Nobody reads the rectangle
4664
+ * of an element that is moving under a pan: a screen reader's cursor
4665
+ * is on what it rests on. The focused node is the exception, since its
4666
+ * focus ring is drawn from its element, so it moves every frame.
4667
+ */
4668
+ private movedSemanticsBoxes;
4669
+ /** Sweeps the boxes once the moving has stopped, and sends what changed. */
4670
+ private scheduleSemanticsSweep;
4671
+ private sweepSemanticsBoxes;
4672
+ /** The focused node's box when it differs from the one last sent, as `collectSemanticsBoxes` would give it. */
4673
+ private focusedSemanticsBox;
4384
4674
  /**
4385
4675
  * The mirrored nodes whose box differs from the one last sent, and
4386
4676
  * which are on screen.
@@ -6730,6 +7020,8 @@ declare class GessoApp {
6730
7020
  /** The appearance this shell reports; watched or overridden. */
6731
7021
  private colorSchemePreference;
6732
7022
  constructor(options: GessoAppOptions);
7023
+ /** Runs a pending frame now: see `FrameService.flush`. */
7024
+ private flushFrame;
6733
7025
  /**
6734
7026
  * The running app, as the agent's screen tools need it: its semantics
6735
7027
  * tree and focus, the mirror's actions, keys, and a way to run a
@@ -7619,10 +7911,24 @@ declare function persisted<T>(adapter: StorageAdapter, key: string, options: Per
7619
7911
  */
7620
7912
  declare class FrameService {
7621
7913
  private readonly subject;
7914
+ private flusher;
7622
7915
  /** Emits after each frame finishes, with what it cost and what it answered. */
7623
7916
  readonly frames: Observable<FrameMetrics>;
7624
7917
  /** Called by the runtime; not for components. */
7625
7918
  publish(metrics: FrameMetrics): void;
7919
+ /** Called by the shell that drives the frames; not for components. */
7920
+ setFlush(flush: (() => void) | null): void;
7921
+ /**
7922
+ * Draws a pending frame now, rather than when the display next asks
7923
+ * for one; nothing when none is pending.
7924
+ *
7925
+ * A tab in the background is sent no frames. A design editor's tool,
7926
+ * called by an agent while the editor's window is behind another,
7927
+ * changes the screen and waits for it to be drawn before reading it:
7928
+ * without this, it waits for a frame that never comes. The agent's
7929
+ * own screen tools (`uiSurface`) do the same after each action.
7930
+ */
7931
+ flush(): void;
7626
7932
  }
7627
7933
  //#endregion
7628
7934
  //#region src/app/InspectionService.d.ts
@@ -7667,6 +7973,21 @@ declare class InspectionService {
7667
7973
  readonly width: number;
7668
7974
  readonly height: number;
7669
7975
  };
7976
+ /**
7977
+ * Where the node is seen on the screen: `box` with every transform
7978
+ * above it applied, so a node in a frame drawn at half its size is
7979
+ * half its size, where it is drawn. What an overlay laid over the
7980
+ * live tree is placed by (an outline on the component under the
7981
+ * pointer). `box` keeps the untransformed box, which is where the
7982
+ * node is in the layout: what an editor reading a zoomed board in
7983
+ * the board's own coordinates (a minimap) needs.
7984
+ */
7985
+ screenBox(node: UiNode): {
7986
+ readonly x: number;
7987
+ readonly y: number;
7988
+ readonly width: number;
7989
+ readonly height: number;
7990
+ };
7670
7991
  /**
7671
7992
  * Draws a node as though it declared `value` for `property`, until
7672
7993
  * the preview is ended or the node leaves the tree.
@@ -7681,6 +8002,36 @@ declare class InspectionService {
7681
8002
  preview(node: UiNode, property: string, value: unknown): void;
7682
8003
  /** Ends a preview of one property, or of every property previewed on the node. */
7683
8004
  endPreview(node: UiNode, property?: string): void;
8005
+ /**
8006
+ * Draws a component as though its parent passed `inputs`, over what
8007
+ * the parent did pass, until the preview is ended or the component
8008
+ * leaves the tree. The component is named by its anchor, as
8009
+ * `inspect(node).owners[].anchorId` gives it.
8010
+ *
8011
+ * What a design editor shows when a component on a played screen is
8012
+ * jumped to one of its states (Filled, Error, Disabled): the same
8013
+ * instance, still live, given that state's inputs, and the inputs it
8014
+ * was written with back when the preview ends. A later preview of the
8015
+ * same component replaces this one. The names and values are props',
8016
+ * as JSX would write them. An anchor no component holds is ignored.
8017
+ */
8018
+ previewInputs(anchorId: string, inputs: Readonly<Record<string, unknown>>): void;
8019
+ /** Ends a preview of a component's inputs: its parent's are its own again. */
8020
+ endInputPreview(anchorId: string): void;
8021
+ /**
8022
+ * Presses a node, or replaces the text of the field it is, as a
8023
+ * person would: a click at the middle of where it is drawn, which
8024
+ * its handlers and every handler above it get, or the edit a
8025
+ * keyboard makes once it has focus. The path the accessibility
8026
+ * mirror's actions take, for any node in the tree, record or not.
8027
+ *
8028
+ * What a design editor's agent does to play a prototype in its live
8029
+ * frames: a row pressed, an email typed, by a node it found with
8030
+ * `nodesAt` or by walking the tree. False when it did not take: a
8031
+ * node no longer in the tree, or a field that could not have focus
8032
+ * because an open dialog's trap holds it, or takes no text.
8033
+ */
8034
+ act(node: UiNode, action: 'click' | 'setValue', value?: string): boolean;
7684
8035
  }
7685
8036
  /** What the runtime gives the service. */
7686
8037
  interface InspectionHost {
@@ -7693,8 +8044,18 @@ interface InspectionHost {
7693
8044
  readonly width: number;
7694
8045
  readonly height: number;
7695
8046
  };
8047
+ /** The node's box with the transforms above it applied. */
8048
+ screenBox?(node: UiNode): {
8049
+ readonly x: number;
8050
+ readonly y: number;
8051
+ readonly width: number;
8052
+ readonly height: number;
8053
+ };
7696
8054
  preview?(node: UiNode, property: string, value: unknown): void;
7697
8055
  endPreview?(node: UiNode, property?: string): void;
8056
+ /** Null ends the preview. */
8057
+ previewInputs?(anchorId: string, inputs: Readonly<Record<string, unknown>> | null): void;
8058
+ act?(node: UiNode, action: 'click' | 'setValue', value?: string): boolean;
7698
8059
  }
7699
8060
  //#endregion
7700
8061
  //#region src/app/videoClock.d.ts
@@ -8274,25 +8635,6 @@ declare class ScrollService {
8274
8635
  }
8275
8636
  //#endregion
8276
8637
  //#region src/app/FocusService.d.ts
8277
- /**
8278
- * Keyboard focus, as a store components can inject.
8279
- *
8280
- * `UiFocusManager` lives in the runtime and a component cannot reach
8281
- * it — components reach the world through stores, as they do for the
8282
- * clipboard (`ShellService`), overlays (`OverlayService`) and find
8283
- * (`FindService`). Without this a component cannot autofocus a field,
8284
- * trap the keyboard in a dialog, or put the caret in the input that
8285
- * failed validation.
8286
- *
8287
- * Nodes come from a `ref` prop. A tree's refs fire before the runtime
8288
- * installs the manager, so an action taken during the first build is
8289
- * queued and replayed once there is one; that is the same problem
8290
- * `FindService` solves for its query field, and the reason `autoFocus`
8291
- * in a dialog works on the frame it mounts.
8292
- *
8293
- * It must stay on the render thread: its actions take `UiNode`s, which
8294
- * never cross a worker boundary.
8295
- */
8296
8638
  declare class FocusService {
8297
8639
  /** The node holding focus, or null. A control binds its focus ring to this. */
8298
8640
  readonly focused: InternalState<UiNode | null>;
@@ -8326,6 +8668,12 @@ declare class FocusService {
8326
8668
  focusNext(): void;
8327
8669
  /** Moves focus to the previous focusable node, wrapping around. */
8328
8670
  focusPrevious(): void;
8671
+ /**
8672
+ * The tab stops under `within` (the whole tree when not given), in
8673
+ * the order Tab visits them: what a design tool numbers to show a
8674
+ * screen's keyboard order. Empty before the runtime has a manager.
8675
+ */
8676
+ tabStops(within?: UiNode): UiNode[];
8329
8677
  /**
8330
8678
  * Confines focus to `scope` until `releaseTrap`, moving it inside if
8331
8679
  * it was elsewhere. Traps nest: a dialog opened over a dialog traps
@@ -8988,5 +9336,5 @@ declare class RenderWorkerApp {
8988
9336
  private initialize;
8989
9337
  }
8990
9338
  //#endregion
8991
- export { OpfsStorageOptions as $, BoundStream as $n, Mutation as $r, RendererChoice as $t, observeReducedMotion as A, AudioMetadata as An, findUnplainPath as Ar, ShellHistory as At, InspectionHost as B, UiEasingChoice as Bn, ThemeTokenCell as Br, DevtoolsRequest as Bt, writeClipboard as C, route as Cn, createComponent as Cr, GessoAppBuilder as Ct, TextService as D, formatUrl as Dn, ChannelRegistration as Dr, AppLogicEndpoint as Dt, EditingService as E, buildPath as En, pickKeys as Er, createApp as Et, AudioSink as F, AudioStatus as Fn, Input as Fr, ActionEntry as Ft, persisted as G, ShellRecentFile as Gn, show as Gr, treeText as Gt, FrameService as H, ShellFileRequest as Hn, bind as Hr, PatchEntry as Ht, AudioSinkOptions as I, AnimateOptions as In, Output as Ir, ChannelErrorEntry as It, IndexedDbStorage as J, ShellStorageOp as Jn, EachProps as Jr, ShellToRuntimeMessage as Jt, ShellStorage as K, ShellRequest as Kn, Each as Kr, RuntimeErrorSource as Kt, AudioSinkOutput as L, AnimationService as Ln, ControlledOptions as Lr, CommandEntry as Lt, PresenceProps as M, AudioSample as Mn, Channel as Mr, ShellHistoryOptions as Mt, RouterOutlet as N, AudioService as Nn, Define as Nr, createShellHistory as Nt, FindService as O, parseUrl as On, ChannelRegistryHandle as Or, WorkerApp as Ot, AudioElementLike as P, AudioState as Pn, Inject as Pr, ActionCause as Pt, OpfsStorage as Q, observeColorScheme as Qn, MutateOptions as Qr, GessoRuntimeOptions as Qt, MediaSessionLike as R, SpringOptions as Rn, ControlledValue as Rr, ConsoleEntry as Rt, EditingProxySink as S, RouteTarget as Sn, OverlayService as Sr, createSyncApp as St, ScrollService as T, RouteParams as Tn, pick as Tr, CreateAppOptions as Tt, PersistedOptions as U, ShellFileResult as Un, Show as Ur, UiTreeNode as Ut, InspectionService as V, ShellFile as Vn, themeTokenCell as Vr, FrameEntry as Vt, PersistedState as W, ShellFileType as Wn, ShowProps as Wr, UiTreeSnapshot as Wt, OpfsDirectory as X, ColorScheme as Xn, debounced as Xr, FramePhaseTimings as Xt, IndexedDbStorageOptions as Y, ShellStorageResult as Yn, each as Yr, FrameMetrics as Yt, OpfsFileHandle as Z, ColorSchemePreference as Zn, throttled as Zr, GessoRuntime as Zt, renderRoot as _, DeriveOptions as _i, OutletProps as _n, ComponentHost as _r, ShellLocalStore as _t, UiRole as a, resource as ai, FontFamilyDeclaration as an, UiPropOrigin as ar, classifyStorageError as at, SemanticsMirrorSink as b, RouteGuard as bn, OverlayPlacement as br, GessoApp as bt, UiSemanticsPatch as c, FanCell as ci, FontService as cn, UiStreamReport as cr, storageReadValue as ct, markNow as d, FanOutOptions as di, RouteAnswer as dn, formatNodePath as dr, UndoableOptions as dt, mutate as ei, RuntimeInput as en, NodePathTarget as er, OpfsWritable as et, measureSpan as f, fanOut as fi, RouteMatch as fn, formatNodeReport as fr, undoable as ft, RenderWorkerError as g, computed as gi, RouteState as gn, ComponentHostResolver as gr, rememberedDirectory as gt, RenderWorkerApp as h, ReadSource as hi, RouterService as hn, printPropValue as hr, UndoTransaction as ht, UI_SEMANTIC_STATES as i, ResourceStatus as ii, FontFaceLike as in, UiOwnerReport as ir, StorageRead as it, Presence as j, AudioRequest as jn, requirePlainData as jr, ShellHistoryMode as jt, observeMediaQuery as k, AudioAction as kn, createChannelRegistry as kr, WorkerAppOptions as kt, UiSemanticsRecord$1 as l, FanKey as li, MediaOptions as ln, describeStream as lr, UndoShortcutOptions as lt, setPerformanceMarks$1 as m, ComputedOptions as mi, RouterRoutes as mn, formatStream as mr, UndoStackOptions as mt, MARK_PREFIX as n, ResourceOptions as ni, UiFramePhase as nn, UiNodeReport as nr, StorageAdapter as nt, UiSemanticState as o, SelectOptions as oi, FontFamilyStatus as on, UiPropReport as or, storageErrorMessage as ot, performanceMarksEnabled as p, ComputedCell as pi, RouterHistorySink as pn, formatSourceLocation as pr, UndoStack as pt, ShellStorageOptions as q, ShellService as qn, EachKey as qr, RuntimeToShellMessage as qt, UI_ROLES as r, ResourceState as ri, FontFaceDeclaration as rn, UiOwnerInput as rr, StorageOutcome as rt, UiSemanticsMap$1 as s, select as si, FontHost as sn, UiSemanticsReport as sr, storageReadFailure as st, EditingState$1 as t, Resource as ti, UI_FRAME_PHASES as tn, UiEnvironmentReport as tr, MemoryStorage as tt, markInstant as u, FanOut as ui, MediaService as un, formatAge as ur, registerUndoShortcuts as ut, EditingMirrorTarget as v, Equality as vi, RouteContext as vn, OverlayLayer as vr, performShellStorage as vt, FocusService as w, to as wn, structurallyEqual as wr, WebMcpChoice as wt, EditingProxy as x, RouteOptions as xn, OverlayRect as xr, GessoAppOptions as xt, SemanticsMirror as y, derive as yi, RouteDefinition as yn, OverlayEntry as yr, shellStorageDenied as yt, audioClock as z, UiDuration as zn, controlled as zr, DevtoolsEvent as zt };
8992
- //# sourceMappingURL=index-BENndtaH.d.ts.map
9339
+ export { OpfsStorageOptions as $, BoundStream as $n, ThemeTokenCell as $r, RendererChoice as $t, observeReducedMotion as A, DeriveOptions as Ai, AudioMetadata as An, OverlayRect as Ar, ShellHistory as At, InspectionHost as B, UiEasingChoice as Bn, findUnplainPath as Br, DevtoolsRequest as Bt, writeClipboard as C, FanOut as Ci, route as Cn, StartingInputsByName as Cr, GessoAppBuilder as Ct, TextService as D, ComputedOptions as Di, formatUrl as Dn, OverlayScopeProps as Dr, AppLogicEndpoint as Dt, EditingService as E, ComputedCell as Ei, buildPath as En, OverlayScope as Er, createApp as Et, AudioSink as F, AudioStatus as Fn, pick as Fr, ActionEntry as Ft, persisted as G, ShellRecentFile as Gn, Input as Gr, treeText as Gt, FrameService as H, ShellFileRequest as Hn, Channel as Hr, PatchEntry as Ht, AudioSinkOptions as I, AnimateOptions as In, pickKeys as Ir, ChannelErrorEntry as It, IndexedDbStorage as J, ShellStorageOp as Jn, SharedValuesKey as Jr, ShellToRuntimeMessage as Jt, ShellStorage as K, ShellRequest as Kn, Output as Kr, RuntimeErrorSource as Kt, AudioSinkOutput as L, AnimationService as Ln, ChannelRegistration as Lr, CommandEntry as Lt, PresenceProps as M, derive as Mi, AudioSample as Mn, OverlayService as Mr, ShellHistoryOptions as Mt, RouterOutlet as N, AudioService as Nn, createComponent as Nr, createShellHistory as Nt, FindService as O, ReadSource as Oi, parseUrl as On, OverlayEntry as Or, WorkerApp as Ot, AudioElementLike as P, AudioState as Pn, structurallyEqual as Pr, ActionCause as Pt, OpfsStorage as Q, observeColorScheme as Qn, controlled as Qr, GessoRuntimeOptions as Qt, MediaSessionLike as R, SpringOptions as Rn, ChannelRegistryHandle as Rr, ConsoleEntry as Rt, EditingProxySink as S, FanKey as Si, RouteTarget as Sn, StartingInputsProps as Sr, createSyncApp as St, ScrollService as T, fanOut as Ti, RouteParams as Tn, StartingInputsRecord as Tr, CreateAppOptions as Tt, PersistedOptions as U, ShellFileResult as Un, Define as Ur, UiTreeNode as Ut, InspectionService as V, ShellFile as Vn, requirePlainData as Vr, FrameEntry as Vt, PersistedState as W, ShellFileType as Wn, Inject as Wr, UiTreeSnapshot as Wt, OpfsDirectory as X, ColorScheme as Xn, ControlledOptions as Xr, FramePhaseTimings as Xt, IndexedDbStorageOptions as Y, ShellStorageResult as Yn, sharedValue as Yr, FrameMetrics as Yt, OpfsFileHandle as Z, ColorSchemePreference as Zn, ControlledValue as Zr, GessoRuntime as Zt, renderRoot as _, ResourceStatus as _i, OutletProps as _n, ComponentHostResolver as _r, ShellLocalStore as _t, UiRole as a, Each as ai, FontFamilyDeclaration as an, UiOwnerReport as ar, classifyStorageError as at, SemanticsMirrorSink as b, select as bi, RouteGuard as bn, liveInput as br, GessoApp as bt, UiSemanticsPatch as c, each as ci, FontService as cn, UiSemanticsReport as cr, storageReadValue as ct, markNow as d, MutateOptions as di, RouteAnswer as dn, formatAge as dr, UndoableOptions as dt, themeTokenCell as ei, RuntimeInput as en, NodePathTarget as er, OpfsWritable as et, measureSpan as f, Mutation as fi, RouteMatch as fn, formatNodePath as fr, undoable as ft, RenderWorkerError as g, ResourceState as gi, RouteState as gn, printPropValue as gr, rememberedDirectory as gt, RenderWorkerApp as h, ResourceOptions as hi, RouterService as hn, formatStream as hr, UndoTransaction as ht, UI_SEMANTIC_STATES as i, show as ii, FontFaceLike as in, UiOwnerInput as ir, StorageRead as it, Presence as j, Equality as ji, AudioRequest as jn, OverlayScopeKey as jr, ShellHistoryMode as jt, observeMediaQuery as k, computed as ki, AudioAction as kn, OverlayPlacement as kr, WorkerAppOptions as kt, UiSemanticsRecord$1 as l, debounced as li, MediaOptions as ln, UiStreamReport as lr, UndoShortcutOptions as lt, setPerformanceMarks$1 as m, Resource as mi, RouterRoutes as mn, formatSourceLocation as mr, UndoStackOptions as mt, MARK_PREFIX as n, Show as ni, UiFramePhase as nn, UiInteractionReport as nr, StorageAdapter as nt, UiSemanticState as o, EachKey as oi, FontFamilyStatus as on, UiPropOrigin as or, storageErrorMessage as ot, performanceMarksEnabled as p, mutate as pi, RouterHistorySink as pn, formatNodeReport as pr, UndoStack as pt, ShellStorageOptions as q, ShellService as qn, SharedValues as qr, RuntimeToShellMessage as qt, UI_ROLES as r, ShowProps as ri, FontFaceDeclaration as rn, UiNodeReport as rr, StorageOutcome as rt, UiSemanticsMap$1 as s, EachProps as si, FontHost as sn, UiPropReport as sr, storageReadFailure as st, EditingState$1 as t, bind as ti, UI_FRAME_PHASES as tn, UiEnvironmentReport as tr, MemoryStorage as tt, markInstant as u, throttled as ui, MediaService as un, describeStream as ur, registerUndoShortcuts as ut, EditingMirrorTarget as v, resource as vi, RouteContext as vn, ComponentHost as vr, performShellStorage as vt, FocusService as w, FanOutOptions as wi, to as wn, StartingInputsKey as wr, WebMcpChoice as wt, EditingProxy as x, FanCell as xi, RouteOptions as xn, StartingInputs as xr, GessoAppOptions as xt, SemanticsMirror as y, SelectOptions as yi, RouteDefinition as yn, OverlayLayer as yr, shellStorageDenied as yt, audioClock as z, UiDuration as zn, createChannelRegistry as zr, DevtoolsEvent as zt };
9340
+ //# sourceMappingURL=index-DocVauCS.d.ts.map