gesso-framework 0.6.30 → 0.7.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/{FunctionComponent-CHtojpp7.d.ts → FunctionComponent-Czkex8fp.d.ts} +358 -114
  3. package/dist/{serveChannels-BlEag7WU.js → WorkerPorts-m_hLRoPj.js} +8 -240
  4. package/dist/WorkerPorts-m_hLRoPj.js.map +1 -0
  5. package/dist/agent/index.d.ts +53 -2
  6. package/dist/agent/index.js +5 -4
  7. package/dist/agent/index.js.map +1 -1
  8. package/dist/app-De3z58x7.js +638 -0
  9. package/dist/app-De3z58x7.js.map +1 -0
  10. package/dist/computed-_cYcdczA.js +577 -0
  11. package/dist/computed-_cYcdczA.js.map +1 -0
  12. package/dist/createComponent-DJads88q.js +47 -0
  13. package/dist/createComponent-DJads88q.js.map +1 -0
  14. package/dist/{index-DZbSb8IN.d.ts → index-BENndtaH.d.ts} +222 -96
  15. package/dist/index.d.ts +4 -5
  16. package/dist/index.js +440 -6645
  17. package/dist/index.js.map +1 -1
  18. package/dist/jsx/jsx-runtime.d.ts +8 -5
  19. package/dist/jsx/jsx-runtime.js +15 -6
  20. package/dist/jsx/jsx-runtime.js.map +1 -1
  21. package/dist/{persisted-fUzIU8FZ.js → persisted-8meJmsOh.js} +4 -576
  22. package/dist/persisted-8meJmsOh.js.map +1 -0
  23. package/dist/remote/index.d.ts +2 -2
  24. package/dist/remote/index.js +2 -1
  25. package/dist/remote/index.js.map +1 -1
  26. package/dist/{remote-BoB8zh7z.js → remote-B4bjdTzg.js} +19 -4
  27. package/dist/remote-B4bjdTzg.js.map +1 -0
  28. package/dist/render-cydQ10Nd.js +6795 -0
  29. package/dist/render-cydQ10Nd.js.map +1 -0
  30. package/dist/serveChannels-DReCmRxO.js +241 -0
  31. package/dist/serveChannels-DReCmRxO.js.map +1 -0
  32. package/dist/{createComponent-3n1ZSql8.js → show-D0MevHaV.js} +2 -46
  33. package/dist/show-D0MevHaV.js.map +1 -0
  34. package/dist/{ui-CHtNccR8.d.ts → tools-BFBwuinE.d.ts} +351 -8
  35. package/dist/{webmcp-CdDq2nzS.js → webmcp-D7IlA0fu.js} +3 -3
  36. package/dist/webmcp-D7IlA0fu.js.map +1 -0
  37. package/dist/worker/index.d.ts +3 -4
  38. package/dist/worker/index.js +5 -3
  39. package/dist/worker/index.js.map +1 -1
  40. package/package.json +2 -2
  41. package/dist/ChannelProtocol-ByNoHujM.d.ts +0 -247
  42. package/dist/app-Yig59Ygf.js +0 -326
  43. package/dist/app-Yig59Ygf.js.map +0 -1
  44. package/dist/createComponent-3n1ZSql8.js.map +0 -1
  45. package/dist/persisted-fUzIU8FZ.js.map +0 -1
  46. package/dist/remote-BoB8zh7z.js.map +0 -1
  47. package/dist/serveChannels-BlEag7WU.js.map +0 -1
  48. package/dist/webmcp-CdDq2nzS.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ //#region src/metadata.ts
