gesso-framework 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # gesso-framework
2
2
 
3
+ ## 0.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 77195a4: Two more semantics properties, for a field that opens a list of suggestions. `controls` is a relation, like `activeDescendant`: the node this one shows or changes, such as the list a combobox's field has open, held on the record as that node's id and written by the mirror as `aria-controls` naming its element. `autocomplete` (`'list' | 'inline' | 'both'`, the new `UiAutocomplete`) says what a field offers as it's typed into, written as `aria-autocomplete`. The editing proxy writes both while a field has focus, so `EditingMirrorTarget.describe` takes the controlled element's DOM id after the active descendant's. `Combobox` uses them: its field controls the list while it's open, and its autocomplete is `list`.
8
+ - 6b71716: An overlay can open beside a part of its anchor: `anchorRect` on an overlay entry (and on `useOverlay`'s options), and the layout property of the same name, is a rectangle in the anchor's own coordinates that the entry is placed against, with the same flip and shift, and that it follows through scrolling and layout as it follows the anchor. It can be an Observable, so it moves without the entry opening again. `EditingService.caretRectOf(node, offset)` (and `UiEditingController.caretRectOf`) answers for a character other than the caret's, so a list opened by `@` sits under the `@` as the name is typed, and goes to the next line with it when it wraps. A point opened beside the caret stayed behind when the page scrolled.
9
+ - 581cf89: An open overlay now follows the theme of the place it was declared. The overlay layer read the theme, text style and content colour once, as the entry opened, so a dialog or menu open when the system turned dark, or when a theme the person chose arrived from another worker a moment after they opened it, stayed in the old theme over a page in the new one until it closed. Underneath, a modifier's `host.environment(key, of?)` and `host.onEnvironment(listener, of?)` can read and follow another node's environment, and an environment provided by a node whose own environment changed in the same frame is rebuilt in that frame.
10
+ - Updated dependencies [77195a4]
11
+ - Updated dependencies [6b71716]
12
+ - Updated dependencies [581cf89]
13
+ - Updated dependencies [13c096f]
14
+ - Updated dependencies [db7040b]
15
+ - gesso-core@0.5.1
16
+
3
17
  ## 0.5.0
4
18
 
5
19
  ### Minor Changes
@@ -2,7 +2,7 @@ import { f as ChannelToken, m as CommandMap, o as Patch, p as Command, r as Chan
2
2
  import { E as WorkerHandle, s as AgentConfirmation, t as UiHost, y as ChannelSource } from "./ui-U39HjNFA.js";
3
3
  import { S as InternalState, _ as ReadableCell, a as ComponentType, h as OutputCell, i as ComponentProps, l as ChannelReplica, m as InputCell, n as ComponentArgs, r as ComponentContext, s as Inputs, w as Component } from "./FunctionComponent-fYMdePtH.js";
4
4
  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, 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";
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
6
  //#region src/service/ServiceRegistry.d.ts
7
7
  /**
8
8
  * The runtime services a component may inject.
@@ -1115,6 +1115,13 @@ declare function createComponent<C extends ComponentType>(component: C, ...args:
1115
1115
  //#endregion
1116
1116
  //#region src/overlay/OverlayService.d.ts
1117
1117
  type OverlayPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
1118
+ /** A rectangle inside an anchor, from its border box's top left. */
1119
+ interface OverlayRect {
1120
+ readonly x: number;
1121
+ readonly y: number;
1122
+ readonly width: number;
1123
+ readonly height: number;
1124
+ }
1118
1125
  /**
1119
1126
  * One thing floating above the app: a menu, a tooltip, a dialog.
1120
1127
  *
@@ -1130,6 +1137,15 @@ interface OverlayEntry {
1130
1137
  readonly id: string;
1131
1138
  readonly content: UiChild;
1132
1139
  readonly anchor?: UiNode | null;
1140
+ /**
1141
+ * The part of `anchor` to open beside, in the anchor's own
1142
+ * coordinates: a character in a field, from
1143
+ * `EditingService.caretRectOf(field, offset)`. The entry follows the
1144
+ * anchor as it would without it, through scrolling and layout. It can
1145
+ * be a stream, so a list under a word being typed moves with the word
1146
+ * when it wraps to the next line, without being opened again.
1147
+ */
1148
+ readonly anchorRect?: Reactive<OverlayRect | undefined>;
1133
1149
  /** Default 'bottom'. */
1134
1150
  readonly placement?: OverlayPlacement;
1135
1151
  /** Gap between content and anchor. */
@@ -7528,12 +7544,17 @@ declare class EditingService {
7528
7544
  * scroll already applied: a popup placed under the caret adds the
7529
7545
  * node's position on screen and nothing else.
7530
7546
  *
7547
+ * `offset` asks about a caret at another character than the one the
7548
+ * caret is at: the start of the word being completed, so its list
7549
+ * stays put as the word grows. With an overlay's `anchorRect` and the
7550
+ * field as its anchor, the list follows the field from then on.
7551
+ *
7531
7552
  * Null when the node is not an editable, when it has not been laid
7532
7553
  * out yet, or before the runtime has wired the controller — all
7533
7554
  * three of which are "ask again next frame" rather than errors, and
7534
7555
  * all three of which happen during the frame a field first appears.
7535
7556
  */
7536
- caretRectOf(node: UiNode | null): CaretRect | null;
7557
+ caretRectOf(node: UiNode | null, offset?: number): CaretRect | null;
7537
7558
  /**
7538
7559
  * Selects from `anchor` to `focus` and focuses the field the focus is
7539
7560
  * in: within one field, or across the fields of an editing group (see
@@ -7764,7 +7785,7 @@ declare class EditingProxy {
7764
7785
  * the reason the field's semantics live here rather than on a second
7765
7786
  * element beside it.
7766
7787
  */
7767
- describe(record: UiSemanticsRecord | null, activeDescendant?: string): void;
7788
+ describe(record: UiSemanticsRecord | null, activeDescendant?: string, controls?: string): void;
7768
7789
  dispose(): void;
7769
7790
  /** Puts the element where the caret is, so the IME window opens there. */
7770
7791
  private position;
@@ -7826,10 +7847,11 @@ interface EditingMirrorTarget {
7826
7847
  readonly active: boolean;
7827
7848
  /**
7828
7849
  * Describes the focused editable on the proxy's element, or clears it.
7829
- * `activeDescendant` is the DOM id of the element its record's
7830
- * `activeDescendant` names, for `aria-activedescendant`.
7850
+ * `activeDescendant` and `controls` are the DOM ids of the elements
7851
+ * its record's `activeDescendant` and `controls` name, for
7852
+ * `aria-activedescendant` and `aria-controls`.
7831
7853
  */
7832
- describe(record: UiSemanticsRecord | null, activeDescendant?: string): void;
7854
+ describe(record: UiSemanticsRecord | null, activeDescendant?: string, controls?: string): void;
7833
7855
  /** Takes DOM focus back for the focused editable. */
7834
7856
  focus(): void;
7835
7857
  }
@@ -7897,7 +7919,7 @@ declare class SemanticsMirror {
7897
7919
  apply(update: UiSemanticsUpdate): void;
7898
7920
  dispose(): void;
7899
7921
  private upsert;
7900
- /** Hands the proxy the focused editable's record, with its active descendant's DOM id. */
7922
+ /** Hands the proxy the focused editable's record, with the DOM ids of its active descendant and what it controls. */
7901
7923
  private describeEditing;
7902
7924
  private createElement;
7903
7925
  /** Writes a record onto its element as ARIA, clearing what it no longer says. */
@@ -8189,5 +8211,5 @@ declare class RenderWorkerApp {
8189
8211
  private initialize;
8190
8212
  }
8191
8213
  //#endregion
8192
- export { StorageAdapter as $, UiOwnerReport as $n, ResourceOptions as $r, FontFaceDeclaration as $t, Presence as A, AudioState as An, Define as Ar, ActionCause as At, PersistedOptions as B, ShellFileType as Bn, Show as Br, UiTreeSnapshot as Bt, FocusService as C, formatUrl as Cn, ChannelRegistration as Cr, AppLogicEndpoint as Ct, FindService as D, AudioRequest as Dn, requirePlainData as Dr, ShellHistoryMode as Dt, TextService as E, AudioMetadata as En, findUnplainPath as Er, ShellHistory as Et, AudioSinkOptions as F, UiDuration as Fn, ControlledValue as Fr, DevtoolsEvent as Ft, IndexedDbStorage as G, ShellStorageResult as Gn, EachProps as Gr, FrameMetrics as Gt, persisted as H, ShellRequest as Hn, show as Hr, RuntimeErrorSource as Ht, AudioSinkOutput as I, UiEasingChoice as In, controlled as Ir, DevtoolsRequest as It, OpfsFileHandle as J, observeColorScheme as Jn, throttled as Jr, GessoRuntimeOptions as Jt, IndexedDbStorageOptions as K, ColorScheme as Kn, each as Kr, FramePhaseTimings as Kt, MediaSessionLike as L, ShellFile as Ln, ThemeTokenCell as Lr, FrameEntry as Lt, RouterOutlet as M, AnimateOptions as Mn, Input as Mr, ChannelErrorEntry as Mt, AudioElementLike as N, AnimationService as Nn, Output as Nr, CommandEntry as Nt, observeMediaQuery as O, AudioSample as On, ChannelRegistry as Or, ShellHistoryOptions as Ot, AudioSink as P, SpringOptions as Pn, ControlledOptions as Pr, ConsoleEntry as Pt, MemoryStorage as Q, UiNodeReport as Qn, Resource as Qr, UiFramePhase as Qt, audioClock as R, ShellFileRequest as Rn, themeTokenCell as Rr, PatchEntry as Rt, writeClipboard as S, buildPath as Sn, pickKeys as Sr, createApp as St, EditingService as T, AudioAction as Tn, createChannelRegistry as Tr, WorkerAppOptions as Tt, ShellStorage as U, ShellService as Un, Each as Ur, RuntimeToShellMessage as Ut, PersistedState as V, ShellRecentFile as Vn, ShowProps as Vr, treeText as Vt, ShellStorageOptions as W, ShellStorageOp as Wn, EachKey as Wr, ShellToRuntimeMessage as Wt, OpfsStorageOptions as X, NodePathTarget as Xn, Mutation as Xr, RuntimeInput as Xt, OpfsStorage as Y, BoundStream as Yn, MutateOptions as Yr, RendererChoice as Yt, OpfsWritable as Z, UiEnvironmentReport as Zn, mutate as Zr, UI_FRAME_PHASES as Zt, EditingMirrorTarget as _, ServiceRegistry as _i, RouteOptions as _n, ComponentElement as _r, GessoAppOptions as _t, UiRole as a, FanCell as ai, MediaOptions as an, formatAge as ar, storageReadValue as at, EditingProxy as b, to as bn, structurallyEqual as br, WebMcpChoice as bt, UiSemanticsPatch as c, FanOutOptions as ci, RouteMatch as cn, formatStream as cr, UndoableOptions as ct, markNow as d, ComputedOptions as di, RouterService as dn, ComponentHost as dr, UndoStackOptions as dt, ResourceState as ei, FontFaceLike as en, UiPropOrigin as er, StorageOutcome as et, measureSpan as f, ReadSource as fi, RouteState as fn, OverlayLayer as fr, UndoTransaction as ft, renderRoot as g, derive as gi, RouteGuard as gn, createComponent as gr, GessoApp as gt, RenderWorkerApp as h, Equality as hi, RouteDefinition as hn, OverlayService as hr, shellStorageDenied as ht, UI_SEMANTIC_STATES as i, select as ii, FontService as in, describeStream as ir, storageReadFailure as it, PresenceProps as j, AudioStatus as jn, Inject as jr, ActionEntry as jt, observeReducedMotion as k, AudioService as kn, Channel as kr, createShellHistory as kt, UiSemanticsRecord$1 as l, fanOut as li, RouterHistorySink as ln, printPropValue as lr, undoable as lt, setPerformanceMarks$1 as m, DeriveOptions as mi, RouteContext as mn, OverlayPlacement as mr, performShellStorage as mt, MARK_PREFIX as n, resource as ni, FontFamilyStatus as nn, UiSemanticsReport as nr, classifyStorageError as nt, UiSemanticState as o, FanKey as oi, MediaService as on, formatNodePath as or, UndoShortcutOptions as ot, performanceMarksEnabled as p, computed as pi, OutletProps as pn, OverlayEntry as pr, ShellLocalStore as pt, OpfsDirectory as q, ColorSchemePreference as qn, debounced as qr, GessoRuntime as qt, UI_ROLES as r, SelectOptions as ri, FontHost as rn, UiStreamReport as rr, storageErrorMessage as rt, UiSemanticsMap$1 as s, FanOut as si, RouteAnswer as sn, formatNodeReport as sr, registerUndoShortcuts as st, EditingState$1 as t, ResourceStatus as ti, FontFamilyDeclaration as tn, UiPropReport as tr, StorageRead as tt, markInstant as u, ComputedCell as ui, RouterRoutes as un, ComponentHostResolver as ur, UndoStack as ut, SemanticsMirror as v, RouteTarget as vn, FrameworkChild as vr, createSyncApp as vt, ScrollService as w, parseUrl as wn, ChannelRegistryHandle as wr, WorkerApp as wt, EditingProxySink as x, RouteParams as xn, pick as xr, CreateAppOptions as xt, SemanticsMirrorSink as y, route as yn, isComponentElement as yr, GessoAppBuilder as yt, FrameService as z, ShellFileResult as zn, bind as zr, UiTreeNode as zt };
8193
- //# sourceMappingURL=index-BDM_gzzZ.d.ts.map
8214
+ export { StorageAdapter as $, UiOwnerReport as $n, Resource as $r, FontFaceDeclaration as $t, Presence as A, AudioState as An, Channel as Ar, ActionCause as At, PersistedOptions as B, ShellFileType as Bn, bind as Br, UiTreeSnapshot as Bt, FocusService as C, formatUrl as Cn, pickKeys as Cr, AppLogicEndpoint as Ct, FindService as D, AudioRequest as Dn, findUnplainPath as Dr, ShellHistoryMode as Dt, TextService as E, AudioMetadata as En, createChannelRegistry as Er, ShellHistory as Et, AudioSinkOptions as F, UiDuration as Fn, ControlledOptions as Fr, DevtoolsEvent as Ft, IndexedDbStorage as G, ShellStorageResult as Gn, EachKey as Gr, FrameMetrics as Gt, persisted as H, ShellRequest as Hn, ShowProps as Hr, RuntimeErrorSource as Ht, AudioSinkOutput as I, UiEasingChoice as In, ControlledValue as Ir, DevtoolsRequest as It, OpfsFileHandle as J, observeColorScheme as Jn, debounced as Jr, GessoRuntimeOptions as Jt, IndexedDbStorageOptions as K, ColorScheme as Kn, EachProps as Kr, FramePhaseTimings as Kt, MediaSessionLike as L, ShellFile as Ln, controlled as Lr, FrameEntry as Lt, RouterOutlet as M, AnimateOptions as Mn, Inject as Mr, ChannelErrorEntry as Mt, AudioElementLike as N, AnimationService as Nn, Input as Nr, CommandEntry as Nt, observeMediaQuery as O, AudioSample as On, requirePlainData as Or, ShellHistoryOptions as Ot, AudioSink as P, SpringOptions as Pn, Output as Pr, ConsoleEntry as Pt, MemoryStorage as Q, UiNodeReport as Qn, mutate as Qr, UiFramePhase as Qt, audioClock as R, ShellFileRequest as Rn, ThemeTokenCell as Rr, PatchEntry as Rt, writeClipboard as S, buildPath as Sn, pick as Sr, createApp as St, EditingService as T, AudioAction as Tn, ChannelRegistryHandle as Tr, WorkerAppOptions as Tt, ShellStorage as U, ShellService as Un, show as Ur, RuntimeToShellMessage as Ut, PersistedState as V, ShellRecentFile as Vn, Show as Vr, treeText as Vt, ShellStorageOptions as W, ShellStorageOp as Wn, Each as Wr, ShellToRuntimeMessage as Wt, OpfsStorageOptions as X, NodePathTarget as Xn, MutateOptions as Xr, RuntimeInput as Xt, OpfsStorage as Y, BoundStream as Yn, throttled as Yr, RendererChoice as Yt, OpfsWritable as Z, UiEnvironmentReport as Zn, Mutation as Zr, UI_FRAME_PHASES as Zt, EditingMirrorTarget as _, derive as _i, RouteOptions as _n, createComponent as _r, GessoAppOptions as _t, UiRole as a, select as ai, MediaOptions as an, formatAge as ar, storageReadValue as at, EditingProxy as b, to as bn, isComponentElement as br, WebMcpChoice as bt, UiSemanticsPatch as c, FanOut as ci, RouteMatch as cn, formatStream as cr, UndoableOptions as ct, markNow as d, ComputedCell as di, RouterService as dn, ComponentHost as dr, UndoStackOptions as dt, ResourceOptions as ei, FontFaceLike as en, UiPropOrigin as er, StorageOutcome as et, measureSpan as f, ComputedOptions as fi, RouteState as fn, OverlayLayer as fr, UndoTransaction as ft, renderRoot as g, Equality as gi, RouteGuard as gn, OverlayService as gr, GessoApp as gt, RenderWorkerApp as h, DeriveOptions as hi, RouteDefinition as hn, OverlayRect as hr, shellStorageDenied as ht, UI_SEMANTIC_STATES as i, SelectOptions as ii, FontService as in, describeStream as ir, storageReadFailure as it, PresenceProps as j, AudioStatus as jn, Define as jr, ActionEntry as jt, observeReducedMotion as k, AudioService as kn, ChannelRegistry as kr, createShellHistory as kt, UiSemanticsRecord$1 as l, FanOutOptions as li, RouterHistorySink as ln, printPropValue as lr, undoable as lt, setPerformanceMarks$1 as m, computed as mi, RouteContext as mn, OverlayPlacement as mr, performShellStorage as mt, MARK_PREFIX as n, ResourceStatus as ni, FontFamilyStatus as nn, UiSemanticsReport as nr, classifyStorageError as nt, UiSemanticState as o, FanCell as oi, MediaService as on, formatNodePath as or, UndoShortcutOptions as ot, performanceMarksEnabled as p, ReadSource as pi, OutletProps as pn, OverlayEntry as pr, ShellLocalStore as pt, OpfsDirectory as q, ColorSchemePreference as qn, each as qr, GessoRuntime as qt, UI_ROLES as r, resource as ri, FontHost as rn, UiStreamReport as rr, storageErrorMessage as rt, UiSemanticsMap$1 as s, FanKey as si, RouteAnswer as sn, formatNodeReport as sr, registerUndoShortcuts as st, EditingState$1 as t, ResourceState as ti, FontFamilyDeclaration as tn, UiPropReport as tr, StorageRead as tt, markInstant as u, fanOut as ui, RouterRoutes as un, ComponentHostResolver as ur, UndoStack as ut, SemanticsMirror as v, ServiceRegistry as vi, RouteTarget as vn, ComponentElement as vr, createSyncApp as vt, ScrollService as w, parseUrl as wn, ChannelRegistration as wr, WorkerApp as wt, EditingProxySink as x, RouteParams as xn, structurallyEqual as xr, CreateAppOptions as xt, SemanticsMirrorSink as y, route as yn, FrameworkChild as yr, GessoAppBuilder as yt, FrameService as z, ShellFileResult as zn, themeTokenCell as zr, UiTreeNode as zt };
8215
+ //# sourceMappingURL=index-Sff7qPGU.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { _ as channel, a as isChannelHostMessage, c as applyPatch, d as ChannelSpec, f as ChannelToken, g as ViewOf, h as CommandsOf, i as isChannelClientMessage, l as applyPatches, m as CommandMap, n as ChannelHostMessage, o as Patch, p as Command, r as ChannelPort, s as PatchPath, t as ChannelClientMessage, u as diffProjection, v as defineChannel, y as viewKeys } from "./ChannelProtocol-ByNoHujM.js";
2
2
  import { A as portHandle, C as MessageEndpoint, D as isHubMessage, E as WorkerHandle, F as JsonSchema, I as channelSchema, L as describeChannel, M as workerHandle, N as ChannelSchema, O as isPortErrorMessage, P as CommandSchema, S as APPLICATION_WORKER, T as PortHost, _ as serve, b as ProvidedChannel, g as ServedChannel, j as servePorts, k as isPortHandshake, v as serveChannels, w as PortHandshake, x as provide, y as ChannelSource } from "./ui-U39HjNFA.js";
3
3
  import { C as internalState, S as InternalState, _ as ReadableCell, a as ComponentType, b as isOutputTarget, c as isClassComponent, d as bounds, f as EmitArgs, g as OutputTarget, h as OutputCell, i as ComponentProps, l as ChannelReplica, m as InputCell, o as FunctionComponent, p as EmitValue, r as ComponentContext, s as Inputs, t as ClassComponent, u as BoundsCell, v as input, w as Component, x as output, y as into } from "./FunctionComponent-fYMdePtH.js";
4
- import { $ as StorageAdapter, $n as UiOwnerReport, $r as ResourceOptions, $t as FontFaceDeclaration, A as Presence, An as AudioState, Ar as Define, At as ActionCause, B as PersistedOptions, Bn as ShellFileType, Br as Show, Bt as UiTreeSnapshot, C as FocusService, Cn as formatUrl, Cr as ChannelRegistration, Ct as AppLogicEndpoint, D as FindService, Dn as AudioRequest, Dr as requirePlainData, Dt as ShellHistoryMode, E as TextService, En as AudioMetadata, Er as findUnplainPath, Et as ShellHistory, F as AudioSinkOptions, Fn as UiDuration, Fr as ControlledValue, Ft as DevtoolsEvent, G as IndexedDbStorage, Gn as ShellStorageResult, Gr as EachProps, Gt as FrameMetrics, H as persisted, Hn as ShellRequest, Hr as show, Ht as RuntimeErrorSource, I as AudioSinkOutput, In as UiEasingChoice, Ir as controlled, It as DevtoolsRequest, J as OpfsFileHandle, Jn as observeColorScheme, Jr as throttled, Jt as GessoRuntimeOptions, K as IndexedDbStorageOptions, Kn as ColorScheme, Kr as each, Kt as FramePhaseTimings, L as MediaSessionLike, Ln as ShellFile, Lr as ThemeTokenCell, Lt as FrameEntry, M as RouterOutlet, Mn as AnimateOptions, Mr as Input, Mt as ChannelErrorEntry, N as AudioElementLike, Nn as AnimationService, Nr as Output, Nt as CommandEntry, O as observeMediaQuery, On as AudioSample, Or as ChannelRegistry, Ot as ShellHistoryOptions, P as AudioSink, Pn as SpringOptions, Pr as ControlledOptions, Pt as ConsoleEntry, Q as MemoryStorage, Qn as UiNodeReport, Qr as Resource, Qt as UiFramePhase, R as audioClock, Rn as ShellFileRequest, Rr as themeTokenCell, Rt as PatchEntry, S as writeClipboard, Sn as buildPath, Sr as pickKeys, St as createApp, T as EditingService, Tn as AudioAction, Tr as createChannelRegistry, Tt as WorkerAppOptions, U as ShellStorage, Un as ShellService, Ur as Each, Ut as RuntimeToShellMessage, V as PersistedState, Vn as ShellRecentFile, Vr as ShowProps, Vt as treeText, W as ShellStorageOptions, Wn as ShellStorageOp, Wr as EachKey, Wt as ShellToRuntimeMessage, X as OpfsStorageOptions, Xn as NodePathTarget, Xr as Mutation, Xt as RuntimeInput, Y as OpfsStorage, Yn as BoundStream, Yr as MutateOptions, Yt as RendererChoice, Z as OpfsWritable, Zn as UiEnvironmentReport, Zr as mutate, Zt as UI_FRAME_PHASES, _ as EditingMirrorTarget, _i as ServiceRegistry, _n as RouteOptions, _r as ComponentElement, _t as GessoAppOptions, a as UiRole, ai as FanCell, an as MediaOptions, ar as formatAge, at as storageReadValue, b as EditingProxy, bn as to, br as structurallyEqual, bt as WebMcpChoice, c as UiSemanticsPatch, ci as FanOutOptions, cn as RouteMatch, cr as formatStream, ct as UndoableOptions, d as markNow, di as ComputedOptions, dn as RouterService, dr as ComponentHost, dt as UndoStackOptions, ei as ResourceState, en as FontFaceLike, er as UiPropOrigin, et as StorageOutcome, f as measureSpan, fi as ReadSource, fn as RouteState, fr as OverlayLayer, ft as UndoTransaction, g as renderRoot, gi as derive, gn as RouteGuard, gr as createComponent, gt as GessoApp, h as RenderWorkerApp, hi as Equality, hn as RouteDefinition, hr as OverlayService, ht as shellStorageDenied, i as UI_SEMANTIC_STATES, ii as select, in as FontService, ir as describeStream, it as storageReadFailure, j as PresenceProps, jn as AudioStatus, jr as Inject, jt as ActionEntry, k as observeReducedMotion, kn as AudioService, kr as Channel, kt as createShellHistory, l as UiSemanticsRecord, li as fanOut, ln as RouterHistorySink, lr as printPropValue, lt as undoable, m as setPerformanceMarks, mi as DeriveOptions, mn as RouteContext, mr as OverlayPlacement, mt as performShellStorage, n as MARK_PREFIX, ni as resource, nn as FontFamilyStatus, nr as UiSemanticsReport, nt as classifyStorageError, o as UiSemanticState, oi as FanKey, on as MediaService, or as formatNodePath, ot as UndoShortcutOptions, p as performanceMarksEnabled, pi as computed, pn as OutletProps, pr as OverlayEntry, pt as ShellLocalStore, q as OpfsDirectory, qn as ColorSchemePreference, qr as debounced, qt as GessoRuntime, r as UI_ROLES, ri as SelectOptions, rn as FontHost, rr as UiStreamReport, rt as storageErrorMessage, s as UiSemanticsMap, si as FanOut, sn as RouteAnswer, sr as formatNodeReport, st as registerUndoShortcuts, t as EditingState, ti as ResourceStatus, tn as FontFamilyDeclaration, tr as UiPropReport, tt as StorageRead, u as markInstant, ui as ComputedCell, un as RouterRoutes, ur as ComponentHostResolver, ut as UndoStack, v as SemanticsMirror, vn as RouteTarget, vr as FrameworkChild, vt as createSyncApp, w as ScrollService, wn as parseUrl, wr as ChannelRegistryHandle, wt as WorkerApp, x as EditingProxySink, xn as RouteParams, xr as pick, xt as CreateAppOptions, y as SemanticsMirrorSink, yn as route, yr as isComponentElement, yt as GessoAppBuilder, z as FrameService, zn as ShellFileResult, zr as bind, zt as UiTreeNode } from "./index-BDM_gzzZ.js";
5
- export { APPLICATION_WORKER, type ActionCause, type ActionEntry, type AnimateOptions, AnimationService, type AppLogicEndpoint, type AudioAction, type AudioElementLike, type AudioMetadata, type AudioRequest, type AudioSample, AudioService, AudioSink, type AudioSinkOptions, type AudioSinkOutput, type AudioState, type AudioStatus, type BoundStream, BoundsCell, Channel, type ChannelClientMessage, type ChannelErrorEntry, type ChannelHostMessage, type ChannelPort, type ChannelRegistration, ChannelRegistry, type ChannelRegistryHandle, ChannelReplica, type ChannelSchema, type ChannelSource, type ChannelSpec, type ChannelToken, type ClassComponent, type ColorScheme, type ColorSchemePreference, type Command, type CommandEntry, type CommandMap, type CommandSchema, type CommandsOf, Component, type ComponentContext, type ComponentElement, ComponentHost, ComponentHostResolver, type ComponentProps, type ComponentType, ComputedCell, type ComputedOptions, type ConsoleEntry, type ControlledOptions, type ControlledValue, type CreateAppOptions, Define, type DeriveOptions, type DevtoolsEvent, type DevtoolsRequest, Each, type EachKey, type EachProps, type EditingMirrorTarget, EditingProxy, type EditingProxySink, EditingService, type EditingState, type EmitArgs, type EmitValue, type Equality, FanCell, type FanKey, FanOut, type FanOutOptions, FindService, FocusService, type FontFaceDeclaration, type FontFaceLike, type FontFamilyDeclaration, type FontFamilyStatus, type FontHost, FontService, type FrameEntry, type FrameMetrics, type FramePhaseTimings, FrameService, type FrameworkChild, type FunctionComponent, GessoApp, GessoAppBuilder, type GessoAppOptions, GessoRuntime, type GessoRuntimeOptions, IndexedDbStorage, type IndexedDbStorageOptions, Inject, Input, InputCell, type Inputs, InternalState, type JsonSchema, MARK_PREFIX, type MediaOptions, MediaService, type MediaSessionLike, MemoryStorage, type MessageEndpoint, type MutateOptions, type Mutation, type NodePathTarget, type OpfsDirectory, type OpfsFileHandle, OpfsStorage, type OpfsStorageOptions, type OpfsWritable, type OutletProps, Output, type OutputCell, type OutputTarget, type OverlayEntry, OverlayLayer, type OverlayPlacement, OverlayService, type Patch, type PatchEntry, type PatchPath, type PersistedOptions, PersistedState, type PortHandshake, type PortHost, Presence, type PresenceProps, ProvidedChannel, type ReadSource, type ReadableCell, RenderWorkerApp, type RendererChoice, Resource, type ResourceOptions, type ResourceState, type ResourceStatus, type RouteAnswer, type RouteContext, type RouteDefinition, type RouteGuard, type RouteMatch, type RouteOptions, type RouteParams, RouteState, type RouteTarget, type RouterHistorySink, RouterOutlet, type RouterRoutes, RouterService, type RuntimeErrorSource, type RuntimeInput, type RuntimeToShellMessage, ScrollService, type SelectOptions, SemanticsMirror, type SemanticsMirrorSink, type ServedChannel, ServiceRegistry, type ShellFile, type ShellFileRequest, type ShellFileResult, type ShellFileType, type ShellHistory, type ShellHistoryMode, type ShellHistoryOptions, type ShellLocalStore, type ShellRecentFile, type ShellRequest, ShellService, ShellStorage, type ShellStorageOp, type ShellStorageOptions, type ShellStorageResult, type ShellToRuntimeMessage, Show, type ShowProps, type SpringOptions, type StorageAdapter, type StorageOutcome, type StorageRead, TextService, ThemeTokenCell, UI_FRAME_PHASES, UI_ROLES, UI_SEMANTIC_STATES, type UiDuration, type UiEasingChoice, type UiEnvironmentReport, type UiFramePhase, type UiNodeReport, type UiOwnerReport, type UiPropOrigin, type UiPropReport, type UiRole, type UiSemanticState, type UiSemanticsMap, type UiSemanticsPatch, type UiSemanticsRecord, type UiSemanticsReport, type UiStreamReport, type UiTreeNode, type UiTreeSnapshot, type UndoShortcutOptions, UndoStack, type UndoStackOptions, type UndoTransaction, type UndoableOptions, type ViewOf, type WebMcpChoice, WorkerApp, type WorkerAppOptions, type WorkerHandle, applyPatch, applyPatches, audioClock, bind, bounds, buildPath, channel, channelSchema, classifyStorageError, computed, controlled, createApp, createChannelRegistry, createComponent, createShellHistory, createSyncApp, debounced, defineChannel, derive, describeChannel, describeStream, diffProjection, each, fanOut, findUnplainPath, formatAge, formatNodePath, formatNodeReport, formatStream, formatUrl, input, internalState, into, isChannelClientMessage, isChannelHostMessage, isClassComponent, isComponentElement, isHubMessage, isOutputTarget, isPortErrorMessage, isPortHandshake, markInstant, markNow, measureSpan, mutate, observeColorScheme, observeMediaQuery, observeReducedMotion, output, parseUrl, performShellStorage, performanceMarksEnabled, persisted, pick, pickKeys, portHandle, printPropValue, provide, registerUndoShortcuts, renderRoot, requirePlainData, resource, route, select, serve, serveChannels, servePorts, setPerformanceMarks, shellStorageDenied, show, storageErrorMessage, storageReadFailure, storageReadValue, structurallyEqual, themeTokenCell, throttled, to, treeText, undoable, viewKeys, workerHandle, writeClipboard };
4
+ import { $ as StorageAdapter, $n as UiOwnerReport, $r as Resource, $t as FontFaceDeclaration, A as Presence, An as AudioState, Ar as Channel, At as ActionCause, B as PersistedOptions, Bn as ShellFileType, Br as bind, Bt as UiTreeSnapshot, C as FocusService, Cn as formatUrl, Cr as pickKeys, Ct as AppLogicEndpoint, D as FindService, Dn as AudioRequest, Dr as findUnplainPath, Dt as ShellHistoryMode, E as TextService, En as AudioMetadata, Er as createChannelRegistry, Et as ShellHistory, F as AudioSinkOptions, Fn as UiDuration, Fr as ControlledOptions, Ft as DevtoolsEvent, G as IndexedDbStorage, Gn as ShellStorageResult, Gr as EachKey, Gt as FrameMetrics, H as persisted, Hn as ShellRequest, Hr as ShowProps, Ht as RuntimeErrorSource, I as AudioSinkOutput, In as UiEasingChoice, Ir as ControlledValue, It as DevtoolsRequest, J as OpfsFileHandle, Jn as observeColorScheme, Jr as debounced, Jt as GessoRuntimeOptions, K as IndexedDbStorageOptions, Kn as ColorScheme, Kr as EachProps, Kt as FramePhaseTimings, L as MediaSessionLike, Ln as ShellFile, Lr as controlled, Lt as FrameEntry, M as RouterOutlet, Mn as AnimateOptions, Mr as Inject, Mt as ChannelErrorEntry, N as AudioElementLike, Nn as AnimationService, Nr as Input, Nt as CommandEntry, O as observeMediaQuery, On as AudioSample, Or as requirePlainData, Ot as ShellHistoryOptions, P as AudioSink, Pn as SpringOptions, Pr as Output, Pt as ConsoleEntry, Q as MemoryStorage, Qn as UiNodeReport, Qr as mutate, Qt as UiFramePhase, R as audioClock, Rn as ShellFileRequest, Rr as ThemeTokenCell, Rt as PatchEntry, S as writeClipboard, Sn as buildPath, Sr as pick, St as createApp, T as EditingService, Tn as AudioAction, Tr as ChannelRegistryHandle, Tt as WorkerAppOptions, U as ShellStorage, Un as ShellService, Ur as show, Ut as RuntimeToShellMessage, V as PersistedState, Vn as ShellRecentFile, Vr as Show, Vt as treeText, W as ShellStorageOptions, Wn as ShellStorageOp, Wr as Each, Wt as ShellToRuntimeMessage, X as OpfsStorageOptions, Xn as NodePathTarget, Xr as MutateOptions, Xt as RuntimeInput, Y as OpfsStorage, Yn as BoundStream, Yr as throttled, Yt as RendererChoice, Z as OpfsWritable, Zn as UiEnvironmentReport, Zr as Mutation, Zt as UI_FRAME_PHASES, _ as EditingMirrorTarget, _i as derive, _n as RouteOptions, _r as createComponent, _t as GessoAppOptions, a as UiRole, ai as select, an as MediaOptions, ar as formatAge, at as storageReadValue, b as EditingProxy, bn as to, br as isComponentElement, bt as WebMcpChoice, c as UiSemanticsPatch, ci as FanOut, cn as RouteMatch, cr as formatStream, ct as UndoableOptions, d as markNow, di as ComputedCell, dn as RouterService, dr as ComponentHost, dt as UndoStackOptions, ei as ResourceOptions, en as FontFaceLike, er as UiPropOrigin, et as StorageOutcome, f as measureSpan, fi as ComputedOptions, fn as RouteState, fr as OverlayLayer, ft as UndoTransaction, g as renderRoot, gi as Equality, gn as RouteGuard, gr as OverlayService, gt as GessoApp, h as RenderWorkerApp, hi as DeriveOptions, hn as RouteDefinition, hr as OverlayRect, ht as shellStorageDenied, i as UI_SEMANTIC_STATES, ii as SelectOptions, in as FontService, ir as describeStream, it as storageReadFailure, j as PresenceProps, jn as AudioStatus, jr as Define, jt as ActionEntry, k as observeReducedMotion, kn as AudioService, kr as ChannelRegistry, kt as createShellHistory, l as UiSemanticsRecord, li as FanOutOptions, ln as RouterHistorySink, lr as printPropValue, lt as undoable, m as setPerformanceMarks, mi as computed, mn as RouteContext, mr as OverlayPlacement, mt as performShellStorage, n as MARK_PREFIX, ni as ResourceStatus, nn as FontFamilyStatus, nr as UiSemanticsReport, nt as classifyStorageError, o as UiSemanticState, oi as FanCell, on as MediaService, or as formatNodePath, ot as UndoShortcutOptions, p as performanceMarksEnabled, pi as ReadSource, pn as OutletProps, pr as OverlayEntry, pt as ShellLocalStore, q as OpfsDirectory, qn as ColorSchemePreference, qr as each, qt as GessoRuntime, r as UI_ROLES, ri as resource, rn as FontHost, rr as UiStreamReport, rt as storageErrorMessage, s as UiSemanticsMap, si as FanKey, sn as RouteAnswer, sr as formatNodeReport, st as registerUndoShortcuts, t as EditingState, ti as ResourceState, tn as FontFamilyDeclaration, tr as UiPropReport, tt as StorageRead, u as markInstant, ui as fanOut, un as RouterRoutes, ur as ComponentHostResolver, ut as UndoStack, v as SemanticsMirror, vi as ServiceRegistry, vn as RouteTarget, vr as ComponentElement, vt as createSyncApp, w as ScrollService, wn as parseUrl, wr as ChannelRegistration, wt as WorkerApp, x as EditingProxySink, xn as RouteParams, xr as structurallyEqual, xt as CreateAppOptions, y as SemanticsMirrorSink, yn as route, yr as FrameworkChild, yt as GessoAppBuilder, z as FrameService, zn as ShellFileResult, zr as themeTokenCell, zt as UiTreeNode } from "./index-Sff7qPGU.js";
5
+ export { APPLICATION_WORKER, type ActionCause, type ActionEntry, type AnimateOptions, AnimationService, type AppLogicEndpoint, type AudioAction, type AudioElementLike, type AudioMetadata, type AudioRequest, type AudioSample, AudioService, AudioSink, type AudioSinkOptions, type AudioSinkOutput, type AudioState, type AudioStatus, type BoundStream, BoundsCell, Channel, type ChannelClientMessage, type ChannelErrorEntry, type ChannelHostMessage, type ChannelPort, type ChannelRegistration, ChannelRegistry, type ChannelRegistryHandle, ChannelReplica, type ChannelSchema, type ChannelSource, type ChannelSpec, type ChannelToken, type ClassComponent, type ColorScheme, type ColorSchemePreference, type Command, type CommandEntry, type CommandMap, type CommandSchema, type CommandsOf, Component, type ComponentContext, type ComponentElement, ComponentHost, ComponentHostResolver, type ComponentProps, type ComponentType, ComputedCell, type ComputedOptions, type ConsoleEntry, type ControlledOptions, type ControlledValue, type CreateAppOptions, Define, type DeriveOptions, type DevtoolsEvent, type DevtoolsRequest, Each, type EachKey, type EachProps, type EditingMirrorTarget, EditingProxy, type EditingProxySink, EditingService, type EditingState, type EmitArgs, type EmitValue, type Equality, FanCell, type FanKey, FanOut, type FanOutOptions, FindService, FocusService, type FontFaceDeclaration, type FontFaceLike, type FontFamilyDeclaration, type FontFamilyStatus, type FontHost, FontService, type FrameEntry, type FrameMetrics, type FramePhaseTimings, FrameService, type FrameworkChild, type FunctionComponent, GessoApp, GessoAppBuilder, type GessoAppOptions, GessoRuntime, type GessoRuntimeOptions, IndexedDbStorage, type IndexedDbStorageOptions, Inject, Input, InputCell, type Inputs, InternalState, type JsonSchema, MARK_PREFIX, type MediaOptions, MediaService, type MediaSessionLike, MemoryStorage, type MessageEndpoint, type MutateOptions, type Mutation, type NodePathTarget, type OpfsDirectory, type OpfsFileHandle, OpfsStorage, type OpfsStorageOptions, type OpfsWritable, type OutletProps, Output, type OutputCell, type OutputTarget, type OverlayEntry, OverlayLayer, type OverlayPlacement, type OverlayRect, OverlayService, type Patch, type PatchEntry, type PatchPath, type PersistedOptions, PersistedState, type PortHandshake, type PortHost, Presence, type PresenceProps, ProvidedChannel, type ReadSource, type ReadableCell, RenderWorkerApp, type RendererChoice, Resource, type ResourceOptions, type ResourceState, type ResourceStatus, type RouteAnswer, type RouteContext, type RouteDefinition, type RouteGuard, type RouteMatch, type RouteOptions, type RouteParams, RouteState, type RouteTarget, type RouterHistorySink, RouterOutlet, type RouterRoutes, RouterService, type RuntimeErrorSource, type RuntimeInput, type RuntimeToShellMessage, ScrollService, type SelectOptions, SemanticsMirror, type SemanticsMirrorSink, type ServedChannel, ServiceRegistry, type ShellFile, type ShellFileRequest, type ShellFileResult, type ShellFileType, type ShellHistory, type ShellHistoryMode, type ShellHistoryOptions, type ShellLocalStore, type ShellRecentFile, type ShellRequest, ShellService, ShellStorage, type ShellStorageOp, type ShellStorageOptions, type ShellStorageResult, type ShellToRuntimeMessage, Show, type ShowProps, type SpringOptions, type StorageAdapter, type StorageOutcome, type StorageRead, TextService, ThemeTokenCell, UI_FRAME_PHASES, UI_ROLES, UI_SEMANTIC_STATES, type UiDuration, type UiEasingChoice, type UiEnvironmentReport, type UiFramePhase, type UiNodeReport, type UiOwnerReport, type UiPropOrigin, type UiPropReport, type UiRole, type UiSemanticState, type UiSemanticsMap, type UiSemanticsPatch, type UiSemanticsRecord, type UiSemanticsReport, type UiStreamReport, type UiTreeNode, type UiTreeSnapshot, type UndoShortcutOptions, UndoStack, type UndoStackOptions, type UndoTransaction, type UndoableOptions, type ViewOf, type WebMcpChoice, WorkerApp, type WorkerAppOptions, type WorkerHandle, applyPatch, applyPatches, audioClock, bind, bounds, buildPath, channel, channelSchema, classifyStorageError, computed, controlled, createApp, createChannelRegistry, createComponent, createShellHistory, createSyncApp, debounced, defineChannel, derive, describeChannel, describeStream, diffProjection, each, fanOut, findUnplainPath, formatAge, formatNodePath, formatNodeReport, formatStream, formatUrl, input, internalState, into, isChannelClientMessage, isChannelHostMessage, isClassComponent, isComponentElement, isHubMessage, isOutputTarget, isPortErrorMessage, isPortHandshake, markInstant, markNow, measureSpan, mutate, observeColorScheme, observeMediaQuery, observeReducedMotion, output, parseUrl, performShellStorage, performanceMarksEnabled, persisted, pick, pickKeys, portHandle, printPropValue, provide, registerUndoShortcuts, renderRoot, requirePlainData, resource, route, select, serve, serveChannels, servePorts, setPerformanceMarks, shellStorageDenied, show, storageErrorMessage, storageReadFailure, storageReadValue, structurallyEqual, themeTokenCell, throttled, to, treeText, undoable, viewKeys, workerHandle, writeClipboard };
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { a as Each, i as show, n as getComponentMetadata, o as each, r as Show,
3
3
  import { c as channelSchema, l as describeChannel, t as AGENT_PORT } from "./remote-xxij8zXe.js";
4
4
  import { n as serveApplicationAgent } from "./app-BvlIO1G9.js";
5
5
  import { BehaviorSubject, EMPTY, Observable, Subject, Subscription, distinctUntilChanged, map } from "rxjs";
6
- import { AnimationDriver, Box, Canvas2DRenderer, CanvasPlatformSurface, CanvasTextMeasurer, Constraints, DefaultImageResolver, DefaultVideoResolver, DirtyFlags, EnvironmentNotifier, FocusNotifier, IconRasterizer, LayoutEngine, LayoutInspector, LayoutNotifier, MARK_PREFIX, Stack, TEXT_RUN_ID_SEPARATOR, UI_ROLES, UI_SEMANTIC_STATES, UiAnimationFrameClock, UiEditingController, UiEnvironmentKeys, UiEventType, UiFindController, UiFocusManager, UiGestureRecognizer, UiGraph, UiGraphBuilder, UiHitTester, UiHostFrameClock, UiInputDispatcher, UiInsetRegistry, UiKeyboardController, UiNodeType, UiPlatformAdapter, UiPointerController, UiPointerEvent, UiScheduler, UiSelectionController, UiSharedElements, UiSpring, UiTimerFrameClock, UiTouchScroller, UiVirtualSheet, UiVirtualWindow, UiWheelController, VIRTUAL_INDEX_PROP, VIRTUAL_LEAD_PROP, VIRTUAL_SHEET_PROP, VIRTUAL_WINDOW_PROP, WebGPURenderer, buildSemanticsSubtree, buildSemanticsTree, bumpFontStack, capturePointer, createCanvasSurface, createTween, createWebGPUSurface, defaultMotion, describeOverrides, diffSemantics, dragSessionFor, dropIndexShifts, easings, formatExplanation, insetsEqual, isComponentLikeElement, isObservable, isWebGPUAvailable, linear, linkOf, markInstant, markNow, measure, measureSpan, motion, noInsets, observeViewportInsets, percent, performanceMarksEnabled, pointerDeviceOf, prepareInputSurface, propertyEffects, recordsEqual, registerFontStack, resolveCursor, rewalkSemantics, scrollRange, scrollbarThumb, semanticsInertAbove, semanticsMemory, setPerformanceMarks, setPerformanceMarks as setPerformanceMarks$1, textRunOfRecordId, themeTokens, touchActionFor, wheelDeltaYOf } from "gesso-core";
6
+ import { AnimationDriver, Box, Canvas2DRenderer, CanvasPlatformSurface, CanvasTextMeasurer, Constraints, DefaultImageResolver, DefaultVideoResolver, DirtyFlags, EnvironmentNotifier, FocusNotifier, IconRasterizer, LayoutEngine, LayoutInspector, LayoutNotifier, MARK_PREFIX, Stack, TEXT_RUN_ID_SEPARATOR, UI_ROLES, UI_SEMANTIC_STATES, UiAnimationFrameClock, UiEditingController, UiEnvironmentKeys, UiEventType, UiFindController, UiFocusManager, UiGestureRecognizer, UiGraph, UiGraphBuilder, UiHitTester, UiHostFrameClock, UiInputDispatcher, UiInsetRegistry, UiKeyboardController, UiNodeType, UiPlatformAdapter, UiPointerController, UiPointerEvent, UiScheduler, UiSelectionController, UiSharedElements, UiSpring, UiTimerFrameClock, UiTouchScroller, UiVirtualSheet, UiVirtualWindow, UiWheelController, VIRTUAL_INDEX_PROP, VIRTUAL_LEAD_PROP, VIRTUAL_SHEET_PROP, VIRTUAL_WINDOW_PROP, WebGPURenderer, buildSemanticsSubtree, buildSemanticsTree, bumpFontStack, capturePointer, createCanvasSurface, createTween, createWebGPUSurface, defaultMotion, defineModifier, describeOverrides, diffSemantics, dragSessionFor, dropIndexShifts, easings, formatExplanation, insetsEqual, isComponentLikeElement, isObservable, isWebGPUAvailable, linear, linkOf, markInstant, markNow, measure, measureSpan, motion, noInsets, observeViewportInsets, percent, performanceMarksEnabled, pointerDeviceOf, prepareInputSurface, propertyEffects, recordsEqual, registerFontStack, resolveCursor, rewalkSemantics, scrollRange, scrollbarThumb, semanticsInertAbove, semanticsMemory, setPerformanceMarks, setPerformanceMarks as setPerformanceMarks$1, textRunOfRecordId, themeTokens, touchActionFor, wheelDeltaYOf } from "gesso-core";
7
7
  //#region src/Component.ts
8
8
  /**
9
9
  * Base class for all Gesso framework components.
@@ -854,6 +854,7 @@ let OverlayLayer = class OverlayLayer extends Component {
854
854
  position: "absolute",
855
855
  anchor: entry.anchor ?? void 0,
856
856
  anchorPoint: entry.anchor == null ? entry.point : void 0,
857
+ anchorRect: entry.anchor == null ? void 0 : entry.anchorRect,
857
858
  placement: entry.placement,
858
859
  anchorOffset: entry.offset,
859
860
  top: entry.top,
@@ -862,7 +863,8 @@ let OverlayLayer = class OverlayLayer extends Component {
862
863
  left: entry.left,
863
864
  zIndex: entry.zIndex,
864
865
  ...centering(entry),
865
- ...inheritedFrom(entry.environment ?? entry.anchor ?? null)
866
+ ...inheritedFrom(entry.environment ?? entry.anchor ?? null),
867
+ modifiers: followEnvironment(entry.environment ?? entry.anchor ?? null)
866
868
  }, entry.content));
867
869
  }
868
870
  return elements;
@@ -905,11 +907,7 @@ function centering(entry) {
905
907
  }
906
908
  /**
907
909
  * The scoped values an entry's content should keep, re-provided on the
908
- * box that holds it.
909
- *
910
- * Read once, when the entry opens. An overlay that outlives a theme
911
- * change re-opens; nothing here watches, because an entry's content is
912
- * built once too.
910
+ * box that holds it, as they are when the entry opens.
913
911
  */
914
912
  function inheritedFrom(node) {
915
913
  const environment = node?.environment;
@@ -920,6 +918,28 @@ function inheritedFrom(node) {
920
918
  contentColor: environment.get(UiEnvironmentKeys.contentColor)
921
919
  };
922
920
  }
921
+ /**
922
+ * The same values again whenever they change where the entry was
923
+ * declared, for as long as it is open.
924
+ *
925
+ * Reading them once let a dialog open while the page went dark (the
926
+ * system's setting changed, or the theme a person chose arrived from
927
+ * another worker a moment after they opened it) stay light over a dark
928
+ * page until it was closed.
929
+ */
930
+ const followEnvironmentKind = defineModifier({
931
+ name: "overlayEnvironment",
932
+ attach(host, from) {
933
+ host.onEnvironment(() => {
934
+ host.set("theme", host.environment(UiEnvironmentKeys.theme, from));
935
+ host.set("textStyle", host.environment(UiEnvironmentKeys.textStyle, from));
936
+ host.set("contentColor", host.environment(UiEnvironmentKeys.contentColor, from));
937
+ }, from);
938
+ }
939
+ });
940
+ function followEnvironment(node) {
941
+ return node === null ? [] : [followEnvironmentKind(node)];
942
+ }
923
943
  //#endregion
924
944
  //#region src/ComponentElement.ts
925
945
  function isComponentElement(value) {
@@ -2667,7 +2687,7 @@ var EditingProxy = class {
2667
2687
  * the reason the field's semantics live here rather than on a second
2668
2688
  * element beside it.
2669
2689
  */
2670
- describe(record, activeDescendant) {
2690
+ describe(record, activeDescendant, controls) {
2671
2691
  if (this.disposed) return;
2672
2692
  const textarea = this.textarea;
2673
2693
  if (record === null) {
@@ -2681,7 +2701,9 @@ var EditingProxy = class {
2681
2701
  "aria-readonly",
2682
2702
  "aria-disabled",
2683
2703
  "aria-expanded",
2684
- "aria-activedescendant"
2704
+ "aria-activedescendant",
2705
+ "aria-controls",
2706
+ "aria-autocomplete"
2685
2707
  ]) textarea.removeAttribute(attribute);
2686
2708
  return;
2687
2709
  }
@@ -2696,6 +2718,8 @@ var EditingProxy = class {
2696
2718
  setOrClear(textarea, "aria-disabled", record.disabled === true ? "true" : void 0);
2697
2719
  setOrClear(textarea, "aria-expanded", states.has("expanded") ? "true" : states.has("collapsed") ? "false" : void 0);
2698
2720
  setOrClear(textarea, "aria-activedescendant", activeDescendant);
2721
+ setOrClear(textarea, "aria-controls", controls);
2722
+ setOrClear(textarea, "aria-autocomplete", record.autocomplete);
2699
2723
  }
2700
2724
  dispose() {
2701
2725
  if (this.disposed) return;
@@ -2935,7 +2959,9 @@ const RECORD_ATTRIBUTES = [
2935
2959
  "aria-modal",
2936
2960
  "aria-multiselectable",
2937
2961
  "aria-current",
2938
- "aria-activedescendant"
2962
+ "aria-activedescendant",
2963
+ "aria-controls",
2964
+ "aria-autocomplete"
2939
2965
  ];
2940
2966
  let mirrors = 0;
2941
2967
  /**
@@ -3098,10 +3124,11 @@ var SemanticsMirror = class {
3098
3124
  if (existing?.box !== void 0) this.position(existing);
3099
3125
  if (record.id === this.focusedId) this.describeEditing(this.editing?.active === true ? record : null);
3100
3126
  }
3101
- /** Hands the proxy the focused editable's record, with its active descendant's DOM id. */
3127
+ /** Hands the proxy the focused editable's record, with the DOM ids of its active descendant and what it controls. */
3102
3128
  describeEditing(record) {
3103
3129
  const active = record?.activeDescendant;
3104
- this.editing?.describe(record, active === void 0 ? void 0 : this.idPrefix + active);
3130
+ const controls = record?.controls;
3131
+ this.editing?.describe(record, active === void 0 ? void 0 : this.idPrefix + active, controls === void 0 ? void 0 : this.idPrefix + controls);
3105
3132
  }
3106
3133
  createElement() {
3107
3134
  const element = this.doc.createElement("div");
@@ -3148,6 +3175,8 @@ var SemanticsMirror = class {
3148
3175
  setNumber(element, "aria-level", record.level);
3149
3176
  if (record.valueText !== void 0) element.setAttribute("aria-valuetext", record.valueText);
3150
3177
  if (record.activeDescendant !== void 0) element.setAttribute("aria-activedescendant", this.idPrefix + record.activeDescendant);
3178
+ if (record.controls !== void 0) element.setAttribute("aria-controls", this.idPrefix + record.controls);
3179
+ if (record.autocomplete !== void 0) element.setAttribute("aria-autocomplete", record.autocomplete);
3151
3180
  }
3152
3181
  /**
3153
3182
  * Puts an element under its parent, at the index the record gives.
@@ -5770,14 +5799,19 @@ var EditingService = class {
5770
5799
  * scroll already applied: a popup placed under the caret adds the
5771
5800
  * node's position on screen and nothing else.
5772
5801
  *
5802
+ * `offset` asks about a caret at another character than the one the
5803
+ * caret is at: the start of the word being completed, so its list
5804
+ * stays put as the word grows. With an overlay's `anchorRect` and the
5805
+ * field as its anchor, the list follows the field from then on.
5806
+ *
5773
5807
  * Null when the node is not an editable, when it has not been laid
5774
5808
  * out yet, or before the runtime has wired the controller — all
5775
5809
  * three of which are "ask again next frame" rather than errors, and
5776
5810
  * all three of which happen during the frame a field first appears.
5777
5811
  */
5778
- caretRectOf(node) {
5812
+ caretRectOf(node, offset) {
5779
5813
  if (node === null || this.controller === null) return null;
5780
- return this.controller.caretRectOf(node);
5814
+ return this.controller.caretRectOf(node, offset);
5781
5815
  }
5782
5816
  /**
5783
5817
  * Selects from `anchor` to `focus` and focuses the field the focus is