@fusion.dev/helix-headless 0.220.0 → 0.221.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types/jsx.d.ts CHANGED
@@ -95,6 +95,7 @@ import type {
95
95
  HelixHeadlessDrawer,
96
96
  HelixHeadlessDrilldown,
97
97
  HelixHeadlessDrilldownItem,
98
+ HelixHeadlessEditor,
98
99
  HelixHeadlessEmpty,
99
100
  HelixHeadlessFileInput,
100
101
  HelixHeadlessFilterChip,
@@ -7413,7 +7414,7 @@ Here rather than on each control. */
7413
7414
  /** The problems in the text, each underlined and listed under the editor. */
7414
7415
  diagnostics?: (HelixHeadlessCodeEditor["diagnostics"]) | undefined;
7415
7416
  /** What draws the editor, such as `codeMirrorEngine()` from
7416
- `@fusion.dev/helix-editor`. Absent, the editor is a plain text field. */
7417
+ `@fusion.dev/helix-code-editor`. Absent, the editor is a plain text field. */
7417
7418
  engine?: (HelixHeadlessCodeEditor["engine"]) | undefined;
7418
7419
 
7419
7420
  /** The reader finished an edit and focus left the code, in the engine or the plain field. */
@@ -7614,7 +7615,7 @@ Here rather than on each control. */
7614
7615
  /** The problems in the text, each underlined and listed under the editor. */
7615
7616
  "prop:diagnostics"?: (HelixHeadlessCodeEditor["diagnostics"]) | undefined;
7616
7617
  /** What draws the editor, such as `codeMirrorEngine()` from
7617
- `@fusion.dev/helix-editor`. Absent, the editor is a plain text field. */
7618
+ `@fusion.dev/helix-code-editor`. Absent, the editor is a plain text field. */
7618
7619
  "prop:engine"?: (HelixHeadlessCodeEditor["engine"]) | undefined;
7619
7620
  /** The reader finished an edit and focus left the code, in the engine or the plain field. */
7620
7621
  "on:change"?: ((e: HelixHeadlessCodeEditorElementEvent) => void) | undefined;
@@ -15262,6 +15263,251 @@ say that without the component knowing what a row looks like. */
15262
15263
  textContent?: (string | number) | undefined;
15263
15264
  };
15264
15265
 