2
+ const metadataStore = /* @__PURE__ */ new WeakMap();
3
+ function getComponentMetadata(constructor) {
4
+ let metadata = metadataStore.get(constructor);
5
+ if (metadata === void 0) {
6
+ metadata = {
7
+ tag: constructor.name,
8
+ inputs: /* @__PURE__ */ new Set(),
9
+ states: /* @__PURE__ */ new Set(),
10
+ injects: /* @__PURE__ */ new Map(),
11
+ channels: /* @__PURE__ */ new Map()
12
+ };
13
+ metadataStore.set(constructor, metadata);
14
+ }
15
+ return metadata;
16
+ }
17
+ //#endregion
18
+ //#region src/createComponent.ts
19
+ /**
20
+ * Creates a ComponentElement for use as a child of a UiElement.
21
+ *
22
+ * Column(
23
+ * createComponent(Counter, { label: 'Count' }),
24
+ * createComponent(TodoItem, { todo }, todo.id)
25
+ * )
26
+ *
27
+ * The component may be a class extending Component or a function
28
+ * `(props, ctx) => UiChild`. Props are typed from the component: a
29
+ * class's `input()` fields, or a function's `Inputs<P>` parameter. A
30
+ * misspelled prop, a value of the wrong type, and a missing required
31
+ * prop are compile errors; props may be omitted only when none is
32
+ * required.
33
+ */
34
+ function createComponent(component, ...args) {
35
+ const [props, key] = args;
36
+ return {
37
+ kind: "component",
38
+ tag: getComponentMetadata(component).tag,
39
+ component,
40
+ props: props ?? {},
41
+ key
42
+ };
43
+ }
44
+ //#endregion
45
+ export { getComponentMetadata as n, createComponent as t };
46
+
47
+ //# sourceMappingURL=createComponent-DJads88q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createComponent-DJads88q.js","names":[],"sources":["../src/metadata.ts","../src/createComponent.ts"],"sourcesContent":["export const COMPONENT_METADATA_KEY = Symbol('gesso:component:metadata');\n\nexport interface ComponentMetadata {\n tag: string;\n inputs: Set<string>;\n states: Set<string>;\n injects: Map<string, Function>;\n /** Property name → the channel token it resolves to (`@Channel`). */\n channels: Map<string, { name: string }>;\n}\n\nconst metadataStore = new WeakMap<Function, ComponentMetadata>();\n\nexport function getComponentMetadata(constructor: Function): ComponentMetadata {\n let metadata = metadataStore.get(constructor);\n if (metadata === undefined) {\n metadata = { tag: constructor.name, inputs: new Set(), states: new Set(), injects: new Map(), channels: new Map() };\n metadataStore.set(constructor, metadata);\n }\n return metadata;\n}\n\nexport function hasComponentMetadata(constructor: Function): boolean {\n return metadataStore.has(constructor);\n}\n","import type { ComponentElement } from './ComponentElement';\nimport type { ComponentArgs, ComponentProps, ComponentType } from './FunctionComponent';\nimport { getComponentMetadata } from './metadata';\n\n/**\n * Creates a ComponentElement for use as a child of a UiElement.\n *\n * Column(\n * createComponent(Counter, { label: 'Count' }),\n * createComponent(TodoItem, { todo }, todo.id)\n * )\n *\n * The component may be a class extending Component or a function\n * `(props, ctx) => UiChild`. Props are typed from the component: a\n * class's `input()` fields, or a function's `Inputs<P>` parameter. A\n * misspelled prop, a value of the wrong type, and a missing required\n * prop are compile errors; props may be omitted only when none is\n * required.\n */\nexport function createComponent<C extends ComponentType>(\n component: C,\n ...args: ComponentArgs<C>\n): ComponentElement<ComponentProps<C>> {\n const [props, key] = args as [ComponentProps<C> | undefined, string | number | undefined];\n const metadata = getComponentMetadata(component);\n return {\n kind: 'component',\n tag: metadata.tag,\n component,\n props: (props ?? {}) as ComponentProps<C>,\n key\n };\n}\n"],"mappings":";AAWA,MAAM,gCAAgB,IAAI,QAAqC;AAE/D,SAAgB,qBAAqB,aAA0C;CAC7E,IAAI,WAAW,cAAc,IAAI,WAAW;CAC5C,IAAI,aAAa,KAAA,GAAW;EAC1B,WAAW;GAAE,KAAK,YAAY;GAAM,wBAAQ,IAAI,IAAI;GAAG,wBAAQ,IAAI,IAAI;GAAG,yBAAS,IAAI,IAAI;GAAG,0BAAU,IAAI,IAAI;EAAE;EAClH,cAAc,IAAI,aAAa,QAAQ;CACzC;CACA,OAAO;AACT;;;;;;;;;;;;;;;;;;ACDA,SAAgB,gBACd,WACA,GAAG,MACkC;CACrC,MAAM,CAAC,OAAO,OAAO;CAErB,OAAO;EACL,MAAM;EACN,KAHe,qBAAqB,SAGxB,CAAC,CAAC;EACd;EACA,OAAQ,SAAS,CAAC;EAClB;CACF;AACF"}
@@ -1,56 +1,7 @@
1
- import { f as ChannelToken, m as CommandMap, o as Patch, p as Command, r as ChannelPort } from "./ChannelProtocol-ByNoHujM.js";
2
- import { E as WorkerHandle, s as AgentConfirmation, t as UiHost, y as ChannelSource } from "./ui-CHtNccR8.js";
3
- import { C as InternalState, T as Component, a as ComponentType, c as Inputs, g as OutputCell, h as InputCell, i as ComponentProps, n as ComponentArgs, r as ComponentContext, u as ChannelReplica, v as ReadableCell } from "./FunctionComponent-CHtojpp7.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-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";
4
3
  import { BehaviorSubject, Observable, Subscription } from "rxjs";
