@fusion.dev/helix 0.219.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
@@ -90,6 +90,7 @@ import type {
90
90
  HelixDrilldown,
91
91
  HelixDrilldownItem,
92
92
  HelixEditEvent,
93
+ HelixEditor,
93
94
  HelixEmpty,
94
95
  HelixEndEvent,
95
96
  HelixExpandEvent,
@@ -102,8 +103,10 @@ import type {
102
103
  HelixFilterMenu,
103
104
  HelixFilterOperator,
104
105
  HelixFilteredEvent,
106
+ HelixFind,
105
107
  HelixFlex,
106
108
  HelixFormatDate,
109
+ HelixFoundEvent,
107
110
  HelixGraph,
108
111
  HelixGraphFilterEvent,
109
112
  HelixGraphLayoutEvent,
@@ -8895,6 +8898,9 @@ export type HelixCodeEditorElementEvent<E = Event> = TypedEvent<
8895
8898
  /** `helix-before-change` event type */
8896
8899
  export type HelixCodeEditorHelixBeforeChangeElementEvent =
8897
8900
  HelixCodeEditorElementEvent<HelixBeforeChangeEvent>;
8901
+ /** `helix-found` event type */
8902
+ export type HelixCodeEditorHelixFoundElementEvent =
8903
+ HelixCodeEditorElementEvent<HelixFoundEvent>;
8898
8904
 
8899
8905
  export type HelixCodeEditorProps = {
8900
8906
  /** Covers the container instead of taking a height of its own, for an
@@ -9089,7 +9095,7 @@ Here rather than on each control. */
9089
9095
  /** The problems in the text, each underlined and listed under the editor. */
9090
9096
  diagnostics?: (HelixCodeEditor["diagnostics"]) | undefined;
9091
9097
  /** What draws the editor, such as `codeMirrorEngine()` from
9092
- `@fusion.dev/helix-editor`. Absent, the editor is a plain text field. */
9098
+ `@fusion.dev/helix-code-editor`. Absent, the editor is a plain text field. */
9093
9099
  engine?: (HelixCodeEditor["engine"]) | undefined;
9094
9100
 
9095
9101
  /** The reader finished an edit and focus left the code, in the engine or the plain field. */
@@ -9098,6 +9104,8 @@ Here rather than on each control. */
9098
9104
  "onhelix-before-change"?: ((
9099
9105
  e: HelixCodeEditorHelixBeforeChangeElementEvent,
9100
9106
  ) => void) | undefined;
9107
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
9108
+ "onhelix-found"?: ((e: HelixCodeEditorHelixFoundElementEvent) => void) | undefined;
9101
9109
  /** Fired after the text changes. */
9102
9110
  oninput?: ((e: HelixCodeEditorElementEvent) => void) | undefined;
9103
9111
  };
@@ -9295,7 +9303,7 @@ Here rather than on each control. */
9295
9303
  /** The problems in the text, each underlined and listed under the editor. */
9296
9304
  "prop:diagnostics"?: (HelixCodeEditor["diagnostics"]) | undefined;
9297
9305
  /** What draws the editor, such as `codeMirrorEngine()` from
9298
- `@fusion.dev/helix-editor`. Absent, the editor is a plain text field. */
9306
+ `@fusion.dev/helix-code-editor`. Absent, the editor is a plain text field. */
9299
9307
  "prop:engine"?: (HelixCodeEditor["engine"]) | undefined;
9300
9308
  /** The reader finished an edit and focus left the code, in the engine or the plain field. */
9301
9309
  "on:change"?: ((e: HelixCodeEditorElementEvent) => void) | undefined;
@@ -9303,6 +9311,8 @@ Here rather than on each control. */
9303
9311
  "on:helix-before-change"?: ((
9304
9312
  e: HelixCodeEditorHelixBeforeChangeElementEvent,
9305
9313
  ) => void) | undefined;
9314
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
9315
+ "on:helix-found"?: ((e: HelixCodeEditorHelixFoundElementEvent) => void) | undefined;
9306
9316
  /** Fired after the text changes. */
9307
9317
  "on:input"?: ((e: HelixCodeEditorElementEvent) => void) | undefined;
9308
9318
 
@@ -17281,6 +17291,264 @@ shows the top page. */
17281
17291
  textContent?: (string | number) | undefined;
17282
17292
  };
17283
17293
 
17294
+ /** `HelixEditor` component event */
17295
+ export type HelixEditorElementEvent<E = Event> = TypedEvent<HelixEditor, E>;
17296
+ /** `helix-found` event type */
17297
+ export type HelixEditorHelixFoundElementEvent =
17298
+ HelixEditorElementEvent<HelixFoundEvent>;
17299
+
17300
+ export type HelixEditorProps = {
17301
+ /** Covers the container instead of growing with the document, for an editor
17302
+ that fills a pane, such as one side of a split view. The document scrolls
17303
+ inside the frame. The container needs a position, such as
17304
+ `position: relative`. */
17305
+ fill?: (HelixEditor["fill"]) | undefined;
17306
+ /** How the frame stands off the page. Unset, it is outlined. `plain` draws
17307
+ no edge or corners, for a document that fills a page or a pane of its own. */
17308
+ separation?: (HelixEditor["separation"]) | undefined;
17309
+ /** The block menu button's name. `{name}` is the block type at the selection. */
17310
+ "block-chosen-label"?: (HelixEditor["blockChosenLabel"]) | undefined;
17311
+ /** The block menu button's name. `{name}` is the block type at the selection. */
17312
+ blockChosenLabel?: (HelixEditor["blockChosenLabel"]) | undefined;
17313
+ /** The block menu's name, read by screen readers. */
17314
+ "block-label"?: (HelixEditor["blockLabel"]) | undefined;
17315
+ /** The block menu's name, read by screen readers. */
17316
+ blockLabel?: (HelixEditor["blockLabel"]) | undefined;
17317
+ /** The Bold button's label. */
17318
+ "bold-label"?: (HelixEditor["boldLabel"]) | undefined;
17319
+ /** The Bold button's label. */
17320
+ boldLabel?: (HelixEditor["boldLabel"]) | undefined;
17321
+ /** The Bulleted list button's label. */
17322
+ "bullet-list-label"?: (HelixEditor["bulletListLabel"]) | undefined;
17323
+ /** The Bulleted list button's label. */
17324
+ bulletListLabel?: (HelixEditor["bulletListLabel"]) | undefined;
17325
+ /** The Code block row's label in the block menu. */
17326
+ "code-block-label"?: (HelixEditor["codeBlockLabel"]) | undefined;
17327
+ /** The Code block row's label in the block menu. */
17328
+ codeBlockLabel?: (HelixEditor["codeBlockLabel"]) | undefined;
17329
+ /** The Code button's label. */
17330
+ "code-label"?: (HelixEditor["codeLabel"]) | undefined;
17331
+ /** The Code button's label. */
17332
+ codeLabel?: (HelixEditor["codeLabel"]) | undefined;
17333
+ /** The toolbar's name, read by screen readers. */
17334
+ "controls-label"?: (HelixEditor["controlsLabel"]) | undefined;
17335
+ /** The toolbar's name, read by screen readers. */
17336
+ controlsLabel?: (HelixEditor["controlsLabel"]) | undefined;
17337
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
17338
+ "fallback-label"?: (HelixEditor["fallbackLabel"]) | undefined;
17339
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
17340
+ fallbackLabel?: (HelixEditor["fallbackLabel"]) | undefined;
17341
+ /** The Find button's label, and the find bar's name. */
17342
+ "find-label"?: (HelixEditor["findLabel"]) | undefined;
17343
+ /** The Find button's label, and the find bar's name. */
17344
+ findLabel?: (HelixEditor["findLabel"]) | undefined;
17345
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
17346
+ "heading-label"?: (HelixEditor["headingLabel"]) | undefined;
17347
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
17348
+ headingLabel?: (HelixEditor["headingLabel"]) | undefined;
17349
+ /** The Italic button's label. */
17350
+ "italic-label"?: (HelixEditor["italicLabel"]) | undefined;
17351
+ /** The Italic button's label. */
17352
+ italicLabel?: (HelixEditor["italicLabel"]) | undefined;
17353
+ /** The document's name, read by screen readers. Name what it holds, such as
17354
+ "Release notes", so that several editors on one page can be told apart.
17355
+ Required. */
17356
+ label?: (HelixEditor["label"]) | undefined;
17357
+ /** The Apply button's label in the address bar. */
17358
+ "link-apply-label"?: (HelixEditor["linkApplyLabel"]) | undefined;
17359
+ /** The Apply button's label in the address bar. */
17360
+ linkApplyLabel?: (HelixEditor["linkApplyLabel"]) | undefined;
17361
+ /** The close button's label in the address bar. */
17362
+ "link-close-label"?: (HelixEditor["linkCloseLabel"]) | undefined;
17363
+ /** The close button's label in the address bar. */
17364
+ linkCloseLabel?: (HelixEditor["linkCloseLabel"]) | undefined;
17365
+ /** The name of the address bar's toolbar, read by screen readers. */
17366
+ "link-controls-label"?: (HelixEditor["linkControlsLabel"]) | undefined;
17367
+ /** The name of the address bar's toolbar, read by screen readers. */
17368
+ linkControlsLabel?: (HelixEditor["linkControlsLabel"]) | undefined;
17369
+ /** The address field's name, which it also shows while it is empty. */
17370
+ "link-field-label"?: (HelixEditor["linkFieldLabel"]) | undefined;
17371
+ /** The address field's name, which it also shows while it is empty. */
17372
+ linkFieldLabel?: (HelixEditor["linkFieldLabel"]) | undefined;
17373
+ /** The Link button's label, and the address bar's name. */
17374
+ "link-label"?: (HelixEditor["linkLabel"]) | undefined;
17375
+ /** The Link button's label, and the address bar's name. */
17376
+ linkLabel?: (HelixEditor["linkLabel"]) | undefined;
17377
+ /** The Remove button's label in the address bar. */
17378
+ "link-remove-label"?: (HelixEditor["linkRemoveLabel"]) | undefined;
17379
+ /** The Remove button's label in the address bar. */
17380
+ linkRemoveLabel?: (HelixEditor["linkRemoveLabel"]) | undefined;
17381
+ /** The Numbered list button's label. */
17382
+ "ordered-list-label"?: (HelixEditor["orderedListLabel"]) | undefined;
17383
+ /** The Numbered list button's label. */
17384
+ orderedListLabel?: (HelixEditor["orderedListLabel"]) | undefined;
17385
+ /** The Paragraph row's label in the block menu. */
17386
+ "paragraph-label"?: (HelixEditor["paragraphLabel"]) | undefined;
17387
+ /** The Paragraph row's label in the block menu. */
17388
+ paragraphLabel?: (HelixEditor["paragraphLabel"]) | undefined;
17389
+ /** The words shown in an empty document, such as "Write the release notes". */
17390
+ placeholder?: (HelixEditor["placeholder"]) | undefined;
17391
+ /** The Quote button's label. */
17392
+ "quote-label"?: (HelixEditor["quoteLabel"]) | undefined;
17393
+ /** The Quote button's label. */
17394
+ quoteLabel?: (HelixEditor["quoteLabel"]) | undefined;
17395
+ /** Shows the document and takes no edits, with no toolbar, for a document
17396
+ someone reads, or one an agent is writing. The attribute is `readonly`,
17397
+ the platform's spelling. */
17398
+ readonly?: (HelixEditor["readOnly"]) | undefined;
17399
+ /** Shows the document and takes no edits, with no toolbar, for a document
17400
+ someone reads, or one an agent is writing. The attribute is `readonly`,
17401
+ the platform's spelling. */
17402
+ readOnly?: (HelixEditor["readOnly"]) | undefined;
17403
+ /** The Redo button's label. */
17404
+ "redo-label"?: (HelixEditor["redoLabel"]) | undefined;
17405
+ /** The Redo button's label. */
17406
+ redoLabel?: (HelixEditor["redoLabel"]) | undefined;
17407
+ /** The Strikethrough button's label. */
17408
+ "strike-label"?: (HelixEditor["strikeLabel"]) | undefined;
17409
+ /** The Strikethrough button's label. */
17410
+ strikeLabel?: (HelixEditor["strikeLabel"]) | undefined;
17411
+ /** Which groups of tools the toolbar draws, as a list of `history`, `block`,
17412
+ `marks`, `link`, `lists`, and `quote`, or `none`. They are drawn in that
17413
+ order, whatever order the list is in. Absent is all six. */
17414
+ tools?: (HelixEditor["tools"]) | undefined;
17415
+ /** The Undo button's label. */
17416
+ "undo-label"?: (HelixEditor["undoLabel"]) | undefined;
17417
+ /** The Undo button's label. */
17418
+ undoLabel?: (HelixEditor["undoLabel"]) | undefined;
17419
+
17420
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
17421
+ "onhelix-found"?: ((e: HelixEditorHelixFoundElementEvent) => void) | undefined;
17422
+ };
17423
+
17424
+ export type HelixEditorSolidJsProps = {
17425
+ /** Covers the container instead of growing with the document, for an editor
17426
+ that fills a pane, such as one side of a split view. The document scrolls
17427
+ inside the frame. The container needs a position, such as
17428
+ `position: relative`. */
17429
+ "prop:fill"?: (HelixEditor["fill"]) | undefined;
17430
+ /** How the frame stands off the page. Unset, it is outlined. `plain` draws
17431
+ no edge or corners, for a document that fills a page or a pane of its own. */
17432
+ "prop:separation"?: (HelixEditor["separation"]) | undefined;
17433
+ /** The block menu button's name. `{name}` is the block type at the selection. */
17434
+ "attr:block-chosen-label"?: (HelixEditor["blockChosenLabel"]) | undefined;
17435
+ /** The block menu button's name. `{name}` is the block type at the selection. */
17436
+ "prop:blockChosenLabel"?: (HelixEditor["blockChosenLabel"]) | undefined;
17437
+ /** The block menu's name, read by screen readers. */
17438
+ "attr:block-label"?: (HelixEditor["blockLabel"]) | undefined;
17439
+ /** The block menu's name, read by screen readers. */
17440
+ "prop:blockLabel"?: (HelixEditor["blockLabel"]) | undefined;
17441
+ /** The Bold button's label. */
17442
+ "attr:bold-label"?: (HelixEditor["boldLabel"]) | undefined;
17443
+ /** The Bold button's label. */
17444
+ "prop:boldLabel"?: (HelixEditor["boldLabel"]) | undefined;
17445
+ /** The Bulleted list button's label. */
17446
+ "attr:bullet-list-label"?: (HelixEditor["bulletListLabel"]) | undefined;
17447
+ /** The Bulleted list button's label. */
17448
+ "prop:bulletListLabel"?: (HelixEditor["bulletListLabel"]) | undefined;
17449
+ /** The Code block row's label in the block menu. */
17450
+ "attr:code-block-label"?: (HelixEditor["codeBlockLabel"]) | undefined;
17451
+ /** The Code block row's label in the block menu. */
17452
+ "prop:codeBlockLabel"?: (HelixEditor["codeBlockLabel"]) | undefined;
17453
+ /** The Code button's label. */
17454
+ "attr:code-label"?: (HelixEditor["codeLabel"]) | undefined;
17455
+ /** The Code button's label. */
17456
+ "prop:codeLabel"?: (HelixEditor["codeLabel"]) | undefined;
17457
+ /** The toolbar's name, read by screen readers. */
17458
+ "attr:controls-label"?: (HelixEditor["controlsLabel"]) | undefined;
17459
+ /** The toolbar's name, read by screen readers. */
17460
+ "prop:controlsLabel"?: (HelixEditor["controlsLabel"]) | undefined;
17461
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
17462
+ "attr:fallback-label"?: (HelixEditor["fallbackLabel"]) | undefined;
17463
+ /** The document's name where `label` is empty and the host has no `aria-label`. */
17464
+ "prop:fallbackLabel"?: (HelixEditor["fallbackLabel"]) | undefined;
17465
+ /** The Find button's label, and the find bar's name. */
17466
+ "attr:find-label"?: (HelixEditor["findLabel"]) | undefined;
17467
+ /** The Find button's label, and the find bar's name. */
17468
+ "prop:findLabel"?: (HelixEditor["findLabel"]) | undefined;
17469
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
17470
+ "attr:heading-label"?: (HelixEditor["headingLabel"]) | undefined;
17471
+ /** A heading's name in the block menu. `{level}` is its level, 1 to 3. */
17472
+ "prop:headingLabel"?: (HelixEditor["headingLabel"]) | undefined;
17473
+ /** The Italic button's label. */
17474
+ "attr:italic-label"?: (HelixEditor["italicLabel"]) | undefined;
17475
+ /** The Italic button's label. */
17476
+ "prop:italicLabel"?: (HelixEditor["italicLabel"]) | undefined;
17477
+ /** The document's name, read by screen readers. Name what it holds, such as
17478
+ "Release notes", so that several editors on one page can be told apart.
17479
+ Required. */
17480
+ "prop:label"?: (HelixEditor["label"]) | undefined;
17481
+ /** The Apply button's label in the address bar. */
17482
+ "attr:link-apply-label"?: (HelixEditor["linkApplyLabel"]) | undefined;
17483
+ /** The Apply button's label in the address bar. */
17484
+ "prop:linkApplyLabel"?: (HelixEditor["linkApplyLabel"]) | undefined;
17485
+ /** The close button's label in the address bar. */
17486
+ "attr:link-close-label"?: (HelixEditor["linkCloseLabel"]) | undefined;
17487
+ /** The close button's label in the address bar. */
17488
+ "prop:linkCloseLabel"?: (HelixEditor["linkCloseLabel"]) | undefined;
17489
+ /** The name of the address bar's toolbar, read by screen readers. */
17490
+ "attr:link-controls-label"?: (HelixEditor["linkControlsLabel"]) | undefined;
17491
+ /** The name of the address bar's toolbar, read by screen readers. */
17492
+ "prop:linkControlsLabel"?: (HelixEditor["linkControlsLabel"]) | undefined;
17493
+ /** The address field's name, which it also shows while it is empty. */
17494
+ "attr:link-field-label"?: (HelixEditor["linkFieldLabel"]) | undefined;
17495
+ /** The address field's name, which it also shows while it is empty. */
17496
+ "prop:linkFieldLabel"?: (HelixEditor["linkFieldLabel"]) | undefined;
17497
+ /** The Link button's label, and the address bar's name. */
17498
+ "attr:link-label"?: (HelixEditor["linkLabel"]) | undefined;
17499
+ /** The Link button's label, and the address bar's name. */
17500
+ "prop:linkLabel"?: (HelixEditor["linkLabel"]) | undefined;
17501
+ /** The Remove button's label in the address bar. */
17502
+ "attr:link-remove-label"?: (HelixEditor["linkRemoveLabel"]) | undefined;
17503
+ /** The Remove button's label in the address bar. */
17504
+ "prop:linkRemoveLabel"?: (HelixEditor["linkRemoveLabel"]) | undefined;
17505
+ /** The Numbered list button's label. */
17506
+ "attr:ordered-list-label"?: (HelixEditor["orderedListLabel"]) | undefined;
17507
+ /** The Numbered list button's label. */
17508
+ "prop:orderedListLabel"?: (HelixEditor["orderedListLabel"]) | undefined;
17509
+ /** The Paragraph row's label in the block menu. */
17510
+ "attr:paragraph-label"?: (HelixEditor["paragraphLabel"]) | undefined;
17511
+ /** The Paragraph row's label in the block menu. */
17512
+ "prop:paragraphLabel"?: (HelixEditor["paragraphLabel"]) | undefined;
17513
+ /** The words shown in an empty document, such as "Write the release notes". */
17514
+ "prop:placeholder"?: (HelixEditor["placeholder"]) | undefined;
17515
+ /** The Quote button's label. */
17516
+ "attr:quote-label"?: (HelixEditor["quoteLabel"]) | undefined;
17517
+ /** The Quote button's label. */
17518
+ "prop:quoteLabel"?: (HelixEditor["quoteLabel"]) | undefined;
17519
+ /** Shows the document and takes no edits, with no toolbar, for a document
17520
+ someone reads, or one an agent is writing. The attribute is `readonly`,
17521
+ the platform's spelling. */
17522
+ "bool:readonly"?: (HelixEditor["readOnly"]) | undefined;
17523
+ /** Shows the document and takes no edits, with no toolbar, for a document
17524
+ someone reads, or one an agent is writing. The attribute is `readonly`,
17525
+ the platform's spelling. */
17526
+ "prop:readOnly"?: (HelixEditor["readOnly"]) | undefined;
17527
+ /** The Redo button's label. */
17528
+ "attr:redo-label"?: (HelixEditor["redoLabel"]) | undefined;
17529
+ /** The Redo button's label. */
17530
+ "prop:redoLabel"?: (HelixEditor["redoLabel"]) | undefined;
17531
+ /** The Strikethrough button's label. */
17532
+ "attr:strike-label"?: (HelixEditor["strikeLabel"]) | undefined;
17533
+ /** The Strikethrough button's label. */
17534
+ "prop:strikeLabel"?: (HelixEditor["strikeLabel"]) | undefined;
17535
+ /** Which groups of tools the toolbar draws, as a list of `history`, `block`,
17536
+ `marks`, `link`, `lists`, and `quote`, or `none`. They are drawn in that
17537
+ order, whatever order the list is in. Absent is all six. */
17538
+ "prop:tools"?: (HelixEditor["tools"]) | undefined;
17539
+ /** The Undo button's label. */
17540
+ "attr:undo-label"?: (HelixEditor["undoLabel"]) | undefined;
17541
+ /** The Undo button's label. */
17542
+ "prop:undoLabel"?: (HelixEditor["undoLabel"]) | undefined;
17543
+ /** The find bar searched or moved among the matches, with `count` and the selected match's `index`, counting from 0, or -1 for none. */
17544
+ "on:helix-found"?: ((e: HelixEditorHelixFoundElementEvent) => void) | undefined;
17545
+
17546
+ /** Set the innerHTML of the element */
17547
+ innerHTML?: (string) | undefined;
17548
+ /** Set the textContent of the element */
17549
+ textContent?: (string | number) | undefined;
17550
+ };
17551
+
17284
17552
  export type HelixEmptyProps = {
17285
17553
  /** The heading as words, such as "No results", drawn as a heading when
17286
17554
  nothing is slotted into `heading`.
@@ -18647,6 +18915,256 @@ write a function in markup. See the class description. */
18647
18915
  textContent?: (string | number) | undefined;
18648
18916
  };
18649
18917
 
18918
+ /** `HelixFind` component event */
18919
+ export type HelixFindElementEvent<E = Event> = TypedEvent<HelixFind, E>;
18920
+ /** `toggle` event type */
18921
+ export type HelixFindToggleElementEvent = HelixFindElementEvent<ToggleEvent>;
18922
+ /** `helix-before-close` event type */
18923
+ export type HelixFindHelixBeforeCloseElementEvent =
18924
+ HelixFindElementEvent<HelixBeforeCloseEvent>;
18925
+ /** `helix-before-open` event type */
18926
+ export type HelixFindHelixBeforeOpenElementEvent =
18927
+ HelixFindElementEvent<HelixBeforeOpenEvent>;
18928
+ /** `helix-found` event type */
18929
+ export type HelixFindHelixFoundElementEvent =
18930
+ HelixFindElementEvent<HelixFoundEvent>;
18931
+
18932
+ export type HelixFindProps = {
18933
+ /** Whether the element starts open. Ignored once `open` is written. */
18934
+ "default-open"?: (HelixFind["defaultOpen"]) | undefined;
18935
+ /** Whether the element starts open. Ignored once `open` is written. */
18936
+ defaultOpen?: (HelixFind["defaultOpen"]) | undefined;
18937
+ /** Whether the element is open.
18938
+
18939
+ One property, not two, so `dialog.open` answers the question anyone
18940
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
18941
+ same statement in markup.
18942
+
18943
+ **Not reflected, and that is required rather than tidy.** Reflection
18944
+ writes the resolved state back as an attribute, so an element that opened
18945
+ itself would put `open` on its own host: cloned, serialized for
18946
+ hydration, or diffed by a framework, it comes back holding whatever the
18947
+ last reader did rather than what the author wrote. `:state(open)` carries
18948
+ the resolved state for stylesheets, which is what the mirror is for. */
18949
+ open?: (HelixFind["open"]) | undefined;
18950
+ /** The close button's label. */
18951
+ "close-label"?: (HelixFind["closeLabel"]) | undefined;
18952
+ /** The close button's label. */
18953
+ closeLabel?: (HelixFind["closeLabel"]) | undefined;
18954
+ /** The name of the bar's toolbar, read by screen readers. */
18955
+ "controls-label"?: (HelixFind["controlsLabel"]) | undefined;
18956
+ /** The name of the bar's toolbar, read by screen readers. */
18957
+ controlsLabel?: (HelixFind["controlsLabel"]) | undefined;
18958
+ /** The id of the element whose text Find searches, in the same tree as Find.
18959
+ With a finder attached, it names only where the find key opens the bar. */
18960
+ for?: (HelixFind["for"]) | undefined;
18961
+ /** What the count says when the regular expression cannot be read. */
18962
+ "invalid-label"?: (HelixFind["invalidLabel"]) | undefined;
18963
+ /** What the count says when the regular expression cannot be read. */
18964
+ invalidLabel?: (HelixFind["invalidLabel"]) | undefined;
18965
+ /** The field's name and placeholder, and the name of the bar. */
18966
+ label?: (HelixFind["label"]) | undefined;
18967
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
18968
+ "match-case"?: (HelixFind["matchCase"]) | undefined;
18969
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
18970
+ matchCase?: (HelixFind["matchCase"]) | undefined;
18971
+ /** The match case button's label. */
18972
+ "match-case-label"?: (HelixFind["matchCaseLabel"]) | undefined;
18973
+ /** The match case button's label. */
18974
+ matchCaseLabel?: (HelixFind["matchCaseLabel"]) | undefined;
18975
+ /** What the count says of the matches. `{index}` is the current match,
18976
+ counting from 1, and `{count}` how many there are. */
18977
+ "matches-label"?: (HelixFind["matchesLabel"]) | undefined;
18978
+ /** What the count says of the matches. `{index}` is the current match,
18979
+ counting from 1, and `{count}` how many there are. */
18980
+ matchesLabel?: (HelixFind["matchesLabel"]) | undefined;
18981
+ /** The next match button's label. */
18982
+ "next-label"?: (HelixFind["nextLabel"]) | undefined;
18983
+ /** The next match button's label. */
18984
+ nextLabel?: (HelixFind["nextLabel"]) | undefined;
18985
+ /** Which options the bar draws, as a list of `match-case`, `whole-word`, and
18986
+ `regex`, or `none`. They are always drawn in that order. */
18987
+ options?: (HelixFind["options"]) | undefined;
18988
+ /** The previous match button's label. */
18989
+ "previous-label"?: (HelixFind["previousLabel"]) | undefined;
18990
+ /** The previous match button's label. */
18991
+ previousLabel?: (HelixFind["previousLabel"]) | undefined;
18992
+ /** What the field holds: what the reader typed, or what you set. */
18993
+ query?: (HelixFind["query"]) | undefined;
18994
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
18995
+ readonly?: (HelixFind["readOnly"]) | undefined;
18996
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
18997
+ readOnly?: (HelixFind["readOnly"]) | undefined;
18998
+ /** Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar. */
18999
+ regex?: (HelixFind["regex"]) | undefined;
19000
+ /** The regular expression button's label. */
19001
+ "regex-label"?: (HelixFind["regexLabel"]) | undefined;
19002
+ /** The regular expression button's label. */
19003
+ regexLabel?: (HelixFind["regexLabel"]) | undefined;
19004
+ /** The Replace all button's words. */
19005
+ "replace-all-label"?: (HelixFind["replaceAllLabel"]) | undefined;
19006
+ /** The Replace all button's words. */
19007
+ replaceAllLabel?: (HelixFind["replaceAllLabel"]) | undefined;
19008
+ /** The replace field's name and placeholder. */
19009
+ "replace-field-label"?: (HelixFind["replaceFieldLabel"]) | undefined;
19010
+ /** The replace field's name and placeholder. */
19011
+ replaceFieldLabel?: (HelixFind["replaceFieldLabel"]) | undefined;
19012
+ /** The Replace button's words. */
19013
+ "replace-label"?: (HelixFind["replaceLabel"]) | undefined;
19014
+ /** The Replace button's words. */
19015
+ replaceLabel?: (HelixFind["replaceLabel"]) | undefined;
19016
+ /** What the replace field holds, which Replace puts in place of a match. */
19017
+ replacement?: (HelixFind["replacement"]) | undefined;
19018
+ /** The label of the button that shows the replace row. */
19019
+ "replace-toggle-label"?: (HelixFind["replaceToggleLabel"]) | undefined;
19020
+ /** The label of the button that shows the replace row. */
19021
+ replaceToggleLabel?: (HelixFind["replaceToggleLabel"]) | undefined;
19022
+ /** The key that opens the bar, as a chord such as `mod+f`, where `mod` is
19023
+ Command on an Apple keyboard and Control elsewhere. Empty turns the key
19024
+ off, as for a bar the page opens itself. */
19025
+ shortcut?: (HelixFind["shortcut"]) | undefined;
19026
+ /** Elements inside the content whose text is not searched, as a selector,
19027
+ such as line numbers or the buttons beside each message. */
19028
+ skip?: (HelixFind["skip"]) | undefined;
19029
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
19030
+ "whole-word"?: (HelixFind["wholeWord"]) | undefined;
19031
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
19032
+ wholeWord?: (HelixFind["wholeWord"]) | undefined;
19033
+ /** The whole word button's label. */
19034
+ "whole-word-label"?: (HelixFind["wholeWordLabel"]) | undefined;
19035
+ /** The whole word button's label. */
19036
+ wholeWordLabel?: (HelixFind["wholeWordLabel"]) | undefined;
19037
+
19038
+ /** Sent when the bar opens or closes, with `newState` and `oldState`. */
19039
+ ontoggle?: ((e: HelixFindToggleElementEvent) => void) | undefined;
19040
+ /** Fired before the bar closes, and cancelable. */
19041
+ "onhelix-before-close"?: ((e: HelixFindHelixBeforeCloseElementEvent) => void) | undefined;
19042
+ /** Fired before the bar opens, and cancelable. Canceling it keeps the bar closed. */
19043
+ "onhelix-before-open"?: ((e: HelixFindHelixBeforeOpenElementEvent) => void) | undefined;
19044
+ /** Sent after each search and each move among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none. */
19045
+ "onhelix-found"?: ((e: HelixFindHelixFoundElementEvent) => void) | undefined;
19046
+ };
19047
+
19048
+ export type HelixFindSolidJsProps = {
19049
+ /** Whether the element starts open. Ignored once `open` is written. */
19050
+ "bool:default-open"?: (HelixFind["defaultOpen"]) | undefined;
19051
+ /** Whether the element starts open. Ignored once `open` is written. */
19052
+ "prop:defaultOpen"?: (HelixFind["defaultOpen"]) | undefined;
19053
+ /** Whether the element is open.
19054
+
19055
+ One property, not two, so `dialog.open` answers the question anyone
19056
+ asking it meant. Writing always applies; `<helix-dialog open>` is the
19057
+ same statement in markup.
19058
+
19059
+ **Not reflected, and that is required rather than tidy.** Reflection
19060
+ writes the resolved state back as an attribute, so an element that opened
19061
+ itself would put `open` on its own host: cloned, serialized for
19062
+ hydration, or diffed by a framework, it comes back holding whatever the
19063
+ last reader did rather than what the author wrote. `:state(open)` carries
19064
+ the resolved state for stylesheets, which is what the mirror is for. */
19065
+ "prop:open"?: (HelixFind["open"]) | undefined;
19066
+ /** The close button's label. */
19067
+ "attr:close-label"?: (HelixFind["closeLabel"]) | undefined;
19068
+ /** The close button's label. */
19069
+ "prop:closeLabel"?: (HelixFind["closeLabel"]) | undefined;
19070
+ /** The name of the bar's toolbar, read by screen readers. */
19071
+ "attr:controls-label"?: (HelixFind["controlsLabel"]) | undefined;
19072
+ /** The name of the bar's toolbar, read by screen readers. */
19073
+ "prop:controlsLabel"?: (HelixFind["controlsLabel"]) | undefined;
19074
+ /** The id of the element whose text Find searches, in the same tree as Find.
19075
+ With a finder attached, it names only where the find key opens the bar. */
19076
+ "prop:for"?: (HelixFind["for"]) | undefined;
19077
+ /** What the count says when the regular expression cannot be read. */
19078
+ "attr:invalid-label"?: (HelixFind["invalidLabel"]) | undefined;
19079
+ /** What the count says when the regular expression cannot be read. */
19080
+ "prop:invalidLabel"?: (HelixFind["invalidLabel"]) | undefined;
19081
+ /** The field's name and placeholder, and the name of the bar. */
19082
+ "prop:label"?: (HelixFind["label"]) | undefined;
19083
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
19084
+ "bool:match-case"?: (HelixFind["matchCase"]) | undefined;
19085
+ /** Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar. */
19086
+ "prop:matchCase"?: (HelixFind["matchCase"]) | undefined;
19087
+ /** The match case button's label. */
19088
+ "attr:match-case-label"?: (HelixFind["matchCaseLabel"]) | undefined;
19089
+ /** The match case button's label. */
19090
+ "prop:matchCaseLabel"?: (HelixFind["matchCaseLabel"]) | undefined;
19091
+ /** What the count says of the matches. `{index}` is the current match,
19092
+ counting from 1, and `{count}` how many there are. */
19093
+ "attr:matches-label"?: (HelixFind["matchesLabel"]) | undefined;
19094
+ /** What the count says of the matches. `{index}` is the current match,
19095
+ counting from 1, and `{count}` how many there are. */
19096
+ "prop:matchesLabel"?: (HelixFind["matchesLabel"]) | undefined;
19097
+ /** The next match button's label. */
19098
+ "attr:next-label"?: (HelixFind["nextLabel"]) | undefined;
19099
+ /** The next match button's label. */
19100
+ "prop:nextLabel"?: (HelixFind["nextLabel"]) | undefined;
19101
+ /** Which options the bar draws, as a list of `match-case`, `whole-word`, and
19102
+ `regex`, or `none`. They are always drawn in that order. */
19103
+ "prop:options"?: (HelixFind["options"]) | undefined;
19104
+ /** The previous match button's label. */
19105
+ "attr:previous-label"?: (HelixFind["previousLabel"]) | undefined;
19106
+ /** The previous match button's label. */
19107
+ "prop:previousLabel"?: (HelixFind["previousLabel"]) | undefined;
19108
+ /** What the field holds: what the reader typed, or what you set. */
19109
+ "prop:query"?: (HelixFind["query"]) | undefined;
19110
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
19111
+ "bool:readonly"?: (HelixFind["readOnly"]) | undefined;
19112
+ /** Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling. */
19113
+ "prop:readOnly"?: (HelixFind["readOnly"]) | undefined;
19114
+ /** Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar. */
19115
+ "prop:regex"?: (HelixFind["regex"]) | undefined;
19116
+ /** The regular expression button's label. */
19117
+ "attr:regex-label"?: (HelixFind["regexLabel"]) | undefined;
19118
+ /** The regular expression button's label. */
19119
+ "prop:regexLabel"?: (HelixFind["regexLabel"]) | undefined;
19120
+ /** The Replace all button's words. */
19121
+ "attr:replace-all-label"?: (HelixFind["replaceAllLabel"]) | undefined;
19122
+ /** The Replace all button's words. */
19123
+ "prop:replaceAllLabel"?: (HelixFind["replaceAllLabel"]) | undefined;
19124
+ /** The replace field's name and placeholder. */
19125
+ "attr:replace-field-label"?: (HelixFind["replaceFieldLabel"]) | undefined;
19126
+ /** The replace field's name and placeholder. */
19127
+ "prop:replaceFieldLabel"?: (HelixFind["replaceFieldLabel"]) | undefined;
19128
+ /** The Replace button's words. */
19129
+ "attr:replace-label"?: (HelixFind["replaceLabel"]) | undefined;
19130
+ /** The Replace button's words. */
19131
+ "prop:replaceLabel"?: (HelixFind["replaceLabel"]) | undefined;
19132
+ /** What the replace field holds, which Replace puts in place of a match. */
19133
+ "prop:replacement"?: (HelixFind["replacement"]) | undefined;
19134
+ /** The label of the button that shows the replace row. */
19135
+ "attr:replace-toggle-label"?: (HelixFind["replaceToggleLabel"]) | undefined;
19136
+ /** The label of the button that shows the replace row. */
19137
+ "prop:replaceToggleLabel"?: (HelixFind["replaceToggleLabel"]) | undefined;
19138
+ /** The key that opens the bar, as a chord such as `mod+f`, where `mod` is
19139
+ Command on an Apple keyboard and Control elsewhere. Empty turns the key
19140
+ off, as for a bar the page opens itself. */
19141
+ "prop:shortcut"?: (HelixFind["shortcut"]) | undefined;
19142
+ /** Elements inside the content whose text is not searched, as a selector,
19143
+ such as line numbers or the buttons beside each message. */
19144
+ "prop:skip"?: (HelixFind["skip"]) | undefined;
19145
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
19146
+ "bool:whole-word"?: (HelixFind["wholeWord"]) | undefined;
19147
+ /** Whether only whole words match. The reader turns it on and off from the bar. */
19148
+ "prop:wholeWord"?: (HelixFind["wholeWord"]) | undefined;
19149
+ /** The whole word button's label. */
19150
+ "attr:whole-word-label"?: (HelixFind["wholeWordLabel"]) | undefined;
19151
+ /** The whole word button's label. */
19152
+ "prop:wholeWordLabel"?: (HelixFind["wholeWordLabel"]) | undefined;
19153
+ /** Sent when the bar opens or closes, with `newState` and `oldState`. */
19154
+ "on:toggle"?: ((e: HelixFindToggleElementEvent) => void) | undefined;
19155
+ /** Fired before the bar closes, and cancelable. */
19156
+ "on:helix-before-close"?: ((e: HelixFindHelixBeforeCloseElementEvent) => void) | undefined;
19157
+ /** Fired before the bar opens, and cancelable. Canceling it keeps the bar closed. */
19158
+ "on:helix-before-open"?: ((e: HelixFindHelixBeforeOpenElementEvent) => void) | undefined;
19159
+ /** Sent after each search and each move among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none. */
19160
+ "on:helix-found"?: ((e: HelixFindHelixFoundElementEvent) => void) | undefined;
19161
+
19162
+ /** Set the innerHTML of the element */
19163
+ innerHTML?: (string) | undefined;
19164
+ /** Set the textContent of the element */
19165
+ textContent?: (string | number) | undefined;
19166
+ };
19167
+
18650
19168
  export type HelixFlexProps = {
18651
19169
  /** How the lines of a wrapping row share the space across it, set as
18652
19170
  `align-content`.
@@ -42045,6 +42563,9 @@ export type HelixTerminalElementEvent<E = Event> = TypedEvent<HelixTerminal, E>;
42045
42563
  /** `helix-copy` event type */
42046
42564
  export type HelixTerminalHelixCopyElementEvent =
42047
42565
  HelixTerminalElementEvent<HelixCopyEvent>;
42566
+ /** `helix-found` event type */
42567
+ export type HelixTerminalHelixFoundElementEvent =
42568
+ HelixTerminalElementEvent<HelixFoundEvent>;
42048
42569
  /** `helix-terminal-bell` event type */
42049
42570
  export type HelixTerminalHelixTerminalBellElementEvent =
42050
42571
  HelixTerminalElementEvent<HelixTerminalBellEvent>;
@@ -42218,6 +42739,8 @@ write. Connect it to a setting your reader can turn on. */
42218
42739
 
42219
42740
  /** The copy control or its key put the selection on the clipboard. */
42220
42741
  "onhelix-copy"?: ((e: HelixTerminalHelixCopyElementEvent) => void) | undefined;
42742
+ /** The find bar searched or moved among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none. */
42743
+ "onhelix-found"?: ((e: HelixTerminalHelixFoundElementEvent) => void) | undefined;
42221
42744
  /** The program rang the bell. The frame flashes once. */
42222
42745
  "onhelix-terminal-bell"?: ((
42223
42746
  e: HelixTerminalHelixTerminalBellElementEvent,
@@ -42397,6 +42920,8 @@ write. Connect it to a setting your reader can turn on. */
42397
42920
  "prop:tabTypesLabel"?: (HelixTerminal["tabTypesLabel"]) | undefined;
42398
42921
  /** The copy control or its key put the selection on the clipboard. */
42399
42922
  "on:helix-copy"?: ((e: HelixTerminalHelixCopyElementEvent) => void) | undefined;
42923
+ /** The find bar searched or moved among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none. */
42924
+ "on:helix-found"?: ((e: HelixTerminalHelixFoundElementEvent) => void) | undefined;
42400
42925
  /** The program rang the bell. The frame flashes once. */
42401
42926
  "on:helix-terminal-bell"?: ((
42402
42927
  e: HelixTerminalHelixTerminalBellElementEvent,
@@ -54630,7 +55155,7 @@ export type CustomElements<F extends Framework = "other"> = {
54630
55155
  * header, a find bar and a status line each a strip on the raised surface,
54631
55156
  * one frame around them. It is 24rem tall unless `fill` is set or
54632
55157
  * `--code-editor-block-size` says otherwise. An engine draws inside it:
54633
- * `@fusion.dev/helix-editor` themes CodeMirror's gutter, caret, selection and
55158
+ * `@fusion.dev/helix-code-editor` themes CodeMirror's gutter, caret, selection and
54634
55159
  * syntax from your tokens, and draws a problem's line number in its tone.
54635
55160
  *
54636
55161
  * Set `fill` for an editor that fills a pane, such as one side of a split
@@ -54736,7 +55261,7 @@ export type CustomElements<F extends Framework = "other"> = {
54736
55261
  * Here rather than on each control.
54737
55262
  * - `diagnostics`: The problems in the text, each underlined and listed under the editor. (property only)
54738
55263
  * - `engine`: What draws the editor, such as `codeMirrorEngine()` from
54739
- * `@fusion.dev/helix-editor`. Absent, the editor is a plain text field. (property only)
55264
+ * `@fusion.dev/helix-code-editor`. Absent, the editor is a plain text field. (property only)
54740
55265
  * - `validity`: Whether the control meets its constraints, and why not. (property only) (readonly)
54741
55266
  * - `validationMessage`: The message the browser would show for the control, or an empty string. (property only) (readonly)
54742
55267
  * - `willValidate`: Whether the control is checked when its form is submitted. (property only) (readonly)
@@ -54769,6 +55294,7 @@ export type CustomElements<F extends Framework = "other"> = {
54769
55294
  *
54770
55295
  * - `change`: The reader finished an edit and focus left the code, in the engine or the plain field.
54771
55296
  * - `helix-before-change`: The text is about to change. Cancelable: cancel it to keep the current text.
55297
+ * - `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.
54772
55298
  * - `input`: Fired after the text changes.
54773
55299
  *
54774
55300
  * ## Slots
@@ -54872,9 +55398,9 @@ export type CustomElements<F extends Framework = "other"> = {
54872
55398
  * - `diagnostics`: The list of problems under the code, while there are any.
54873
55399
  * - `feedback`: The message that says what is wrong.
54874
55400
  * - `field`: The frame around the header, the code, the problems and the status line.
54875
- * - `find`: The button in the header that opens the find bar.
54876
- * - `find-bar`: The find bar under the header, while it is open.
54877
- * - `find-button`: The Find button's inner button.
55401
+ * - `find`: The find bar under the header, where the reader searches the code: a Find of its own.
55402
+ * - `find-actions`: The find bar's `actions` slot, which the editor fills with nothing.
55403
+ * - `find-bar`: The find bar's strip: the replace toggle, the field, the count, the toolbar, and the replace row while it shows.
54878
55404
  * - `find-close`: The button that closes the find bar.
54879
55405
  * - `find-close-button`: The close button's inner button.
54880
55406
  * - `find-close-live`: The close button's live region, which speaks while the button is pending.
@@ -54884,10 +55410,11 @@ export type CustomElements<F extends Framework = "other"> = {
54884
55410
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
54885
55411
  * - `find-count`: Which match is selected, of how many.
54886
55412
  * - `find-field`: The field the search is typed in.
54887
- * - `find-live`: The Find button's live region, which speaks while the button is pending.
55413
+ * - `find-live`: The find bar's live region, which says the count as it changes.
54888
55414
  * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
54889
55415
  * - `find-match-case-button`: The match case button's inner button.
54890
55416
  * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
55417
+ * - `find-match-case-pressed`: The match case option while it applies, beside `find-match-case`.
54891
55418
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
54892
55419
  * - `find-match-case-text`: The box the match case button's icon sits in.
54893
55420
  * - `find-next`: The button that selects the next match.
@@ -54903,18 +55430,34 @@ export type CustomElements<F extends Framework = "other"> = {
54903
55430
  * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
54904
55431
  * - `find-regex-button`: The regular expression button's inner button.
54905
55432
  * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
55433
+ * - `find-regex-pressed`: The regular expression option while it applies, beside `find-regex`.
54906
55434
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
54907
55435
  * - `find-regex-text`: The box the regular expression button's icon sits in.
54908
- * - `find-replace`: The button that shows the replace field under the find field. Expanded while it shows.
54909
- * - `find-replace-button`: The find and replace button's inner button.
54910
- * - `find-replace-live`: The find and replace button's live region, which speaks while the button is pending.
54911
- * - `find-replace-spinner`: The ring the find and replace button turns while it is pending.
54912
- * - `find-replace-text`: The box the find and replace button's icon sits in.
54913
- * - `find-spinner`: The ring the Find button turns while it is pending.
54914
- * - `find-text`: The box the Find button's icon sits in.
55436
+ * - `find-replace`: The button that replaces the selected match.
55437
+ * - `find-replace-all`: The button that replaces every match.
55438
+ * - `find-replace-all-button`: The Replace all button's inner button.
55439
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
55440
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
55441
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
55442
+ * - `find-replace-button`: The Replace button's inner button.
55443
+ * - `find-replace-field`: The field the replacement is typed in.
55444
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
55445
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
55446
+ * - `find-replace-text`: The box the Replace button's words sits in.
55447
+ * - `find-replace-toggle`: The button that shows the replace field under the find field. Expanded while it shows. Not drawn while `readonly`.
55448
+ * - `find-replace-toggle-button`: The find and replace button's inner button.
55449
+ * - `find-replace-toggle-live`: The find and replace button's live region, which speaks while the button is pending.
55450
+ * - `find-replace-toggle-spinner`: The ring the find and replace button turns while it is pending.
55451
+ * - `find-replace-toggle-text`: The box the find and replace button's icon sits in.
55452
+ * - `find-toggle`: The button in the header that opens and closes the find bar. Expanded while it is open.
55453
+ * - `find-toggle-button`: The Find button's inner button.
55454
+ * - `find-toggle-live`: The Find button's live region, which speaks while the button is pending.
55455
+ * - `find-toggle-spinner`: The ring the Find button turns while it is pending.
55456
+ * - `find-toggle-text`: The box the Find button's icon sits in.
54915
55457
  * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
54916
55458
  * - `find-whole-word-button`: The whole word button's inner button.
54917
55459
  * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
55460
+ * - `find-whole-word-pressed`: The whole word option while it applies, beside `find-whole-word`.
54918
55461
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
54919
55462
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
54920
55463
  * - `header`: The strip above the code: the name, the language, and the controls.
@@ -54923,17 +55466,6 @@ export type CustomElements<F extends Framework = "other"> = {
54923
55466
  * - `language`: The language's name in the header.
54924
55467
  * - `position`: The caret's line and column, in the status line.
54925
55468
  * - `problem-count`: How many problems there are, in the status line.
54926
- * - `replace`: The button that replaces the selected match.
54927
- * - `replace-all`: The button that replaces every match.
54928
- * - `replace-all-button`: The Replace all button's inner button.
54929
- * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
54930
- * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
54931
- * - `replace-all-text`: The box the Replace all button's words sit in.
54932
- * - `replace-button`: The Replace button's inner button.
54933
- * - `replace-field`: The field the replacement is typed in.
54934
- * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
54935
- * - `replace-spinner`: The ring the Replace button turns while it is pending.
54936
- * - `replace-text`: The box the Replace button's words sit in.
54937
55469
  * - `status`: The strip under the code.
54938
55470
  * - `view`: Where an engine draws, while one is connected.
54939
55471
  *
@@ -54944,7 +55476,6 @@ export type CustomElements<F extends Framework = "other"> = {
54944
55476
  * - `connected`: An engine draws the editor.
54945
55477
  * - `find-open`: The find bar is open.
54946
55478
  * - `invalid`: The editor has an error to show, from `required` or your `feedback`.
54947
- * - `replace-open`: The replace field shows under the find field.
54948
55479
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
54949
55480
  */
54950
55481
  "helix-code-editor": Partial<
@@ -59933,6 +60464,331 @@ export type CustomElements<F extends Framework = "other"> = {
59933
60464
  HelixDrilldownProps & BaseProps<HelixDrilldown, F> & BaseEvents<HelixDrilldown>
59934
60465
  >;
59935
60466
 
60467
+ /**
60468
+ * Drawn as Code Editor is: the document on the page's ground, and the toolbar
60469
+ * a strip on the raised surface, one frame around them. The strip stays at the
60470
+ * top of the page while a long document scrolls under it, and the frame grows
60471
+ * with the document from `--editor-min-block-size`. Set `fill` for an editor
60472
+ * that fills a pane, where the document scrolls inside the frame.
60473
+ *
60474
+ * The document's headings, lists, quotes, code, and tables are drawn by the
60475
+ * base layer's `data-prose` rules, so it reads as your docs and chat replies
60476
+ * do. Write `data-prose` on the document so the base layer draws it before a
60477
+ * renderer connects, and `connectEditor` writes it too. Its lines keep to a
60478
+ * readable length, `--editor-measure`, centered in a wide frame.
60479
+ *
60480
+ * ## Attributes & Properties
60481
+ *
60482
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
60483
+ *
60484
+ * - `fill`: Covers the container instead of growing with the document, for an editor
60485
+ * that fills a pane, such as one side of a split view. The document scrolls
60486
+ * inside the frame. The container needs a position, such as
60487
+ * `position: relative`.
60488
+ * - `separation`: How the frame stands off the page. Unset, it is outlined. `plain` draws
60489
+ * no edge or corners, for a document that fills a page or a pane of its own.
60490
+ * - `block-chosen-label`/`blockChosenLabel`: The block menu button's name. `{name}` is the block type at the selection.
60491
+ * - `block-label`/`blockLabel`: The block menu's name, read by screen readers.
60492
+ * - `bold-label`/`boldLabel`: The Bold button's label.
60493
+ * - `bullet-list-label`/`bulletListLabel`: The Bulleted list button's label.
60494
+ * - `code-block-label`/`codeBlockLabel`: The Code block row's label in the block menu.
60495
+ * - `code-label`/`codeLabel`: The Code button's label.
60496
+ * - `controls-label`/`controlsLabel`: The toolbar's name, read by screen readers.
60497
+ * - `fallback-label`/`fallbackLabel`: The document's name where `label` is empty and the host has no `aria-label`.
60498
+ * - `find-label`/`findLabel`: The Find button's label, and the find bar's name.
60499
+ * - `heading-label`/`headingLabel`: A heading's name in the block menu. `{level}` is its level, 1 to 3.
60500
+ * - `italic-label`/`italicLabel`: The Italic button's label.
60501
+ * - `label`: The document's name, read by screen readers. Name what it holds, such as
60502
+ * "Release notes", so that several editors on one page can be told apart.
60503
+ * Required.
60504
+ * - `link-apply-label`/`linkApplyLabel`: The Apply button's label in the address bar.
60505
+ * - `link-close-label`/`linkCloseLabel`: The close button's label in the address bar.
60506
+ * - `link-controls-label`/`linkControlsLabel`: The name of the address bar's toolbar, read by screen readers.
60507
+ * - `link-field-label`/`linkFieldLabel`: The address field's name, which it also shows while it is empty.
60508
+ * - `link-label`/`linkLabel`: The Link button's label, and the address bar's name.
60509
+ * - `link-remove-label`/`linkRemoveLabel`: The Remove button's label in the address bar.
60510
+ * - `ordered-list-label`/`orderedListLabel`: The Numbered list button's label.
60511
+ * - `paragraph-label`/`paragraphLabel`: The Paragraph row's label in the block menu.
60512
+ * - `placeholder`: The words shown in an empty document, such as "Write the release notes".
60513
+ * - `quote-label`/`quoteLabel`: The Quote button's label.
60514
+ * - `readonly`/`readOnly`: Shows the document and takes no edits, with no toolbar, for a document
60515
+ * someone reads, or one an agent is writing. The attribute is `readonly`,
60516
+ * the platform's spelling.
60517
+ * - `redo-label`/`redoLabel`: The Redo button's label.
60518
+ * - `strike-label`/`strikeLabel`: The Strikethrough button's label.
60519
+ * - `tools`: Which groups of tools the toolbar draws, as a list of `history`, `block`,
60520
+ * `marks`, `link`, `lists`, and `quote`, or `none`. They are drawn in that
60521
+ * order, whatever order the list is in. Absent is all six.
60522
+ * - `undo-label`/`undoLabel`: The Undo button's label.
60523
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
60524
+ *
60525
+ * **Named `whenSettled` because `settled` is taken four times over**, by
60526
+ * Image, Splitter and both color controls, none of them about transitions. A
60527
+ * base class takes the name every subclass then cannot use.
60528
+ *
60529
+ * **The state it reports cannot be watched, which is why this exists.** A
60530
+ * custom state is deliberately not in the DOM, so there is no
60531
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
60532
+ * instead.
60533
+ *
60534
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
60535
+ * the suppression is still active in. That is the distinction `readyToMove`
60536
+ * in `@fusion.dev/helix-testing` is written around.
60537
+ *
60538
+ * It never resolves where `requestAnimationFrame` never fires, which is a
60539
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
60540
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
60541
+ * browser harness's awaits it alone: a browser always runs the frame, and a
60542
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
60543
+ *
60544
+ * ## Events
60545
+ *
60546
+ * Events that will be emitted by the component.
60547
+ *
60548
+ * - `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.
60549
+ *
60550
+ * ## Slots
60551
+ *
60552
+ * Areas where markup can be added to the component.
60553
+ *
60554
+ * - `(default)`: The element your renderer draws the document in.
60555
+ * - `actions`: Controls of your own at the end of the toolbar, such as Share or Comment.
60556
+ * - `bold-icon`: Replaces the glyph inside the Bold button.
60557
+ * - `bullet-list-icon`: Replaces the glyph inside the Bulleted list button.
60558
+ * - `code-icon`: Replaces the glyph inside the Code button.
60559
+ * - `find-icon`: Replaces the glyph inside the Find button.
60560
+ * - `footer`: Content under the document, such as a word count or whether it is saved.
60561
+ * - `italic-icon`: Replaces the glyph inside the Italic button.
60562
+ * - `link-icon`: Replaces the glyph inside the Link button.
60563
+ * - `ordered-list-icon`: Replaces the glyph inside the Numbered list button.
60564
+ * - `quote-icon`: Replaces the glyph inside the Quote button.
60565
+ * - `redo-icon`: Replaces the glyph inside the Redo button.
60566
+ * - `strike-icon`: Replaces the glyph inside the Strikethrough button.
60567
+ * - `undo-icon`: Replaces the glyph inside the Undo button.
60568
+ *
60569
+ * ## Methods
60570
+ *
60571
+ * Methods that can be called to access component functionality.
60572
+ *
60573
+ * - `attach(renderer: EditorRenderer) => EditorSink`: Hands the frame what draws the document. The frame sends it the settings
60574
+ * now and as they change, asks it to run the tools the reader presses, and
60575
+ * draws the toolbar from what it reports through the sink it gets back.
60576
+ * Attaching another renderer detaches this one.
60577
+ * - `run(tool: EditorTool, value?: string) => boolean`: Runs a tool at the selection, as its button does, and says whether it
60578
+ * ran: a block type, a mark, a list, a quote, a step through history, or a
60579
+ * link to `value`, where an empty `value` takes the link off. Nothing runs
60580
+ * while no renderer is attached, or while `readonly`.
60581
+ * - `focus(options?: FocusOptions) => void`: Puts focus in the document, with the selection where it was.
60582
+ * - `openLink() => void`: Opens the address bar with the address of the link at the selection, and puts focus in its field.
60583
+ *
60584
+ * ## CSS Custom Properties
60585
+ *
60586
+ * CSS variables available for styling the component.
60587
+ *
60588
+ * - `--editor-background-color`: The ground the document is drawn on. Defaults to the page's background.
60589
+ * - `--editor-border-color`: The frame's edge and the line under the toolbar.
60590
+ * - `--editor-header-background-color`: The fill of the toolbar's strip.
60591
+ * - `--editor-header-offset`: How far below the top of the page the toolbar stays while the document scrolls, such as the height of your own fixed header. `0` unless set.
60592
+ * - `--editor-measure`: The longest a line of the document runs, as a length: `72ch` unless set.
60593
+ * - `--editor-min-block-size`: The frame's least height, which it grows from with the document: `12rem` unless set. Ignored with `fill`.
60594
+ * - `--editor-padding`: The space around the document, inside the frame.
60595
+ * - `--editor-radius`: The frame's corner radius.
60596
+ *
60597
+ * ## CSS Parts
60598
+ *
60599
+ * Custom selectors for styling elements within the component.
60600
+ *
60601
+ * - `actions`: The `actions` slot, last in the toolbar.
60602
+ * - `block`: The button that opens the block menu, which names the block type at the selection.
60603
+ * - `block-button`: The block menu button's inner button.
60604
+ * - `block-live`: The block menu button's live region, which speaks while the button is pending.
60605
+ * - `block-menu`: The menu of block types.
60606
+ * - `block-menu-back`: The control that returns from a submenu.
60607
+ * - `block-menu-back-mark`: The glyph on the back control of a submenu.
60608
+ * - `block-menu-empty`: The text shown when the menu has no items.
60609
+ * - `block-menu-header`: The bar above a submenu, holding the way back and its name.
60610
+ * - `block-menu-live`: The block menu's live region, which repeats the empty and loading text for screen readers.
60611
+ * - `block-menu-loading`: The text shown while the items are loading.
60612
+ * - `block-menu-search-field`: The block menu's filter field, drawn with `filterable`.
60613
+ * - `block-menu-surface`: The floating panel the block menu is drawn on.
60614
+ * - `block-menu-title`: The name of the submenu that is showing.
60615
+ * - `block-name`: The name of the block type at the selection, in the block menu's button.
60616
+ * - `block-option`: One block type in the block menu, checked while the selection is in one.
60617
+ * - `block-option-end`: A block type's trailing column, which holds its shortcut.
60618
+ * - `block-option-item`: A block type's row.
60619
+ * - `block-option-mark`: The check beside the block type the selection is in.
60620
+ * - `block-option-shortcut`: A block type's key.
60621
+ * - `block-option-shortcut-kbd`: The key inside it.
60622
+ * - `block-option-shortcut-key`: One key of a block type's chord.
60623
+ * - `block-option-shortcut-separator`: The `+` between two keys of a block type's chord.
60624
+ * - `block-option-start`: A block type's leading column.
60625
+ * - `block-option-surface`: A block type's submenu panel, which a block type does not open.
60626
+ * - `block-spinner`: The ring the block menu button turns while it is pending.
60627
+ * - `block-text`: The box the block menu button's words sit in.
60628
+ * - `bold`: The Bold button. Pressed while the selection is bold.
60629
+ * - `bold-button`: The Bold button's inner button.
60630
+ * - `bold-live`: The Bold button's live region, which speaks while the button is pending.
60631
+ * - `bold-pressed`: The Bold button while the selection is bold, beside `bold`.
60632
+ * - `bold-spinner`: The ring the Bold button turns while it is pending.
60633
+ * - `bold-text`: The box the Bold button's icon sits in.
60634
+ * - `bullet-list`: The Bulleted list button. Pressed while the selection is in a bulleted list.
60635
+ * - `bullet-list-button`: The Bulleted list button's inner button.
60636
+ * - `bullet-list-live`: The Bulleted list button's live region, which speaks while the button is pending.
60637
+ * - `bullet-list-pressed`: The Bulleted list button while the selection is in a bulleted list, beside `bullet-list`.
60638
+ * - `bullet-list-spinner`: The ring the Bulleted list button turns while it is pending.
60639
+ * - `bullet-list-text`: The box the Bulleted list button's icon sits in.
60640
+ * - `code`: The Code button. Pressed while the selection is code.
60641
+ * - `code-button`: The Code button's inner button.
60642
+ * - `code-live`: The Code button's live region, which speaks while the button is pending.
60643
+ * - `code-pressed`: The Code button while the selection is code, beside `code`.
60644
+ * - `code-spinner`: The ring the Code button turns while it is pending.
60645
+ * - `code-text`: The box the Code button's icon sits in.
60646
+ * - `controls`: The toolbar: the tools, then your actions, one tab stop that the arrows move along.
60647
+ * - `controls-toolbar`: The box inside the toolbar that lays its buttons out.
60648
+ * - `divider`: The line between two groups of tools.
60649
+ * - `divider-content`: The content set into a divider, which the editor sets none into.
60650
+ * - `divider-line`: The line itself.
60651
+ * - `find`: The find bar under the toolbar, where the reader searches the document: a Find of its own.
60652
+ * - `find-actions`: The find bar's `actions` slot, which the editor fills with nothing.
60653
+ * - `find-bar`: The find bar's strip: the field, the count, the toolbar, and the replace row while it shows.
60654
+ * - `find-close`: The button that closes the find bar.
60655
+ * - `find-close-button`: The find bar's close button's inner button.
60656
+ * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
60657
+ * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
60658
+ * - `find-close-text`: The box the find bar's close button's icon sits in.
60659
+ * - `find-controls`: The find bar's toolbar of options and moves.
60660
+ * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
60661
+ * - `find-count`: Which match is selected, of how many.
60662
+ * - `find-field`: The field the search is typed in.
60663
+ * - `find-live`: The find bar's live region, which says the count as it changes.
60664
+ * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
60665
+ * - `find-match-case-button`: The match case button's inner button.
60666
+ * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
60667
+ * - `find-match-case-pressed`: The match case option while it applies, beside `find-match-case`.
60668
+ * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
60669
+ * - `find-match-case-text`: The box the match case button's icon sits in.
60670
+ * - `find-next`: The button that selects the next match.
60671
+ * - `find-next-button`: The next match button's inner button.
60672
+ * - `find-next-live`: The next match button's live region, which speaks while the button is pending.
60673
+ * - `find-next-spinner`: The ring the next match button turns while it is pending.
60674
+ * - `find-next-text`: The box the next match button's icon sits in.
60675
+ * - `find-previous`: The button that selects the previous match.
60676
+ * - `find-previous-button`: The previous match button's inner button.
60677
+ * - `find-previous-live`: The previous match button's live region, which speaks while the button is pending.
60678
+ * - `find-previous-spinner`: The ring the previous match button turns while it is pending.
60679
+ * - `find-previous-text`: The box the previous match button's icon sits in.
60680
+ * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
60681
+ * - `find-regex-button`: The regular expression button's inner button.
60682
+ * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
60683
+ * - `find-regex-pressed`: The regular expression option while it applies, beside `find-regex`.
60684
+ * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
60685
+ * - `find-regex-text`: The box the regular expression button's icon sits in.
60686
+ * - `find-replace`: The button that replaces the selected match.
60687
+ * - `find-replace-all`: The button that replaces every match.
60688
+ * - `find-replace-all-button`: The Replace all button's inner button.
60689
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
60690
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
60691
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
60692
+ * - `find-replace-button`: The Replace button's inner button.
60693
+ * - `find-replace-field`: The field the replacement is typed in.
60694
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
60695
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
60696
+ * - `find-replace-text`: The box the Replace button's words sits in.
60697
+ * - `find-replace-toggle`: The button that shows the replace field under the find field. Expanded while it shows. Not drawn while `readonly`.
60698
+ * - `find-replace-toggle-button`: The find and replace button's inner button.
60699
+ * - `find-replace-toggle-live`: The find and replace button's live region, which speaks while the button is pending.
60700
+ * - `find-replace-toggle-spinner`: The ring the find and replace button turns while it is pending.
60701
+ * - `find-replace-toggle-text`: The box the find and replace button's icon sits in.
60702
+ * - `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.
60703
+ * - `find-toggle-button`: The Find button's inner button.
60704
+ * - `find-toggle-live`: The Find button's live region, which speaks while the button is pending.
60705
+ * - `find-toggle-spinner`: The ring the Find button turns while it is pending.
60706
+ * - `find-toggle-text`: The box the Find button's icon sits in.
60707
+ * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
60708
+ * - `find-whole-word-button`: The whole word button's inner button.
60709
+ * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
60710
+ * - `find-whole-word-pressed`: The whole word option while it applies, beside `find-whole-word`.
60711
+ * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
60712
+ * - `find-whole-word-text`: The box the whole word button's icon sits in.
60713
+ * - `footer`: The `footer` slot, under the document.
60714
+ * - `header`: The strip above the document that holds the toolbar, and the address bar under it while it is open.
60715
+ * - `italic`: The Italic button. Pressed while the selection is italic.
60716
+ * - `italic-button`: The Italic button's inner button.
60717
+ * - `italic-live`: The Italic button's live region, which speaks while the button is pending.
60718
+ * - `italic-pressed`: The Italic button while the selection is italic, beside `italic`.
60719
+ * - `italic-spinner`: The ring the Italic button turns while it is pending.
60720
+ * - `italic-text`: The box the Italic button's icon sits in.
60721
+ * - `link`: The Link button, which opens the address bar. Pressed while the selection is in a link, and expanded while the bar is open.
60722
+ * - `link-apply`: The button that applies the address.
60723
+ * - `link-apply-button`: The Apply button's inner button.
60724
+ * - `link-apply-live`: The Apply button's live region, which speaks while the button is pending.
60725
+ * - `link-apply-spinner`: The ring the Apply button turns while it is pending.
60726
+ * - `link-apply-text`: The box the Apply button's icon sits in.
60727
+ * - `link-bar`: The bar under the toolbar where the reader writes a link's address.
60728
+ * - `link-button`: The Link button's inner button.
60729
+ * - `link-close`: The button that closes the address bar.
60730
+ * - `link-close-button`: The close button's inner button.
60731
+ * - `link-close-live`: The close button's live region, which speaks while the button is pending.
60732
+ * - `link-close-spinner`: The ring the close button turns while it is pending.
60733
+ * - `link-close-text`: The box the close button's icon sits in.
60734
+ * - `link-controls`: The toolbar at the end of the address bar: Apply, Remove, and Close.
60735
+ * - `link-controls-toolbar`: The box inside the address bar's toolbar that lays its buttons out.
60736
+ * - `link-field`: The field the address is written in.
60737
+ * - `link-live`: The Link button's live region, which speaks while the button is pending.
60738
+ * - `link-pressed`: The Link button while the selection is in a link, beside `link`.
60739
+ * - `link-remove`: The button that takes the link off. Disabled where the selection is in no link.
60740
+ * - `link-remove-button`: The Remove button's inner button.
60741
+ * - `link-remove-live`: The Remove button's live region, which speaks while the button is pending.
60742
+ * - `link-remove-spinner`: The ring the Remove button turns while it is pending.
60743
+ * - `link-remove-text`: The box the Remove button's icon sits in.
60744
+ * - `link-spinner`: The ring the Link button turns while it is pending.
60745
+ * - `link-text`: The box the Link button's icon sits in.
60746
+ * - `ordered-list`: The Numbered list button. Pressed while the selection is in a numbered list.
60747
+ * - `ordered-list-button`: The Numbered list button's inner button.
60748
+ * - `ordered-list-live`: The Numbered list button's live region, which speaks while the button is pending.
60749
+ * - `ordered-list-pressed`: The Numbered list button while the selection is in a numbered list, beside `ordered-list`.
60750
+ * - `ordered-list-spinner`: The ring the Numbered list button turns while it is pending.
60751
+ * - `ordered-list-text`: The box the Numbered list button's icon sits in.
60752
+ * - `quote`: The Quote button. Pressed while the selection is in a quote.
60753
+ * - `quote-button`: The Quote button's inner button.
60754
+ * - `quote-live`: The Quote button's live region, which speaks while the button is pending.
60755
+ * - `quote-pressed`: The Quote button while the selection is in a quote, beside `quote`.
60756
+ * - `quote-spinner`: The ring the Quote button turns while it is pending.
60757
+ * - `quote-text`: The box the Quote button's icon sits in.
60758
+ * - `redo`: The Redo button. Disabled while there is nothing to redo.
60759
+ * - `redo-button`: The Redo button's inner button.
60760
+ * - `redo-live`: The Redo button's live region, which speaks while the button is pending.
60761
+ * - `redo-spinner`: The ring the Redo button turns while it is pending.
60762
+ * - `redo-text`: The box the Redo button's icon sits in.
60763
+ * - `region`: The frame around the toolbar, the address bar, and the document.
60764
+ * - `strike`: The Strikethrough button. Pressed while the selection is struck through.
60765
+ * - `strike-button`: The Strikethrough button's inner button.
60766
+ * - `strike-live`: The Strikethrough button's live region, which speaks while the button is pending.
60767
+ * - `strike-pressed`: The Strikethrough button while the selection is struck through, beside `strike`.
60768
+ * - `strike-spinner`: The ring the Strikethrough button turns while it is pending.
60769
+ * - `strike-text`: The box the Strikethrough button's icon sits in.
60770
+ * - `tools`: A group of several tools, which a narrow toolbar wraps as one: Undo and Redo, the marks, or the lists and the quote.
60771
+ * - `undo`: The Undo button. Disabled while there is nothing to undo.
60772
+ * - `undo-button`: The Undo button's inner button.
60773
+ * - `undo-live`: The Undo button's live region, which speaks while the button is pending.
60774
+ * - `undo-spinner`: The ring the Undo button turns while it is pending.
60775
+ * - `undo-text`: The box the Undo button's icon sits in.
60776
+ * - `viewport`: The box the document is drawn in.
60777
+ *
60778
+ * ## CSS States
60779
+ *
60780
+ * These can be used to apply styling when a component is in a given state.
60781
+ *
60782
+ * - `connected`: A renderer draws the document.
60783
+ * - `document-focused`: Focus is in the document, where the reader types.
60784
+ * - `find-open`: The find bar is open.
60785
+ * - `link-open`: The address bar is open.
60786
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
60787
+ */
60788
+ "helix-editor": Partial<
60789
+ HelixEditorProps & BaseProps<HelixEditor, F> & BaseEvents<HelixEditor>
60790
+ >;
60791
+
59936
60792
  /**
59937
60793
  * Centered with space around it. An empty view is the only thing on screen, and
59938
60794
  * pressed against the top edge it looks broken.
@@ -61151,6 +62007,207 @@ export type CustomElements<F extends Framework = "other"> = {
61151
62007
  HelixFilterInputProps & BaseProps<HelixFilterInput, F> & BaseEvents<HelixFilterInput>
61152
62008
  >;
61153
62009
 
62010
+ /**
62011
+ * Drawn as the find bars of Terminal and Code Editor are: a dense strip on the
62012
+ * raised surface, with a line under it where it meets the content. Place it
62013
+ * above the content it searches, such as at the top of a pane, or make it
62014
+ * sticky with `position: sticky` on the element.
62015
+ *
62016
+ * Every match is painted with `::highlight(helix-find-match)` and the current
62017
+ * one with `::highlight(helix-find-current)`, both in the base layer. Text is
62018
+ * painted from the tree it lives in, so content in a shadow root of your own
62019
+ * needs the two rules in that root's styles.
62020
+ *
62021
+ * ## Attributes & Properties
62022
+ *
62023
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
62024
+ *
62025
+ * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
62026
+ * - `open`: Whether the element is open.
62027
+ *
62028
+ * One property, not two, so `dialog.open` answers the question anyone
62029
+ * asking it meant. Writing always applies; `<helix-dialog open>` is the
62030
+ * same statement in markup.
62031
+ *
62032
+ * **Not reflected, and that is required rather than tidy.** Reflection
62033
+ * writes the resolved state back as an attribute, so an element that opened
62034
+ * itself would put `open` on its own host: cloned, serialized for
62035
+ * hydration, or diffed by a framework, it comes back holding whatever the
62036
+ * last reader did rather than what the author wrote. `:state(open)` carries
62037
+ * the resolved state for stylesheets, which is what the mirror is for.
62038
+ * - `close-label`/`closeLabel`: The close button's label.
62039
+ * - `controls-label`/`controlsLabel`: The name of the bar's toolbar, read by screen readers.
62040
+ * - `for`: The id of the element whose text Find searches, in the same tree as Find.
62041
+ * With a finder attached, it names only where the find key opens the bar.
62042
+ * - `invalid-label`/`invalidLabel`: What the count says when the regular expression cannot be read.
62043
+ * - `label`: The field's name and placeholder, and the name of the bar.
62044
+ * - `match-case`/`matchCase`: Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar.
62045
+ * - `match-case-label`/`matchCaseLabel`: The match case button's label.
62046
+ * - `matches-label`/`matchesLabel`: What the count says of the matches. `{index}` is the current match,
62047
+ * counting from 1, and `{count}` how many there are.
62048
+ * - `next-label`/`nextLabel`: The next match button's label.
62049
+ * - `options`: Which options the bar draws, as a list of `match-case`, `whole-word`, and
62050
+ * `regex`, or `none`. They are always drawn in that order.
62051
+ * - `previous-label`/`previousLabel`: The previous match button's label.
62052
+ * - `query`: What the field holds: what the reader typed, or what you set.
62053
+ * - `readonly`/`readOnly`: Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling.
62054
+ * - `regex`: Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar.
62055
+ * - `regex-label`/`regexLabel`: The regular expression button's label.
62056
+ * - `replace-all-label`/`replaceAllLabel`: The Replace all button's words.
62057
+ * - `replace-field-label`/`replaceFieldLabel`: The replace field's name and placeholder.
62058
+ * - `replace-label`/`replaceLabel`: The Replace button's words.
62059
+ * - `replacement`: What the replace field holds, which Replace puts in place of a match.
62060
+ * - `replace-toggle-label`/`replaceToggleLabel`: The label of the button that shows the replace row.
62061
+ * - `shortcut`: The key that opens the bar, as a chord such as `mod+f`, where `mod` is
62062
+ * Command on an Apple keyboard and Control elsewhere. Empty turns the key
62063
+ * off, as for a bar the page opens itself.
62064
+ * - `skip`: Elements inside the content whose text is not searched, as a selector,
62065
+ * such as line numbers or the buttons beside each message.
62066
+ * - `whole-word`/`wholeWord`: Whether only whole words match. The reader turns it on and off from the bar.
62067
+ * - `whole-word-label`/`wholeWordLabel`: The whole word button's label.
62068
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
62069
+ *
62070
+ * **Named `whenSettled` because `settled` is taken four times over**, by
62071
+ * Image, Splitter and both color controls, none of them about transitions. A
62072
+ * base class takes the name every subclass then cannot use.
62073
+ *
62074
+ * **The state it reports cannot be watched, which is why this exists.** A
62075
+ * custom state is deliberately not in the DOM, so there is no
62076
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
62077
+ * instead.
62078
+ *
62079
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
62080
+ * the suppression is still active in. That is the distinction `readyToMove`
62081
+ * in `@fusion.dev/helix-testing` is written around.
62082
+ *
62083
+ * It never resolves where `requestAnimationFrame` never fires, which is a
62084
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
62085
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
62086
+ * browser harness's awaits it alone: a browser always runs the frame, and a
62087
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
62088
+ *
62089
+ * ## Events
62090
+ *
62091
+ * Events that will be emitted by the component.
62092
+ *
62093
+ * - `toggle`: Sent when the bar opens or closes, with `newState` and `oldState`.
62094
+ * - `helix-before-close`: Fired before the bar closes, and cancelable.
62095
+ * - `helix-before-open`: Fired before the bar opens, and cancelable. Canceling it keeps the bar closed.
62096
+ * - `helix-found`: Sent after each search and each move among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none.
62097
+ *
62098
+ * ## Slots
62099
+ *
62100
+ * Areas where markup can be added to the component.
62101
+ *
62102
+ * - `actions`: Controls of your own in the bar's toolbar, between its options and the buttons that move between matches.
62103
+ * - `close-icon`: Replaces the glyph inside the close button.
62104
+ * - `match-case-icon`: Replaces the glyph inside the match case button.
62105
+ * - `next-icon`: Replaces the glyph inside the next match button.
62106
+ * - `previous-icon`: Replaces the glyph inside the previous match button.
62107
+ * - `regex-icon`: Replaces the glyph inside the regular expression button.
62108
+ * - `whole-word-icon`: Replaces the glyph inside the whole word button.
62109
+ *
62110
+ * ## Methods
62111
+ *
62112
+ * Methods that can be called to access component functionality.
62113
+ *
62114
+ * - `requestOpen(next: boolean) => boolean`: Requests that the element open or close, and returns whether the change
62115
+ * was applied.
62116
+ *
62117
+ * Announces before it acts, so `preventDefault()` on the `helix-before-open` or
62118
+ * `helix-before-close` is a refusal and nothing moves. Nobody refusing means the
62119
+ * element opens or closes itself, whether or not a consumer declared
62120
+ * `open`: a declared property is a seed and a correction, and a consumer
62121
+ * who wants the decision for themselves refuses it and assigns their own.
62122
+ * - `toggleOpen() => boolean`: Requests the opposite of the current state.
62123
+ * - `attach(finder: Finder) => FindSink`: Searches with `finder` in place of the text finder, and returns how it
62124
+ * reports a search it finishes later. Attaching another lets go of this one.
62125
+ * - `show() => Promise<void>`: Opens the bar and puts focus in its field, with what it holds selected.
62126
+ * Text selected in the content, on one line, becomes the search.
62127
+ * - `hide() => void`: Closes the bar and takes the marks away. Focus in the bar returns to where it was before the bar opened.
62128
+ * - `next() => void`: Moves to the next match, after the last one to the first.
62129
+ * - `previous() => void`: Moves to the previous match, before the first one to the last.
62130
+ * - `refresh() => void`: Searches again, staying on the current match where it still matches, for content changed in a way Find cannot see.
62131
+ *
62132
+ * ## CSS Custom Properties
62133
+ *
62134
+ * CSS variables available for styling the component.
62135
+ *
62136
+ * - `--find-background-color`: The bar's fill. Defaults to the raised surface.
62137
+ * - `--find-border-color`: The line under the bar and the fields' edges.
62138
+ * - `--find-field-background-color`: The fields' fill. Defaults to the page's background.
62139
+ *
62140
+ * ## CSS Parts
62141
+ *
62142
+ * Custom selectors for styling elements within the component.
62143
+ *
62144
+ * - `actions`: The `actions` slot, in the toolbar.
62145
+ * - `bar`: The bar, a search landmark: the field, the count, the toolbar, and the replace row while it shows.
62146
+ * - `close`: The button that closes the bar.
62147
+ * - `close-button`: The close button's inner button.
62148
+ * - `close-live`: The close button's live region, which speaks while the button is pending.
62149
+ * - `close-spinner`: The ring the close button turns while it is pending.
62150
+ * - `close-text`: The box the close button's icon sits in.
62151
+ * - `controls`: The toolbar: the options, your actions, and the buttons that move between matches and close the bar.
62152
+ * - `controls-toolbar`: The box inside the toolbar that lays its buttons out.
62153
+ * - `count`: Which match is current and how many there are, such as "3 of 12 matches".
62154
+ * - `field`: The search field.
62155
+ * - `live`: The live region that says the count as it changes.
62156
+ * - `match-case`: The button that matches case. Pressed while it does.
62157
+ * - `match-case-button`: The match case button's inner button.
62158
+ * - `match-case-live`: The match case button's live region, which speaks while the button is pending.
62159
+ * - `match-case-pressed`: The match case button while case has to match, beside `match-case`.
62160
+ * - `match-case-spinner`: The ring the match case button turns while it is pending.
62161
+ * - `match-case-text`: The box the match case button's icon sits in.
62162
+ * - `next`: The button that moves to the next match.
62163
+ * - `next-button`: The next match button's inner button.
62164
+ * - `next-live`: The next match button's live region, which speaks while the button is pending.
62165
+ * - `next-spinner`: The ring the next match button turns while it is pending.
62166
+ * - `next-text`: The box the next match button's icon sits in.
62167
+ * - `previous`: The button that moves to the previous match.
62168
+ * - `previous-button`: The previous match button's inner button.
62169
+ * - `previous-live`: The previous match button's live region, which speaks while the button is pending.
62170
+ * - `previous-spinner`: The ring the previous match button turns while it is pending.
62171
+ * - `previous-text`: The box the previous match button's icon sits in.
62172
+ * - `regex`: The button that reads the field as a regular expression. Pressed while it does.
62173
+ * - `regex-button`: The regular expression button's inner button.
62174
+ * - `regex-live`: The regular expression button's live region, which speaks while the button is pending.
62175
+ * - `regex-pressed`: The regular expression button while the field reads as one, beside `regex`.
62176
+ * - `regex-spinner`: The ring the regular expression button turns while it is pending.
62177
+ * - `regex-text`: The box the regular expression button's icon sits in.
62178
+ * - `replace`: The button that replaces the current match.
62179
+ * - `replace-all`: The button that replaces every match.
62180
+ * - `replace-all-button`: The Replace all button's inner button.
62181
+ * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
62182
+ * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
62183
+ * - `replace-all-text`: The box the Replace all button's words sit in.
62184
+ * - `replace-button`: The Replace button's inner button.
62185
+ * - `replace-field`: The field the replacement is typed in.
62186
+ * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
62187
+ * - `replace-spinner`: The ring the Replace button turns while it is pending.
62188
+ * - `replace-text`: The box the Replace button's words sit in.
62189
+ * - `replace-toggle`: The button that shows the replace row. Expanded while it shows.
62190
+ * - `replace-toggle-button`: The replace toggle's inner button.
62191
+ * - `replace-toggle-live`: The replace toggle's live region, which speaks while the button is pending.
62192
+ * - `replace-toggle-spinner`: The ring the replace toggle turns while it is pending.
62193
+ * - `replace-toggle-text`: The box the replace toggle's icon sits in.
62194
+ * - `whole-word`: The button that matches whole words only. Pressed while it does.
62195
+ * - `whole-word-button`: The whole word button's inner button.
62196
+ * - `whole-word-live`: The whole word button's live region, which speaks while the button is pending.
62197
+ * - `whole-word-pressed`: The whole word button while only whole words match, beside `whole-word`.
62198
+ * - `whole-word-spinner`: The ring the whole word button turns while it is pending.
62199
+ * - `whole-word-text`: The box the whole word button's icon sits in.
62200
+ *
62201
+ * ## CSS States
62202
+ *
62203
+ * These can be used to apply styling when a component is in a given state.
62204
+ *
62205
+ * - `open`: While the bar is open.
62206
+ * - `replace-open`: While the replace row shows.
62207
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
62208
+ */
62209
+ "helix-find": Partial<HelixFindProps & BaseProps<HelixFind, F> & BaseEvents<HelixFind>>;
62210
+
61154
62211
  /**
61155
62212
  * The host is the flex container and its only child is a slot, so
61156
62213
  * `<helix-flex>` adds no box beyond the `<div>` it replaces.
@@ -65224,7 +66281,7 @@ export type CustomElements<F extends Framework = "other"> = {
65224
66281
  *
65225
66282
  * Custom selectors for styling elements within the component.
65226
66283
  *
65227
- * - `content`: The lines, hidden while the group is shut.
66284
+ * - `content`: The lines, hidden until found while the group is shut.
65228
66285
  * - `duration`: How long the step took.
65229
66286
  * - `heading`: The heading.
65230
66287
  * - `mark`: The caret that turns as the group opens, an `<svg>` you size.
@@ -78995,6 +80052,7 @@ export type CustomElements<F extends Framework = "other"> = {
78995
80052
  * Events that will be emitted by the component.
78996
80053
  *
78997
80054
  * - `helix-copy`: The copy control or its key put the selection on the clipboard.
80055
+ * - `helix-found`: The find bar searched or moved among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none.
78998
80056
  * - `helix-terminal-bell`: The program rang the bell. The frame flashes once.
78999
80057
  * - `helix-terminal-input`: The reader typed or pasted, with `data` encoded for the program. Write it to the process. Not sent while `readonly`, or once `exit-code` is set.
79000
80058
  * - `helix-terminal-link`: A link in the output was activated, with its `href`. Cancelable: cancel it to open the link yourself. Left alone, a web address opens in a new tab.
@@ -79102,23 +80160,23 @@ export type CustomElements<F extends Framework = "other"> = {
79102
80160
  * - `copy-spinner`: The ring the copy button turns while it is pending.
79103
80161
  * - `copy-text`: The box the copy button's icon sits in.
79104
80162
  * - `exit-actions`: The `exit-actions` slot, beside Restart in the status line.
79105
- * - `find`: The button that opens and closes the find bar. Expanded while it is open.
79106
- * - `find-actions`: The `find-actions` slot, first in the find bar's toolbar.
79107
- * - `find-bar`: The bar under the header where the reader searches the output.
79108
- * - `find-button`: The find button's inner button.
80163
+ * - `find`: The find bar under the header, where the reader searches the output: a Find of its own.
80164
+ * - `find-actions`: The `find-actions` slot, in the find bar's toolbar.
80165
+ * - `find-bar`: The find bar's strip: the field, the count, and the toolbar.
79109
80166
  * - `find-close`: The button that closes the find bar.
79110
80167
  * - `find-close-button`: The find bar's close button's inner button.
79111
80168
  * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
79112
80169
  * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
79113
80170
  * - `find-close-text`: The box the find bar's close button's icon sits in.
79114
- * - `find-controls`: The toolbar at the end of the find bar: your find actions, then the buttons that move between matches and close the bar.
80171
+ * - `find-controls`: The toolbar at the end of the find bar: the options, your find actions, and the buttons that move between matches and close the bar.
79115
80172
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
79116
80173
  * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
79117
80174
  * - `find-field`: The search field in the find bar.
79118
- * - `find-live`: The find button's live region, which speaks while the button is pending.
80175
+ * - `find-live`: The find bar's live region, which says the count as it changes.
79119
80176
  * - `find-match-case`: The button that matches case in the find bar. Pressed while it does.
79120
80177
  * - `find-match-case-button`: The match case button's inner button.
79121
80178
  * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
80179
+ * - `find-match-case-pressed`: The match case button while case has to match, beside `find-match-case`.
79122
80180
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
79123
80181
  * - `find-match-case-text`: The box the match case button's icon sits in.
79124
80182
  * - `find-next`: The button that moves to the next match.
@@ -79134,13 +80192,34 @@ export type CustomElements<F extends Framework = "other"> = {
79134
80192
  * - `find-regex`: The button that reads the find field as a regular expression. Pressed while it does.
79135
80193
  * - `find-regex-button`: The regular expression button's inner button.
79136
80194
  * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
80195
+ * - `find-regex-pressed`: The regular expression button while the field reads as one, beside `find-regex`.
79137
80196
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
79138
80197
  * - `find-regex-text`: The box the regular expression button's icon sits in.
79139
- * - `find-spinner`: The ring the find button turns while it is pending.
79140
- * - `find-text`: The box the find button's icon sits in.
80198
+ * - `find-replace`: The find bar's Replace button, which a terminal does not draw, since its output cannot be changed.
80199
+ * - `find-replace-all`: The find bar's Replace all button, which a terminal does not draw.
80200
+ * - `find-replace-all-button`: The Replace all button's inner button.
80201
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
80202
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
80203
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
80204
+ * - `find-replace-button`: The Replace button's inner button.
80205
+ * - `find-replace-field`: The find bar's replace field, which a terminal does not draw.
80206
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
80207
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
80208
+ * - `find-replace-text`: The box the Replace button's words sits in.
80209
+ * - `find-replace-toggle`: The button that shows the find bar's replace row, which a terminal does not draw.
80210
+ * - `find-replace-toggle-button`: The replace toggle's inner button.
80211
+ * - `find-replace-toggle-live`: The replace toggle's live region, which speaks while the button is pending.
80212
+ * - `find-replace-toggle-spinner`: The ring the replace toggle turns while it is pending.
80213
+ * - `find-replace-toggle-text`: The box the replace toggle's icon sits in.
80214
+ * - `find-toggle`: The button in the header that opens and closes the find bar. Expanded while it is open.
80215
+ * - `find-toggle-button`: The find button's inner button.
80216
+ * - `find-toggle-live`: The find button's live region, which speaks while the button is pending.
80217
+ * - `find-toggle-spinner`: The ring the find button turns while it is pending.
80218
+ * - `find-toggle-text`: The box the find button's icon sits in.
79141
80219
  * - `find-whole-word`: The button that matches whole words only in the find bar. Pressed while it does.
79142
80220
  * - `find-whole-word-button`: The whole word button's inner button.
79143
80221
  * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
80222
+ * - `find-whole-word-pressed`: The whole word button while only whole words match, beside `find-whole-word`.
79144
80223
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
79145
80224
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
79146
80225
  * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
@@ -89436,7 +90515,7 @@ export type CustomElementsSolidJs = {
89436
90515
  * header, a find bar and a status line each a strip on the raised surface,
89437
90516
  * one frame around them. It is 24rem tall unless `fill` is set or
89438
90517
  * `--code-editor-block-size` says otherwise. An engine draws inside it:
89439
- * `@fusion.dev/helix-editor` themes CodeMirror's gutter, caret, selection and
90518
+ * `@fusion.dev/helix-code-editor` themes CodeMirror's gutter, caret, selection and
89440
90519
  * syntax from your tokens, and draws a problem's line number in its tone.
89441
90520
  *
89442
90521
  * Set `fill` for an editor that fills a pane, such as one side of a split
@@ -89542,7 +90621,7 @@ export type CustomElementsSolidJs = {
89542
90621
  * Here rather than on each control.
89543
90622
  * - `diagnostics`: The problems in the text, each underlined and listed under the editor. (property only)
89544
90623
  * - `engine`: What draws the editor, such as `codeMirrorEngine()` from
89545
- * `@fusion.dev/helix-editor`. Absent, the editor is a plain text field. (property only)
90624
+ * `@fusion.dev/helix-code-editor`. Absent, the editor is a plain text field. (property only)
89546
90625
  * - `validity`: Whether the control meets its constraints, and why not. (property only) (readonly)
89547
90626
  * - `validationMessage`: The message the browser would show for the control, or an empty string. (property only) (readonly)
89548
90627
  * - `willValidate`: Whether the control is checked when its form is submitted. (property only) (readonly)
@@ -89575,6 +90654,7 @@ export type CustomElementsSolidJs = {
89575
90654
  *
89576
90655
  * - `change`: The reader finished an edit and focus left the code, in the engine or the plain field.
89577
90656
  * - `helix-before-change`: The text is about to change. Cancelable: cancel it to keep the current text.
90657
+ * - `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.
89578
90658
  * - `input`: Fired after the text changes.
89579
90659
  *
89580
90660
  * ## Slots
@@ -89678,9 +90758,9 @@ export type CustomElementsSolidJs = {
89678
90758
  * - `diagnostics`: The list of problems under the code, while there are any.
89679
90759
  * - `feedback`: The message that says what is wrong.
89680
90760
  * - `field`: The frame around the header, the code, the problems and the status line.
89681
- * - `find`: The button in the header that opens the find bar.
89682
- * - `find-bar`: The find bar under the header, while it is open.
89683
- * - `find-button`: The Find button's inner button.
90761
+ * - `find`: The find bar under the header, where the reader searches the code: a Find of its own.
90762
+ * - `find-actions`: The find bar's `actions` slot, which the editor fills with nothing.
90763
+ * - `find-bar`: The find bar's strip: the replace toggle, the field, the count, the toolbar, and the replace row while it shows.
89684
90764
  * - `find-close`: The button that closes the find bar.
89685
90765
  * - `find-close-button`: The close button's inner button.
89686
90766
  * - `find-close-live`: The close button's live region, which speaks while the button is pending.
@@ -89690,10 +90770,11 @@ export type CustomElementsSolidJs = {
89690
90770
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
89691
90771
  * - `find-count`: Which match is selected, of how many.
89692
90772
  * - `find-field`: The field the search is typed in.
89693
- * - `find-live`: The Find button's live region, which speaks while the button is pending.
90773
+ * - `find-live`: The find bar's live region, which says the count as it changes.
89694
90774
  * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
89695
90775
  * - `find-match-case-button`: The match case button's inner button.
89696
90776
  * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
90777
+ * - `find-match-case-pressed`: The match case option while it applies, beside `find-match-case`.
89697
90778
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
89698
90779
  * - `find-match-case-text`: The box the match case button's icon sits in.
89699
90780
  * - `find-next`: The button that selects the next match.
@@ -89709,18 +90790,34 @@ export type CustomElementsSolidJs = {
89709
90790
  * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
89710
90791
  * - `find-regex-button`: The regular expression button's inner button.
89711
90792
  * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
90793
+ * - `find-regex-pressed`: The regular expression option while it applies, beside `find-regex`.
89712
90794
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
89713
90795
  * - `find-regex-text`: The box the regular expression button's icon sits in.
89714
- * - `find-replace`: The button that shows the replace field under the find field. Expanded while it shows.
89715
- * - `find-replace-button`: The find and replace button's inner button.
89716
- * - `find-replace-live`: The find and replace button's live region, which speaks while the button is pending.
89717
- * - `find-replace-spinner`: The ring the find and replace button turns while it is pending.
89718
- * - `find-replace-text`: The box the find and replace button's icon sits in.
89719
- * - `find-spinner`: The ring the Find button turns while it is pending.
89720
- * - `find-text`: The box the Find button's icon sits in.
90796
+ * - `find-replace`: The button that replaces the selected match.
90797
+ * - `find-replace-all`: The button that replaces every match.
90798
+ * - `find-replace-all-button`: The Replace all button's inner button.
90799
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
90800
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
90801
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
90802
+ * - `find-replace-button`: The Replace button's inner button.
90803
+ * - `find-replace-field`: The field the replacement is typed in.
90804
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
90805
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
90806
+ * - `find-replace-text`: The box the Replace button's words sits in.
90807
+ * - `find-replace-toggle`: The button that shows the replace field under the find field. Expanded while it shows. Not drawn while `readonly`.
90808
+ * - `find-replace-toggle-button`: The find and replace button's inner button.
90809
+ * - `find-replace-toggle-live`: The find and replace button's live region, which speaks while the button is pending.
90810
+ * - `find-replace-toggle-spinner`: The ring the find and replace button turns while it is pending.
90811
+ * - `find-replace-toggle-text`: The box the find and replace button's icon sits in.
90812
+ * - `find-toggle`: The button in the header that opens and closes the find bar. Expanded while it is open.
90813
+ * - `find-toggle-button`: The Find button's inner button.
90814
+ * - `find-toggle-live`: The Find button's live region, which speaks while the button is pending.
90815
+ * - `find-toggle-spinner`: The ring the Find button turns while it is pending.
90816
+ * - `find-toggle-text`: The box the Find button's icon sits in.
89721
90817
  * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
89722
90818
  * - `find-whole-word-button`: The whole word button's inner button.
89723
90819
  * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
90820
+ * - `find-whole-word-pressed`: The whole word option while it applies, beside `find-whole-word`.
89724
90821
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
89725
90822
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
89726
90823
  * - `header`: The strip above the code: the name, the language, and the controls.
@@ -89729,17 +90826,6 @@ export type CustomElementsSolidJs = {
89729
90826
  * - `language`: The language's name in the header.
89730
90827
  * - `position`: The caret's line and column, in the status line.
89731
90828
  * - `problem-count`: How many problems there are, in the status line.
89732
- * - `replace`: The button that replaces the selected match.
89733
- * - `replace-all`: The button that replaces every match.
89734
- * - `replace-all-button`: The Replace all button's inner button.
89735
- * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
89736
- * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
89737
- * - `replace-all-text`: The box the Replace all button's words sit in.
89738
- * - `replace-button`: The Replace button's inner button.
89739
- * - `replace-field`: The field the replacement is typed in.
89740
- * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
89741
- * - `replace-spinner`: The ring the Replace button turns while it is pending.
89742
- * - `replace-text`: The box the Replace button's words sit in.
89743
90829
  * - `status`: The strip under the code.
89744
90830
  * - `view`: Where an engine draws, while one is connected.
89745
90831
  *
@@ -89750,7 +90836,6 @@ export type CustomElementsSolidJs = {
89750
90836
  * - `connected`: An engine draws the editor.
89751
90837
  * - `find-open`: The find bar is open.
89752
90838
  * - `invalid`: The editor has an error to show, from `required` or your `feedback`.
89753
- * - `replace-open`: The replace field shows under the find field.
89754
90839
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
89755
90840
  */
89756
90841
  "helix-code-editor": Partial<
@@ -94796,6 +95881,334 @@ export type CustomElementsSolidJs = {
94796
95881
  BaseEvents<HelixDrilldown>
94797
95882
  >;
94798
95883
 
95884
+ /**
95885
+ * Drawn as Code Editor is: the document on the page's ground, and the toolbar
95886
+ * a strip on the raised surface, one frame around them. The strip stays at the
95887
+ * top of the page while a long document scrolls under it, and the frame grows
95888
+ * with the document from `--editor-min-block-size`. Set `fill` for an editor
95889
+ * that fills a pane, where the document scrolls inside the frame.
95890
+ *
95891
+ * The document's headings, lists, quotes, code, and tables are drawn by the
95892
+ * base layer's `data-prose` rules, so it reads as your docs and chat replies
95893
+ * do. Write `data-prose` on the document so the base layer draws it before a
95894
+ * renderer connects, and `connectEditor` writes it too. Its lines keep to a
95895
+ * readable length, `--editor-measure`, centered in a wide frame.
95896
+ *
95897
+ * ## Attributes & Properties
95898
+ *
95899
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
95900
+ *
95901
+ * - `fill`: Covers the container instead of growing with the document, for an editor
95902
+ * that fills a pane, such as one side of a split view. The document scrolls
95903
+ * inside the frame. The container needs a position, such as
95904
+ * `position: relative`.
95905
+ * - `separation`: How the frame stands off the page. Unset, it is outlined. `plain` draws
95906
+ * no edge or corners, for a document that fills a page or a pane of its own.
95907
+ * - `block-chosen-label`/`blockChosenLabel`: The block menu button's name. `{name}` is the block type at the selection.
95908
+ * - `block-label`/`blockLabel`: The block menu's name, read by screen readers.
95909
+ * - `bold-label`/`boldLabel`: The Bold button's label.
95910
+ * - `bullet-list-label`/`bulletListLabel`: The Bulleted list button's label.
95911
+ * - `code-block-label`/`codeBlockLabel`: The Code block row's label in the block menu.
95912
+ * - `code-label`/`codeLabel`: The Code button's label.
95913
+ * - `controls-label`/`controlsLabel`: The toolbar's name, read by screen readers.
95914
+ * - `fallback-label`/`fallbackLabel`: The document's name where `label` is empty and the host has no `aria-label`.
95915
+ * - `find-label`/`findLabel`: The Find button's label, and the find bar's name.
95916
+ * - `heading-label`/`headingLabel`: A heading's name in the block menu. `{level}` is its level, 1 to 3.
95917
+ * - `italic-label`/`italicLabel`: The Italic button's label.
95918
+ * - `label`: The document's name, read by screen readers. Name what it holds, such as
95919
+ * "Release notes", so that several editors on one page can be told apart.
95920
+ * Required.
95921
+ * - `link-apply-label`/`linkApplyLabel`: The Apply button's label in the address bar.
95922
+ * - `link-close-label`/`linkCloseLabel`: The close button's label in the address bar.
95923
+ * - `link-controls-label`/`linkControlsLabel`: The name of the address bar's toolbar, read by screen readers.
95924
+ * - `link-field-label`/`linkFieldLabel`: The address field's name, which it also shows while it is empty.
95925
+ * - `link-label`/`linkLabel`: The Link button's label, and the address bar's name.
95926
+ * - `link-remove-label`/`linkRemoveLabel`: The Remove button's label in the address bar.
95927
+ * - `ordered-list-label`/`orderedListLabel`: The Numbered list button's label.
95928
+ * - `paragraph-label`/`paragraphLabel`: The Paragraph row's label in the block menu.
95929
+ * - `placeholder`: The words shown in an empty document, such as "Write the release notes".
95930
+ * - `quote-label`/`quoteLabel`: The Quote button's label.
95931
+ * - `readonly`/`readOnly`: Shows the document and takes no edits, with no toolbar, for a document
95932
+ * someone reads, or one an agent is writing. The attribute is `readonly`,
95933
+ * the platform's spelling.
95934
+ * - `redo-label`/`redoLabel`: The Redo button's label.
95935
+ * - `strike-label`/`strikeLabel`: The Strikethrough button's label.
95936
+ * - `tools`: Which groups of tools the toolbar draws, as a list of `history`, `block`,
95937
+ * `marks`, `link`, `lists`, and `quote`, or `none`. They are drawn in that
95938
+ * order, whatever order the list is in. Absent is all six.
95939
+ * - `undo-label`/`undoLabel`: The Undo button's label.
95940
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
95941
+ *
95942
+ * **Named `whenSettled` because `settled` is taken four times over**, by
95943
+ * Image, Splitter and both color controls, none of them about transitions. A
95944
+ * base class takes the name every subclass then cannot use.
95945
+ *
95946
+ * **The state it reports cannot be watched, which is why this exists.** A
95947
+ * custom state is deliberately not in the DOM, so there is no
95948
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
95949
+ * instead.
95950
+ *
95951
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
95952
+ * the suppression is still active in. That is the distinction `readyToMove`
95953
+ * in `@fusion.dev/helix-testing` is written around.
95954
+ *
95955
+ * It never resolves where `requestAnimationFrame` never fires, which is a
95956
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
95957
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
95958
+ * browser harness's awaits it alone: a browser always runs the frame, and a
95959
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
95960
+ *
95961
+ * ## Events
95962
+ *
95963
+ * Events that will be emitted by the component.
95964
+ *
95965
+ * - `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.
95966
+ *
95967
+ * ## Slots
95968
+ *
95969
+ * Areas where markup can be added to the component.
95970
+ *
95971
+ * - `(default)`: The element your renderer draws the document in.
95972
+ * - `actions`: Controls of your own at the end of the toolbar, such as Share or Comment.
95973
+ * - `bold-icon`: Replaces the glyph inside the Bold button.
95974
+ * - `bullet-list-icon`: Replaces the glyph inside the Bulleted list button.
95975
+ * - `code-icon`: Replaces the glyph inside the Code button.
95976
+ * - `find-icon`: Replaces the glyph inside the Find button.
95977
+ * - `footer`: Content under the document, such as a word count or whether it is saved.
95978
+ * - `italic-icon`: Replaces the glyph inside the Italic button.
95979
+ * - `link-icon`: Replaces the glyph inside the Link button.
95980
+ * - `ordered-list-icon`: Replaces the glyph inside the Numbered list button.
95981
+ * - `quote-icon`: Replaces the glyph inside the Quote button.
95982
+ * - `redo-icon`: Replaces the glyph inside the Redo button.
95983
+ * - `strike-icon`: Replaces the glyph inside the Strikethrough button.
95984
+ * - `undo-icon`: Replaces the glyph inside the Undo button.
95985
+ *
95986
+ * ## Methods
95987
+ *
95988
+ * Methods that can be called to access component functionality.
95989
+ *
95990
+ * - `attach(renderer: EditorRenderer) => EditorSink`: Hands the frame what draws the document. The frame sends it the settings
95991
+ * now and as they change, asks it to run the tools the reader presses, and
95992
+ * draws the toolbar from what it reports through the sink it gets back.
95993
+ * Attaching another renderer detaches this one.
95994
+ * - `run(tool: EditorTool, value?: string) => boolean`: Runs a tool at the selection, as its button does, and says whether it
95995
+ * ran: a block type, a mark, a list, a quote, a step through history, or a
95996
+ * link to `value`, where an empty `value` takes the link off. Nothing runs
95997
+ * while no renderer is attached, or while `readonly`.
95998
+ * - `focus(options?: FocusOptions) => void`: Puts focus in the document, with the selection where it was.
95999
+ * - `openLink() => void`: Opens the address bar with the address of the link at the selection, and puts focus in its field.
96000
+ *
96001
+ * ## CSS Custom Properties
96002
+ *
96003
+ * CSS variables available for styling the component.
96004
+ *
96005
+ * - `--editor-background-color`: The ground the document is drawn on. Defaults to the page's background.
96006
+ * - `--editor-border-color`: The frame's edge and the line under the toolbar.
96007
+ * - `--editor-header-background-color`: The fill of the toolbar's strip.
96008
+ * - `--editor-header-offset`: How far below the top of the page the toolbar stays while the document scrolls, such as the height of your own fixed header. `0` unless set.
96009
+ * - `--editor-measure`: The longest a line of the document runs, as a length: `72ch` unless set.
96010
+ * - `--editor-min-block-size`: The frame's least height, which it grows from with the document: `12rem` unless set. Ignored with `fill`.
96011
+ * - `--editor-padding`: The space around the document, inside the frame.
96012
+ * - `--editor-radius`: The frame's corner radius.
96013
+ *
96014
+ * ## CSS Parts
96015
+ *
96016
+ * Custom selectors for styling elements within the component.
96017
+ *
96018
+ * - `actions`: The `actions` slot, last in the toolbar.
96019
+ * - `block`: The button that opens the block menu, which names the block type at the selection.
96020
+ * - `block-button`: The block menu button's inner button.
96021
+ * - `block-live`: The block menu button's live region, which speaks while the button is pending.
96022
+ * - `block-menu`: The menu of block types.
96023
+ * - `block-menu-back`: The control that returns from a submenu.
96024
+ * - `block-menu-back-mark`: The glyph on the back control of a submenu.
96025
+ * - `block-menu-empty`: The text shown when the menu has no items.
96026
+ * - `block-menu-header`: The bar above a submenu, holding the way back and its name.
96027
+ * - `block-menu-live`: The block menu's live region, which repeats the empty and loading text for screen readers.
96028
+ * - `block-menu-loading`: The text shown while the items are loading.
96029
+ * - `block-menu-search-field`: The block menu's filter field, drawn with `filterable`.
96030
+ * - `block-menu-surface`: The floating panel the block menu is drawn on.
96031
+ * - `block-menu-title`: The name of the submenu that is showing.
96032
+ * - `block-name`: The name of the block type at the selection, in the block menu's button.
96033
+ * - `block-option`: One block type in the block menu, checked while the selection is in one.
96034
+ * - `block-option-end`: A block type's trailing column, which holds its shortcut.
96035
+ * - `block-option-item`: A block type's row.
96036
+ * - `block-option-mark`: The check beside the block type the selection is in.
96037
+ * - `block-option-shortcut`: A block type's key.
96038
+ * - `block-option-shortcut-kbd`: The key inside it.
96039
+ * - `block-option-shortcut-key`: One key of a block type's chord.
96040
+ * - `block-option-shortcut-separator`: The `+` between two keys of a block type's chord.
96041
+ * - `block-option-start`: A block type's leading column.
96042
+ * - `block-option-surface`: A block type's submenu panel, which a block type does not open.
96043
+ * - `block-spinner`: The ring the block menu button turns while it is pending.
96044
+ * - `block-text`: The box the block menu button's words sit in.
96045
+ * - `bold`: The Bold button. Pressed while the selection is bold.
96046
+ * - `bold-button`: The Bold button's inner button.
96047
+ * - `bold-live`: The Bold button's live region, which speaks while the button is pending.
96048
+ * - `bold-pressed`: The Bold button while the selection is bold, beside `bold`.
96049
+ * - `bold-spinner`: The ring the Bold button turns while it is pending.
96050
+ * - `bold-text`: The box the Bold button's icon sits in.
96051
+ * - `bullet-list`: The Bulleted list button. Pressed while the selection is in a bulleted list.
96052
+ * - `bullet-list-button`: The Bulleted list button's inner button.
96053
+ * - `bullet-list-live`: The Bulleted list button's live region, which speaks while the button is pending.
96054
+ * - `bullet-list-pressed`: The Bulleted list button while the selection is in a bulleted list, beside `bullet-list`.
96055
+ * - `bullet-list-spinner`: The ring the Bulleted list button turns while it is pending.
96056
+ * - `bullet-list-text`: The box the Bulleted list button's icon sits in.
96057
+ * - `code`: The Code button. Pressed while the selection is code.
96058
+ * - `code-button`: The Code button's inner button.
96059
+ * - `code-live`: The Code button's live region, which speaks while the button is pending.
96060
+ * - `code-pressed`: The Code button while the selection is code, beside `code`.
96061
+ * - `code-spinner`: The ring the Code button turns while it is pending.
96062
+ * - `code-text`: The box the Code button's icon sits in.
96063
+ * - `controls`: The toolbar: the tools, then your actions, one tab stop that the arrows move along.
96064
+ * - `controls-toolbar`: The box inside the toolbar that lays its buttons out.
96065
+ * - `divider`: The line between two groups of tools.
96066
+ * - `divider-content`: The content set into a divider, which the editor sets none into.
96067
+ * - `divider-line`: The line itself.
96068
+ * - `find`: The find bar under the toolbar, where the reader searches the document: a Find of its own.
96069
+ * - `find-actions`: The find bar's `actions` slot, which the editor fills with nothing.
96070
+ * - `find-bar`: The find bar's strip: the field, the count, the toolbar, and the replace row while it shows.
96071
+ * - `find-close`: The button that closes the find bar.
96072
+ * - `find-close-button`: The find bar's close button's inner button.
96073
+ * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
96074
+ * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
96075
+ * - `find-close-text`: The box the find bar's close button's icon sits in.
96076
+ * - `find-controls`: The find bar's toolbar of options and moves.
96077
+ * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
96078
+ * - `find-count`: Which match is selected, of how many.
96079
+ * - `find-field`: The field the search is typed in.
96080
+ * - `find-live`: The find bar's live region, which says the count as it changes.
96081
+ * - `find-match-case`: The option that finds only the same case. Pressed while it applies.
96082
+ * - `find-match-case-button`: The match case button's inner button.
96083
+ * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
96084
+ * - `find-match-case-pressed`: The match case option while it applies, beside `find-match-case`.
96085
+ * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
96086
+ * - `find-match-case-text`: The box the match case button's icon sits in.
96087
+ * - `find-next`: The button that selects the next match.
96088
+ * - `find-next-button`: The next match button's inner button.
96089
+ * - `find-next-live`: The next match button's live region, which speaks while the button is pending.
96090
+ * - `find-next-spinner`: The ring the next match button turns while it is pending.
96091
+ * - `find-next-text`: The box the next match button's icon sits in.
96092
+ * - `find-previous`: The button that selects the previous match.
96093
+ * - `find-previous-button`: The previous match button's inner button.
96094
+ * - `find-previous-live`: The previous match button's live region, which speaks while the button is pending.
96095
+ * - `find-previous-spinner`: The ring the previous match button turns while it is pending.
96096
+ * - `find-previous-text`: The box the previous match button's icon sits in.
96097
+ * - `find-regex`: The option that reads the search as a regular expression. Pressed while it applies.
96098
+ * - `find-regex-button`: The regular expression button's inner button.
96099
+ * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
96100
+ * - `find-regex-pressed`: The regular expression option while it applies, beside `find-regex`.
96101
+ * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
96102
+ * - `find-regex-text`: The box the regular expression button's icon sits in.
96103
+ * - `find-replace`: The button that replaces the selected match.
96104
+ * - `find-replace-all`: The button that replaces every match.
96105
+ * - `find-replace-all-button`: The Replace all button's inner button.
96106
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
96107
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
96108
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
96109
+ * - `find-replace-button`: The Replace button's inner button.
96110
+ * - `find-replace-field`: The field the replacement is typed in.
96111
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
96112
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
96113
+ * - `find-replace-text`: The box the Replace button's words sits in.
96114
+ * - `find-replace-toggle`: The button that shows the replace field under the find field. Expanded while it shows. Not drawn while `readonly`.
96115
+ * - `find-replace-toggle-button`: The find and replace button's inner button.
96116
+ * - `find-replace-toggle-live`: The find and replace button's live region, which speaks while the button is pending.
96117
+ * - `find-replace-toggle-spinner`: The ring the find and replace button turns while it is pending.
96118
+ * - `find-replace-toggle-text`: The box the find and replace button's icon sits in.
96119
+ * - `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.
96120
+ * - `find-toggle-button`: The Find button's inner button.
96121
+ * - `find-toggle-live`: The Find button's live region, which speaks while the button is pending.
96122
+ * - `find-toggle-spinner`: The ring the Find button turns while it is pending.
96123
+ * - `find-toggle-text`: The box the Find button's icon sits in.
96124
+ * - `find-whole-word`: The option that finds only whole words. Pressed while it applies.
96125
+ * - `find-whole-word-button`: The whole word button's inner button.
96126
+ * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
96127
+ * - `find-whole-word-pressed`: The whole word option while it applies, beside `find-whole-word`.
96128
+ * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
96129
+ * - `find-whole-word-text`: The box the whole word button's icon sits in.
96130
+ * - `footer`: The `footer` slot, under the document.
96131
+ * - `header`: The strip above the document that holds the toolbar, and the address bar under it while it is open.
96132
+ * - `italic`: The Italic button. Pressed while the selection is italic.
96133
+ * - `italic-button`: The Italic button's inner button.
96134
+ * - `italic-live`: The Italic button's live region, which speaks while the button is pending.
96135
+ * - `italic-pressed`: The Italic button while the selection is italic, beside `italic`.
96136
+ * - `italic-spinner`: The ring the Italic button turns while it is pending.
96137
+ * - `italic-text`: The box the Italic button's icon sits in.
96138
+ * - `link`: The Link button, which opens the address bar. Pressed while the selection is in a link, and expanded while the bar is open.
96139
+ * - `link-apply`: The button that applies the address.
96140
+ * - `link-apply-button`: The Apply button's inner button.
96141
+ * - `link-apply-live`: The Apply button's live region, which speaks while the button is pending.
96142
+ * - `link-apply-spinner`: The ring the Apply button turns while it is pending.
96143
+ * - `link-apply-text`: The box the Apply button's icon sits in.
96144
+ * - `link-bar`: The bar under the toolbar where the reader writes a link's address.
96145
+ * - `link-button`: The Link button's inner button.
96146
+ * - `link-close`: The button that closes the address bar.
96147
+ * - `link-close-button`: The close button's inner button.
96148
+ * - `link-close-live`: The close button's live region, which speaks while the button is pending.
96149
+ * - `link-close-spinner`: The ring the close button turns while it is pending.
96150
+ * - `link-close-text`: The box the close button's icon sits in.
96151
+ * - `link-controls`: The toolbar at the end of the address bar: Apply, Remove, and Close.
96152
+ * - `link-controls-toolbar`: The box inside the address bar's toolbar that lays its buttons out.
96153
+ * - `link-field`: The field the address is written in.
96154
+ * - `link-live`: The Link button's live region, which speaks while the button is pending.
96155
+ * - `link-pressed`: The Link button while the selection is in a link, beside `link`.
96156
+ * - `link-remove`: The button that takes the link off. Disabled where the selection is in no link.
96157
+ * - `link-remove-button`: The Remove button's inner button.
96158
+ * - `link-remove-live`: The Remove button's live region, which speaks while the button is pending.
96159
+ * - `link-remove-spinner`: The ring the Remove button turns while it is pending.
96160
+ * - `link-remove-text`: The box the Remove button's icon sits in.
96161
+ * - `link-spinner`: The ring the Link button turns while it is pending.
96162
+ * - `link-text`: The box the Link button's icon sits in.
96163
+ * - `ordered-list`: The Numbered list button. Pressed while the selection is in a numbered list.
96164
+ * - `ordered-list-button`: The Numbered list button's inner button.
96165
+ * - `ordered-list-live`: The Numbered list button's live region, which speaks while the button is pending.
96166
+ * - `ordered-list-pressed`: The Numbered list button while the selection is in a numbered list, beside `ordered-list`.
96167
+ * - `ordered-list-spinner`: The ring the Numbered list button turns while it is pending.
96168
+ * - `ordered-list-text`: The box the Numbered list button's icon sits in.
96169
+ * - `quote`: The Quote button. Pressed while the selection is in a quote.
96170
+ * - `quote-button`: The Quote button's inner button.
96171
+ * - `quote-live`: The Quote button's live region, which speaks while the button is pending.
96172
+ * - `quote-pressed`: The Quote button while the selection is in a quote, beside `quote`.
96173
+ * - `quote-spinner`: The ring the Quote button turns while it is pending.
96174
+ * - `quote-text`: The box the Quote button's icon sits in.
96175
+ * - `redo`: The Redo button. Disabled while there is nothing to redo.
96176
+ * - `redo-button`: The Redo button's inner button.
96177
+ * - `redo-live`: The Redo button's live region, which speaks while the button is pending.
96178
+ * - `redo-spinner`: The ring the Redo button turns while it is pending.
96179
+ * - `redo-text`: The box the Redo button's icon sits in.
96180
+ * - `region`: The frame around the toolbar, the address bar, and the document.
96181
+ * - `strike`: The Strikethrough button. Pressed while the selection is struck through.
96182
+ * - `strike-button`: The Strikethrough button's inner button.
96183
+ * - `strike-live`: The Strikethrough button's live region, which speaks while the button is pending.
96184
+ * - `strike-pressed`: The Strikethrough button while the selection is struck through, beside `strike`.
96185
+ * - `strike-spinner`: The ring the Strikethrough button turns while it is pending.
96186
+ * - `strike-text`: The box the Strikethrough button's icon sits in.
96187
+ * - `tools`: A group of several tools, which a narrow toolbar wraps as one: Undo and Redo, the marks, or the lists and the quote.
96188
+ * - `undo`: The Undo button. Disabled while there is nothing to undo.
96189
+ * - `undo-button`: The Undo button's inner button.
96190
+ * - `undo-live`: The Undo button's live region, which speaks while the button is pending.
96191
+ * - `undo-spinner`: The ring the Undo button turns while it is pending.
96192
+ * - `undo-text`: The box the Undo button's icon sits in.
96193
+ * - `viewport`: The box the document is drawn in.
96194
+ *
96195
+ * ## CSS States
96196
+ *
96197
+ * These can be used to apply styling when a component is in a given state.
96198
+ *
96199
+ * - `connected`: A renderer draws the document.
96200
+ * - `document-focused`: Focus is in the document, where the reader types.
96201
+ * - `find-open`: The find bar is open.
96202
+ * - `link-open`: The address bar is open.
96203
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
96204
+ */
96205
+ "helix-editor": Partial<
96206
+ HelixEditorProps &
96207
+ HelixEditorSolidJsProps &
96208
+ BaseProps<HelixEditor, "solid"> &
96209
+ BaseEvents<HelixEditor>
96210
+ >;
96211
+
94799
96212
  /**
94800
96213
  * Centered with space around it. An empty view is the only thing on screen, and
94801
96214
  * pressed against the top edge it looks broken.
@@ -96037,6 +97450,209 @@ export type CustomElementsSolidJs = {
96037
97450
  BaseEvents<HelixFilterInput>
96038
97451
  >;
96039
97452
 
97453
+ /**
97454
+ * Drawn as the find bars of Terminal and Code Editor are: a dense strip on the
97455
+ * raised surface, with a line under it where it meets the content. Place it
97456
+ * above the content it searches, such as at the top of a pane, or make it
97457
+ * sticky with `position: sticky` on the element.
97458
+ *
97459
+ * Every match is painted with `::highlight(helix-find-match)` and the current
97460
+ * one with `::highlight(helix-find-current)`, both in the base layer. Text is
97461
+ * painted from the tree it lives in, so content in a shadow root of your own
97462
+ * needs the two rules in that root's styles.
97463
+ *
97464
+ * ## Attributes & Properties
97465
+ *
97466
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
97467
+ *
97468
+ * - `default-open`/`defaultOpen`: Whether the element starts open. Ignored once `open` is written.
97469
+ * - `open`: Whether the element is open.
97470
+ *
97471
+ * One property, not two, so `dialog.open` answers the question anyone
97472
+ * asking it meant. Writing always applies; `<helix-dialog open>` is the
97473
+ * same statement in markup.
97474
+ *
97475
+ * **Not reflected, and that is required rather than tidy.** Reflection
97476
+ * writes the resolved state back as an attribute, so an element that opened
97477
+ * itself would put `open` on its own host: cloned, serialized for
97478
+ * hydration, or diffed by a framework, it comes back holding whatever the
97479
+ * last reader did rather than what the author wrote. `:state(open)` carries
97480
+ * the resolved state for stylesheets, which is what the mirror is for.
97481
+ * - `close-label`/`closeLabel`: The close button's label.
97482
+ * - `controls-label`/`controlsLabel`: The name of the bar's toolbar, read by screen readers.
97483
+ * - `for`: The id of the element whose text Find searches, in the same tree as Find.
97484
+ * With a finder attached, it names only where the find key opens the bar.
97485
+ * - `invalid-label`/`invalidLabel`: What the count says when the regular expression cannot be read.
97486
+ * - `label`: The field's name and placeholder, and the name of the bar.
97487
+ * - `match-case`/`matchCase`: Whether case has to match, so "Error" does not find "error". The reader turns it on and off from the bar.
97488
+ * - `match-case-label`/`matchCaseLabel`: The match case button's label.
97489
+ * - `matches-label`/`matchesLabel`: What the count says of the matches. `{index}` is the current match,
97490
+ * counting from 1, and `{count}` how many there are.
97491
+ * - `next-label`/`nextLabel`: The next match button's label.
97492
+ * - `options`: Which options the bar draws, as a list of `match-case`, `whole-word`, and
97493
+ * `regex`, or `none`. They are always drawn in that order.
97494
+ * - `previous-label`/`previousLabel`: The previous match button's label.
97495
+ * - `query`: What the field holds: what the reader typed, or what you set.
97496
+ * - `readonly`/`readOnly`: Hides replacing, for content the reader cannot change. The attribute is `readonly`, the platform's spelling.
97497
+ * - `regex`: Whether the field reads as a regular expression, in JavaScript's syntax. The reader turns it on and off from the bar.
97498
+ * - `regex-label`/`regexLabel`: The regular expression button's label.
97499
+ * - `replace-all-label`/`replaceAllLabel`: The Replace all button's words.
97500
+ * - `replace-field-label`/`replaceFieldLabel`: The replace field's name and placeholder.
97501
+ * - `replace-label`/`replaceLabel`: The Replace button's words.
97502
+ * - `replacement`: What the replace field holds, which Replace puts in place of a match.
97503
+ * - `replace-toggle-label`/`replaceToggleLabel`: The label of the button that shows the replace row.
97504
+ * - `shortcut`: The key that opens the bar, as a chord such as `mod+f`, where `mod` is
97505
+ * Command on an Apple keyboard and Control elsewhere. Empty turns the key
97506
+ * off, as for a bar the page opens itself.
97507
+ * - `skip`: Elements inside the content whose text is not searched, as a selector,
97508
+ * such as line numbers or the buttons beside each message.
97509
+ * - `whole-word`/`wholeWord`: Whether only whole words match. The reader turns it on and off from the bar.
97510
+ * - `whole-word-label`/`wholeWordLabel`: The whole word button's label.
97511
+ * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
97512
+ *
97513
+ * **Named `whenSettled` because `settled` is taken four times over**, by
97514
+ * Image, Splitter and both color controls, none of them about transitions. A
97515
+ * base class takes the name every subclass then cannot use.
97516
+ *
97517
+ * **The state it reports cannot be watched, which is why this exists.** A
97518
+ * custom state is deliberately not in the DOM, so there is no
97519
+ * `MutationObserver` equivalent for `ElementInternals.states`. Await this
97520
+ * instead.
97521
+ *
97522
+ * Separate from `updateComplete`, which resolves in the microtask checkpoint
97523
+ * the suppression is still active in. That is the distinction `readyToMove`
97524
+ * in `@fusion.dev/helix-testing` is written around.
97525
+ *
97526
+ * It never resolves where `requestAnimationFrame` never fires, which is a
97527
+ * server, a hidden tab, and happy-dom. Callers that must not hang there race
97528
+ * it against a timeout, as the happy-dom harness's `readyToMove` does. The
97529
+ * browser harness's awaits it alone: a browser always runs the frame, and a
97530
+ * timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
97531
+ *
97532
+ * ## Events
97533
+ *
97534
+ * Events that will be emitted by the component.
97535
+ *
97536
+ * - `toggle`: Sent when the bar opens or closes, with `newState` and `oldState`.
97537
+ * - `helix-before-close`: Fired before the bar closes, and cancelable.
97538
+ * - `helix-before-open`: Fired before the bar opens, and cancelable. Canceling it keeps the bar closed.
97539
+ * - `helix-found`: Sent after each search and each move among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none.
97540
+ *
97541
+ * ## Slots
97542
+ *
97543
+ * Areas where markup can be added to the component.
97544
+ *
97545
+ * - `actions`: Controls of your own in the bar's toolbar, between its options and the buttons that move between matches.
97546
+ * - `close-icon`: Replaces the glyph inside the close button.
97547
+ * - `match-case-icon`: Replaces the glyph inside the match case button.
97548
+ * - `next-icon`: Replaces the glyph inside the next match button.
97549
+ * - `previous-icon`: Replaces the glyph inside the previous match button.
97550
+ * - `regex-icon`: Replaces the glyph inside the regular expression button.
97551
+ * - `whole-word-icon`: Replaces the glyph inside the whole word button.
97552
+ *
97553
+ * ## Methods
97554
+ *
97555
+ * Methods that can be called to access component functionality.
97556
+ *
97557
+ * - `requestOpen(next: boolean) => boolean`: Requests that the element open or close, and returns whether the change
97558
+ * was applied.
97559
+ *
97560
+ * Announces before it acts, so `preventDefault()` on the `helix-before-open` or
97561
+ * `helix-before-close` is a refusal and nothing moves. Nobody refusing means the
97562
+ * element opens or closes itself, whether or not a consumer declared
97563
+ * `open`: a declared property is a seed and a correction, and a consumer
97564
+ * who wants the decision for themselves refuses it and assigns their own.
97565
+ * - `toggleOpen() => boolean`: Requests the opposite of the current state.
97566
+ * - `attach(finder: Finder) => FindSink`: Searches with `finder` in place of the text finder, and returns how it
97567
+ * reports a search it finishes later. Attaching another lets go of this one.
97568
+ * - `show() => Promise<void>`: Opens the bar and puts focus in its field, with what it holds selected.
97569
+ * Text selected in the content, on one line, becomes the search.
97570
+ * - `hide() => void`: Closes the bar and takes the marks away. Focus in the bar returns to where it was before the bar opened.
97571
+ * - `next() => void`: Moves to the next match, after the last one to the first.
97572
+ * - `previous() => void`: Moves to the previous match, before the first one to the last.
97573
+ * - `refresh() => void`: Searches again, staying on the current match where it still matches, for content changed in a way Find cannot see.
97574
+ *
97575
+ * ## CSS Custom Properties
97576
+ *
97577
+ * CSS variables available for styling the component.
97578
+ *
97579
+ * - `--find-background-color`: The bar's fill. Defaults to the raised surface.
97580
+ * - `--find-border-color`: The line under the bar and the fields' edges.
97581
+ * - `--find-field-background-color`: The fields' fill. Defaults to the page's background.
97582
+ *
97583
+ * ## CSS Parts
97584
+ *
97585
+ * Custom selectors for styling elements within the component.
97586
+ *
97587
+ * - `actions`: The `actions` slot, in the toolbar.
97588
+ * - `bar`: The bar, a search landmark: the field, the count, the toolbar, and the replace row while it shows.
97589
+ * - `close`: The button that closes the bar.
97590
+ * - `close-button`: The close button's inner button.
97591
+ * - `close-live`: The close button's live region, which speaks while the button is pending.
97592
+ * - `close-spinner`: The ring the close button turns while it is pending.
97593
+ * - `close-text`: The box the close button's icon sits in.
97594
+ * - `controls`: The toolbar: the options, your actions, and the buttons that move between matches and close the bar.
97595
+ * - `controls-toolbar`: The box inside the toolbar that lays its buttons out.
97596
+ * - `count`: Which match is current and how many there are, such as "3 of 12 matches".
97597
+ * - `field`: The search field.
97598
+ * - `live`: The live region that says the count as it changes.
97599
+ * - `match-case`: The button that matches case. Pressed while it does.
97600
+ * - `match-case-button`: The match case button's inner button.
97601
+ * - `match-case-live`: The match case button's live region, which speaks while the button is pending.
97602
+ * - `match-case-pressed`: The match case button while case has to match, beside `match-case`.
97603
+ * - `match-case-spinner`: The ring the match case button turns while it is pending.
97604
+ * - `match-case-text`: The box the match case button's icon sits in.
97605
+ * - `next`: The button that moves to the next match.
97606
+ * - `next-button`: The next match button's inner button.
97607
+ * - `next-live`: The next match button's live region, which speaks while the button is pending.
97608
+ * - `next-spinner`: The ring the next match button turns while it is pending.
97609
+ * - `next-text`: The box the next match button's icon sits in.
97610
+ * - `previous`: The button that moves to the previous match.
97611
+ * - `previous-button`: The previous match button's inner button.
97612
+ * - `previous-live`: The previous match button's live region, which speaks while the button is pending.
97613
+ * - `previous-spinner`: The ring the previous match button turns while it is pending.
97614
+ * - `previous-text`: The box the previous match button's icon sits in.
97615
+ * - `regex`: The button that reads the field as a regular expression. Pressed while it does.
97616
+ * - `regex-button`: The regular expression button's inner button.
97617
+ * - `regex-live`: The regular expression button's live region, which speaks while the button is pending.
97618
+ * - `regex-pressed`: The regular expression button while the field reads as one, beside `regex`.
97619
+ * - `regex-spinner`: The ring the regular expression button turns while it is pending.
97620
+ * - `regex-text`: The box the regular expression button's icon sits in.
97621
+ * - `replace`: The button that replaces the current match.
97622
+ * - `replace-all`: The button that replaces every match.
97623
+ * - `replace-all-button`: The Replace all button's inner button.
97624
+ * - `replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
97625
+ * - `replace-all-spinner`: The ring the Replace all button turns while it is pending.
97626
+ * - `replace-all-text`: The box the Replace all button's words sit in.
97627
+ * - `replace-button`: The Replace button's inner button.
97628
+ * - `replace-field`: The field the replacement is typed in.
97629
+ * - `replace-live`: The Replace button's live region, which speaks while the button is pending.
97630
+ * - `replace-spinner`: The ring the Replace button turns while it is pending.
97631
+ * - `replace-text`: The box the Replace button's words sit in.
97632
+ * - `replace-toggle`: The button that shows the replace row. Expanded while it shows.
97633
+ * - `replace-toggle-button`: The replace toggle's inner button.
97634
+ * - `replace-toggle-live`: The replace toggle's live region, which speaks while the button is pending.
97635
+ * - `replace-toggle-spinner`: The ring the replace toggle turns while it is pending.
97636
+ * - `replace-toggle-text`: The box the replace toggle's icon sits in.
97637
+ * - `whole-word`: The button that matches whole words only. Pressed while it does.
97638
+ * - `whole-word-button`: The whole word button's inner button.
97639
+ * - `whole-word-live`: The whole word button's live region, which speaks while the button is pending.
97640
+ * - `whole-word-pressed`: The whole word button while only whole words match, beside `whole-word`.
97641
+ * - `whole-word-spinner`: The ring the whole word button turns while it is pending.
97642
+ * - `whole-word-text`: The box the whole word button's icon sits in.
97643
+ *
97644
+ * ## CSS States
97645
+ *
97646
+ * These can be used to apply styling when a component is in a given state.
97647
+ *
97648
+ * - `open`: While the bar is open.
97649
+ * - `replace-open`: While the replace row shows.
97650
+ * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
97651
+ */
97652
+ "helix-find": Partial<
97653
+ HelixFindProps & HelixFindSolidJsProps & BaseProps<HelixFind, "solid"> & BaseEvents<HelixFind>
97654
+ >;
97655
+
96040
97656
  /**
96041
97657
  * The host is the flex container and its only child is a slot, so
96042
97658
  * `<helix-flex>` adds no box beyond the `<div>` it replaces.
@@ -100165,7 +101781,7 @@ export type CustomElementsSolidJs = {
100165
101781
  *
100166
101782
  * Custom selectors for styling elements within the component.
100167
101783
  *
100168
- * - `content`: The lines, hidden while the group is shut.
101784
+ * - `content`: The lines, hidden until found while the group is shut.
100169
101785
  * - `duration`: How long the step took.
100170
101786
  * - `heading`: The heading.
100171
101787
  * - `mark`: The caret that turns as the group opens, an `<svg>` you size.
@@ -114183,6 +115799,7 @@ export type CustomElementsSolidJs = {
114183
115799
  * Events that will be emitted by the component.
114184
115800
  *
114185
115801
  * - `helix-copy`: The copy control or its key put the selection on the clipboard.
115802
+ * - `helix-found`: The find bar searched or moved among the matches, with `count` and the current match's `index`, counting from 0, or -1 for none.
114186
115803
  * - `helix-terminal-bell`: The program rang the bell. The frame flashes once.
114187
115804
  * - `helix-terminal-input`: The reader typed or pasted, with `data` encoded for the program. Write it to the process. Not sent while `readonly`, or once `exit-code` is set.
114188
115805
  * - `helix-terminal-link`: A link in the output was activated, with its `href`. Cancelable: cancel it to open the link yourself. Left alone, a web address opens in a new tab.
@@ -114290,23 +115907,23 @@ export type CustomElementsSolidJs = {
114290
115907
  * - `copy-spinner`: The ring the copy button turns while it is pending.
114291
115908
  * - `copy-text`: The box the copy button's icon sits in.
114292
115909
  * - `exit-actions`: The `exit-actions` slot, beside Restart in the status line.
114293
- * - `find`: The button that opens and closes the find bar. Expanded while it is open.
114294
- * - `find-actions`: The `find-actions` slot, first in the find bar's toolbar.
114295
- * - `find-bar`: The bar under the header where the reader searches the output.
114296
- * - `find-button`: The find button's inner button.
115910
+ * - `find`: The find bar under the header, where the reader searches the output: a Find of its own.
115911
+ * - `find-actions`: The `find-actions` slot, in the find bar's toolbar.
115912
+ * - `find-bar`: The find bar's strip: the field, the count, and the toolbar.
114297
115913
  * - `find-close`: The button that closes the find bar.
114298
115914
  * - `find-close-button`: The find bar's close button's inner button.
114299
115915
  * - `find-close-live`: The find bar's close button's live region, which speaks while the button is pending.
114300
115916
  * - `find-close-spinner`: The ring the find bar's close button turns while it is pending.
114301
115917
  * - `find-close-text`: The box the find bar's close button's icon sits in.
114302
- * - `find-controls`: The toolbar at the end of the find bar: your find actions, then the buttons that move between matches and close the bar.
115918
+ * - `find-controls`: The toolbar at the end of the find bar: the options, your find actions, and the buttons that move between matches and close the bar.
114303
115919
  * - `find-controls-toolbar`: The box inside the find bar's toolbar that lays its buttons out.
114304
115920
  * - `find-count`: Which match is current and how many there are, such as "3 of 12 matches".
114305
115921
  * - `find-field`: The search field in the find bar.
114306
- * - `find-live`: The find button's live region, which speaks while the button is pending.
115922
+ * - `find-live`: The find bar's live region, which says the count as it changes.
114307
115923
  * - `find-match-case`: The button that matches case in the find bar. Pressed while it does.
114308
115924
  * - `find-match-case-button`: The match case button's inner button.
114309
115925
  * - `find-match-case-live`: The match case button's live region, which speaks while the button is pending.
115926
+ * - `find-match-case-pressed`: The match case button while case has to match, beside `find-match-case`.
114310
115927
  * - `find-match-case-spinner`: The ring the match case button turns while it is pending.
114311
115928
  * - `find-match-case-text`: The box the match case button's icon sits in.
114312
115929
  * - `find-next`: The button that moves to the next match.
@@ -114322,13 +115939,34 @@ export type CustomElementsSolidJs = {
114322
115939
  * - `find-regex`: The button that reads the find field as a regular expression. Pressed while it does.
114323
115940
  * - `find-regex-button`: The regular expression button's inner button.
114324
115941
  * - `find-regex-live`: The regular expression button's live region, which speaks while the button is pending.
115942
+ * - `find-regex-pressed`: The regular expression button while the field reads as one, beside `find-regex`.
114325
115943
  * - `find-regex-spinner`: The ring the regular expression button turns while it is pending.
114326
115944
  * - `find-regex-text`: The box the regular expression button's icon sits in.
114327
- * - `find-spinner`: The ring the find button turns while it is pending.
114328
- * - `find-text`: The box the find button's icon sits in.
115945
+ * - `find-replace`: The find bar's Replace button, which a terminal does not draw, since its output cannot be changed.
115946
+ * - `find-replace-all`: The find bar's Replace all button, which a terminal does not draw.
115947
+ * - `find-replace-all-button`: The Replace all button's inner button.
115948
+ * - `find-replace-all-live`: The Replace all button's live region, which speaks while the button is pending.
115949
+ * - `find-replace-all-spinner`: The ring the Replace all button turns while it is pending.
115950
+ * - `find-replace-all-text`: The box the Replace all button's words sits in.
115951
+ * - `find-replace-button`: The Replace button's inner button.
115952
+ * - `find-replace-field`: The find bar's replace field, which a terminal does not draw.
115953
+ * - `find-replace-live`: The Replace button's live region, which speaks while the button is pending.
115954
+ * - `find-replace-spinner`: The ring the Replace button turns while it is pending.
115955
+ * - `find-replace-text`: The box the Replace button's words sits in.
115956
+ * - `find-replace-toggle`: The button that shows the find bar's replace row, which a terminal does not draw.
115957
+ * - `find-replace-toggle-button`: The replace toggle's inner button.
115958
+ * - `find-replace-toggle-live`: The replace toggle's live region, which speaks while the button is pending.
115959
+ * - `find-replace-toggle-spinner`: The ring the replace toggle turns while it is pending.
115960
+ * - `find-replace-toggle-text`: The box the replace toggle's icon sits in.
115961
+ * - `find-toggle`: The button in the header that opens and closes the find bar. Expanded while it is open.
115962
+ * - `find-toggle-button`: The find button's inner button.
115963
+ * - `find-toggle-live`: The find button's live region, which speaks while the button is pending.
115964
+ * - `find-toggle-spinner`: The ring the find button turns while it is pending.
115965
+ * - `find-toggle-text`: The box the find button's icon sits in.
114329
115966
  * - `find-whole-word`: The button that matches whole words only in the find bar. Pressed while it does.
114330
115967
  * - `find-whole-word-button`: The whole word button's inner button.
114331
115968
  * - `find-whole-word-live`: The whole word button's live region, which speaks while the button is pending.
115969
+ * - `find-whole-word-pressed`: The whole word button while only whole words match, beside `find-whole-word`.
114332
115970
  * - `find-whole-word-spinner`: The ring the whole word button turns while it is pending.
114333
115971
  * - `find-whole-word-text`: The box the whole word button's icon sits in.
114334
115972
  * - `fullscreen`: The button that makes the terminal fill the screen. Pressed while it does.
@@ -119931,6 +121569,22 @@ export type CustomCssProperties = {
119931
121569
  "--drilldown-title-font-weight"?: (string) | undefined;
119932
121570
  /** How far a page slides as it arrives, along the line of text. */
119933
121571
  "--drilldown-travel"?: (string) | undefined;
121572
+ /** The ground the document is drawn on. Defaults to the page's background. */
121573
+ "--editor-background-color"?: (string) | undefined;
121574
+ /** The frame's edge and the line under the toolbar. */
121575
+ "--editor-border-color"?: (string) | undefined;
121576
+ /** The fill of the toolbar's strip. */
121577
+ "--editor-header-background-color"?: (string) | undefined;
121578
+ /** How far below the top of the page the toolbar stays while the document scrolls, such as the height of your own fixed header. `0` unless set. */
121579
+ "--editor-header-offset"?: (string) | undefined;
121580
+ /** The longest a line of the document runs, as a length: `72ch` unless set. */
121581
+ "--editor-measure"?: (string) | undefined;
121582
+ /** The frame's least height, which it grows from with the document: `12rem` unless set. Ignored with `fill`. */
121583
+ "--editor-min-block-size"?: (string) | undefined;
121584
+ /** The space around the document, inside the frame. */
121585
+ "--editor-padding"?: (string) | undefined;
121586
+ /** The frame's corner radius. */
121587
+ "--editor-radius"?: (string) | undefined;
119934
121588
  /** Space added above the actions. */
119935
121589
  "--empty-actions-gap"?: (string) | undefined;
119936
121590
  /** Space between the icon, the heading, the message and the actions. */
@@ -120021,6 +121675,12 @@ export type CustomCssProperties = {
120021
121675
  "--filter-input-shadow"?: (string) | undefined;
120022
121676
  /** The height of the empty field. The field grows from this height. */
120023
121677
  "--filter-input-size"?: (string) | undefined;
121678
+ /** The bar's fill. Defaults to the raised surface. */
121679
+ "--find-background-color"?: (string) | undefined;
121680
+ /** The line under the bar and the fields' edges. */
121681
+ "--find-border-color"?: (string) | undefined;
121682
+ /** The fields' fill. Defaults to the page's background. */
121683
+ "--find-field-background-color"?: (string) | undefined;
120024
121684
  /** The narrowest the growing item of a `flank` layout gets before the two stack, as a share of the row. Defaults to `50%`. */
120025
121685
  "--flex-flank-min"?: (string) | undefined;
120026
121686
  /** The width of the fixed item of a `flank` layout. Defaults to its own width. */