15266
+ /** `HelixHeadlessEditor` component event */
15267
+ export type HelixHeadlessEditorElementEvent<E = Event> = TypedEvent<
15268
+ HelixHeadlessEditor,
15269
+ E
15270
+ >;
15271
+ /** `helix-found` event type */
15272
+ export type HelixHeadlessEditorHelixFoundElementEvent =
15273
+ HelixHeadlessEditorElementEvent<HelixFoundEvent>;
15274
+
15275
+ export type HelixHeadlessEditorProps = {
15276
+ /** The block menu button's name. `{name}` is the block type at the selection. */
15277
+ "block-chosen-label"?: (HelixHeadlessEditor["blockChosenLabel"]) | undefined;
15278
+ /** The block menu button's name. `{name}` is the block type at the selection. */
15279
+ blockChosenLabel?: (HelixHeadlessEditor["blockChosenLabel"]) | undefined;
15280
+ /** The block menu's name, read by screen readers. */
15281
+ "block-label"?: (HelixHeadlessEditor["blockLabel"]) | undefined;
15282
+ /** The block menu's name, read by screen readers. */
15283
+ blockLabel?: (HelixHeadlessEditor["blockLabel"]) | undefined;
15284
+ /** The Bold button's label. */
15285
+ "bold-label"?: (HelixHeadlessEditor["boldLabel"]) | undefined;
15286
+ /** The Bold button's label. */
15287
+ boldLabel?: (HelixHeadlessEditor["boldLabel"]) | undefined;
15288
+ /** The Bulleted list button's label. */
15289
+ "bullet-list-label"?: (HelixHeadlessEditor["bulletListLabel"]) | undefined;
15290
+ /** The Bulleted list button's label. */
15291
+ bulletListLabel?: (HelixHeadlessEditor["bulletListLabel"]) | undefined;
15292
+ /** The Code block row's label in the block menu. */
15293
+ "code-block-label"?: (HelixHeadlessEditor["codeBlockLabel"]) | undefined;
15294
+ /** The Code block row's label in the block menu. */
15295
+ codeBlockLabel?: (HelixHeadlessEditor["codeBlockLabel"]) | undefined;
15296
+ /** The Code button's label. */
15297
+ "code-label"?: (HelixHeadlessEditor["codeLabel"]) | undefined;
15298
+ /** The Code button's label. */
15299
+ codeLabel?: (HelixHeadlessEditor["codeLabel"]) | undefined;
15300
+ /** The toolbar's name, read by screen readers. */
15301
+ "controls-label"?: (HelixHeadlessEditor["controlsLabel"]) | undefined;
15302
+ /** The toolbar's name, read by screen readers. */
15303
+ controlsLabel?: (HelixHeadlessEditor["controlsLabel"]) | undefined;
15304
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
15305
+ "fallback-label"?: (HelixHeadlessEditor["fallbackLabel"]) | undefined;
15306
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
15307
+ fallbackLabel?: (HelixHeadlessEditor["fallbackLabel"]) | undefined;
15308
+ /** The Find button's label, and the find bar's name. */
15309
+ "find-label"?: (HelixHeadlessEditor["findLabel"]) | undefined;
15310
+ /** The Find button's label, and the find bar's name. */
15311
+ findLabel?: (HelixHeadlessEditor["findLabel"]) | undefined;
15312
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
15313
+ "heading-label"?: (HelixHeadlessEditor["headingLabel"]) | undefined;
15314
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
15315
+ headingLabel?: (HelixHeadlessEditor["headingLabel"]) | undefined;
15316
+ /** The Italic button's label. */
15317
+ "italic-label"?: (HelixHeadlessEditor["italicLabel"]) | undefined;
15318
+ /** The Italic button's label. */
15319
+ italicLabel?: (HelixHeadlessEditor["italicLabel"]) | undefined;
15320
+ /** The document's name, read by screen readers. Name what it holds, such as
15321
+ "Release notes", so that several editors on one page can be told apart.
15322
+ Required. */
15323
+ label?: (HelixHeadlessEditor["label"]) | undefined;
15324
+ /** The Apply button's label in the address bar. */
15325
+ "link-apply-label"?: (HelixHeadlessEditor["linkApplyLabel"]) | undefined;
15326
+ /** The Apply button's label in the address bar. */
15327
+ linkApplyLabel?: (HelixHeadlessEditor["linkApplyLabel"]) | undefined;
15328
+ /** The close button's label in the address bar. */
15329
+ "link-close-label"?: (HelixHeadlessEditor["linkCloseLabel"]) | undefined;
15330
+ /** The close button's label in the address bar. */
15331
+ linkCloseLabel?: (HelixHeadlessEditor["linkCloseLabel"]) | undefined;
15332
+ /** The name of the address bar's toolbar, read by screen readers. */
15333
+ "link-controls-label"?: (HelixHeadlessEditor["linkControlsLabel"]) | undefined;
15334
+ /** The name of the address bar's toolbar, read by screen readers. */
15335
+ linkControlsLabel?: (HelixHeadlessEditor["linkControlsLabel"]) | undefined;
15336
+ /** The address field's name, which it also shows while it is empty. */
15337
+ "link-field-label"?: (HelixHeadlessEditor["linkFieldLabel"]) | undefined;
15338
+ /** The address field's name, which it also shows while it is empty. */
15339
+ linkFieldLabel?: (HelixHeadlessEditor["linkFieldLabel"]) | undefined;
15340
+ /** The Link button's label, and the address bar's name. */
15341
+ "link-label"?: (HelixHeadlessEditor["linkLabel"]) | undefined;
15342
+ /** The Link button's label, and the address bar's name. */
15343
+ linkLabel?: (HelixHeadlessEditor["linkLabel"]) | undefined;
15344
+ /** The Remove button's label in the address bar. */
15345
+ "link-remove-label"?: (HelixHeadlessEditor["linkRemoveLabel"]) | undefined;
15346
+ /** The Remove button's label in the address bar. */
15347
+ linkRemoveLabel?: (HelixHeadlessEditor["linkRemoveLabel"]) | undefined;
15348
+ /** The Numbered list button's label. */
15349
+ "ordered-list-label"?: (HelixHeadlessEditor["orderedListLabel"]) | undefined;
15350
+ /** The Numbered list button's label. */
15351
+ orderedListLabel?: (HelixHeadlessEditor["orderedListLabel"]) | undefined;
15352
+ /** The Paragraph row's label in the block menu. */
15353
+ "paragraph-label"?: (HelixHeadlessEditor["paragraphLabel"]) | undefined;
15354
+ /** The Paragraph row's label in the block menu. */
15355
+ paragraphLabel?: (HelixHeadlessEditor["paragraphLabel"]) | undefined;
15356
+ /** The words shown in an empty document, such as "Write the release notes". */
15357
+ placeholder?: (HelixHeadlessEditor["placeholder"]) | undefined;
15358
+ /** The Quote button's label. */
15359
+ "quote-label"?: (HelixHeadlessEditor["quoteLabel"]) | undefined;
15360
+ /** The Quote button's label. */
15361
+ quoteLabel?: (HelixHeadlessEditor["quoteLabel"]) | undefined;
15362
+ /** Shows the document and takes no edits, with no toolbar, for a document
15363
+ someone reads, or one an agent is writing. The attribute is `readonly`,
15364
+ the platform's spelling. */
15365
+ readonly?: (HelixHeadlessEditor["readOnly"]) | undefined;
15366
+ /** Shows the document and takes no edits, with no toolbar, for a document
15367
+ someone reads, or one an agent is writing. The attribute is `readonly`,
15368
+ the platform's spelling. */
15369
+ readOnly?: (HelixHeadlessEditor["readOnly"]) | undefined;
15370
+ /** The Redo button's label. */
15371
+ "redo-label"?: (HelixHeadlessEditor["redoLabel"]) | undefined;
15372
+ /** The Redo button's label. */
15373
+ redoLabel?: (HelixHeadlessEditor["redoLabel"]) | undefined;
15374
+ /** The Strikethrough button's label. */
15375
+ "strike-label"?: (HelixHeadlessEditor["strikeLabel"]) | undefined;
15376
+ /** The Strikethrough button's label. */
15377
+ strikeLabel?: (HelixHeadlessEditor["strikeLabel"]) | undefined;
15378
+ /** Which groups of tools the toolbar draws, as a list of `history`, `block`,
15379
+ `marks`, `link`, `lists`, and `quote`, or `none`. They are drawn in that
15380
+ order, whatever order the list is in. Absent is all six. */
15381
+ tools?: (HelixHeadlessEditor["tools"]) | undefined;
15382
+ /** The Undo button's label. */
15383
+ "undo-label"?: (HelixHeadlessEditor["undoLabel"]) | undefined;
15384
+ /** The Undo button's label. */
15385
+ undoLabel?: (HelixHeadlessEditor["undoLabel"]) | undefined;
15386
+
15387
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
15388
+ "onhelix-found"?: ((e: HelixHeadlessEditorHelixFoundElementEvent) => void) | undefined;
15389
+ };
15390
+
15391
+ export type HelixHeadlessEditorSolidJsProps = {
15392
+ /** The block menu button's name. `{name}` is the block type at the selection. */
15393
+ "attr:block-chosen-label"?: (HelixHeadlessEditor["blockChosenLabel"]) | undefined;
15394
+ /** The block menu button's name. `{name}` is the block type at the selection. */
15395
+ "prop:blockChosenLabel"?: (HelixHeadlessEditor["blockChosenLabel"]) | undefined;
15396
+ /** The block menu's name, read by screen readers. */
15397
+ "attr:block-label"?: (HelixHeadlessEditor["blockLabel"]) | undefined;
15398
+ /** The block menu's name, read by screen readers. */
15399
+ "prop:blockLabel"?: (HelixHeadlessEditor["blockLabel"]) | undefined;
15400
+ /** The Bold button's label. */
15401
+ "attr:bold-label"?: (HelixHeadlessEditor["boldLabel"]) | undefined;
15402
+ /** The Bold button's label. */
15403
+ "prop:boldLabel"?: (HelixHeadlessEditor["boldLabel"]) | undefined;
15404
+ /** The Bulleted list button's label. */
15405
+ "attr:bullet-list-label"?: (HelixHeadlessEditor["bulletListLabel"]) | undefined;
15406
+ /** The Bulleted list button's label. */
15407
+ "prop:bulletListLabel"?: (HelixHeadlessEditor["bulletListLabel"]) | undefined;
15408
+ /** The Code block row's label in the block menu. */
15409
+ "attr:code-block-label"?: (HelixHeadlessEditor["codeBlockLabel"]) | undefined;
15410
+ /** The Code block row's label in the block menu. */
15411
+ "prop:codeBlockLabel"?: (HelixHeadlessEditor["codeBlockLabel"]) | undefined;
15412
+ /** The Code button's label. */
15413
+ "attr:code-label"?: (HelixHeadlessEditor["codeLabel"]) | undefined;
15414
+ /** The Code button's label. */
15415
+ "prop:codeLabel"?: (HelixHeadlessEditor["codeLabel"]) | undefined;
15416
+ /** The toolbar's name, read by screen readers. */
15417
+ "attr:controls-label"?: (HelixHeadlessEditor["controlsLabel"]) | undefined;
15418
+ /** The toolbar's name, read by screen readers. */
15419
+ "prop:controlsLabel"?: (HelixHeadlessEditor["controlsLabel"]) | undefined;
15420
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
15421
+ "attr:fallback-label"?: (HelixHeadlessEditor["fallbackLabel"]) | undefined;
15422
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
15423
+ "prop:fallbackLabel"?: (HelixHeadlessEditor["fallbackLabel"]) | undefined;
15424
+ /** The Find button's label, and the find bar's name. */
15425
+ "attr:find-label"?: (HelixHeadlessEditor["findLabel"]) | undefined;
15426
+ /** The Find button's label, and the find bar's name. */
15427
+ "prop:findLabel"?: (HelixHeadlessEditor["findLabel"]) | undefined;
15428
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
15429
+ "attr:heading-label"?: (HelixHeadlessEditor["headingLabel"]) | undefined;
15430
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
15431
+ "prop:headingLabel"?: (HelixHeadlessEditor["headingLabel"]) | undefined;
15432
+ /** The Italic button's label. */
15433
+ "attr:italic-label"?: (HelixHeadlessEditor["italicLabel"]) | undefined;
15434
+ /** The Italic button's label. */
15435
+ "prop:italicLabel"?: (HelixHeadlessEditor["italicLabel"]) | undefined;
15436
+ /** The document's name, read by screen readers. Name what it holds, such as
15437
+ "Release notes", so that several editors on one page can be told apart.
15438
+ Required. */
15439
+ "prop:label"?: (HelixHeadlessEditor["label"]) | undefined;
15440
+ /** The Apply button's label in the address bar. */
15441
+ "attr:link-apply-label"?: (HelixHeadlessEditor["linkApplyLabel"]) | undefined;
15442
+ /** The Apply button's label in the address bar. */
15443
+ "prop:linkApplyLabel"?: (HelixHeadlessEditor["linkApplyLabel"]) | undefined;
15444
+ /** The close button's label in the address bar. */
15445
+ "attr:link-close-label"?: (HelixHeadlessEditor["linkCloseLabel"]) | undefined;
15446
+ /** The close button's label in the address bar. */
15447
+ "prop:linkCloseLabel"?: (HelixHeadlessEditor["linkCloseLabel"]) | undefined;
15448
+ /** The name of the address bar's toolbar, read by screen readers. */
15449
+ "attr:link-controls-label"?: (HelixHeadlessEditor["linkControlsLabel"]) | undefined;
15450
+ /** The name of the address bar's toolbar, read by screen readers. */
15451
+ "prop:linkControlsLabel"?: (HelixHeadlessEditor["linkControlsLabel"]) | undefined;
15452
+ /** The address field's name, which it also shows while it is empty. */
15453
+ "attr:link-field-label"?: (HelixHeadlessEditor["linkFieldLabel"]) | undefined;
15454
+ /** The address field's name, which it also shows while it is empty. */
15455
+ "prop:linkFieldLabel"?: (HelixHeadlessEditor["linkFieldLabel"]) | undefined;
15456
+ /** The Link button's label, and the address bar's name. */
15457
+ "attr:link-label"?: (HelixHeadlessEditor["linkLabel"]) | undefined;
15458
+ /** The Link button's label, and the address bar's name. */
15459
+ "prop:linkLabel"?: (HelixHeadlessEditor["linkLabel"]) | undefined;
15460
+ /** The Remove button's label in the address bar. */
15461
+ "attr:link-remove-label"?: (HelixHeadlessEditor["linkRemoveLabel"]) | undefined;
15462
+ /** The Remove button's label in the address bar. */
15463
+ "prop:linkRemoveLabel"?: (HelixHeadlessEditor["linkRemoveLabel"]) | undefined;
15464
+ /** The Numbered list button's label. */
15465
+ "attr:ordered-list-label"?: (HelixHeadlessEditor["orderedListLabel"]) | undefined;
15466
+ /** The Numbered list button's label. */
15467
+ "prop:orderedListLabel"?: (HelixHeadlessEditor["orderedListLabel"]) | undefined;
15468
+ /** The Paragraph row's label in the block menu. */
15469
+ "attr:paragraph-label"?: (HelixHeadlessEditor["paragraphLabel"]) | undefined;
15470
+ /** The Paragraph row's label in the block menu. */
15471
+ "prop:paragraphLabel"?: (HelixHeadlessEditor["paragraphLabel"]) | undefined;
15472
+ /** The words shown in an empty document, such as "Write the release notes". */
15473
+ "prop:placeholder"?: (HelixHeadlessEditor["placeholder"]) | undefined;
15474
+ /** The Quote button's label. */
15475
+ "attr:quote-label"?: (HelixHeadlessEditor["quoteLabel"]) | undefined;
15476
+ /** The Quote button's label. */
15477
+ "prop:quoteLabel"?: (HelixHeadlessEditor["quoteLabel"]) | undefined;
15478
+ /** Shows the document and takes no edits, with no toolbar, for a document
15479
+ someone reads, or one an agent is writing. The attribute is `readonly`,
15480
+ the platform's spelling. */
15481
+ "bool:readonly"?: (HelixHeadlessEditor["readOnly"]) | undefined;
15482
+ /** Shows the document and takes no edits, with no toolbar, for a document
15483
+ someone reads, or one an agent is writing. The attribute is `readonly`,
15484
+ the platform's spelling. */
15485
+ "prop:readOnly"?: (HelixHeadlessEditor["readOnly"]) | undefined;
15486
+ /** The Redo button's label. */
15487
+ "attr:redo-label"?: (HelixHeadlessEditor["redoLabel"]) | undefined;
15488
+ /** The Redo button's label. */
15489
+ "prop:redoLabel"?: (HelixHeadlessEditor["redoLabel"]) | undefined;
15490
+ /** The Strikethrough button's label. */
15491
+ "attr:strike-label"?: (HelixHeadlessEditor["strikeLabel"]) | undefined;
15492
+ /** The Strikethrough button's label. */
15493
+ "prop:strikeLabel"?: (HelixHeadlessEditor["strikeLabel"]) | undefined;
15494
+ /** Which groups of tools the toolbar draws, as a list of `history`, `block`,
15495
+ `marks`, `link`, `lists`, and `quote`, or `none`. They are drawn in that
15496
+ order, whatever order the list is in. Absent is all six. */
15497
+ "prop:tools"?: (HelixHeadlessEditor["tools"]) | undefined;
15498
+ /** The Undo button's label. */
15499
+ "attr:undo-label"?: (HelixHeadlessEditor["undoLabel"]) | undefined;
15500
+ /** The Undo button's label. */
15501
+ "prop:undoLabel"?: (HelixHeadlessEditor["undoLabel"]) | undefined;
15502
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
15503
+ "on:helix-found"?: ((e: HelixHeadlessEditorHelixFoundElementEvent) => void) | undefined;
15504
+
15505
+ /** Set the innerHTML of the element */
15506
+ innerHTML?: (string) | undefined;
15507
+ /** Set the textContent of the element */
15508
+ textContent?: (string | number) | undefined;
15509
+ };
15510
+
15265
15511
  export type HelixHeadlessEmptyProps = {
15266
15512
  /** The heading as words, such as "No results", drawn as a heading when
15267
15513
  nothing is slotted into `heading`.
@@ -49072,8 +49318,8 @@ export type CustomElements<F extends Framework = "other"> = {
49072
49318
  * A pane for working on a file: a header with its name, its language and the
49073
49319
  * page's own actions, the code, the problems in it, and a status line that
49074
49320
  * says where the caret is. On its own the code is a `<textarea>` in the code
49075
- * face. Connect an engine and it draws the code instead: `connectEditor` from
49076
- * `@fusion.dev/helix-editor` connects CodeMirror, with highlighting in your
49321
+ * face. Connect an engine and it draws the code instead: `connectCodeEditor` from
49322
+ * `@fusion.dev/helix-code-editor` connects CodeMirror, with highlighting in your
49077
49323
  * theme's syntax colors, line numbers, folding, bracket matching and history.
49078
49324
  * The value, the form, validation and the events stay the editor's, so a page
49079
49325
  * reads and writes it the same either way.
@@ -49192,7 +49438,7 @@ export type CustomElements<F extends Framework = "other"> = {
49192
49438
  * Here rather than on each control.
49193
49439
  * - `diagnostics`: The problems in the text, each underlined and listed under the editor. (property only)
49194
49440
  * - `engine`: What draws the editor, such as `codeMirrorEngine()` from
49195
- * `@fusion.dev/helix-editor`. Absent, the editor is a plain text field. (property only)
49441
+ * `@fusion.dev/helix-code-editor`. Absent, the editor is a plain text field. (property only)
49196
49442
  * - `validity`: Whether the control meets its constraints, and why not. (property only) (readonly)
49197
49443
  * - `validationMessage`: The message the browser would show for the control, or an empty string. (property only) (readonly)
49198
49444
  * - `willValidate`: Whether the control is checked when its form is submitted. (property only) (readonly)
@@ -54649,6 +54895,344 @@ export type CustomElements<F extends Framework = "other"> = {
54649
54895
  HelixHeadlessDrilldownProps & BaseProps<HelixHeadlessDrilldown, F> & BaseEvents<HelixHeadlessDrilldown>
54650
54896
  >;
54651
54897
 
54898
+ /**
54899
+ * Wraps a document drawn by ProseMirror or another rich text editor. The frame
54900
+ * adds a toolbar, an address bar for links, and a box the document is drawn
54901
+ * in. `connectEditor` from `@fusion.dev/helix-editor` connects ProseMirror:
54902
+ * it gives the document Helix's typed blocks, each with a stable id, and draws
54903
+ * them in your theme.
54904
+ *
54905
+ * The document is the element you write inside the frame, so it stays in the
54906
+ * page: the browser's input methods, spellcheck, and right-to-left text work in
54907
+ * it as they do in any field. A server can send the document's HTML there, and
54908
+ * it reads before any script loads. Mark it `data-prose`, so the base layer
54909
+ * draws its headings, lists, and quotes before a renderer connects.
54910
+ *
54911
+ * The toolbar's groups are named by `tools`, in this order: `history` (Undo
54912
+ * and Redo), `block` (a menu of Paragraph, three headings, and Code block),
54913
+ * `marks` (Bold, Italic, Strikethrough, and Code), `link`, `lists` (Bulleted
54914
+ * and Numbered), and `quote`, which are drawn by default, and `find`, the Find
54915
+ * button, which is drawn where `tools` names it. A tool the renderer cannot run
54916
+ * is left out once it is connected, and a tool that cannot apply at the
54917
+ * selection is disabled. A tool returns focus to the document once it has run.
54918
+ * With `readonly`, the document cannot be edited and the toolbar is not drawn.
54919
+ *
54920
+ * Command+F opens a find bar under the toolbar, a Find that searches the
54921
+ * document through the renderer, marks every match, and selects one. It
54922
+ * replaces unless the document is `readonly`, which it searches too.
54923
+ *
54924
+ * **Keyboard.** In the document:
54925
+ *
54926
+ * - Command+B, Command+I, Command+Shift+X, and Command+E make text bold,
54927
+ * italic, struck through, and code. Use Control in place of Command on
54928
+ * Windows and Linux.
54929
+ * - Command+Alt+0 makes a paragraph, Command+Alt+1 to 3 a heading, and
54930
+ * Command+Alt+8 a code block.
54931
+ * - Command+Shift+8, Command+Shift+7, and Command+Shift+9 make a bulleted
54932
+ * list, a numbered list, and a quote.
54933
+ * - Command+K opens the address bar for a link. Enter applies the address,
54934
+ * and Escape closes the bar.
54935
+ * - Command+Z undoes, and Command+Shift+Z redoes.
54936
+ * - In a list, Tab nests the item and Shift+Tab lifts it. Escape then Tab
54937
+ * leaves the document from anywhere, so a list never keeps focus.
54938
+ * - Alt+F10 moves focus to the toolbar. The arrow keys move between its
54939
+ * tools, and Escape returns to the document.
54940
+ * - Command+F opens the find bar. Enter and Shift+Enter move between the
54941
+ * matches, and Escape closes the bar and returns to the document.
54942
+ *
54943
+ * ## Attributes & Properties
54944
+ *
54945
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
54946
+ *
54947
+ * - `block-chosen-label`/`blockChosenLabel`: The block menu button's name. `{name}` is the block type at the selection.
54948
+ * - `block-label`/`blockLabel`: The block menu's name, read by screen readers.
54949
+ * - `bold-label`/`boldLabel`: The Bold button's label.
54950
+ * - `bullet-list-label`/`bulletListLabel`: The Bulleted list button's label.
54951
+ * - `code-block-label`/`codeBlockLabel`: The Code block row's label in the block menu.
54952
+ * - `code-label`/`codeLabel`: The Code button's label.
54953
+ * - `controls-label`/`controlsLabel`: The toolbar's name, read by screen readers.
54954
+ * - `fallback-label`/`fallbackLabel`: The document's name where `label` is empty and the host has no `aria-label`.
54955
+ * - `find-label`/`findLabel`: The Find button's label, and the find bar's name.
54956
+ * - `heading-label`/`headingLabel`: A heading's name in the block menu. `{level}` is its level, 1 to 3.
54957
+ * - `italic-label`/`italicLabel`: The Italic button's label.
54958
+ * - `label`: The document's name, read by screen readers. Name what it holds, such as
54959
+ * "Release notes", so that several editors on one page can be told apart.
54960
+ * Required.
54961
+ * - `link-apply-label`/`linkApplyLabel`: The Apply button's label in the address bar.
54962
+ * - `link-close-label`/`linkCloseLabel`: The close button's label in the address bar.
54963
+ * - `link-controls-label`/`linkControlsLabel`: The name of the address bar's toolbar, read by screen readers.
54964
+ * - `link-field-label`/`linkFieldLabel`: The address field's name, which it also shows while it is empty.
54965
+ * - `link-label`/`linkLabel`: The Link button's label, and the address bar's name.
54966
+ * - `link-remove-label`/`linkRemoveLabel`: The Remove button's label in the address bar.
54967
+ * - `ordered-list-label`/`orderedListLabel`: The Numbered list button's label.
54968
+ * - `paragraph-label`/`paragraphLabel`: The Paragraph row's label in the block menu.
54969
+ * - `placeholder`: The words shown in an empty document, such as "Write the release notes".
54970
+ * - `quote-label`/`quoteLabel`: The Quote button's label.
54971
+ * - `readonly`/`readOnly`: Shows the document and takes no edits, with no toolbar, for a document
54972
+ * someone reads, or one an agent is writing. The attribute is `readonly`,
54973
+ * the platform's spelling.
54974
+ * - `redo-label`/`redoLabel`: The Redo button's label.
54975
+ * - `strike-label`/`strikeLabel`: The Strikethrough button's label.
54976
+ * - `tools`: Which groups of tools the toolbar draws, as a list of `history`, `block`,
54977
+ * `marks`, `link`, `lists`, and `quote`, or `none`. They are drawn in that
54978
+ * order, whatever order the list is in. Absent is all six.
54979
+ * - `undo-label`/`undoLabel`: The Undo button's label.
54980
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
54981
+ *
54982
+ * **Named `whenSettled` because `settled` is taken four times over**, by
54983
+ * Image, Splitter and both color controls, none of them about transitions. A
54984
+ * base class takes the name every subclass then cannot use.
54985
+ *
54986
+ * **The state it reports cannot be watched, which is why this exists.** A
54987
+ * custom state is deliberately not in the DOM, so there is no
54988
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
54989
+ * instead.
54990
+ *
54991
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
54992
+ * the suppression is still active in. That is the distinction `readyToMove`
54993
+ * in `@fusion.dev/helix-testing` is written around.
54994
+ *
54995
+ * It never resolves where `requestAnimationFrame` never fires, which is a
54996
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
54997
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
54998
+ * browser harness's awaits it alone: a browser always runs the frame, and a
54999
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
55000
+ *
55001
+ * ## Events
55002
+ *
55003
+ * Events that will be emitted by the component.
55004
+ *
55005
+ * - `helix-found`: The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none.
55006
+ *
55007
+ * ## Slots
55008
+ *
55009
+ * Areas where markup can be added to the component.
55010
+ *
55011
+ * - `(default)`: The element your renderer draws the document in.
55012
+ * - `actions`: Controls of your own at the end of the toolbar, such as Share or Comment.
55013
+ * - `bold-icon`: Replaces the glyph inside the Bold button.
55014
+ * - `bullet-list-icon`: Replaces the glyph inside the Bulleted list button.
55015
+ * - `code-icon`: Replaces the glyph inside the Code button.
55016
+ * - `find-icon`: Replaces the glyph inside the Find button.
55017
+ * - `footer`: Content under the document, such as a word count or whether it is saved.
55018
+ * - `italic-icon`: Replaces the glyph inside the Italic button.
55019
+ * - `link-icon`: Replaces the glyph inside the Link button.
55020
+ * - `ordered-list-icon`: Replaces the glyph inside the Numbered list button.
55021
+ * - `quote-icon`: Replaces the glyph inside the Quote button.
55022
+ * - `redo-icon`: Replaces the glyph inside the Redo button.
55023
+ * - `strike-icon`: Replaces the glyph inside the Strikethrough button.
55024
+ * - `undo-icon`: Replaces the glyph inside the Undo button.
55025
+ *
55026
+ * ## Methods
55027
+ *
55028
+ * Methods that can be called to access component functionality.
55029
+ *
55030
+ * - `attach(renderer: EditorRenderer) => EditorSink`: Hands the frame what draws the document. The frame sends it the settings
55031
+ * now and as they change, asks it to run the tools the reader presses, and
55032
+ * draws the toolbar from what it reports through the sink it gets back.
55033
+ * Attaching another renderer detaches this one.
55034
+ * - `run(tool: EditorTool, value?: string) => boolean`: Runs a tool at the selection, as its button does, and says whether it
55035
+ * ran: a block type, a mark, a list, a quote, a step through history, or a
55036
+ * link to `value`, where an empty `value` takes the link off. Nothing runs
55037
+ * while no renderer is attached, or while `readonly`.
55038
+ * - `focus(options?: FocusOptions) => void`: Puts focus in the document, with the selection where it was.
55039
+ * - `openLink() => void`: Opens the address bar with the address of the link at the selection, and puts focus in its field.
55040
+ *
55041
+ * ## CSS Parts
55042
+ *
55043
+ * Custom selectors for styling elements within the component.
55044
+ *
55045
+ * - `actions`: The `actions` slot, last in the toolbar.
55046
+ * - `block`: The button that opens the block menu, which names the block type at the selection.
55047
+ * - `block-button`: The block menu button's inner button.
55048
+ * - `block-live`: The block menu button's live region, which speaks while the button is pending.
55049
+ * - `block-menu`: The menu of block types.
55050
+ * - `block-menu-back`: The control that returns from a submenu.
55051
+ * - `block-menu-back-mark`: The glyph on the back control of a submenu.
55052
+ * - `block-menu-empty`: The text shown when the menu has no items.
55053
+ * - `block-menu-header`: The bar above a submenu, holding the way back and its name.
55054
+ * - `block-menu-live`: The block menu's live region, which repeats the empty and loading text for screen readers.
55055
+ * - `block-menu-loading`: The text shown while the items are loading.
55056
+ * - `block-menu-search-field`: The block menu's filter field, drawn with `filterable`.
55057
+ * - `block-menu-surface`: The floating panel the block menu is drawn on.
55058
+ * - `block-menu-title`: The name of the submenu that is showing.
55059
+ * - `block-name`: The name of the block type at the selection, in the block menu's button.
55060
+ * - `block-option`: One block type in the block menu, checked while the selection is in one.
55061
+ * - `block-option-end`: A block type's trailing column, which holds its shortcut.
55062
+ * - `block-option-item`: A block type's row.
55063
+ * - `block-option-mark`: The check beside the block type the selection is in.
55064
+ * - `block-option-shortcut`: A block type's key.
55065
+ * - `block-option-shortcut-kbd`: The key inside it.
55066
+ * - `block-option-shortcut-key`: One key of a block type's chord.
55067
+ * - `block-option-shortcut-separator`: The `+` between two keys of a block type's chord.
55068
+ * - `block-option-start`: A block type's leading column.
55069
+ * - `block-option-surface`: A block type's submenu panel, which a block type does not open.
55070
+ * - `block-spinner`: The ring the block menu button turns while it is pending.
55071
+ * - `block-text`: The box the block menu button's words sit in.
55072
+ * - `bold`: The Bold button. Pressed while the selection is bold.
55073
+ * - `bold-button`: The Bold button's inner button.
55074
+ * - `bold-live`: The Bold button's live region, which speaks while the button is pending.
55075
+ * - `bold-pressed`: The Bold button while the selection is bold, beside `bold`.
55076
+ * - `bold-spinner`: The ring the Bold button turns while it is pending.
55077
+ * - `bold-text`: The box the Bold button's icon sits in.
55078
+ * - `bullet-list`: The Bulleted list button. Pressed while the selection is in a bulleted list.
55079
+ * - `bullet-list-button`: The Bulleted list button's inner button.
55080
+ * - `bullet-list-live`: The Bulleted list button's live region, which speaks while the button is pending.
55081
+ * - `bullet-list-pressed`: The Bulleted list button while the selection is in a bulleted list, beside `bullet-list`.
55082
+ * - `bullet-list-spinner`: The ring the Bulleted list button turns while it is pending.
55083
+ * - `bullet-list-text`: The box the Bulleted list button's icon sits in.
55084
+ * - `code`: The Code button. Pressed while the selection is code.
55085
+ * - `code-button`: The Code button's inner button.
55086
+ * - `code-live`: The Code button's live region, which speaks while the button is pending.
55087
+ * - `code-pressed`: The Code button while the selection is code, beside `code`.
55088
+ * - `code-spinner`: The ring the Code button turns while it is pending.
55089
+ * - `code-text`: The box the Code button's icon sits in.
55090
+ * - `controls`: The toolbar: the tools, then your actions, one tab stop that the arrows move along.
55091
+ * - `controls-toolbar`: The box inside the toolbar that lays its buttons out.
55092
+ * - `divider`: The line between two groups of tools.
55093
+ * - `divider-content`: The content set into a divider, which the editor sets none into.
55094
+ * - `divider-line`: The line itself.
55095
+ * - `find`: The find bar under the toolbar, where the reader searches the document: a Find of its own.
55096
+ * - `find-actions`: The find bar's `actions` slot, which the editor fills with nothing.
55097
+ * - `find-bar`: The find bar's strip: the field, the count, the toolbar, and the replace row while it shows.
55098
+ * - `find-close`: The button that closes the find bar.
55099
+ * - `find-close-button`: The find bar's close button's inner button.
55100
+ * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
55101
+ * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
55102
+ * - `find-close-text`: The box the find bar's close button's icon sits in.
55103
+ * - `find-controls`: The find bar's toolbar of options and moves.
55104
+ * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
55105
+ * - `find-count`: Which match is selected, of how many.
55106
+ * - `find-field`: The field the search is typed in.
55107
+ * - `find-live`: The find bar's live region, which says the count as it changes.
55108
+ * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
55109
+ * - `find-match-case-button`: The match case button's inner button.
55110
+ * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
55111
+ * - `find-match-case-pressed`: The match case option while it applies, beside `find-match-case`.
55112
+ * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
55113
+ * - `find-match-case-text`: The box the match case button's icon sits in.
55114
+ * - `find-next`: The button that selects the next match.
55115
+ * - `find-next-button`: The next match button's inner button.
55116
+ * - `find-next-live`: The next match button's live region, which speaks while the button is pending.
55117
+ * - `find-next-spinner`: The ring the next match button turns while it is pending.
55118
+ * - `find-next-text`: The box the next match button's icon sits in.
55119
+ * - `find-previous`: The button that selects the previous match.
55120
+ * - `find-previous-button`: The previous match button's inner button.
55121
+ * - `find-previous-live`: The previous match button's live region, which speaks while the button is pending.
55122
+ * - `find-previous-spinner`: The ring the previous match button turns while it is pending.
55123
+ * - `find-previous-text`: The box the previous match button's icon sits in.
55124
+ * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
55125
+ * - `find-regex-button`: The regular expression button's inner button.
55126
+ * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
55127
+ * - `find-regex-pressed`: The regular expression option while it applies, beside `find-regex`.
55128
+ * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
55129
+ * - `find-regex-text`: The box the regular expression button's icon sits in.
55130
+ * - `find-replace`: The button that replaces the selected match.
55131
+ * - `find-replace-all`: The button that replaces every match.
55132
+ * - `find-replace-all-button`: The Replace all button's inner button.
55133
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
55134
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
55135
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
55136
+ * - `find-replace-button`: The Replace button's inner button.
55137
+ * - `find-replace-field`: The field the replacement is typed in.
55138
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
55139
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
55140
+ * - `find-replace-text`: The box the Replace button's words sits in.
55141
+ * - `find-replace-toggle`: The button that shows the replace field under the find field. Expanded while it shows. Not drawn while `readonly`.
55142
+ * - `find-replace-toggle-button`: The find and replace button's inner button.
55143
+ * - `find-replace-toggle-live`: The find and replace button's live region, which speaks while the button is pending.
55144
+ * - `find-replace-toggle-spinner`: The ring the find and replace button turns while it is pending.
55145
+ * - `find-replace-toggle-text`: The box the find and replace button's icon sits in.
55146
+ * - `find-toggle`: The Find button in the toolbar, drawn where `tools` names `find`, which opens and closes the find bar. Expanded while it is open.
55147
+ * - `find-toggle-button`: The Find button's inner button.
55148
+ * - `find-toggle-live`: The Find button's live region, which speaks while the button is pending.
55149
+ * - `find-toggle-spinner`: The ring the Find button turns while it is pending.
55150
+ * - `find-toggle-text`: The box the Find button's icon sits in.
55151
+ * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
55152
+ * - `find-whole-word-button`: The whole word button's inner button.
55153
+ * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
55154
+ * - `find-whole-word-pressed`: The whole word option while it applies, beside `find-whole-word`.
55155
+ * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
55156
+ * - `find-whole-word-text`: The box the whole word button's icon sits in.
55157
+ * - `footer`: The `footer` slot, under the document.
55158
+ * - `header`: The strip above the document that holds the toolbar, and the address bar under it while it is open.
55159
+ * - `italic`: The Italic button. Pressed while the selection is italic.
55160
+ * - `italic-button`: The Italic button's inner button.
55161
+ * - `italic-live`: The Italic button's live region, which speaks while the button is pending.
55162
+ * - `italic-pressed`: The Italic button while the selection is italic, beside `italic`.
55163
+ * - `italic-spinner`: The ring the Italic button turns while it is pending.
55164
+ * - `italic-text`: The box the Italic button's icon sits in.
55165
+ * - `link`: The Link button, which opens the address bar. Pressed while the selection is in a link, and expanded while the bar is open.
55166
+ * - `link-apply`: The button that applies the address.
55167
+ * - `link-apply-button`: The Apply button's inner button.
55168
+ * - `link-apply-live`: The Apply button's live region, which speaks while the button is pending.
55169
+ * - `link-apply-spinner`: The ring the Apply button turns while it is pending.
55170
+ * - `link-apply-text`: The box the Apply button's icon sits in.
55171
+ * - `link-bar`: The bar under the toolbar where the reader writes a link's address.
55172
+ * - `link-button`: The Link button's inner button.
55173
+ * - `link-close`: The button that closes the address bar.
55174
+ * - `link-close-button`: The close button's inner button.
55175
+ * - `link-close-live`: The close button's live region, which speaks while the button is pending.
55176
+ * - `link-close-spinner`: The ring the close button turns while it is pending.
55177
+ * - `link-close-text`: The box the close button's icon sits in.
55178
+ * - `link-controls`: The toolbar at the end of the address bar: Apply, Remove, and Close.
55179
+ * - `link-controls-toolbar`: The box inside the address bar's toolbar that lays its buttons out.
55180
+ * - `link-field`: The field the address is written in.
55181
+ * - `link-live`: The Link button's live region, which speaks while the button is pending.
55182
+ * - `link-pressed`: The Link button while the selection is in a link, beside `link`.
55183
+ * - `link-remove`: The button that takes the link off. Disabled where the selection is in no link.
55184
+ * - `link-remove-button`: The Remove button's inner button.
55185
+ * - `link-remove-live`: The Remove button's live region, which speaks while the button is pending.
55186
+ * - `link-remove-spinner`: The ring the Remove button turns while it is pending.
55187
+ * - `link-remove-text`: The box the Remove button's icon sits in.
55188
+ * - `link-spinner`: The ring the Link button turns while it is pending.
55189
+ * - `link-text`: The box the Link button's icon sits in.
55190
+ * - `ordered-list`: The Numbered list button. Pressed while the selection is in a numbered list.
55191
+ * - `ordered-list-button`: The Numbered list button's inner button.
55192
+ * - `ordered-list-live`: The Numbered list button's live region, which speaks while the button is pending.
55193
+ * - `ordered-list-pressed`: The Numbered list button while the selection is in a numbered list, beside `ordered-list`.
55194
+ * - `ordered-list-spinner`: The ring the Numbered list button turns while it is pending.
55195
+ * - `ordered-list-text`: The box the Numbered list button's icon sits in.
55196
+ * - `quote`: The Quote button. Pressed while the selection is in a quote.
55197
+ * - `quote-button`: The Quote button's inner button.
55198
+ * - `quote-live`: The Quote button's live region, which speaks while the button is pending.
55199
+ * - `quote-pressed`: The Quote button while the selection is in a quote, beside `quote`.
55200
+ * - `quote-spinner`: The ring the Quote button turns while it is pending.
55201
+ * - `quote-text`: The box the Quote button's icon sits in.
55202
+ * - `redo`: The Redo button. Disabled while there is nothing to redo.
55203
+ * - `redo-button`: The Redo button's inner button.
55204
+ * - `redo-live`: The Redo button's live region, which speaks while the button is pending.
55205
+ * - `redo-spinner`: The ring the Redo button turns while it is pending.
55206
+ * - `redo-text`: The box the Redo button's icon sits in.
55207
+ * - `region`: The frame around the toolbar, the address bar, and the document.
55208
+ * - `strike`: The Strikethrough button. Pressed while the selection is struck through.
55209
+ * - `strike-button`: The Strikethrough button's inner button.
55210
+ * - `strike-live`: The Strikethrough button's live region, which speaks while the button is pending.
55211
+ * - `strike-pressed`: The Strikethrough button while the selection is struck through, beside `strike`.
55212
+ * - `strike-spinner`: The ring the Strikethrough button turns while it is pending.
55213
+ * - `strike-text`: The box the Strikethrough button's icon sits in.
55214
+ * - `tools`: A group of several tools, which a narrow toolbar wraps as one: Undo and Redo, the marks, or the lists and the quote.
55215
+ * - `undo`: The Undo button. Disabled while there is nothing to undo.
55216
+ * - `undo-button`: The Undo button's inner button.
55217
+ * - `undo-live`: The Undo button's live region, which speaks while the button is pending.
55218
+ * - `undo-spinner`: The ring the Undo button turns while it is pending.
55219
+ * - `undo-text`: The box the Undo button's icon sits in.
55220
+ * - `viewport`: The box the document is drawn in.
55221
+ *
55222
+ * ## CSS States
55223
+ *
55224
+ * These can be used to apply styling when a component is in a given state.
55225
+ *
55226
+ * - `connected`: A renderer draws the document.
55227
+ * - `document-focused`: Focus is in the document, where the reader types.
55228
+ * - `find-open`: The find bar is open.
55229
+ * - `link-open`: The address bar is open.
55230
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
55231
+ */
55232
+ "helix-headless-editor": Partial<
55233
+ HelixHeadlessEditorProps & BaseProps<HelixHeadlessEditor, F> & BaseEvents<HelixHeadlessEditor>
55234
+ >;
55235
+
54652
55236
  /**
54653
55237
  * Shows what would be in a region and the one action that would fill it, so an
54654
55238
  * empty region does not look like one that failed to load.
@@ -84192,8 +84776,8 @@ export type CustomElementsSolidJs = {
84192
84776
  * A pane for working on a file: a header with its name, its language and the
84193
84777
  * page's own actions, the code, the problems in it, and a status line that
84194
84778
  * says where the caret is. On its own the code is a `<textarea>` in the code
84195
- * face. Connect an engine and it draws the code instead: `connectEditor` from
84196
- * `@fusion.dev/helix-editor` connects CodeMirror, with highlighting in your
84779
+ * face. Connect an engine and it draws the code instead: `connectCodeEditor` from
84780
+ * `@fusion.dev/helix-code-editor` connects CodeMirror, with highlighting in your
84197
84781
  * theme's syntax colors, line numbers, folding, bracket matching and history.
84198
84782
  * The value, the form, validation and the events stay the editor's, so a page
84199
84783
  * reads and writes it the same either way.
@@ -84312,7 +84896,7 @@ export type CustomElementsSolidJs = {
84312
84896
  * Here rather than on each control.
84313
84897
  * - `diagnostics`: The problems in the text, each underlined and listed under the editor. (property only)
84314
84898
  * - `engine`: What draws the editor, such as `codeMirrorEngine()` from
84315
- * `@fusion.dev/helix-editor`. Absent, the editor is a plain text field. (property only)
84899
+ * `@fusion.dev/helix-code-editor`. Absent, the editor is a plain text field. (property only)
84316
84900
  * - `validity`: Whether the control meets its constraints, and why not. (property only) (readonly)
84317
84901
  * - `validationMessage`: The message the browser would show for the control, or an empty string. (property only) (readonly)
84318
84902
  * - `willValidate`: Whether the control is checked when its form is submitted. (property only) (readonly)
@@ -89809,6 +90393,347 @@ export type CustomElementsSolidJs = {
89809
90393
  BaseEvents<HelixHeadlessDrilldown>
89810
90394
  >;
89811
90395
 
90396
+ /**
90397
+ * Wraps a document drawn by ProseMirror or another rich text editor. The frame
90398
+ * adds a toolbar, an address bar for links, and a box the document is drawn
90399
+ * in. `connectEditor` from `@fusion.dev/helix-editor` connects ProseMirror:
90400
+ * it gives the document Helix's typed blocks, each with a stable id, and draws
90401
+ * them in your theme.
90402
+ *
90403
+ * The document is the element you write inside the frame, so it stays in the
90404
+ * page: the browser's input methods, spellcheck, and right-to-left text work in
90405
+ * it as they do in any field. A server can send the document's HTML there, and
90406
+ * it reads before any script loads. Mark it `data-prose`, so the base layer
90407
+ * draws its headings, lists, and quotes before a renderer connects.
90408
+ *
90409
+ * The toolbar's groups are named by `tools`, in this order: `history` (Undo
90410
+ * and Redo), `block` (a menu of Paragraph, three headings, and Code block),
90411
+ * `marks` (Bold, Italic, Strikethrough, and Code), `link`, `lists` (Bulleted
90412
+ * and Numbered), and `quote`, which are drawn by default, and `find`, the Find
90413
+ * button, which is drawn where `tools` names it. A tool the renderer cannot run
90414
+ * is left out once it is connected, and a tool that cannot apply at the
90415
+ * selection is disabled. A tool returns focus to the document once it has run.
90416
+ * With `readonly`, the document cannot be edited and the toolbar is not drawn.
90417
+ *
90418
+ * Command+F opens a find bar under the toolbar, a Find that searches the
90419
+ * document through the renderer, marks every match, and selects one. It
90420
+ * replaces unless the document is `readonly`, which it searches too.
90421
+ *
90422
+ * **Keyboard.** In the document:
90423
+ *
90424
+ * - Command+B, Command+I, Command+Shift+X, and Command+E make text bold,
90425
+ * italic, struck through, and code. Use Control in place of Command on
90426
+ * Windows and Linux.
90427
+ * - Command+Alt+0 makes a paragraph, Command+Alt+1 to 3 a heading, and
90428
+ * Command+Alt+8 a code block.
90429
+ * - Command+Shift+8, Command+Shift+7, and Command+Shift+9 make a bulleted
90430
+ * list, a numbered list, and a quote.
90431
+ * - Command+K opens the address bar for a link. Enter applies the address,
90432
+ * and Escape closes the bar.
90433
+ * - Command+Z undoes, and Command+Shift+Z redoes.
90434
+ * - In a list, Tab nests the item and Shift+Tab lifts it. Escape then Tab
90435
+ * leaves the document from anywhere, so a list never keeps focus.
90436
+ * - Alt+F10 moves focus to the toolbar. The arrow keys move between its
90437
+ * tools, and Escape returns to the document.
90438
+ * - Command+F opens the find bar. Enter and Shift+Enter move between the
90439
+ * matches, and Escape closes the bar and returns to the document.
90440
+ *
90441
+ * ## Attributes & Properties
90442
+ *
90443
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
90444
+ *
90445
+ * - `block-chosen-label`/`blockChosenLabel`: The block menu button's name. `{name}` is the block type at the selection.
90446
+ * - `block-label`/`blockLabel`: The block menu's name, read by screen readers.
90447
+ * - `bold-label`/`boldLabel`: The Bold button's label.
90448
+ * - `bullet-list-label`/`bulletListLabel`: The Bulleted list button's label.
90449
+ * - `code-block-label`/`codeBlockLabel`: The Code block row's label in the block menu.
90450
+ * - `code-label`/`codeLabel`: The Code button's label.
90451
+ * - `controls-label`/`controlsLabel`: The toolbar's name, read by screen readers.
90452
+ * - `fallback-label`/`fallbackLabel`: The document's name where `label` is empty and the host has no `aria-label`.
90453
+ * - `find-label`/`findLabel`: The Find button's label, and the find bar's name.
90454
+ * - `heading-label`/`headingLabel`: A heading's name in the block menu. `{level}` is its level, 1 to 3.
90455
+ * - `italic-label`/`italicLabel`: The Italic button's label.
90456
+ * - `label`: The document's name, read by screen readers. Name what it holds, such as
90457
+ * "Release notes", so that several editors on one page can be told apart.
90458
+ * Required.
90459
+ * - `link-apply-label`/`linkApplyLabel`: The Apply button's label in the address bar.
90460
+ * - `link-close-label`/`linkCloseLabel`: The close button's label in the address bar.
90461
+ * - `link-controls-label`/`linkControlsLabel`: The name of the address bar's toolbar, read by screen readers.
90462
+ * - `link-field-label`/`linkFieldLabel`: The address field's name, which it also shows while it is empty.
90463
+ * - `link-label`/`linkLabel`: The Link button's label, and the address bar's name.
90464
+ * - `link-remove-label`/`linkRemoveLabel`: The Remove button's label in the address bar.
90465
+ * - `ordered-list-label`/`orderedListLabel`: The Numbered list button's label.
90466
+ * - `paragraph-label`/`paragraphLabel`: The Paragraph row's label in the block menu.
90467
+ * - `placeholder`: The words shown in an empty document, such as "Write the release notes".
90468
+ * - `quote-label`/`quoteLabel`: The Quote button's label.
90469
+ * - `readonly`/`readOnly`: Shows the document and takes no edits, with no toolbar, for a document
90470
+ * someone reads, or one an agent is writing. The attribute is `readonly`,
90471
+ * the platform's spelling.
90472
+ * - `redo-label`/`redoLabel`: The Redo button's label.
90473
+ * - `strike-label`/`strikeLabel`: The Strikethrough button's label.
90474
+ * - `tools`: Which groups of tools the toolbar draws, as a list of `history`, `block`,
90475
+ * `marks`, `link`, `lists`, and `quote`, or `none`. They are drawn in that
90476
+ * order, whatever order the list is in. Absent is all six.
90477
+ * - `undo-label`/`undoLabel`: The Undo button's label.
90478
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
90479
+ *
90480
+ * **Named `whenSettled` because `settled` is taken four times over**, by
90481
+ * Image, Splitter and both color controls, none of them about transitions. A
90482
+ * base class takes the name every subclass then cannot use.
90483
+ *
90484
+ * **The state it reports cannot be watched, which is why this exists.** A
90485
+ * custom state is deliberately not in the DOM, so there is no
90486
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
90487
+ * instead.
90488
+ *
90489
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
90490
+ * the suppression is still active in. That is the distinction `readyToMove`
90491
+ * in `@fusion.dev/helix-testing` is written around.
90492
+ *
90493
+ * It never resolves where `requestAnimationFrame` never fires, which is a
90494
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
90495
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
90496
+ * browser harness's awaits it alone: a browser always runs the frame, and a
90497
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
90498
+ *
90499
+ * ## Events
90500
+ *
90501
+ * Events that will be emitted by the component.
90502
+ *
90503
+ * - `helix-found`: The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none.
90504
+ *
90505
+ * ## Slots
90506
+ *
90507
+ * Areas where markup can be added to the component.
90508
+ *
90509
+ * - `(default)`: The element your renderer draws the document in.
90510
+ * - `actions`: Controls of your own at the end of the toolbar, such as Share or Comment.
90511
+ * - `bold-icon`: Replaces the glyph inside the Bold button.
90512
+ * - `bullet-list-icon`: Replaces the glyph inside the Bulleted list button.
90513
+ * - `code-icon`: Replaces the glyph inside the Code button.
90514
+ * - `find-icon`: Replaces the glyph inside the Find button.
90515
+ * - `footer`: Content under the document, such as a word count or whether it is saved.
90516
+ * - `italic-icon`: Replaces the glyph inside the Italic button.
90517
+ * - `link-icon`: Replaces the glyph inside the Link button.
90518
+ * - `ordered-list-icon`: Replaces the glyph inside the Numbered list button.
90519
+ * - `quote-icon`: Replaces the glyph inside the Quote button.
90520
+ * - `redo-icon`: Replaces the glyph inside the Redo button.
90521
+ * - `strike-icon`: Replaces the glyph inside the Strikethrough button.
90522
+ * - `undo-icon`: Replaces the glyph inside the Undo button.
90523
+ *
90524
+ * ## Methods
90525
+ *
90526
+ * Methods that can be called to access component functionality.
90527
+ *
90528
+ * - `attach(renderer: EditorRenderer) => EditorSink`: Hands the frame what draws the document. The frame sends it the settings
90529
+ * now and as they change, asks it to run the tools the reader presses, and
90530
+ * draws the toolbar from what it reports through the sink it gets back.
90531
+ * Attaching another renderer detaches this one.
90532
+ * - `run(tool: EditorTool, value?: string) => boolean`: Runs a tool at the selection, as its button does, and says whether it
90533
+ * ran: a block type, a mark, a list, a quote, a step through history, or a
90534
+ * link to `value`, where an empty `value` takes the link off. Nothing runs
90535
+ * while no renderer is attached, or while `readonly`.
90536
+ * - `focus(options?: FocusOptions) => void`: Puts focus in the document, with the selection where it was.
90537
+ * - `openLink() => void`: Opens the address bar with the address of the link at the selection, and puts focus in its field.
90538
+ *
90539
+ * ## CSS Parts
90540
+ *
90541
+ * Custom selectors for styling elements within the component.
90542
+ *
90543
+ * - `actions`: The `actions` slot, last in the toolbar.
90544
+ * - `block`: The button that opens the block menu, which names the block type at the selection.
90545
+ * - `block-button`: The block menu button's inner button.
90546
+ * - `block-live`: The block menu button's live region, which speaks while the button is pending.
90547
+ * - `block-menu`: The menu of block types.
90548
+ * - `block-menu-back`: The control that returns from a submenu.
90549
+ * - `block-menu-back-mark`: The glyph on the back control of a submenu.
90550
+ * - `block-menu-empty`: The text shown when the menu has no items.
90551
+ * - `block-menu-header`: The bar above a submenu, holding the way back and its name.
90552
+ * - `block-menu-live`: The block menu's live region, which repeats the empty and loading text for screen readers.
90553
+ * - `block-menu-loading`: The text shown while the items are loading.
90554
+ * - `block-menu-search-field`: The block menu's filter field, drawn with `filterable`.
90555
+ * - `block-menu-surface`: The floating panel the block menu is drawn on.
90556
+ * - `block-menu-title`: The name of the submenu that is showing.
90557
+ * - `block-name`: The name of the block type at the selection, in the block menu's button.
90558
+ * - `block-option`: One block type in the block menu, checked while the selection is in one.
90559
+ * - `block-option-end`: A block type's trailing column, which holds its shortcut.
90560
+ * - `block-option-item`: A block type's row.
90561
+ * - `block-option-mark`: The check beside the block type the selection is in.
90562
+ * - `block-option-shortcut`: A block type's key.
90563
+ * - `block-option-shortcut-kbd`: The key inside it.
90564
+ * - `block-option-shortcut-key`: One key of a block type's chord.
90565
+ * - `block-option-shortcut-separator`: The `+` between two keys of a block type's chord.
90566
+ * - `block-option-start`: A block type's leading column.
90567
+ * - `block-option-surface`: A block type's submenu panel, which a block type does not open.
90568
+ * - `block-spinner`: The ring the block menu button turns while it is pending.
90569
+ * - `block-text`: The box the block menu button's words sit in.
90570
+ * - `bold`: The Bold button. Pressed while the selection is bold.
90571
+ * - `bold-button`: The Bold button's inner button.
90572
+ * - `bold-live`: The Bold button's live region, which speaks while the button is pending.
90573
+ * - `bold-pressed`: The Bold button while the selection is bold, beside `bold`.
90574
+ * - `bold-spinner`: The ring the Bold button turns while it is pending.
90575
+ * - `bold-text`: The box the Bold button's icon sits in.
90576
+ * - `bullet-list`: The Bulleted list button. Pressed while the selection is in a bulleted list.
90577
+ * - `bullet-list-button`: The Bulleted list button's inner button.
90578
+ * - `bullet-list-live`: The Bulleted list button's live region, which speaks while the button is pending.
90579
+ * - `bullet-list-pressed`: The Bulleted list button while the selection is in a bulleted list, beside `bullet-list`.
90580
+ * - `bullet-list-spinner`: The ring the Bulleted list button turns while it is pending.
90581
+ * - `bullet-list-text`: The box the Bulleted list button's icon sits in.
90582
+ * - `code`: The Code button. Pressed while the selection is code.
90583
+ * - `code-button`: The Code button's inner button.
90584
+ * - `code-live`: The Code button's live region, which speaks while the button is pending.
90585
+ * - `code-pressed`: The Code button while the selection is code, beside `code`.
90586
+ * - `code-spinner`: The ring the Code button turns while it is pending.
90587
+ * - `code-text`: The box the Code button's icon sits in.
90588
+ * - `controls`: The toolbar: the tools, then your actions, one tab stop that the arrows move along.
90589
+ * - `controls-toolbar`: The box inside the toolbar that lays its buttons out.
90590
+ * - `divider`: The line between two groups of tools.
90591
+ * - `divider-content`: The content set into a divider, which the editor sets none into.
90592
+ * - `divider-line`: The line itself.
90593
+ * - `find`: The find bar under the toolbar, where the reader searches the document: a Find of its own.
90594
+ * - `find-actions`: The find bar's `actions` slot, which the editor fills with nothing.
90595
+ * - `find-bar`: The find bar's strip: the field, the count, the toolbar, and the replace row while it shows.
90596
+ * - `find-close`: The button that closes the find bar.
90597
+ * - `find-close-button`: The find bar's close button's inner button.
90598
+ * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
90599
+ * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
90600
+ * - `find-close-text`: The box the find bar's close button's icon sits in.
90601
+ * - `find-controls`: The find bar's toolbar of options and moves.
90602
+ * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
90603
+ * - `find-count`: Which match is selected, of how many.
90604
+ * - `find-field`: The field the search is typed in.
90605
+ * - `find-live`: The find bar's live region, which says the count as it changes.
90606
+ * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
90607
+ * - `find-match-case-button`: The match case button's inner button.
90608
+ * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
90609
+ * - `find-match-case-pressed`: The match case option while it applies, beside `find-match-case`.
90610
+ * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
90611
+ * - `find-match-case-text`: The box the match case button's icon sits in.
90612
+ * - `find-next`: The button that selects the next match.
90613
+ * - `find-next-button`: The next match button's inner button.
90614
+ * - `find-next-live`: The next match button's live region, which speaks while the button is pending.
90615
+ * - `find-next-spinner`: The ring the next match button turns while it is pending.
90616
+ * - `find-next-text`: The box the next match button's icon sits in.
90617
+ * - `find-previous`: The button that selects the previous match.
90618
+ * - `find-previous-button`: The previous match button's inner button.
90619
+ * - `find-previous-live`: The previous match button's live region, which speaks while the button is pending.
90620
+ * - `find-previous-spinner`: The ring the previous match button turns while it is pending.
90621
+ * - `find-previous-text`: The box the previous match button's icon sits in.
90622
+ * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
90623
+ * - `find-regex-button`: The regular expression button's inner button.
90624
+ * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
90625
+ * - `find-regex-pressed`: The regular expression option while it applies, beside `find-regex`.
90626
+ * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
90627
+ * - `find-regex-text`: The box the regular expression button's icon sits in.
90628
+ * - `find-replace`: The button that replaces the selected match.
90629
+ * - `find-replace-all`: The button that replaces every match.
90630
+ * - `find-replace-all-button`: The Replace all button's inner button.
90631
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
90632
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
90633
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
90634
+ * - `find-replace-button`: The Replace button's inner button.
90635
+ * - `find-replace-field`: The field the replacement is typed in.
90636
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
90637
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
90638
+ * - `find-replace-text`: The box the Replace button's words sits in.
90639
+ * - `find-replace-toggle`: The button that shows the replace field under the find field. Expanded while it shows. Not drawn while `readonly`.
90640
+ * - `find-replace-toggle-button`: The find and replace button's inner button.
90641
+ * - `find-replace-toggle-live`: The find and replace button's live region, which speaks while the button is pending.
90642
+ * - `find-replace-toggle-spinner`: The ring the find and replace button turns while it is pending.
90643
+ * - `find-replace-toggle-text`: The box the find and replace button's icon sits in.
90644
+ * - `find-toggle`: The Find button in the toolbar, drawn where `tools` names `find`, which opens and closes the find bar. Expanded while it is open.
90645
+ * - `find-toggle-button`: The Find button's inner button.
90646
+ * - `find-toggle-live`: The Find button's live region, which speaks while the button is pending.
90647
+ * - `find-toggle-spinner`: The ring the Find button turns while it is pending.
90648
+ * - `find-toggle-text`: The box the Find button's icon sits in.
90649
+ * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
90650
+ * - `find-whole-word-button`: The whole word button's inner button.
90651
+ * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
90652
+ * - `find-whole-word-pressed`: The whole word option while it applies, beside `find-whole-word`.
90653
+ * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
90654
+ * - `find-whole-word-text`: The box the whole word button's icon sits in.
90655
+ * - `footer`: The `footer` slot, under the document.
90656
+ * - `header`: The strip above the document that holds the toolbar, and the address bar under it while it is open.
90657
+ * - `italic`: The Italic button. Pressed while the selection is italic.
90658
+ * - `italic-button`: The Italic button's inner button.
90659
+ * - `italic-live`: The Italic button's live region, which speaks while the button is pending.
90660
+ * - `italic-pressed`: The Italic button while the selection is italic, beside `italic`.
90661
+ * - `italic-spinner`: The ring the Italic button turns while it is pending.
90662
+ * - `italic-text`: The box the Italic button's icon sits in.
90663
+ * - `link`: The Link button, which opens the address bar. Pressed while the selection is in a link, and expanded while the bar is open.
90664
+ * - `link-apply`: The button that applies the address.
90665
+ * - `link-apply-button`: The Apply button's inner button.
90666
+ * - `link-apply-live`: The Apply button's live region, which speaks while the button is pending.
90667
+ * - `link-apply-spinner`: The ring the Apply button turns while it is pending.
90668
+ * - `link-apply-text`: The box the Apply button's icon sits in.
90669
+ * - `link-bar`: The bar under the toolbar where the reader writes a link's address.
90670
+ * - `link-button`: The Link button's inner button.
90671
+ * - `link-close`: The button that closes the address bar.
90672
+ * - `link-close-button`: The close button's inner button.
90673
+ * - `link-close-live`: The close button's live region, which speaks while the button is pending.
90674
+ * - `link-close-spinner`: The ring the close button turns while it is pending.
90675
+ * - `link-close-text`: The box the close button's icon sits in.
90676
+ * - `link-controls`: The toolbar at the end of the address bar: Apply, Remove, and Close.
90677
+ * - `link-controls-toolbar`: The box inside the address bar's toolbar that lays its buttons out.
90678
+ * - `link-field`: The field the address is written in.
90679
+ * - `link-live`: The Link button's live region, which speaks while the button is pending.
90680
+ * - `link-pressed`: The Link button while the selection is in a link, beside `link`.
90681
+ * - `link-remove`: The button that takes the link off. Disabled where the selection is in no link.
90682
+ * - `link-remove-button`: The Remove button's inner button.
90683
+ * - `link-remove-live`: The Remove button's live region, which speaks while the button is pending.
90684
+ * - `link-remove-spinner`: The ring the Remove button turns while it is pending.
90685
+ * - `link-remove-text`: The box the Remove button's icon sits in.
90686
+ * - `link-spinner`: The ring the Link button turns while it is pending.
90687
+ * - `link-text`: The box the Link button's icon sits in.
90688
+ * - `ordered-list`: The Numbered list button. Pressed while the selection is in a numbered list.
90689
+ * - `ordered-list-button`: The Numbered list button's inner button.
90690
+ * - `ordered-list-live`: The Numbered list button's live region, which speaks while the button is pending.
90691
+ * - `ordered-list-pressed`: The Numbered list button while the selection is in a numbered list, beside `ordered-list`.
90692
+ * - `ordered-list-spinner`: The ring the Numbered list button turns while it is pending.
90693
+ * - `ordered-list-text`: The box the Numbered list button's icon sits in.
90694
+ * - `quote`: The Quote button. Pressed while the selection is in a quote.
90695
+ * - `quote-button`: The Quote button's inner button.
90696
+ * - `quote-live`: The Quote button's live region, which speaks while the button is pending.
90697
+ * - `quote-pressed`: The Quote button while the selection is in a quote, beside `quote`.
90698
+ * - `quote-spinner`: The ring the Quote button turns while it is pending.
90699
+ * - `quote-text`: The box the Quote button's icon sits in.
90700
+ * - `redo`: The Redo button. Disabled while there is nothing to redo.
90701
+ * - `redo-button`: The Redo button's inner button.
90702
+ * - `redo-live`: The Redo button's live region, which speaks while the button is pending.
90703
+ * - `redo-spinner`: The ring the Redo button turns while it is pending.
90704
+ * - `redo-text`: The box the Redo button's icon sits in.
90705
+ * - `region`: The frame around the toolbar, the address bar, and the document.
90706
+ * - `strike`: The Strikethrough button. Pressed while the selection is struck through.
90707
+ * - `strike-button`: The Strikethrough button's inner button.
90708
+ * - `strike-live`: The Strikethrough button's live region, which speaks while the button is pending.
90709
+ * - `strike-pressed`: The Strikethrough button while the selection is struck through, beside `strike`.
90710
+ * - `strike-spinner`: The ring the Strikethrough button turns while it is pending.
90711
+ * - `strike-text`: The box the Strikethrough button's icon sits in.
90712
+ * - `tools`: A group of several tools, which a narrow toolbar wraps as one: Undo and Redo, the marks, or the lists and the quote.
90713
+ * - `undo`: The Undo button. Disabled while there is nothing to undo.
90714
+ * - `undo-button`: The Undo button's inner button.
90715
+ * - `undo-live`: The Undo button's live region, which speaks while the button is pending.
90716
+ * - `undo-spinner`: The ring the Undo button turns while it is pending.
90717
+ * - `undo-text`: The box the Undo button's icon sits in.
90718
+ * - `viewport`: The box the document is drawn in.
90719
+ *
90720
+ * ## CSS States
90721
+ *
90722
+ * These can be used to apply styling when a component is in a given state.
90723
+ *
90724
+ * - `connected`: A renderer draws the document.
90725
+ * - `document-focused`: Focus is in the document, where the reader types.
90726
+ * - `find-open`: The find bar is open.
90727
+ * - `link-open`: The address bar is open.
90728
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
90729
+ */
90730
+ "helix-headless-editor": Partial<
90731
+ HelixHeadlessEditorProps &
90732
+ HelixHeadlessEditorSolidJsProps &
90733
+ BaseProps<HelixHeadlessEditor, "solid"> &
90734
+ BaseEvents<HelixHeadlessEditor>
90735
+ >;
90736
+
89812
90737
  /**
89813
90738
  * Shows what would be in a region and the one action that would fill it, so an
89814
90739
  * empty region does not look like one that failed to load.