5
- import { AnimatedCell, AnimationDriver, CanvasHost, CaretRect, ComponentLikeElement, ComponentResolver, EditingState, EditingState as EditingState$1, FocusOptions, IconRasterizer, ImageResolver, LayoutExplanation, LayoutInspector, MARK_PREFIX, MotionStateInput, MotionTiming, Reactive, RendererBackend, Size, 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, UiPointerController, UiPointerDevice, UiReducedMotionPolicy, UiRole, UiScrollability, UiSelectionController, UiSemanticState, UiSemanticsAction, UiSemanticsMap, UiSemanticsMap as UiSemanticsMap$1, UiSemanticsPatch, UiSemanticsRecord, UiSemanticsRecord as UiSemanticsRecord$1, UiSemanticsUpdate, UiShortcutRegistry, UiSpringSpec, UiSpringToken, UiTextPosition, UiThemeExtension, UiTouchScroller, UiWheelController, VideoClock, VideoResolver, markInstant, markNow, measureSpan, performanceMarksEnabled, setPerformanceMarks as setPerformanceMarks$1 } from "gesso-core";
6
- //#region src/service/ServiceRegistry.d.ts
7
- /**
8
- * The runtime services a component may inject.
9
- *
10
- * A service is a plain class the runtime constructs once and hands to
11
- * whoever asks: the clipboard and window (`ShellService`), overlays,
12
- * focus, find, media, animation. They are not application state and
13
- * they never cross a thread — they hold a `UiNode`, an `ImageResolver`,
14
- * decoded bitmaps, a focus manager — so there is no replica, no patch
15
- * and no wire format anywhere near them.
16
- *
17
- * That is the whole difference from what used to be here. Application
18
- * state crosses the barrier and is declared as a channel; a service
19
- * stays on the render thread and is simply called. Both used to be
20
- * `Store`, and the single name hid which of the two rules applied.
21
- */
22
- declare class ServiceRegistry {
23
- private readonly services;
24
- /** Constructs and registers a service, once. */
25
- register<T extends object>(ServiceClass: new () => T): T;
26
- /**
27
- * Points an existing service at a replacement class of the same
28
- * name, keeping the instance (the HMR).
29
- *
30
- * A registry is keyed by the class object, which is the right key
31
- * for every purpose but one: replacing a module produces a new class
32
- * object, so a component from the replaced module injects a class
33
- * the registry has never seen even though a service of that name is
34
- * sitting in it. Re-keying is what lets the tree be rebuilt from new
35
- * code while the service it depends on carries on holding what it
36
- * was holding.
37
- *
38
- * **The instance keeps the behaviour it was constructed with.** It
39
- * was built from the old class and its methods are the old code, so
40
- * a change to a service's own body needs a full reload to take
41
- * effect. State survives; behaviour does not. That is the trade
42
- * every hot-replacement system makes, and pretending otherwise would
43
- * be worse than saying it.
44
- *
45
- * Returns false when nothing of that name was registered, which
46
- * means the caller is looking at a genuinely new service rather than
47
- * a replacement.
48
- */
49
- adopt(ServiceClass: new () => object): boolean;
50
- get<T extends object>(ServiceClass: new () => T): T;
51
- has(ServiceClass: Function): boolean;
52
- }
53
- //#endregion
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";
54
5
  //#region src/derive.d.ts
55
6
  /** How `derive` decides that a new value is not a change. */
56
7
  type Equality<T> = 'reference' | 'structural' | ((a: T, b: T) => boolean);
@@ -989,25 +940,6 @@ declare function Channel(token: {
989
940
  name: string;
990
941
  }): PropertyDecorator;
991
942
  //#endregion
992
- //#region src/channel/ChannelRegistry.d.ts
993
- /**
994
- * The channels a runtime can hand to its components, by name.
995
- *
996
- * A replica is the only thing kept: whether the data lives in another
997
- * worker or on this very thread is settled by the port it was attached
998
- * with, and nothing above here can tell.
999
- */
1000
- declare class ChannelRegistry {
1001
- private readonly replicas;
1002
- /** Attaches a channel over `port`. */
1003
- attach<View extends object, Commands extends object>(token: ChannelToken<View, Commands>, port: ChannelPort): ChannelReplica<View, Commands>;
1004
- get<View extends object, Commands extends object>(token: ChannelToken<View, Commands>): ChannelReplica<View, Commands>;
1005
- has(token: ChannelToken<object, CommandMap>): boolean;
1006
- /** Every attached replica, for frame-aligned patch flushing. */
1007
- all(): ChannelReplica<object, CommandMap>[];
1008
- dispose(): void;
1009
- }
1010
- //#endregion
1011
943
  //#region src/channel/plainData.d.ts
1012
944
  /**
1013
945
  * Checks that a value can cross the barrier.
@@ -1124,28 +1056,6 @@ declare function pickKeys<T extends object, K extends keyof T>(source: Observabl
1124
1056
  //#region src/channel/structuralEquals.d.ts
1125
1057
  declare function structurallyEqual<T>(a: T, b: T): boolean;
1126
1058
  //#endregion
1127
- //#region src/ComponentElement.d.ts
1128
- /**
1129
- * Declarative representation of a component instance in the tree.
1130
- *
1131
- * ComponentElements are resolved by ComponentRenderer into plain
1132
- * UiElement trees before being passed to UiGraphBuilder.
1133
- */
1134
- interface ComponentElement<P = Record<string, unknown>> {
1135
- readonly kind: 'component';
1136
- readonly tag: string;
1137
- /** The class or function to mount. */
1138
- readonly component: ComponentType;
1139
- readonly props: P;
1140
- readonly key?: string | number;
1141
- }
1142
- declare function isComponentElement(value: unknown): value is ComponentElement;
1143
- /**
1144
- * Anything the framework accepts as a child: a runtime element, an
1145
- * observable stream of elements, or a component definition.
1146
- */
1147
- type FrameworkChild = UiChild | ComponentElement;
1148
- //#endregion
1149
1059
  //#region src/createComponent.d.ts
1150
1060
  /**
1151
1061
  * Creates a ComponentElement for use as a child of a UiElement.
@@ -1440,6 +1350,13 @@ declare class ComponentHost<P extends Record<string, unknown> = Record<string, u
1440
1350
  private createInputRecord;
1441
1351
  private createContext;
1442
1352
  private wireInputs;
1353
+ /**
1354
+ * What the parent most recently supplied for each input, as given:
1355
+ * a value, an element or a stream, whether or not the component has
1356
+ * read it yet. For a tool reading the tree, such as the inspector's
1357
+ * owner report; nothing here changes it.
1358
+ */
1359
+ suppliedInputs(): ReadonlyMap<string, unknown>;
1443
1360
  /**
1444
1361
  * Connects one input cell to whatever the parent supplied.
1445
1362
  *
@@ -1562,6 +1479,13 @@ interface UiNodeReport {
1562
1479
  readonly semantics?: UiSemanticsReport;
1563
1480
  /** `formatExplanation` of the node's layout, which is L8's answer. */
1564
1481
  readonly explanation: string;
1482
+ /**
1483
+ * Where the element was written, when it was compiled for
1484
+ * development. The one part of the report that is a handle after
1485
+ * all: it names a line an editor can open, and an owner's `usedAt`
1486
+ * names the line that used the component around it.
1487
+ */
1488
+ readonly source?: UiSourceLocation;
1565
1489
  }
1566
1490
  /** A node under the inspected one at the pointer. */
1567
1491
  interface UiBeneathReport {
@@ -1576,7 +1500,21 @@ interface UiOwnerReport {
1576
1500
  /** The `@Define` tag, else the class or function name. */
1577
1501
  readonly name: string;
1578
1502
  readonly anchorId: string;
1503
+ /** Where the component was used, when compiled for development. */
1504
+ readonly usedAt?: UiSourceLocation;
1505
+ /**
1506
+ * What its parent supplied for each input, as far as plain data can
1507
+ * say: a word, a number or a flag as it is, and an element (a slot the
1508
+ * parent filled) as `{ element: true }`. Handlers, data objects and
1509
+ * streams with no current value are left out. What a design tool
1510
+ * needs to write a component's use back as code: `label="Email"`.
1511
+ */
1512
+ readonly inputs?: Readonly<Record<string, UiOwnerInput>>;
1579
1513
  }
1514
+ /** One input's value in an owner report; see `UiOwnerReport.inputs`. */
1515
+ type UiOwnerInput = string | number | boolean | null | {
1516
+ readonly element: true;
1517
+ };
1580
1518
  /** As much of a node as a one-line path needs. */
1581
1519
  interface NodePathTarget {
1582
1520
  /** `UiNodeType`, as its string value. */
@@ -1704,6 +1642,8 @@ interface UiSemanticsReport {
1704
1642
  */
1705
1643
  declare function printPropValue(value: unknown): string;
1706
1644
  /** The report as text, for a console or a test failure. */
1645
+ /** `file:line:column`, the form editors and terminals turn into a link. */
1646
+ declare function formatSourceLocation(source: UiSourceLocation): string;
1707
1647
  declare function formatNodeReport(report: UiNodeReport): string;
1708
1648
  //#endregion
1709
1649
  //#region src/app/colorScheme.d.ts
@@ -1956,6 +1896,7 @@ declare class ShellService {
1956
1896
  private leaving;
1957
1897
  private readonly scheme;
1958
1898
  private readonly contrastState;
1899
+ private readonly pointerState;
1959
1900
  private readonly activeState;
1960
1901
  private readonly insets;
1961
1902
  private readonly isFullscreen;
@@ -2015,6 +1956,13 @@ declare class ShellService {
2015
1956
  * );
2016
1957
  */
2017
1958
  readonly contrast: ReadableCell<UiContrast>;
1959
+ /**
1960
+ * What the person points with: `coarse` on a touch screen, `fine` with
1961
+ * a mouse or a trackpad. Fine until a shell says otherwise. The
1962
+ * runtime also provides it at the root (`UiEnvironmentKeys.pointer`),
1963
+ * where controls read it; this is for the application's own choices.
1964
+ */
1965
+ readonly pointer: ReadableCell<UiPointer>;
2018
1966
  /**
2019
1967
  * Whether the window is the one the person is using: shown, and holding
2020
1968
  * the keyboard focus. False while it is behind another window,
@@ -2064,6 +2012,8 @@ declare class ShellService {
2064
2012
  /** Called by the runtime when the shell reports whether the window is active; not for applications. */
2065
2013
  applyWindowActive(active: boolean): void;
2066
2014
  /** Called by the runtime when the shell reports the contrast; not for applications. */
2015
+ /** Called by the runtime when the shell reports what the person points with. */
2016
+ applyPointer(pointer: UiPointer): void;
2067
2017
  applyContrast(contrast: UiContrast): void;
2068
2018
  /**
2069
2019
  * Called by the runtime when the shell reports the platform's insets.
@@ -3140,6 +3090,8 @@ interface MediaOptions {
3140
3090
  resolver?: ImageResolver;
3141
3091
  /** Where an `Icon` finds its raster. */
3142
3092
  rasterizer?: IconRasterizer;
3093
+ /** Where an `Image` reads an SVG source. */
3094
+ vectors?: SvgResolver;
3143
3095
  /** Where a `Video` finds its decoder. */
3144
3096
  videoResolver?: VideoResolver;
3145
3097
  }
@@ -3162,6 +3114,7 @@ interface MediaOptions {
3162
3114
  declare class MediaService {
3163
3115
  private imageResolver;
3164
3116
  private iconRasterizer;
3117
+ private svgResolver;
3165
3118
  private videoResolver;
3166
3119
  /**
3167
3120
  * Whether each of the three is the service's to dispose.
@@ -3177,6 +3130,10 @@ declare class MediaService {
3177
3130
  private ownsRasterizer;
3178
3131
  private ownsVideoResolver;
3179
3132
  get images(): ImageResolver;
3133
+ /** Where an `Image` reads an SVG source, which it draws as vectors rather than decoding. */
3134
+ get vectors(): SvgResolver;
3135
+ /** The same seam, for SVG. A read file holds no pixels, so there is nothing to dispose either way. */
3136
+ setSvgResolver(resolver: SvgResolver): void;
3180
3137
  get icons(): IconRasterizer;
3181
3138
  /**
3182
3139
  * Built on first use rather than in the field, because a decoder is
@@ -3478,6 +3435,8 @@ declare class GessoRuntime {
3478
3435
  readonly inspector: LayoutInspector;
3479
3436
  private readonly resolver;
3480
3437
  private readonly graph;
3438
+ /** The properties `InspectionService.preview` is drawing over, by node; gone with the node. */
3439
+ private readonly previewed;
3481
3440
  private readonly engine;
3482
3441
  private readonly builder;
3483
3442
  private readonly scheduler;
@@ -3653,6 +3612,8 @@ declare class GessoRuntime {
3653
3612
  private audioListener;
3654
3613
  private caretTimer;
3655
3614
  private scrollbarTimer;
3615
+ /** Pending frame the renderer asked for though nothing changes; see \`UiRenderer.nextRepaint\`. */
3616
+ private rendererTimer;
3656
3617
  private inspectorTimer;
3657
3618
  /** Pending wake-up for an animation that does not want every frame. */
3658
3619
  private animationTimer;
@@ -3874,6 +3835,21 @@ declare class GessoRuntime {
3874
3835
  * request produced it.
3875
3836
  */
3876
3837
  private sendTree;
3838
+ /**
3839
+ * The theme a node sees, by id, or with none named the theme the
3840
+ * application's outermost content sees: from the application's root,
3841
+ * down through every node with exactly one child, which passes the
3842
+ * wrappers an application usually puts its theme on. Undefined before
3843
+ * the root is built, or for an id the tree does not hold.
3844
+ */
3845
+ themeAt(id?: string): UiTheme | undefined;
3846
+ /**
3847
+ * `InspectionService.preview`: a write over the node's own value, as
3848
+ * a modifier's is, from a source of its own placed after every
3849
+ * modifier, so it wins and ending it restores what was under it.
3850
+ */
3851
+ private previewProperty;
3852
+ private endPreviews;
3877
3853
  /** `inspectNode` for a node named by id, or null when the tree has no such node. */
3878
3854
  inspectNodeById(id: string): UiNodeReport | null;
3879
3855
  /**
@@ -4000,6 +3976,14 @@ declare class GessoRuntime {
4000
3976
  setColorScheme(scheme: ColorScheme): void;
4001
3977
  /** Whether the window is the one in use, passed straight to `ShellService`; see `ShellService.windowActive`. */
4002
3978
  setWindowActive(active: boolean): void;
3979
+ /**
3980
+ * What the person points with, as the shell reports it: kept on
3981
+ * `ShellService.pointer`, and provided at the root, so every theme in
3982
+ * the tree is turned for a finger on a touch device (`withPointer`)
3983
+ * without the application doing anything. A subtree that says
3984
+ * `pointer` itself keeps what it says.
3985
+ */
3986
+ setPointer(pointer: UiPointer): void;
4003
3987
  /** The contrast the platform asks for, passed straight to `ShellService`; see `ShellService.contrast`. */
4004
3988
  setContrast(contrast: UiContrast): void;
4005
3989
  /**
@@ -4104,6 +4088,7 @@ declare class GessoRuntime {
4104
4088
  */
4105
4089
  private pathOf;
4106
4090
  /** The components that rendered a node, nearest first. */
4091
+ private sourceReport;
4107
4092
  private ownersOf;
4108
4093
  private propsOf;
4109
4094
  /**
@@ -4592,6 +4577,13 @@ declare class GessoRuntime {
4592
4577
  * property change asks for. The engine says when the next change is
4593
4578
  * due; one pending timer marks a repaint for it.
4594
4579
  */
4580
+ /**
4581
+ * The renderer wants a frame though nothing changes: Canvas2D's kept
4582
+ * subtrees are drawn sharp once a zoom settles. One pending timer
4583
+ * marks the root for paint then, which leaves every kept thing as it
4584
+ * is; a frame before it that is still not settled asks again.
4585
+ */
4586
+ private scheduleRendererRepaint;
4595
4587
  private scheduleScrollbarFade;
4596
4588
  /**
4597
4589
  * The caret blinks, which needs frames no property change asks for.
@@ -4608,7 +4600,7 @@ declare class GessoRuntime {
4608
4600
  * for; one pending timer marks a repaint for the next step due.
4609
4601
  */
4610
4602
  private scheduleInspectorRepaint;
4611
- /** Hands the listener the hovered node's cursor, when it changed. */
4603
+ /** Hands the listener the hovered node's cursor, when it changed: the arrow over a scrollbar, as a native one shows. */
4612
4604
  private sendCursor;
4613
4605
  /**
4614
4606
  * Hands the listener the pointer's scroll chain, when it changed.
@@ -4949,6 +4941,9 @@ type ShellToRuntimeMessage = {
4949
4941
  } | {
4950
4942
  type: 'contrast';
4951
4943
  contrast: UiContrast;
4944
+ } | {
4945
+ type: 'pointer';
4946
+ pointer: UiPointer;
4952
4947
  } |
4953
4948
  /** Whether the window is shown and holds the focus; once at start-up and on every change. See `ShellService.windowActive`. */
4954
4949
  {
@@ -6421,6 +6416,8 @@ declare class GessoAppBuilder {
6421
6416
  private root;
6422
6417
  private readonly channelRegistrations;
6423
6418
  private readonly serviceRegistrations;
6419
+ /** The application's own agent tools (`useAgentTools`). */
6420
+ private readonly agentTools;
6424
6421
  private frameListener;
6425
6422
  private inspectListener;
6426
6423
  private devtoolsListener;
@@ -6462,6 +6459,8 @@ declare class GessoAppBuilder {
6462
6459
  * service.
6463
6460
  */
6464
6461
  useService(ServiceClass: new () => object): this;
6462
+ /** Offers an agent tools of the application's own; see `renderRoot(...).useAgentTools`. */
6463
+ useAgentTools(tools: readonly AgentToolDefinition[]): this;
6465
6464
  /**
6466
6465
  * Declares the app's routes, which is all it takes to make a
6467
6466
  * `RouterOutlet` in the tree resolve them. Mirrors
@@ -7626,6 +7625,78 @@ declare class FrameService {
7626
7625
  publish(metrics: FrameMetrics): void;
7627
7626
  }
7628
7627
  //#endregion
7628
+ //#region src/app/InspectionService.d.ts
7629
+ /**
7630
+ * What is on the screen, as a component can ask: the nodes under a
7631
+ * point, and what each one is.
7632
+ *
7633
+ * The inspector already answers both, for the devtools panel, from the
7634
+ * runtime's hit tester and its node report. A tool built in Gesso that
7635
+ * points at Gesso needs the same answers from inside the tree: a design
7636
+ * editor whose canvas holds live frames, where a click picks the box
7637
+ * under it instead of pressing it and says which line wrote it. So the
7638
+ * runtime puts them here, as it puts frames in `FrameService`.
7639
+ * Injected like any service: `ctx.inject(InspectionService)`.
7640
+ */
7641
+ declare class InspectionService {
7642
+ private host;
7643
+ /** Called by the runtime; not for components. */
7644
+ attach(host: InspectionHost): void;
7645
+ /**
7646
+ * Every node under a point, topmost first, in the coordinates a
7647
+ * pointer event carries: the one a press would reach, then each one
7648
+ * it is painted over. Empty before the first frame.
7649
+ */
7650
+ nodesAt(x: number, y: number): readonly UiNode[];
7651
+ /**
7652
+ * What the node is, as the inspector reports it: its box, its props,
7653
+ * the components that rendered it and, compiled for development, the
7654
+ * line that wrote it (`source`) and where each of those components
7655
+ * was used (`owners[].usedAt`).
7656
+ */
7657
+ inspect(node: UiNode): UiNodeReport;
7658
+ /**
7659
+ * Where the node is drawn, as `inspect(node).box` reports it, without
7660
+ * the rest of the report: for an editor that reads the boxes of many
7661
+ * nodes as its view moves (a minimap of a board of frames), where
7662
+ * building each node's props, owners and source was most of the cost.
7663
+ */
7664
+ box(node: UiNode): {
7665
+ readonly x: number;
7666
+ readonly y: number;
7667
+ readonly width: number;
7668
+ readonly height: number;
7669
+ };
7670
+ /**
7671
+ * Draws a node as though it declared `value` for `property`, until
7672
+ * the preview is ended or the node leaves the tree.
7673
+ *
7674
+ * What a design editor shows while a value is being chosen: a padding
7675
+ * dragged or a colour hovered in a list is drawn at once, on the
7676
+ * live tree, and only written to the source when the designer lets go.
7677
+ * It wins over the element's own value and over its modifiers, and
7678
+ * ending it restores whichever of those was there, inheritance
7679
+ * included. The name and value are a prop's, as JSX would write them.
7680
+ */
7681
+ preview(node: UiNode, property: string, value: unknown): void;
7682
+ /** Ends a preview of one property, or of every property previewed on the node. */
7683
+ endPreview(node: UiNode, property?: string): void;
7684
+ }
7685
+ /** What the runtime gives the service. */
7686
+ interface InspectionHost {
7687
+ nodesAt(x: number, y: number): readonly UiNode[];
7688
+ inspect(node: UiNode): UiNodeReport;
7689
+ /** The node's box alone, as `inspect` reports it. */
7690
+ box?(node: UiNode): {
7691
+ readonly x: number;
7692
+ readonly y: number;
7693
+ readonly width: number;
7694
+ readonly height: number;
7695
+ };
7696
+ preview?(node: UiNode, property: string, value: unknown): void;
7697
+ endPreview?(node: UiNode, property?: string): void;
7698
+ }
7699
+ //#endregion
7629
7700
  //#region src/app/videoClock.d.ts
7630
7701
  /**
7631
7702
  * A clip's position, taken from the sound playing beside it.
@@ -8701,6 +8772,13 @@ interface WorkerGlobal {
8701
8772
  * useChannel() calls always land before the shell's init message is
8702
8773
  * processed.
8703
8774
  */
8775
+ /** An error the render worker reported, as an application's `onError` hears it. */
8776
+ interface RenderWorkerError {
8777
+ readonly message: string;
8778
+ readonly stack?: string;
8779
+ /** Where it came from: a frame, a listener, the renderer, a channel, a message, or nothing that caught it. */
8780
+ readonly source: RuntimeErrorSource;
8781
+ }
8704
8782
  declare function renderRoot(root: FrameworkChild | ComponentType): RenderWorkerApp;
8705
8783
  declare class RenderWorkerApp {
8706
8784
  private readonly channelRegistrations;
@@ -8711,6 +8789,14 @@ declare class RenderWorkerApp {
8711
8789
  private root;
8712
8790
  private readonly host;
8713
8791
  private runtime;
8792
+ /** See `renderThemesWith`. */
8793
+ private renderThemes;
8794
+ /** See `loadModulesWith`. */
8795
+ private loadModule;
8796
+ /** The application's own agent tools (`useAgentTools`). */
8797
+ private readonly agentTools;
8798
+ /** What the application asked to hear of the errors this worker reports (`onError`). */
8799
+ private readonly errorListeners;
8714
8800
  /** Held so forwarded display refreshes can be handed to it. */
8715
8801
  private clock;
8716
8802
  private channels;
@@ -8728,6 +8814,11 @@ declare class RenderWorkerApp {
8728
8814
  * would be a bare sentence with nothing to look up.
8729
8815
  */
8730
8816
  private reportUncaught;
8817
+ /**
8818
+ * Tells the shell about an error, which shows it (the development
8819
+ * overlay), and every listener the application gave `onError`.
8820
+ */
8821
+ private reportError;
8731
8822
  /**
8732
8823
  * Replaces the application's root and rebuilds its tree, for hot
8733
8824
  * module replacement.
@@ -8752,6 +8843,24 @@ declare class RenderWorkerApp {
8752
8843
  * message it simply changes which root will be built.
8753
8844
  */
8754
8845
  reload(root: FrameworkChild | ComponentType, services?: readonly (new () => object)[]): void;
8846
+ /**
8847
+ * How `render_frame` loads a module an agent names, given its path from
8848
+ * the project root with a leading slash (`/mocks/Settings.tsx`). By
8849
+ * default it is imported from where the application is served, which
8850
+ * suits an application drawing its own modules. One whose modules are
8851
+ * served from somewhere else says where: a design editor serving the
8852
+ * project it designs from another folder.
8853
+ *
8854
+ * renderRoot(Editor).loadModulesWith(path => import(`/@fs${projectRoot}${path}`))
8855
+ */
8856
+ loadModulesWith(load: (path: string) => Promise<Record<string, unknown>>): this;
8857
+ /**
8858
+ * The themes an application designs in, asked on each call, when they
8859
+ * are not the one it is drawn in: a design editor's project's. They
8860
+ * are what `render_frame` draws in and `tokens_view` reports unless an
8861
+ * agent asks for the application's own; see `designedTheme`.
8862
+ */
8863
+ renderThemesWith(themes: () => DesignThemes): this;
8755
8864
  /**
8756
8865
  * Registers a channel.
8757
8866
  *
@@ -8777,6 +8886,23 @@ declare class RenderWorkerApp {
8777
8886
  * service.
8778
8887
  */
8779
8888
  useService(ServiceClass: new () => object): this;
8889
+ /**
8890
+ * Offers an agent tools of the application's own, beside its
8891
+ * channels' and its screen's: ones that answer with something other
8892
+ * than a view, such as a measurement or a composed picture. See
8893
+ * `AgentToolDefinition`. Called again, it adds to them.
8894
+ *
8895
+ * renderRoot(Editor).useAgentTools(editorTools);
8896
+ */
8897
+ useAgentTools(tools: readonly AgentToolDefinition[]): this;
8898
+ /**
8899
+ * Hears every error this worker reports to the shell: a frame that
8900
+ * threw, a listener, the renderer, a channel, anything uncaught. For
8901
+ * an application that shows errors itself, where they happen: a design
8902
+ * editor listing what is wrong with a mock rather than an overlay over
8903
+ * the editor, with the plugin's `overlay: false`.
8904
+ */
8905
+ onError(listener: (error: RenderWorkerError) => void): this;
8780
8906
  /**
8781
8907
  * Declares the app's routes, which is all it takes to make a
8782
8908
  * `RouterOutlet` in the tree resolve them.
@@ -8862,5 +8988,5 @@ declare class RenderWorkerApp {
8862
8988
  private initialize;
8863
8989
  }
8864
8990
  //#endregion
8865
- export { StorageAdapter as $, UiNodeReport as $n, mutate as $r, UiFramePhase as $t, Presence as A, AudioService as An, ChannelRegistry as Ar, createShellHistory as At, PersistedOptions as B, ShellFileResult as Bn, themeTokenCell as Br, UiTreeNode as Bt, FocusService as C, buildPath as Cn, pick as Cr, createApp as Ct, FindService as D, AudioMetadata as Dn, createChannelRegistry as Dr, ShellHistory as Dt, TextService as E, AudioAction as En, ChannelRegistryHandle as Er, WorkerAppOptions as Et, AudioSinkOptions as F, SpringOptions as Fn, Output as Fr, ConsoleEntry as Ft, IndexedDbStorage as G, ShellStorageOp as Gn, Each as Gr, ShellToRuntimeMessage as Gt, persisted as H, ShellRecentFile as Hn, Show as Hr, treeText as Ht, AudioSinkOutput as I, UiDuration as In, ControlledOptions as Ir, DevtoolsEvent as It, OpfsFileHandle as J, ColorSchemePreference as Jn, each as Jr, GessoRuntime as Jt, IndexedDbStorageOptions as K, ShellStorageResult as Kn, EachKey as Kr, FrameMetrics as Kt, MediaSessionLike as L, UiEasingChoice as Ln, ControlledValue as Lr, DevtoolsRequest as Lt, RouterOutlet as M, AudioStatus as Mn, Define as Mr, ActionEntry as Mt, AudioElementLike as N, AnimateOptions as Nn, Inject as Nr, ChannelErrorEntry as Nt, observeMediaQuery as O, AudioRequest as On, findUnplainPath as Or, ShellHistoryMode as Ot, AudioSink as P, AnimationService as Pn, Input as Pr, CommandEntry as Pt, MemoryStorage as Q, UiEnvironmentReport as Qn, Mutation as Qr, UI_FRAME_PHASES as Qt, audioClock as R, ShellFile as Rn, controlled as Rr, FrameEntry as Rt, writeClipboard as S, RouteParams as Sn, structurallyEqual as Sr, CreateAppOptions as St, EditingService as T, parseUrl as Tn, ChannelRegistration as Tr, WorkerApp as Tt, ShellStorage as U, ShellRequest as Un, ShowProps as Ur, RuntimeErrorSource as Ut, PersistedState as V, ShellFileType as Vn, bind as Vr, UiTreeSnapshot as Vt, ShellStorageOptions as W, ShellService as Wn, show as Wr, RuntimeToShellMessage as Wt, OpfsStorageOptions as X, BoundStream as Xn, throttled as Xr, RendererChoice as Xt, OpfsStorage as Y, observeColorScheme as Yn, debounced as Yr, GessoRuntimeOptions as Yt, OpfsWritable as Z, NodePathTarget as Zn, MutateOptions as Zr, RuntimeInput as Zt, EditingMirrorTarget as _, Equality as _i, RouteGuard as _n, OverlayService as _r, GessoApp as _t, UiRole as a, SelectOptions as ai, FontService as an, describeStream as ar, storageReadValue as at, EditingProxy as b, route as bn, FrameworkChild as br, GessoAppBuilder as bt, UiSemanticsPatch as c, FanKey as ci, RouteAnswer as cn, formatNodeReport as cr, UndoableOptions as ct, markNow as d, fanOut as di, RouterRoutes as dn, ComponentHostResolver as dr, UndoStackOptions as dt, Resource as ei, FontFaceDeclaration as en, UiOwnerReport as er, StorageOutcome as et, measureSpan as f, ComputedCell as fi, RouterService as fn, ComponentHost as fr, UndoTransaction as ft, renderRoot as g, DeriveOptions as gi, RouteDefinition as gn, OverlayRect as gr, shellStorageDenied as gt, RenderWorkerApp as h, computed as hi, RouteContext as hn, OverlayPlacement as hr, performShellStorage as ht, UI_SEMANTIC_STATES as i, resource as ii, FontHost as in, UiStreamReport as ir, storageReadFailure as it, PresenceProps as j, AudioState as jn, Channel as jr, ActionCause as jt, observeReducedMotion as k, AudioSample as kn, requirePlainData as kr, ShellHistoryOptions as kt, UiSemanticsRecord$1 as l, FanOut as li, RouteMatch as ln, formatStream as lr, undoable as lt, setPerformanceMarks$1 as m, ReadSource as mi, OutletProps as mn, OverlayEntry as mr, ShellLocalStore as mt, MARK_PREFIX as n, ResourceState as ni, FontFamilyDeclaration as nn, UiPropReport as nr, classifyStorageError as nt, UiSemanticState as o, select as oi, MediaOptions as on, formatAge as or, UndoShortcutOptions as ot, performanceMarksEnabled as p, ComputedOptions as pi, RouteState as pn, OverlayLayer as pr, rememberedDirectory as pt, OpfsDirectory as q, ColorScheme as qn, EachProps as qr, FramePhaseTimings as qt, UI_ROLES as r, ResourceStatus as ri, FontFamilyStatus as rn, UiSemanticsReport as rr, storageErrorMessage as rt, UiSemanticsMap$1 as s, FanCell as si, MediaService as sn, formatNodePath as sr, registerUndoShortcuts as st, EditingState$1 as t, ResourceOptions as ti, FontFaceLike as tn, UiPropOrigin as tr, StorageRead as tt, markInstant as u, FanOutOptions as ui, RouterHistorySink as un, printPropValue as ur, UndoStack as ut, SemanticsMirror as v, derive as vi, RouteOptions as vn, createComponent as vr, GessoAppOptions as vt, ScrollService as w, formatUrl as wn, pickKeys as wr, AppLogicEndpoint as wt, EditingProxySink as x, to as xn, isComponentElement as xr, WebMcpChoice as xt, SemanticsMirrorSink as y, ServiceRegistry as yi, RouteTarget as yn, ComponentElement as yr, createSyncApp as yt, FrameService as z, ShellFileRequest as zn, ThemeTokenCell as zr, PatchEntry as zt };
8866
- //# sourceMappingURL=index-DZbSb8IN.d.ts.map
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