@fusion.dev/helix 0.162.1 → 0.164.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
@@ -3866,6 +3866,11 @@ A word property: register it for a locale under the host's key. A family
3866
3866
  that names the control otherwise, such as Tag's `Remove {label}`,
3867
3867
  declares its own English with `@words` above the override. */
3868
3868
  dismissLabel?: (HelixCallout["dismissLabel"]) | undefined;
3869
+ /** Whether the callout is showing. A dismissal nobody canceled turns it
3870
+ false and the callout hides itself, and setting it true shows the callout
3871
+ again. Not reflected: open is the resting state, so an `open` attribute
3872
+ would appear on markup a server sent without it. */
3873
+ open?: (HelixCallout["open"]) | undefined;
3869
3874
  /** What kind of attention the passage needs.
3870
3875
 
3871
3876
  `tone` is the axis for what a thing means, and this is a subset of it: a
@@ -3898,7 +3903,7 @@ out keeps its English, and `tone-label` wins over both.
3898
3903
  `neutral` as "Note", for what the passage is. */
3899
3904
  toneLabels?: (HelixCallout["toneLabels"]) | undefined;
3900
3905
 
3901
- /** The dismiss button was pressed. The callout does not remove itself, so remove it in response. Cancelable. */
3906
+ /** The dismiss button was pressed. Unless a listener cancels it, the callout hides itself, and a listener may remove it instead. Cancelable: cancel it to keep the callout showing. */
3902
3907
  "onhelix-dismiss"?: ((e: HelixCalloutHelixDismissElementEvent) => void) | undefined;
3903
3908
  };
3904
3909
 
@@ -3938,6 +3943,11 @@ A word property: register it for a locale under the host's key. A family
3938
3943
  that names the control otherwise, such as Tag's `Remove {label}`,
3939
3944
  declares its own English with `@words` above the override. */
3940
3945
  "prop:dismissLabel"?: (HelixCallout["dismissLabel"]) | undefined;
3946
+ /** Whether the callout is showing. A dismissal nobody canceled turns it
3947
+ false and the callout hides itself, and setting it true shows the callout
3948
+ again. Not reflected: open is the resting state, so an `open` attribute
3949
+ would appear on markup a server sent without it. */
3950
+ "prop:open"?: (HelixCallout["open"]) | undefined;
3941
3951
  /** What kind of attention the passage needs.
3942
3952
 
3943
3953
  `tone` is the axis for what a thing means, and this is a subset of it: a
@@ -3969,7 +3979,7 @@ out keeps its English, and `tone-label` wins over both.
3969
3979
  `danger` is said as "Error", the word a reader understands, and
3970
3980
  `neutral` as "Note", for what the passage is. */
3971
3981
  "prop:toneLabels"?: (HelixCallout["toneLabels"]) | undefined;
3972
- /** The dismiss button was pressed. The callout does not remove itself, so remove it in response. Cancelable. */
3982
+ /** The dismiss button was pressed. Unless a listener cancels it, the callout hides itself, and a listener may remove it instead. Cancelable: cancel it to keep the callout showing. */
3973
3983
  "on:helix-dismiss"?: ((e: HelixCalloutHelixDismissElementEvent) => void) | undefined;
3974
3984
 
3975
3985
  /** Set the innerHTML of the element */
@@ -4748,6 +4758,13 @@ zoom as a percentage, written the way the element's locale writes one. */
4748
4758
  /** What screen readers hear after a zoom button or key, with `{zoom}` for the
4749
4759
  zoom as a percentage, written the way the element's locale writes one. */
4750
4760
  zoomedLabel?: (HelixCanvas["zoomedLabel"]) | undefined;
4761
+ /** Draws every connection's line: a function from where it leaves and
4762
+ arrives, and the sides it does, to its SVG path and where its label sits.
4763
+
4764
+ Absent, or returning nothing for a connection, draws the board's own
4765
+ route. A function that throws draws the board's own too, and the error is
4766
+ reported to the page as an uncaught one. Set it as a property. */
4767
+ edgeRoute?: (HelixCanvas["edgeRoute"]) | undefined;
4751
4768
  /** The board's current view: the document's point at the middle of the view,
4752
4769
  and the zoom.
4753
4770
 
@@ -5204,6 +5221,13 @@ zoom as a percentage, written the way the element's locale writes one. */
5204
5221
  /** What screen readers hear after a zoom button or key, with `{zoom}` for the
5205
5222
  zoom as a percentage, written the way the element's locale writes one. */
5206
5223
  "prop:zoomedLabel"?: (HelixCanvas["zoomedLabel"]) | undefined;
5224
+ /** Draws every connection's line: a function from where it leaves and
5225
+ arrives, and the sides it does, to its SVG path and where its label sits.
5226
+
5227
+ Absent, or returning nothing for a connection, draws the board's own
5228
+ route. A function that throws draws the board's own too, and the error is
5229
+ reported to the page as an uncaught one. Set it as a property. */
5230
+ "prop:edgeRoute"?: (HelixCanvas["edgeRoute"]) | undefined;
5207
5231
  /** The board's current view: the document's point at the middle of the view,
5208
5232
  and the zoom.
5209
5233
 
@@ -7684,6 +7708,14 @@ app.ts", as `code-name-label` puts it. */
7684
7708
  "collapse-label"?: (HelixCodeBlock["collapseLabel"]) | undefined;
7685
7709
  /** The expand button's words while the block shows every line. */
7686
7710
  collapseLabel?: (HelixCodeBlock["collapseLabel"]) | undefined;
7711
+ /** In a diff, how many unchanged lines to keep beside each change. Each
7712
+ longer run of unchanged lines is folded behind a button that shows it.
7713
+ Unset shows every line the diff holds. */
7714
+ "context-lines"?: (HelixCodeBlock["contextLines"] | `${number}`) | undefined;
7715
+ /** In a diff, how many unchanged lines to keep beside each change. Each
7716
+ longer run of unchanged lines is folded behind a button that shows it.
7717
+ Unset shows every line the diff holds. */
7718
+ contextLines?: (HelixCodeBlock["contextLines"]) | undefined;
7687
7719
  /** The copy button's name and tooltip text after a copy. */
7688
7720
  "copied-label"?: (HelixCodeBlock["copiedLabel"]) | undefined;
7689
7721
  /** The copy button's name and tooltip text after a copy. */
@@ -7722,6 +7754,14 @@ block lays out. Not for a diff, whose files each scroll on their own. */
7722
7754
  "expand-label"?: (HelixCodeBlock["expandLabel"]) | undefined;
7723
7755
  /** The expand button's words while the cap hides lines. */
7724
7756
  expandLabel?: (HelixCodeBlock["expandLabel"]) | undefined;
7757
+ /** The words of a button that hides a run of unchanged lines it showed, in a
7758
+ diff with `context-lines`. `{count}` is how many, and each language
7759
+ writes the forms it has. */
7760
+ "hide-unchanged-label"?: (HelixCodeBlock["hideUnchangedLabel"]) | undefined;
7761
+ /** The words of a button that hides a run of unchanged lines it showed, in a
7762
+ diff with `context-lines`. `{count}` is how many, and each language
7763
+ writes the forms it has. */
7764
+ hideUnchangedLabel?: (HelixCodeBlock["hideUnchangedLabel"]) | undefined;
7725
7765
  /** The block's name, usually a file name, drawn in the header.
7726
7766
 
7727
7767
  Absent, the block is named by `language` where there is one. In a diff,
@@ -7797,6 +7837,12 @@ A false boolean reflects as the attribute's absence, so this costs no
7797
7837
  reflected property taking no default is satisfied by the default being
7798
7838
  `false`. */
7799
7839
  noCopy?: (HelixCodeBlock["noCopy"]) | undefined;
7840
+ /** The words of a button that shows a folded run of unchanged lines, in a
7841
+ diff with `context-lines`. `{count}` is how many. */
7842
+ "show-unchanged-label"?: (HelixCodeBlock["showUnchangedLabel"]) | undefined;
7843
+ /** The words of a button that shows a folded run of unchanged lines, in a
7844
+ diff with `context-lines`. `{count}` is how many. */
7845
+ showUnchangedLabel?: (HelixCodeBlock["showUnchangedLabel"]) | undefined;
7800
7846
  /** How a diff's two versions are arranged. It has no effect without `diff`.
7801
7847
 
7802
7848
  Absent is unified, each removal above its replacement, which fits any
@@ -7871,6 +7917,14 @@ app.ts", as `code-name-label` puts it. */
7871
7917
  "attr:collapse-label"?: (HelixCodeBlock["collapseLabel"]) | undefined;
7872
7918
  /** The expand button's words while the block shows every line. */
7873
7919
  "prop:collapseLabel"?: (HelixCodeBlock["collapseLabel"]) | undefined;
7920
+ /** In a diff, how many unchanged lines to keep beside each change. Each
7921
+ longer run of unchanged lines is folded behind a button that shows it.
7922
+ Unset shows every line the diff holds. */
7923
+ "attr:context-lines"?: (HelixCodeBlock["contextLines"] | `${number}`) | undefined;
7924
+ /** In a diff, how many unchanged lines to keep beside each change. Each
7925
+ longer run of unchanged lines is folded behind a button that shows it.
7926
+ Unset shows every line the diff holds. */
7927
+ "prop:contextLines"?: (HelixCodeBlock["contextLines"]) | undefined;
7874
7928
  /** The copy button's name and tooltip text after a copy. */
7875
7929
  "attr:copied-label"?: (HelixCodeBlock["copiedLabel"]) | undefined;
7876
7930
  /** The copy button's name and tooltip text after a copy. */
@@ -7909,6 +7963,14 @@ block lays out. Not for a diff, whose files each scroll on their own. */
7909
7963
  "attr:expand-label"?: (HelixCodeBlock["expandLabel"]) | undefined;
7910
7964
  /** The expand button's words while the cap hides lines. */
7911
7965
  "prop:expandLabel"?: (HelixCodeBlock["expandLabel"]) | undefined;
7966
+ /** The words of a button that hides a run of unchanged lines it showed, in a
7967
+ diff with `context-lines`. `{count}` is how many, and each language
7968
+ writes the forms it has. */
7969
+ "attr:hide-unchanged-label"?: (HelixCodeBlock["hideUnchangedLabel"]) | undefined;
7970
+ /** The words of a button that hides a run of unchanged lines it showed, in a
7971
+ diff with `context-lines`. `{count}` is how many, and each language
7972
+ writes the forms it has. */
7973
+ "prop:hideUnchangedLabel"?: (HelixCodeBlock["hideUnchangedLabel"]) | undefined;
7912
7974
  /** The block's name, usually a file name, drawn in the header.
7913
7975
 
7914
7976
  Absent, the block is named by `language` where there is one. In a diff,
@@ -7984,6 +8046,12 @@ A false boolean reflects as the attribute's absence, so this costs no
7984
8046
  reflected property taking no default is satisfied by the default being
7985
8047
  `false`. */
7986
8048
  "prop:noCopy"?: (HelixCodeBlock["noCopy"]) | undefined;
8049
+ /** The words of a button that shows a folded run of unchanged lines, in a
8050
+ diff with `context-lines`. `{count}` is how many. */
8051
+ "attr:show-unchanged-label"?: (HelixCodeBlock["showUnchangedLabel"]) | undefined;
8052
+ /** The words of a button that shows a folded run of unchanged lines, in a
8053
+ diff with `context-lines`. `{count}` is how many. */
8054
+ "prop:showUnchangedLabel"?: (HelixCodeBlock["showUnchangedLabel"]) | undefined;
7987
8055
  /** How a diff's two versions are arranged. It has no effect without `diff`.
7988
8056
 
7989
8057
  Absent is unified, each removal above its replacement, which fits any
@@ -23314,7 +23382,8 @@ was never tickable look identical from here. Announcing only the ticked one
23314
23382
  as a checkbox tells a reader its siblings are commands, which is the one
23315
23383
  thing they are not.
23316
23384
 
23317
- `checked` implies it, so a row that is on never has to say both.
23385
+ `checked` and `exclusive` imply it, so a row that is on, or one of a set,
23386
+ never has to say both.
23318
23387
 
23319
23388
  Choosing the row checks or unchecks it, after a `helix-before-toggle` that
23320
23389
  you can cancel. */
@@ -23324,6 +23393,18 @@ you can cancel. */
23324
23393
  The row changes it when it is chosen. Not reflected: the attribute is the
23325
23394
  state you start the row in, and `:state(checked)` carries the current one. */
23326
23395
  checked?: (HelixMenuItem["checked"]) | undefined;
23396
+ /** Whether choosing the row closes the menu.
23397
+
23398
+ Unset takes the menu's `close-on-select`, which is on, and keeps the menu
23399
+ open after a Space on a choice row. Write `close-on-select="false"` for a
23400
+ row that changes something the reader is watching, such as a zoom step. */
23401
+ "close-on-select"?: (HelixMenuItem["closeOnSelect"]) | undefined;
23402
+ /** Whether choosing the row closes the menu.
23403
+
23404
+ Unset takes the menu's `close-on-select`, which is on, and keeps the menu
23405
+ open after a Space on a choice row. Write `close-on-select="false"` for a
23406
+ row that changes something the reader is watching, such as a zoom step. */
23407
+ closeOnSelect?: (HelixMenuItem["closeOnSelect"]) | undefined;
23327
23408
  /** Whether the row is disabled, so it cannot be chosen. */
23328
23409
  disabled?: (HelixMenuItem["disabled"]) | undefined;
23329
23410
  /** Whether the link downloads the file when the row is chosen.
@@ -23340,8 +23421,7 @@ that row and unchecks the others. Choosing the row that is checked leaves
23340
23421
  it checked. `menuitemradio` tells a reader which kind of set they are in,
23341
23422
  where `menuitemcheckbox` says every row is independent.
23342
23423
 
23343
- Meaningless without `checkable`, since a row that cannot be ticked is not
23344
- one of a set of anything. */
23424
+ It makes the row a choice, so it needs no `checkable` beside it. */
23345
23425
  exclusive?: (HelixMenuItem["exclusive"]) | undefined;
23346
23426
  /** The URL the row links to. Setting it renders the row as a link.
23347
23427
 
@@ -23388,7 +23468,8 @@ was never tickable look identical from here. Announcing only the ticked one
23388
23468
  as a checkbox tells a reader its siblings are commands, which is the one
23389
23469
  thing they are not.
23390
23470
 
23391
- `checked` implies it, so a row that is on never has to say both.
23471
+ `checked` and `exclusive` imply it, so a row that is on, or one of a set,
23472
+ never has to say both.
23392
23473
 
23393
23474
  Choosing the row checks or unchecks it, after a `helix-before-toggle` that
23394
23475
  you can cancel. */
@@ -23398,6 +23479,18 @@ you can cancel. */
23398
23479
  The row changes it when it is chosen. Not reflected: the attribute is the
23399
23480
  state you start the row in, and `:state(checked)` carries the current one. */
23400
23481
  "prop:checked"?: (HelixMenuItem["checked"]) | undefined;
23482
+ /** Whether choosing the row closes the menu.
23483
+
23484
+ Unset takes the menu's `close-on-select`, which is on, and keeps the menu
23485
+ open after a Space on a choice row. Write `close-on-select="false"` for a
23486
+ row that changes something the reader is watching, such as a zoom step. */
23487
+ "bool:close-on-select"?: (HelixMenuItem["closeOnSelect"]) | undefined;
23488
+ /** Whether choosing the row closes the menu.
23489
+
23490
+ Unset takes the menu's `close-on-select`, which is on, and keeps the menu
23491
+ open after a Space on a choice row. Write `close-on-select="false"` for a
23492
+ row that changes something the reader is watching, such as a zoom step. */
23493
+ "prop:closeOnSelect"?: (HelixMenuItem["closeOnSelect"]) | undefined;
23401
23494
  /** Whether the row is disabled, so it cannot be chosen. */
23402
23495
  "prop:disabled"?: (HelixMenuItem["disabled"]) | undefined;
23403
23496
  /** Whether the link downloads the file when the row is chosen.
@@ -23414,8 +23507,7 @@ that row and unchecks the others. Choosing the row that is checked leaves
23414
23507
  it checked. `menuitemradio` tells a reader which kind of set they are in,
23415
23508
  where `menuitemcheckbox` says every row is independent.
23416
23509
 
23417
- Meaningless without `checkable`, since a row that cannot be ticked is not
23418
- one of a set of anything. */
23510
+ It makes the row a choice, so it needs no `checkable` beside it. */
23419
23511
  "prop:exclusive"?: (HelixMenuItem["exclusive"]) | undefined;
23420
23512
  /** The URL the row links to. Setting it renders the row as a link.
23421
23513
 
@@ -23507,6 +23599,18 @@ the resolved state for stylesheets, which is what the mirror is for. */
23507
23599
  "back-label"?: (HelixMenu["backLabel"]) | undefined;
23508
23600
  /** The text of the row that returns from a submenu. */
23509
23601
  backLabel?: (HelixMenu["backLabel"]) | undefined;
23602
+ /** Whether choosing a row closes the menu.
23603
+
23604
+ On by default, and a Space on a choice row leaves the menu open either way.
23605
+ Write `close-on-select="false"` to keep the menu open after every choice, as
23606
+ Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this. */
23607
+ "close-on-select"?: (HelixMenu["closeOnSelect"]) | undefined;
23608
+ /** Whether choosing a row closes the menu.
23609
+
23610
+ On by default, and a Space on a choice row leaves the menu open either way.
23611
+ Write `close-on-select="false"` to keep the menu open after every choice, as
23612
+ Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this. */
23613
+ closeOnSelect?: (HelixMenu["closeOnSelect"]) | undefined;
23510
23614
  /** Whether the menu is the trigger's context menu: it opens where the reader
23511
23615
  asks for one, with a right-click, a long press, Shift+F10 or the menu key. */
23512
23616
  context?: (HelixMenu["context"]) | undefined;
@@ -23586,6 +23690,18 @@ the resolved state for stylesheets, which is what the mirror is for. */
23586
23690
  "attr:back-label"?: (HelixMenu["backLabel"]) | undefined;
23587
23691
  /** The text of the row that returns from a submenu. */
23588
23692
  "prop:backLabel"?: (HelixMenu["backLabel"]) | undefined;
23693
+ /** Whether choosing a row closes the menu.
23694
+
23695
+ On by default, and a Space on a choice row leaves the menu open either way.
23696
+ Write `close-on-select="false"` to keep the menu open after every choice, as
23697
+ Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this. */
23698
+ "bool:close-on-select"?: (HelixMenu["closeOnSelect"]) | undefined;
23699
+ /** Whether choosing a row closes the menu.
23700
+
23701
+ On by default, and a Space on a choice row leaves the menu open either way.
23702
+ Write `close-on-select="false"` to keep the menu open after every choice, as
23703
+ Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this. */
23704
+ "prop:closeOnSelect"?: (HelixMenu["closeOnSelect"]) | undefined;
23589
23705
  /** Whether the menu is the trigger's context menu: it opens where the reader
23590
23706
  asks for one, with a right-click, a long press, Shift+F10 or the menu key. */
23591
23707
  "prop:context"?: (HelixMenu["context"]) | undefined;
@@ -25201,6 +25317,12 @@ reader sees the shape of the value before its contents. `0` starts with the
25201
25317
  root closed; a large number opens everything, which on a big value is the
25202
25318
  wall of text this exists to avoid. */
25203
25319
  defaultDepth?: (HelixObjectInspector["defaultDepth"]) | undefined;
25320
+ /** What the tree says while there is no value to show, such as before a
25321
+ fetch answers. The `empty` slot replaces it. */
25322
+ "empty-label"?: (HelixObjectInspector["emptyLabel"]) | undefined;
25323
+ /** What the tree says while there is no value to show, such as before a
25324
+ fetch answers. The `empty` slot replaces it. */
25325
+ emptyLabel?: (HelixObjectInspector["emptyLabel"]) | undefined;
25204
25326
  /** Text the tree is narrowed to: the entries whose key or value holds it,
25205
25327
  ignoring case, and the branches that lead to them. Empty shows everything. */
25206
25328
  filter?: (HelixObjectInspector["filter"]) | undefined;
@@ -25270,6 +25392,12 @@ who set the property. This button is positioned out of the flow and takes no
25270
25392
  room, so nothing selects on it, and reflection exists so that a selector can
25271
25393
  reach a value. */
25272
25394
  noCopy?: (HelixObjectInspector["noCopy"]) | undefined;
25395
+ /** What the tree says while a filter matched no entry. The `empty` slot
25396
+ replaces it. */
25397
+ "no-matches-label"?: (HelixObjectInspector["noMatchesLabel"]) | undefined;
25398
+ /** What the tree says while a filter matched no entry. The `empty` slot
25399
+ replaces it. */
25400
+ noMatchesLabel?: (HelixObjectInspector["noMatchesLabel"]) | undefined;
25273
25401
  /** What a screen reader hears when a filter matches one entry, where
25274
25402
  `results-label` should not say it. `{count}` is the count. */
25275
25403
  "result-label"?: (HelixObjectInspector["resultLabel"]) | undefined;
@@ -25383,6 +25511,12 @@ reader sees the shape of the value before its contents. `0` starts with the
25383
25511
  root closed; a large number opens everything, which on a big value is the
25384
25512
  wall of text this exists to avoid. */
25385
25513
  "prop:defaultDepth"?: (HelixObjectInspector["defaultDepth"]) | undefined;
25514
+ /** What the tree says while there is no value to show, such as before a
25515
+ fetch answers. The `empty` slot replaces it. */
25516
+ "attr:empty-label"?: (HelixObjectInspector["emptyLabel"]) | undefined;
25517
+ /** What the tree says while there is no value to show, such as before a
25518
+ fetch answers. The `empty` slot replaces it. */
25519
+ "prop:emptyLabel"?: (HelixObjectInspector["emptyLabel"]) | undefined;
25386
25520
  /** Text the tree is narrowed to: the entries whose key or value holds it,
25387
25521
  ignoring case, and the branches that lead to them. Empty shows everything. */
25388
25522
  "prop:filter"?: (HelixObjectInspector["filter"]) | undefined;
@@ -25452,6 +25586,12 @@ who set the property. This button is positioned out of the flow and takes no
25452
25586
  room, so nothing selects on it, and reflection exists so that a selector can
25453
25587
  reach a value. */
25454
25588
  "prop:noCopy"?: (HelixObjectInspector["noCopy"]) | undefined;
25589
+ /** What the tree says while a filter matched no entry. The `empty` slot
25590
+ replaces it. */
25591
+ "attr:no-matches-label"?: (HelixObjectInspector["noMatchesLabel"]) | undefined;
25592
+ /** What the tree says while a filter matched no entry. The `empty` slot
25593
+ replaces it. */
25594
+ "prop:noMatchesLabel"?: (HelixObjectInspector["noMatchesLabel"]) | undefined;
25455
25595
  /** What a screen reader hears when a filter matches one entry, where
25456
25596
  `results-label` should not say it. `{count}` is the count. */
25457
25597
  "attr:result-label"?: (HelixObjectInspector["resultLabel"]) | undefined;
@@ -28779,6 +28919,9 @@ keyed on this attribute, and of the 56 tokens that differ by scheme the
28779
28919
  theme engine emits 19. The other 37 would stay light in a dark preview,
28780
28920
  including every one of the 24 series colors a chart reads. */
28781
28921
  colorMode?: (HelixSandboxPreview["colorMode"]) | undefined;
28922
+ /** Whether the preview draws a reload button and a button that opens the
28923
+ example in a new tab, in its corner. */
28924
+ controls?: (HelixSandboxPreview["controls"]) | undefined;
28782
28925
  /** Writing direction inside the frame.
28783
28926
 
28784
28927
  Not reflected. It is payload for the render message and nothing selects on
@@ -28800,6 +28943,18 @@ Not reflected, for `direction`'s reason: the placement is applied by the
28800
28943
  document inside the frame, against its own root, so no rule on this side
28801
28944
  could read it. */
28802
28945
  layout?: (HelixSandboxPreview["layout"]) | undefined;
28946
+ /** The name of the button that opens the example in a new tab, under
28947
+ `controls`. */
28948
+ "open-label"?: (HelixSandboxPreview["openLabel"]) | undefined;
28949
+ /** The name of the button that opens the example in a new tab, under
28950
+ `controls`. */
28951
+ openLabel?: (HelixSandboxPreview["openLabel"]) | undefined;
28952
+ /** The name of the button that reloads the frame's document, under
28953
+ `controls`. */
28954
+ "reload-label"?: (HelixSandboxPreview["reloadLabel"]) | undefined;
28955
+ /** The name of the button that reloads the frame's document, under
28956
+ `controls`. */
28957
+ reloadLabel?: (HelixSandboxPreview["reloadLabel"]) | undefined;
28803
28958
  /** A script to run as a module after the markup, on every render of new
28804
28959
  source. A sandbox writes its `js` pane here. */
28805
28960
  script?: (HelixSandboxPreview["script"]) | undefined;
@@ -28846,6 +29001,9 @@ keyed on this attribute, and of the 56 tokens that differ by scheme the
28846
29001
  theme engine emits 19. The other 37 would stay light in a dark preview,
28847
29002
  including every one of the 24 series colors a chart reads. */
28848
29003
  "prop:colorMode"?: (HelixSandboxPreview["colorMode"]) | undefined;
29004
+ /** Whether the preview draws a reload button and a button that opens the
29005
+ example in a new tab, in its corner. */
29006
+ "prop:controls"?: (HelixSandboxPreview["controls"]) | undefined;
28849
29007
  /** Writing direction inside the frame.
28850
29008
 
28851
29009
  Not reflected. It is payload for the render message and nothing selects on
@@ -28867,6 +29025,18 @@ Not reflected, for `direction`'s reason: the placement is applied by the
28867
29025
  document inside the frame, against its own root, so no rule on this side
28868
29026
  could read it. */
28869
29027
  "prop:layout"?: (HelixSandboxPreview["layout"]) | undefined;
29028
+ /** The name of the button that opens the example in a new tab, under
29029
+ `controls`. */
29030
+ "attr:open-label"?: (HelixSandboxPreview["openLabel"]) | undefined;
29031
+ /** The name of the button that opens the example in a new tab, under
29032
+ `controls`. */
29033
+ "prop:openLabel"?: (HelixSandboxPreview["openLabel"]) | undefined;
29034
+ /** The name of the button that reloads the frame's document, under
29035
+ `controls`. */
29036
+ "attr:reload-label"?: (HelixSandboxPreview["reloadLabel"]) | undefined;
29037
+ /** The name of the button that reloads the frame's document, under
29038
+ `controls`. */
29039
+ "prop:reloadLabel"?: (HelixSandboxPreview["reloadLabel"]) | undefined;
28870
29040
  /** A script to run as a module after the markup, on every render of new
28871
29041
  source. A sandbox writes its `js` pane here. */
28872
29042
  "prop:script"?: (HelixSandboxPreview["script"]) | undefined;
@@ -28890,6 +29060,9 @@ Empty loads the built-in document, which defines no element. */
28890
29060
 
28891
29061
  /** `HelixSandbox` component event */
28892
29062
  export type HelixSandboxElementEvent<E = Event> = TypedEvent<HelixSandbox, E>;
29063
+ /** `helix-before-change` event type */
29064
+ export type HelixSandboxHelixBeforeChangeElementEvent =
29065
+ HelixSandboxElementEvent<HelixBeforeChangeEvent>;
28893
29066
  /** `helix-before-edit` event type */
28894
29067
  export type HelixSandboxHelixBeforeEditElementEvent =
28895
29068
  HelixSandboxElementEvent<HelixBeforeEditEvent>;
@@ -28957,6 +29130,14 @@ sandbox back to the size it already was.
28957
29130
  Declared rather than captured, so it is a number a consumer states and can
28958
29131
  change, and it needs no first frame to be read on. */
28959
29132
  defaultSplit?: (HelixSandbox["defaultSplit"]) | undefined;
29133
+ /** The `name` of the source pane shown, where the sandbox holds several.
29134
+
29135
+ Unset, or a name no pane has, shows the first. */
29136
+ file?: (HelixSandbox["file"]) | undefined;
29137
+ /** The name of the file tabs, read by screen readers. */
29138
+ "files-label"?: (HelixSandbox["filesLabel"]) | undefined;
29139
+ /** The name of the file tabs, read by screen readers. */
29140
+ filesLabel?: (HelixSandbox["filesLabel"]) | undefined;
28960
29141
  /** Which pane comes first, before the divider.
28961
29142
 
28962
29143
  A sandbox is read in one of two directions and the two are not a
@@ -29028,6 +29209,12 @@ divider's value is, so each is a whole sentence: "Resize source pane" or
29028
29209
  is `preview`. */
29029
29210
  split?: (HelixSandbox["split"]) | undefined;
29030
29211
 
29212
+ /** A file tab showed its pane, whose `name` `file` now holds. */
29213
+ onchange?: ((e: HelixSandboxElementEvent) => void) | undefined;
29214
+ /** Fired before a file tab shows its pane, with the pane's `name`. Cancelable: cancel it to keep the pane shown. */
29215
+ "onhelix-before-change"?: ((
29216
+ e: HelixSandboxHelixBeforeChangeElementEvent,
29217
+ ) => void) | undefined;
29031
29218
  /** Fired before the source is edited. The source pane dispatches it, and you can listen for it on the sandbox. Cancelable: cancel it to keep the source unchanged. */
29032
29219
  "onhelix-before-edit"?: ((e: HelixSandboxHelixBeforeEditElementEvent) => void) | undefined;
29033
29220
  /** Fired before the panel's divider is released, with the panel's height in pixels. A panel dragged closed reports `panel-collapsed-size`, its smallest height. Cancelable: cancel it to keep the current height. */
@@ -29093,6 +29280,14 @@ sandbox back to the size it already was.
29093
29280
  Declared rather than captured, so it is a number a consumer states and can
29094
29281
  change, and it needs no first frame to be read on. */
29095
29282
  "prop:defaultSplit"?: (HelixSandbox["defaultSplit"]) | undefined;
29283
+ /** The `name` of the source pane shown, where the sandbox holds several.
29284
+
29285
+ Unset, or a name no pane has, shows the first. */
29286
+ "prop:file"?: (HelixSandbox["file"]) | undefined;
29287
+ /** The name of the file tabs, read by screen readers. */
29288
+ "attr:files-label"?: (HelixSandbox["filesLabel"]) | undefined;
29289
+ /** The name of the file tabs, read by screen readers. */
29290
+ "prop:filesLabel"?: (HelixSandbox["filesLabel"]) | undefined;
29096
29291
  /** Which pane comes first, before the divider.
29097
29292
 
29098
29293
  A sandbox is read in one of two directions and the two are not a
@@ -29163,6 +29358,12 @@ divider's value is, so each is a whole sentence: "Resize source pane" or
29163
29358
  /** Percentage of the sandbox given to the lead pane: the source, unless `lead`
29164
29359
  is `preview`. */
29165
29360
  "prop:split"?: (HelixSandbox["split"]) | undefined;
29361
+ /** A file tab showed its pane, whose `name` `file` now holds. */
29362
+ "on:change"?: ((e: HelixSandboxElementEvent) => void) | undefined;
29363
+ /** Fired before a file tab shows its pane, with the pane's `name`. Cancelable: cancel it to keep the pane shown. */
29364
+ "on:helix-before-change"?: ((
29365
+ e: HelixSandboxHelixBeforeChangeElementEvent,
29366
+ ) => void) | undefined;
29166
29367
  /** Fired before the source is edited. The source pane dispatches it, and you can listen for it on the sandbox. Cancelable: cancel it to keep the source unchanged. */
29167
29368
  "on:helix-before-edit"?: ((e: HelixSandboxHelixBeforeEditElementEvent) => void) | undefined;
29168
29369
  /** Fired before the panel's divider is released, with the panel's height in pixels. A panel dragged closed reports `panel-collapsed-size`, its smallest height. Cancelable: cancel it to keep the current height. */
@@ -29218,6 +29419,9 @@ export type HelixSandboxSourceProps = {
29218
29419
  "keys-description"?: (HelixSandboxSource["keysDescription"]) | undefined;
29219
29420
  /** The field's description, read by screen readers while Tab indents. */
29220
29421
  keysDescription?: (HelixSandboxSource["keysDescription"]) | undefined;
29422
+ /** The pane's file name, such as `index.html`, on its tab where a sandbox
29423
+ holds several panes. Empty puts the pane's `name` on the tab. */
29424
+ label?: (HelixSandboxSource["label"]) | undefined;
29221
29425
  /** Which source this pane holds. Every `helix-before-edit` event includes it.
29222
29426
 
29223
29427
  `html` and `css` are what the sandbox root routes on; any other name is
@@ -29263,6 +29467,9 @@ export type HelixSandboxSourceSolidJsProps = {
29263
29467
  "attr:keys-description"?: (HelixSandboxSource["keysDescription"]) | undefined;
29264
29468
  /** The field's description, read by screen readers while Tab indents. */
29265
29469
  "prop:keysDescription"?: (HelixSandboxSource["keysDescription"]) | undefined;
29470
+ /** The pane's file name, such as `index.html`, on its tab where a sandbox
29471
+ holds several panes. Empty puts the pane's `name` on the tab. */
29472
+ "prop:label"?: (HelixSandboxSource["label"]) | undefined;
29266
29473
  /** Which source this pane holds. Every `helix-before-edit` event includes it.
29267
29474
 
29268
29475
  `html` and `css` are what the sandbox root routes on; any other name is
@@ -39207,9 +39414,15 @@ export type HelixVideoPlaylistHelixActivateElementEvent =
39207
39414
  /** `helix-before-activate` event type */
39208
39415
  export type HelixVideoPlaylistHelixBeforeActivateElementEvent =
39209
39416
  HelixVideoPlaylistElementEvent<HelixBeforeActivateEvent>;
39417
+ /** `helix-before-reorder` event type */
39418
+ export type HelixVideoPlaylistHelixBeforeReorderElementEvent =
39419
+ HelixVideoPlaylistElementEvent<HelixBeforeReorderEvent>;
39210
39420
  /** `helix-end` event type */
39211
39421
  export type HelixVideoPlaylistHelixEndElementEvent =
39212
39422
  HelixVideoPlaylistElementEvent<HelixEndEvent>;
39423
+ /** `helix-reorder` event type */
39424
+ export type HelixVideoPlaylistHelixReorderElementEvent =
39425
+ HelixVideoPlaylistElementEvent<HelixReorderEvent>;
39213
39426
 
39214
39427
  export type HelixVideoPlaylistProps = {
39215
39428
  /** The `value` of the current item.
@@ -39229,12 +39442,32 @@ Ignored once `active` is written. */
39229
39442
 
39230
39443
  Ignored once `active` is written. */
39231
39444
  defaultActive?: (HelixVideoPlaylist["defaultActive"]) | undefined;
39445
+ /** What screen readers hear when a move is put back, in a `reorderable`
39446
+ playlist. `{name}` is the entry's words. */
39447
+ "canceled-label"?: (HelixVideoPlaylist["canceledLabel"]) | undefined;
39448
+ /** What screen readers hear when a move is put back, in a `reorderable`
39449
+ playlist. `{name}` is the entry's words. */
39450
+ canceledLabel?: (HelixVideoPlaylist["canceledLabel"]) | undefined;
39451
+ /** What screen readers hear when a moved entry is let go, in a `reorderable`
39452
+ playlist. `{name}` is the entry's words. */
39453
+ "dropped-label"?: (HelixVideoPlaylist["droppedLabel"]) | undefined;
39454
+ /** What screen readers hear when a moved entry is let go, in a `reorderable`
39455
+ playlist. `{name}` is the entry's words. */
39456
+ droppedLabel?: (HelixVideoPlaylist["droppedLabel"]) | undefined;
39232
39457
  /** What the playlist says while it has no entries. The `empty` slot replaces it. */
39233
39458
  "empty-label"?: (HelixVideoPlaylist["emptyLabel"]) | undefined;
39234
39459
  /** What the playlist says while it has no entries. The `empty` slot replaces it. */
39235
39460
  emptyLabel?: (HelixVideoPlaylist["emptyLabel"]) | undefined;
39236
39461
  /** The list's name, read by screen readers. */
39237
39462
  label?: (HelixVideoPlaylist["label"]) | undefined;
39463
+ /** What screen readers hear each time a key moves an entry, in a
39464
+ `reorderable` playlist. `{name}` is the entry's words, `{position}` its
39465
+ new place, counting from 1, and `{count}` the number of entries. */
39466
+ "moved-label"?: (HelixVideoPlaylist["movedLabel"]) | undefined;
39467
+ /** What screen readers hear each time a key moves an entry, in a
39468
+ `reorderable` playlist. `{name}` is the entry's words, `{position}` its
39469
+ new place, counting from 1, and `{count}` the number of entries. */
39470
+ movedLabel?: (HelixVideoPlaylist["movedLabel"]) | undefined;
39238
39471
  /** Stays on an entry when its clip ends, where the playlist would otherwise
39239
39472
  play the next one. The player's controls, a press, and `next()` still
39240
39473
  move. `repeat="one"` still plays the entry again. */
@@ -39243,6 +39476,12 @@ move. `repeat="one"` still plays the entry again. */
39243
39476
  play the next one. The player's controls, a press, and `next()` still
39244
39477
  move. `repeat="one"` still plays the entry again. */
39245
39478
  noAdvance?: (HelixVideoPlaylist["noAdvance"]) | undefined;
39479
+ /** What screen readers hear when a pointer picks up an entry, in a
39480
+ `reorderable` playlist. `{name}` is the entry's words. */
39481
+ "picked-up-label"?: (HelixVideoPlaylist["pickedUpLabel"]) | undefined;
39482
+ /** What screen readers hear when a pointer picks up an entry, in a
39483
+ `reorderable` playlist. `{name}` is the entry's words. */
39484
+ pickedUpLabel?: (HelixVideoPlaylist["pickedUpLabel"]) | undefined;
39246
39485
  /** What the live region says when the playlist moves to another entry.
39247
39486
  `{title}` is the entry's name.
39248
39487
 
@@ -39257,6 +39496,10 @@ playlist starts the next one, and the only other trace of that is the
39257
39496
  playlist starts the next one, and the only other trace of that is the
39258
39497
  `aria-current` on a button the reader is not on. */
39259
39498
  playingLabel?: (HelixVideoPlaylist["playingLabel"]) | undefined;
39499
+ /** Lets a reader move the entries, with Alt and the arrow keys or by
39500
+ dragging one. The playlist moves no entry itself: you move your entries
39501
+ on `helix-reorder`. */
39502
+ reorderable?: (HelixVideoPlaylist["reorderable"]) | undefined;
39260
39503
  /** What happens when an entry ends with no next one to go to. `one` plays the
39261
39504
  same entry again, and `all` goes from the last entry back to the first.
39262
39505
  Absent, the playlist stops on the last entry and sends `helix-end`.
@@ -39276,8 +39519,14 @@ arrives or leaves, so previous goes back through what has played. */
39276
39519
  "onhelix-before-activate"?: ((
39277
39520
  e: HelixVideoPlaylistHelixBeforeActivateElementEvent,
39278
39521
  ) => void) | undefined;
39522
+ /** An entry was moved to a new place, in a `reorderable` playlist, with every entry's value in the new order in `detail.keys`. Cancelable: cancel it to keep the entry where it is. */
39523
+ "onhelix-before-reorder"?: ((
39524
+ e: HelixVideoPlaylistHelixBeforeReorderElementEvent,
39525
+ ) => void) | undefined;
39279
39526
  /** The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set. */
39280
39527
  "onhelix-end"?: ((e: HelixVideoPlaylistHelixEndElementEvent) => void) | undefined;
39528
+ /** Fired after `helix-before-reorder` when nobody canceled it. Move your entries to the order in `keys`. Cancelable: cancel it to say the move did not happen. */
39529
+ "onhelix-reorder"?: ((e: HelixVideoPlaylistHelixReorderElementEvent) => void) | undefined;
39281
39530
  };
39282
39531
 
39283
39532
  export type HelixVideoPlaylistSolidJsProps = {
@@ -39298,12 +39547,32 @@ Ignored once `active` is written. */
39298
39547
 
39299
39548
  Ignored once `active` is written. */
39300
39549
  "prop:defaultActive"?: (HelixVideoPlaylist["defaultActive"]) | undefined;
39550
+ /** What screen readers hear when a move is put back, in a `reorderable`
39551
+ playlist. `{name}` is the entry's words. */
39552
+ "attr:canceled-label"?: (HelixVideoPlaylist["canceledLabel"]) | undefined;
39553
+ /** What screen readers hear when a move is put back, in a `reorderable`
39554
+ playlist. `{name}` is the entry's words. */
39555
+ "prop:canceledLabel"?: (HelixVideoPlaylist["canceledLabel"]) | undefined;
39556
+ /** What screen readers hear when a moved entry is let go, in a `reorderable`
39557
+ playlist. `{name}` is the entry's words. */
39558
+ "attr:dropped-label"?: (HelixVideoPlaylist["droppedLabel"]) | undefined;
39559
+ /** What screen readers hear when a moved entry is let go, in a `reorderable`
39560
+ playlist. `{name}` is the entry's words. */
39561
+ "prop:droppedLabel"?: (HelixVideoPlaylist["droppedLabel"]) | undefined;
39301
39562
  /** What the playlist says while it has no entries. The `empty` slot replaces it. */
39302
39563
  "attr:empty-label"?: (HelixVideoPlaylist["emptyLabel"]) | undefined;
39303
39564
  /** What the playlist says while it has no entries. The `empty` slot replaces it. */
39304
39565
  "prop:emptyLabel"?: (HelixVideoPlaylist["emptyLabel"]) | undefined;
39305
39566
  /** The list's name, read by screen readers. */
39306
39567
  "prop:label"?: (HelixVideoPlaylist["label"]) | undefined;
39568
+ /** What screen readers hear each time a key moves an entry, in a
39569
+ `reorderable` playlist. `{name}` is the entry's words, `{position}` its
39570
+ new place, counting from 1, and `{count}` the number of entries. */
39571
+ "attr:moved-label"?: (HelixVideoPlaylist["movedLabel"]) | undefined;
39572
+ /** What screen readers hear each time a key moves an entry, in a
39573
+ `reorderable` playlist. `{name}` is the entry's words, `{position}` its
39574
+ new place, counting from 1, and `{count}` the number of entries. */
39575
+ "prop:movedLabel"?: (HelixVideoPlaylist["movedLabel"]) | undefined;
39307
39576
  /** Stays on an entry when its clip ends, where the playlist would otherwise
39308
39577
  play the next one. The player's controls, a press, and `next()` still
39309
39578
  move. `repeat="one"` still plays the entry again. */
@@ -39312,6 +39581,12 @@ move. `repeat="one"` still plays the entry again. */
39312
39581
  play the next one. The player's controls, a press, and `next()` still
39313
39582
  move. `repeat="one"` still plays the entry again. */
39314
39583
  "prop:noAdvance"?: (HelixVideoPlaylist["noAdvance"]) | undefined;
39584
+ /** What screen readers hear when a pointer picks up an entry, in a
39585
+ `reorderable` playlist. `{name}` is the entry's words. */
39586
+ "attr:picked-up-label"?: (HelixVideoPlaylist["pickedUpLabel"]) | undefined;
39587
+ /** What screen readers hear when a pointer picks up an entry, in a
39588
+ `reorderable` playlist. `{name}` is the entry's words. */
39589
+ "prop:pickedUpLabel"?: (HelixVideoPlaylist["pickedUpLabel"]) | undefined;
39315
39590
  /** What the live region says when the playlist moves to another entry.
39316
39591
  `{title}` is the entry's name.
39317
39592
 
@@ -39326,6 +39601,10 @@ playlist starts the next one, and the only other trace of that is the
39326
39601
  playlist starts the next one, and the only other trace of that is the
39327
39602
  `aria-current` on a button the reader is not on. */
39328
39603
  "prop:playingLabel"?: (HelixVideoPlaylist["playingLabel"]) | undefined;
39604
+ /** Lets a reader move the entries, with Alt and the arrow keys or by
39605
+ dragging one. The playlist moves no entry itself: you move your entries
39606
+ on `helix-reorder`. */
39607
+ "prop:reorderable"?: (HelixVideoPlaylist["reorderable"]) | undefined;
39329
39608
  /** What happens when an entry ends with no next one to go to. `one` plays the
39330
39609
  same entry again, and `all` goes from the last entry back to the first.
39331
39610
  Absent, the playlist stops on the last entry and sends `helix-end`.
@@ -39346,8 +39625,14 @@ arrives or leaves, so previous goes back through what has played. */
39346
39625
  "on:helix-before-activate"?: ((
39347
39626
  e: HelixVideoPlaylistHelixBeforeActivateElementEvent,
39348
39627
  ) => void) | undefined;
39628
+ /** An entry was moved to a new place, in a `reorderable` playlist, with every entry's value in the new order in `detail.keys`. Cancelable: cancel it to keep the entry where it is. */
39629
+ "on:helix-before-reorder"?: ((
39630
+ e: HelixVideoPlaylistHelixBeforeReorderElementEvent,
39631
+ ) => void) | undefined;
39349
39632
  /** The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set. */
39350
39633
  "on:helix-end"?: ((e: HelixVideoPlaylistHelixEndElementEvent) => void) | undefined;
39634
+ /** Fired after `helix-before-reorder` when nobody canceled it. Move your entries to the order in `keys`. Cancelable: cancel it to say the move did not happen. */
39635
+ "on:helix-reorder"?: ((e: HelixVideoPlaylistHelixReorderElementEvent) => void) | undefined;
39351
39636
 
39352
39637
  /** Set the innerHTML of the element */
39353
39638
  innerHTML?: (string) | undefined;
@@ -43337,6 +43622,10 @@ export type CustomElements = {
43337
43622
  * A word property: register it for a locale under the host's key. A family
43338
43623
  * that names the control otherwise, such as Tag's `Remove {label}`,
43339
43624
  * declares its own English with `@words` above the override.
43625
+ * - `open`: Whether the callout is showing. A dismissal nobody canceled turns it
43626
+ * false and the callout hides itself, and setting it true shows the callout
43627
+ * again. Not reflected: open is the resting state, so an `open` attribute
43628
+ * would appear on markup a server sent without it.
43340
43629
  * - `tone`: What kind of attention the passage needs.
43341
43630
  *
43342
43631
  * `tone` is the axis for what a thing means, and this is a subset of it: a
@@ -43378,7 +43667,7 @@ export type CustomElements = {
43378
43667
  *
43379
43668
  * Events that will be emitted by the component.
43380
43669
  *
43381
- * - `helix-dismiss`: The dismiss button was pressed. The callout does not remove itself, so remove it in response. Cancelable.
43670
+ * - `helix-dismiss`: The dismiss button was pressed. Unless a listener cancels it, the callout hides itself, and a listener may remove it instead. Cancelable: cancel it to keep the callout showing.
43382
43671
  *
43383
43672
  * ## Slots
43384
43673
  *
@@ -43421,6 +43710,11 @@ export type CustomElements = {
43421
43710
  *
43422
43711
  * These can be used to apply styling when a component is in a given state.
43423
43712
  *
43713
+ * - `closed`: While `open` is false: the callout was dismissed, and is leaving or hidden.
43714
+ * - `entering`: While a callout shown again by `open` runs its entrance animations.
43715
+ * - `exiting`: While a dismissed callout runs its exit animations, before it is hidden.
43716
+ * - `has-heading`: Something is slotted into `heading`.
43717
+ * - `has-icon`: An icon of your own is slotted into `icon`, in place of the tone's.
43424
43718
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
43425
43719
  */
43426
43720
  "helix-callout": Partial<
@@ -43897,6 +44191,12 @@ export type CustomElements = {
43897
44191
  * `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere.
43898
44192
  * - `zoomed-label`/`zoomedLabel`: What screen readers hear after a zoom button or key, with `{zoom}` for the
43899
44193
  * zoom as a percentage, written the way the element's locale writes one.
44194
+ * - `edgeRoute`: Draws every connection's line: a function from where it leaves and
44195
+ * arrives, and the sides it does, to its SVG path and where its label sits.
44196
+ *
44197
+ * Absent, or returning nothing for a connection, draws the board's own
44198
+ * route. A function that throws draws the board's own too, and the error is
44199
+ * reported to the page as an uncaught one. Set it as a property. (property only)
43900
44200
  * - `view`: The board's current view: the document's point at the middle of the view,
43901
44201
  * and the zoom.
43902
44202
  *
@@ -44009,6 +44309,8 @@ export type CustomElements = {
44009
44309
  * - `--canvas-label-color`: The color of the label on a connection.
44010
44310
  * - `--canvas-label-editor-inline-size`: The width of the field for editing a label.
44011
44311
  * - `--canvas-label-font-size`: The size of the label on a connection.
44312
+ * - `--canvas-minimap-block-size`: The height of the minimap, under `controls="minimap"`.
44313
+ * - `--canvas-minimap-inline-size`: The width of the minimap, under `controls="minimap"`.
44012
44314
  * - `--canvas-radius`: The frame's corners.
44013
44315
  * - `--canvas-selected-color`: The color of what is selected: a card's outline, its corners and its move handle, a connection and its ends, and the box drawn to select.
44014
44316
  * - `--viewport-control-background-color`: The background of the pan and zoom buttons. `Map` uses the same property.
@@ -44035,6 +44337,9 @@ export type CustomElements = {
44035
44337
  * - `label-editor`: The field for editing a connection's label or a group's name, placed over that text.
44036
44338
  * - `live`: A live region that screen readers announce while a connection is being made.
44037
44339
  * - `marquee`: The box a Shift-drag across the empty board draws, which selects the cards it touches.
44340
+ * - `minimap`: The picture of the whole board, under `controls="minimap"`.
44341
+ * - `minimap-node`: One card in the minimap.
44342
+ * - `minimap-view`: The frame in the minimap around what is on screen.
44038
44343
  * - `pan-down`: The button that moves the board down.
44039
44344
  * - `pan-end`: The button that moves the board toward the end of a line of text: right in English.
44040
44345
  * - `pan-start`: The button that moves the board toward the start of a line of text: left in English.
@@ -45634,6 +45939,9 @@ export type CustomElements = {
45634
45939
  * - `code-name-label`/`codeNameLabel`: The name of a block that scrolls, where the block has a name. `{code}` is
45635
45940
  * `code-label` and `{name}` the block's name.
45636
45941
  * - `collapse-label`/`collapseLabel`: The expand button's words while the block shows every line.
45942
+ * - `context-lines`/`contextLines`: In a diff, how many unchanged lines to keep beside each change. Each
45943
+ * longer run of unchanged lines is folded behind a button that shows it.
45944
+ * Unset shows every line the diff holds.
45637
45945
  * - `copied-label`/`copiedLabel`: The copy button's name and tooltip text after a copy.
45638
45946
  * - `copy-label`/`copyLabel`: The copy button's name and tooltip text before a copy.
45639
45947
  *
@@ -45653,6 +45961,9 @@ export type CustomElements = {
45653
45961
  * the button is drawn only while the cap hides something, measured as the
45654
45962
  * block lays out. Not for a diff, whose files each scroll on their own.
45655
45963
  * - `expand-label`/`expandLabel`: The expand button's words while the cap hides lines.
45964
+ * - `hide-unchanged-label`/`hideUnchangedLabel`: The words of a button that hides a run of unchanged lines it showed, in a
45965
+ * diff with `context-lines`. `{count}` is how many, and each language
45966
+ * writes the forms it has.
45656
45967
  * - `label`: The block's name, usually a file name, drawn in the header.
45657
45968
  *
45658
45969
  * Absent, the block is named by `language` where there is one. In a diff,
@@ -45692,6 +46003,8 @@ export type CustomElements = {
45692
46003
  * `no-copy=""` on hosts that never asked for one, and the rule about a
45693
46004
  * reflected property taking no default is satisfied by the default being
45694
46005
  * `false`.
46006
+ * - `show-unchanged-label`/`showUnchangedLabel`: The words of a button that shows a folded run of unchanged lines, in a
46007
+ * diff with `context-lines`. `{count}` is how many.
45695
46008
  * - `variant`: How a diff's two versions are arranged. It has no effect without `diff`.
45696
46009
  *
45697
46010
  * Absent is unified, each removal above its replacement, which fits any
@@ -45799,6 +46112,7 @@ export type CustomElements = {
45799
46112
  * - `actions`: The box in the header that holds the `actions` slot, drawn while something is slotted there.
45800
46113
  * - `added`: In a diff, a line only the new version has, an `<ins>`.
45801
46114
  * - `block`: The scrolling `<pre>`.
46115
+ * - `changed`: In a diff, the words of a changed line that the line opposite it does not have, inside its `text`.
45802
46116
  * - `code`: The `<code>` inside it.
45803
46117
  * - `context`: In a diff, a line both versions share.
45804
46118
  * - `copy`: The copy button. It sits in the header when there is one, and beside the code otherwise.
@@ -45820,6 +46134,7 @@ export type CustomElements = {
45820
46134
  * - `expand`: The button under a capped block that shows every line, and fewer again. Drawn when `expandable` is set and the cap hides something.
45821
46135
  * - `file`: In a diff, one file's header and block.
45822
46136
  * - `filler`: In a split diff, the empty row opposite a line the other side does not have.
46137
+ * - `fold`: In a diff with `context-lines`, the button that shows a folded run of unchanged lines, and hides it again, saying which with `aria-expanded`.
45823
46138
  * - `frame`: The code, and the copy button beside it where there is no header.
45824
46139
  * - `gutter`: The line numbers beside the code, shown when `line-numbers` is set.
45825
46140
  * - `header`: The bar that holds the name and the copy button, shown when there is a name.
@@ -47928,6 +48243,7 @@ export type CustomElements = {
47928
48243
  *
47929
48244
  * - `empty`: While there are no rows to show and none are loading.
47930
48245
  * - `error`: While `error-text` is set.
48246
+ * - `loading`: While `loading` is set, as the rows are on their way.
47931
48247
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
47932
48248
  */
47933
48249
  "helix-data-table": Partial<
@@ -56191,7 +56507,8 @@ export type CustomElements = {
56191
56507
  * as a checkbox tells a reader its siblings are commands, which is the one
56192
56508
  * thing they are not.
56193
56509
  *
56194
- * `checked` implies it, so a row that is on never has to say both.
56510
+ * `checked` and `exclusive` imply it, so a row that is on, or one of a set,
56511
+ * never has to say both.
56195
56512
  *
56196
56513
  * Choosing the row checks or unchecks it, after a `helix-before-toggle` that
56197
56514
  * you can cancel.
@@ -56199,6 +56516,11 @@ export type CustomElements = {
56199
56516
  *
56200
56517
  * The row changes it when it is chosen. Not reflected: the attribute is the
56201
56518
  * state you start the row in, and `:state(checked)` carries the current one.
56519
+ * - `close-on-select`/`closeOnSelect`: Whether choosing the row closes the menu.
56520
+ *
56521
+ * Unset takes the menu's `close-on-select`, which is on, and keeps the menu
56522
+ * open after a Space on a choice row. Write `close-on-select="false"` for a
56523
+ * row that changes something the reader is watching, such as a zoom step.
56202
56524
  * - `disabled`: Whether the row is disabled, so it cannot be chosen.
56203
56525
  * - `download`: Whether the link downloads the file when the row is chosen.
56204
56526
  *
@@ -56213,8 +56535,7 @@ export type CustomElements = {
56213
56535
  * it checked. `menuitemradio` tells a reader which kind of set they are in,
56214
56536
  * where `menuitemcheckbox` says every row is independent.
56215
56537
  *
56216
- * Meaningless without `checkable`, since a row that cannot be ticked is not
56217
- * one of a set of anything.
56538
+ * It makes the row a choice, so it needs no `checkable` beside it.
56218
56539
  * - `href`: The URL the row links to. Setting it renders the row as a link.
56219
56540
  *
56220
56541
  * **The row itself becomes an `<a>`, and the role goes with it.** A
@@ -56376,6 +56697,11 @@ export type CustomElements = {
56376
56697
  * last reader did rather than what the author wrote. `:state(open)` carries
56377
56698
  * the resolved state for stylesheets, which is what the mirror is for.
56378
56699
  * - `back-label`/`backLabel`: The text of the row that returns from a submenu.
56700
+ * - `close-on-select`/`closeOnSelect`: Whether choosing a row closes the menu.
56701
+ *
56702
+ * On by default, and a Space on a choice row leaves the menu open either way.
56703
+ * Write `close-on-select="false"` to keep the menu open after every choice, as
56704
+ * Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this.
56379
56705
  * - `context`: Whether the menu is the trigger's context menu: it opens where the reader
56380
56706
  * asks for one, with a right-click, a long press, Shift+F10 or the menu key.
56381
56707
  * - `label`: Accessible name for the surface.
@@ -57733,6 +58059,8 @@ export type CustomElements = {
57733
58059
  * reader sees the shape of the value before its contents. `0` starts with the
57734
58060
  * root closed; a large number opens everything, which on a big value is the
57735
58061
  * wall of text this exists to avoid.
58062
+ * - `empty-label`/`emptyLabel`: What the tree says while there is no value to show, such as before a
58063
+ * fetch answers. The `empty` slot replaces it.
57736
58064
  * - `filter`: Text the tree is narrowed to: the entries whose key or value holds it,
57737
58065
  * ignoring case, and the branches that lead to them. Empty shows everything.
57738
58066
  * - `filterable`: Whether to show a field that sets `filter`.
@@ -57764,6 +58092,8 @@ export type CustomElements = {
57764
58092
  * who set the property. This button is positioned out of the flow and takes no
57765
58093
  * room, so nothing selects on it, and reflection exists so that a selector can
57766
58094
  * reach a value.
58095
+ * - `no-matches-label`/`noMatchesLabel`: What the tree says while a filter matched no entry. The `empty` slot
58096
+ * replaces it.
57767
58097
  * - `result-label`/`resultLabel`: What a screen reader hears when a filter matches one entry, where
57768
58098
  * `results-label` should not say it. `{count}` is the count.
57769
58099
  * - `results-label`/`resultsLabel`: What a screen reader hears when a filter matches entries. `{count}` is
@@ -57825,6 +58155,12 @@ export type CustomElements = {
57825
58155
  * - `helix-filtered`: The filter field changed `filter`, which now holds the text.
57826
58156
  * - `toggle`: A reader opened or closed a branch, with `newState` and `oldState`. `expanded` holds every open branch.
57827
58157
  *
58158
+ * ## Slots
58159
+ *
58160
+ * Areas where markup can be added to the component.
58161
+ *
58162
+ * - `empty`: Shown in the tree while it has no entries to show. Defaults to `empty-label`, or `no-matches-label` while a filter matched none.
58163
+ *
57828
58164
  * ## CSS Custom Properties
57829
58165
  *
57830
58166
  * CSS variables available for styling the component.
@@ -57861,6 +58197,7 @@ export type CustomElements = {
57861
58197
  * - `copy-tooltip-right`: The tooltip while it is right of the copy button. Set alongside `copy-tooltip`.
57862
58198
  * - `copy-tooltip-top`: The tooltip while it is above the copy button. Set alongside `copy-tooltip`.
57863
58199
  * - `count`: The number of entries a branch holds.
58200
+ * - `empty`: The row shown in the tree while it has no entries to show: no value, or a filter that matched none. It holds the `empty` slot.
57864
58201
  * - `frame`: The tree and the copy button beside it.
57865
58202
  * - `header`: The bar that holds the label, when there is one.
57866
58203
  * - `key`: A property name or an array index.
@@ -57882,6 +58219,9 @@ export type CustomElements = {
57882
58219
  *
57883
58220
  * These can be used to apply styling when a component is in a given state.
57884
58221
  *
58222
+ * - `empty`: While the tree has no entries to show: no value, or a filter that matched none.
58223
+ * - `filtered`: While `filter` holds text.
58224
+ * - `matched`: While `filter` holds text and matched at least one entry.
57885
58225
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
57886
58226
  */
57887
58227
  "helix-object-inspector": Partial<
@@ -60548,6 +60888,15 @@ export type CustomElements = {
60548
60888
  * reports. A page draws its own spinner or message from either, such as a
60549
60889
  * sibling shown by `helix-sandbox-preview:state(failed) + .message`.
60550
60890
  *
60891
+ * **A failed preview shows the error over the example**, in the `error` part,
60892
+ * until the next source is sent. The terminal says it too, so the part is not
60893
+ * announced. Hide it with `::part(error) { display: none }` where the page
60894
+ * draws its own.
60895
+ *
60896
+ * **`controls` draws two buttons in the preview's corner**: one reloads the
60897
+ * frame's document, as `reload()` does, and one opens the example in a new
60898
+ * tab, as `open()` does. The tab runs it in a frame sandboxed as this one is.
60899
+ *
60551
60900
  * ## Attributes & Properties
60552
60901
  *
60553
60902
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -60565,6 +60914,8 @@ export type CustomElements = {
60565
60914
  * keyed on this attribute, and of the 56 tokens that differ by scheme the
60566
60915
  * theme engine emits 19. The other 37 would stay light in a dark preview,
60567
60916
  * including every one of the 24 series colors a chart reads.
60917
+ * - `controls`: Whether the preview draws a reload button and a button that opens the
60918
+ * example in a new tab, in its corner.
60568
60919
  * - `direction`: Writing direction inside the frame.
60569
60920
  *
60570
60921
  * Not reflected. It is payload for the render message and nothing selects on
@@ -60583,6 +60934,10 @@ export type CustomElements = {
60583
60934
  * Not reflected, for `direction`'s reason: the placement is applied by the
60584
60935
  * document inside the frame, against its own root, so no rule on this side
60585
60936
  * could read it.
60937
+ * - `open-label`/`openLabel`: The name of the button that opens the example in a new tab, under
60938
+ * `controls`.
60939
+ * - `reload-label`/`reloadLabel`: The name of the button that reloads the frame's document, under
60940
+ * `controls`.
60586
60941
  * - `script`: A script to run as a module after the markup, on every render of new
60587
60942
  * source. A sandbox writes its `js` pane here.
60588
60943
  * - `source`: Markup to render.
@@ -60621,6 +60976,17 @@ export type CustomElements = {
60621
60976
  *
60622
60977
  * Methods that can be called to access component functionality.
60623
60978
  *
60979
+ * - `open() => Window | null`: Opens the example in a new tab, and returns the tab's window, or `null`
60980
+ * where the browser refused to open one.
60981
+ *
60982
+ * **The tab runs the example as this preview does**: in a frame that fills
60983
+ * it, with this frame's `sandbox`, loading `src` or the built-in document,
60984
+ * and sent the example once it loads. The example stays on an opaque origin,
60985
+ * and the tab's `opener` is cleared, so it cannot reach this page. The tab
60986
+ * shows the example as it was when it opened, and edits after that do not
60987
+ * reach it. A short inline script in the tab sends the example, so on a page
60988
+ * whose Content Security Policy refuses inline scripts the tab opens empty,
60989
+ * as the built-in document does there.
60624
60990
  * - `reload() => void`: Loads the frame's document again, and re-sends the example to it.
60625
60991
  *
60626
60992
  * For a bundle that has changed underneath a page nobody reloaded. The frame
@@ -60638,7 +61004,11 @@ export type CustomElements = {
60638
61004
  *
60639
61005
  * Custom selectors for styling elements within the component.
60640
61006
  *
61007
+ * - `controls`: The buttons in the preview's corner, under `controls`.
61008
+ * - `error`: The error the example threw and did not catch, shown over it while the preview is `failed`.
60641
61009
  * - `frame`: The iframe.
61010
+ * - `open`: The button that opens the example in a new tab, under `controls`.
61011
+ * - `reload`: The button that reloads the frame's document, under `controls`.
60642
61012
  *
60643
61013
  * ## CSS States
60644
61014
  *
@@ -60668,6 +61038,20 @@ export type CustomElements = {
60668
61038
  * pointer, the keyboard, and the corner. The inner splitter holds the panes and
60669
61039
  * the outer one holds the panel, so the panel spans the full width.
60670
61040
  *
61041
+ * **Several source panes are files**, one shown at a time under a row of
61042
+ * tabs, each named by the pane's `label` or, without one, its `name`. `file`
61043
+ * holds the `name` of the pane shown. The tabs are a tab list: the arrow keys
61044
+ * move between them and show each pane, and `Home` and `End` go to the first
61045
+ * and the last. Choosing one sends `helix-before-change` with the pane's
61046
+ * `name`, which you can cancel, and `change` once `file` holds it. The panes
61047
+ * not shown carry `hidden`. One pane draws no tabs.
61048
+ *
61049
+ * **Any editor can be the source pane**: an element in the `source` slot with
61050
+ * a `name` that dispatches `helix-before-edit` with its text, which bubbles.
61051
+ * A wrapper around CodeMirror or Monaco sends one on each change and is a pane
61052
+ * like `helix-sandbox-source`, and the sandbox reads its `value` to seed the
61053
+ * preview. Dispatch `helix-caret` from it too for the status bar's position.
61054
+ *
60671
61055
  * On a focused divider, the arrow keys move it, and `Home` and `End` move it
60672
61056
  * to its ends. `Enter` on the panes divider shuts the lead pane, and pressed
60673
61057
  * again it opens the pane where it was. `Enter` on the panel divider shuts the
@@ -60694,6 +61078,10 @@ export type CustomElements = {
60694
61078
  *
60695
61079
  * Declared rather than captured, so it is a number a consumer states and can
60696
61080
  * change, and it needs no first frame to be read on.
61081
+ * - `file`: The `name` of the source pane shown, where the sandbox holds several.
61082
+ *
61083
+ * Unset, or a name no pane has, shows the first.
61084
+ * - `files-label`/`filesLabel`: The name of the file tabs, read by screen readers.
60697
61085
  * - `lead`: Which pane comes first, before the divider.
60698
61086
  *
60699
61087
  * A sandbox is read in one of two directions and the two are not a
@@ -60760,6 +61148,8 @@ export type CustomElements = {
60760
61148
  *
60761
61149
  * Events that will be emitted by the component.
60762
61150
  *
61151
+ * - `change`: A file tab showed its pane, whose `name` `file` now holds.
61152
+ * - `helix-before-change`: Fired before a file tab shows its pane, with the pane's `name`. Cancelable: cancel it to keep the pane shown.
60763
61153
  * - `helix-before-edit`: Fired before the source is edited. The source pane dispatches it, and you can listen for it on the sandbox. Cancelable: cancel it to keep the source unchanged.
60764
61154
  * - `helix-before-panel-resize`: Fired before the panel's divider is released, with the panel's height in pixels. A panel dragged closed reports `panel-collapsed-size`, its smallest height. Cancelable: cancel it to keep the current height.
60765
61155
  * - `helix-before-split`: Fired before the panes' divider is released, with the lead pane's share. Cancelable: cancel it to keep the current split.
@@ -60794,6 +61184,8 @@ export type CustomElements = {
60794
61184
  *
60795
61185
  * - `body`: The splitter holding the panes above the panel. `::part(body):state(dragging)` matches while its divider is held.
60796
61186
  * - `corner`: The handle where the two dividers cross.
61187
+ * - `file`: One file tab, `aria-selected` while its pane is shown.
61188
+ * - `files`: The file tabs over the source panes, where there are several.
60797
61189
  * - `pane`: Either pane.
60798
61190
  * - `panel`: The box that holds the slotted panel.
60799
61191
  * - `panes`: The splitter holding the source and preview panes. `::part(panes):state(dragging)` matches while its divider is held.
@@ -60836,6 +61228,8 @@ export type CustomElements = {
60836
61228
  *
60837
61229
  * - `field-label`/`fieldLabel`: The editable region's name, read by screen readers.
60838
61230
  * - `keys-description`/`keysDescription`: The field's description, read by screen readers while Tab indents.
61231
+ * - `label`: The pane's file name, such as `index.html`, on its tab where a sandbox
61232
+ * holds several panes. Empty puts the pane's `name` on the tab.
60839
61233
  * - `name`: Which source this pane holds. Every `helix-before-edit` event includes it.
60840
61234
  *
60841
61235
  * `html` and `css` are what the sandbox root routes on; any other name is
@@ -64594,6 +64988,7 @@ export type CustomElements = {
64594
64988
  *
64595
64989
  * - `empty`: While there are no rows and none are loading.
64596
64990
  * - `error`: While `error-text` is set.
64991
+ * - `loading`: While `loading` is set, as the rows are on their way.
64597
64992
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
64598
64993
  */
64599
64994
  "helix-table": Partial<HelixTableProps & BaseProps<HelixTable> & BaseEvents<HelixTable>>;
@@ -68678,6 +69073,9 @@ export type CustomElements = {
68678
69073
  * These can be used to apply styling when a component is in a given state.
68679
69074
  *
68680
69075
  * - `current`: The entry that is playing.
69076
+ * - `dragging`: The entry a pointer is dragging, in a `reorderable` playlist.
69077
+ * - `drop-after`: The entry the dragged one would land after, which the drop indicator is drawn under.
69078
+ * - `drop-before`: The entry the dragged one would land before, which the drop indicator is drawn over.
68681
69079
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
68682
69080
  */
68683
69081
  "helix-video-playlist-item": Partial<
@@ -68807,17 +69205,29 @@ export type CustomElements = {
68807
69205
  * - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
68808
69206
  *
68809
69207
  * Ignored once `active` is written.
69208
+ * - `canceled-label`/`canceledLabel`: What screen readers hear when a move is put back, in a `reorderable`
69209
+ * playlist. `{name}` is the entry's words.
69210
+ * - `dropped-label`/`droppedLabel`: What screen readers hear when a moved entry is let go, in a `reorderable`
69211
+ * playlist. `{name}` is the entry's words.
68810
69212
  * - `empty-label`/`emptyLabel`: What the playlist says while it has no entries. The `empty` slot replaces it.
68811
69213
  * - `label`: The list's name, read by screen readers.
69214
+ * - `moved-label`/`movedLabel`: What screen readers hear each time a key moves an entry, in a
69215
+ * `reorderable` playlist. `{name}` is the entry's words, `{position}` its
69216
+ * new place, counting from 1, and `{count}` the number of entries.
68812
69217
  * - `no-advance`/`noAdvance`: Stays on an entry when its clip ends, where the playlist would otherwise
68813
69218
  * play the next one. The player's controls, a press, and `next()` still
68814
69219
  * move. `repeat="one"` still plays the entry again.
69220
+ * - `picked-up-label`/`pickedUpLabel`: What screen readers hear when a pointer picks up an entry, in a
69221
+ * `reorderable` playlist. `{name}` is the entry's words.
68815
69222
  * - `playing-label`/`playingLabel`: What the live region says when the playlist moves to another entry.
68816
69223
  * `{title}` is the entry's name.
68817
69224
  *
68818
69225
  * **A move a reader did not make is said.** At the end of a clip the
68819
69226
  * playlist starts the next one, and the only other trace of that is the
68820
69227
  * `aria-current` on a button the reader is not on.
69228
+ * - `reorderable`: Lets a reader move the entries, with Alt and the arrow keys or by
69229
+ * dragging one. The playlist moves no entry itself: you move your entries
69230
+ * on `helix-reorder`.
68821
69231
  * - `repeat`: What happens when an entry ends with no next one to go to. `one` plays the
68822
69232
  * same entry again, and `all` goes from the last entry back to the first.
68823
69233
  * Absent, the playlist stops on the last entry and sends `helix-end`.
@@ -68861,7 +69271,9 @@ export type CustomElements = {
68861
69271
  *
68862
69272
  * - `helix-activate`: The current entry changed. The playlist already holds the new entry when this is sent, and `detail.previous` is the entry it left. `currentEntry` is the entry itself, with its `src`, `poster` and name.
68863
69273
  * - `helix-before-activate`: The current entry is about to change, and `detail.cause` says why: `press`, `next`, `previous`, `ended`, or `removed`. Cancelable: cancel it to keep the current entry.
69274
+ * - `helix-before-reorder`: An entry was moved to a new place, in a `reorderable` playlist, with every entry's value in the new order in `detail.keys`. Cancelable: cancel it to keep the entry where it is.
68864
69275
  * - `helix-end`: The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set.
69276
+ * - `helix-reorder`: Fired after `helix-before-reorder` when nobody canceled it. Move your entries to the order in `keys`. Cancelable: cancel it to say the move did not happen.
68865
69277
  *
68866
69278
  * ## Slots
68867
69279
  *
@@ -72271,6 +72683,10 @@ export type CustomElementsSolidJs = {
72271
72683
  * A word property: register it for a locale under the host's key. A family
72272
72684
  * that names the control otherwise, such as Tag's `Remove {label}`,
72273
72685
  * declares its own English with `@words` above the override.
72686
+ * - `open`: Whether the callout is showing. A dismissal nobody canceled turns it
72687
+ * false and the callout hides itself, and setting it true shows the callout
72688
+ * again. Not reflected: open is the resting state, so an `open` attribute
72689
+ * would appear on markup a server sent without it.
72274
72690
  * - `tone`: What kind of attention the passage needs.
72275
72691
  *
72276
72692
  * `tone` is the axis for what a thing means, and this is a subset of it: a
@@ -72312,7 +72728,7 @@ export type CustomElementsSolidJs = {
72312
72728
  *
72313
72729
  * Events that will be emitted by the component.
72314
72730
  *
72315
- * - `helix-dismiss`: The dismiss button was pressed. The callout does not remove itself, so remove it in response. Cancelable.
72731
+ * - `helix-dismiss`: The dismiss button was pressed. Unless a listener cancels it, the callout hides itself, and a listener may remove it instead. Cancelable: cancel it to keep the callout showing.
72316
72732
  *
72317
72733
  * ## Slots
72318
72734
  *
@@ -72355,6 +72771,11 @@ export type CustomElementsSolidJs = {
72355
72771
  *
72356
72772
  * These can be used to apply styling when a component is in a given state.
72357
72773
  *
72774
+ * - `closed`: While `open` is false: the callout was dismissed, and is leaving or hidden.
72775
+ * - `entering`: While a callout shown again by `open` runs its entrance animations.
72776
+ * - `exiting`: While a dismissed callout runs its exit animations, before it is hidden.
72777
+ * - `has-heading`: Something is slotted into `heading`.
72778
+ * - `has-icon`: An icon of your own is slotted into `icon`, in place of the tone's.
72358
72779
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
72359
72780
  */
72360
72781
  "helix-callout": Partial<
@@ -72840,6 +73261,12 @@ export type CustomElementsSolidJs = {
72840
73261
  * `gestures="cooperative"`. `{key}` is ⌘ on a Mac and Ctrl elsewhere.
72841
73262
  * - `zoomed-label`/`zoomedLabel`: What screen readers hear after a zoom button or key, with `{zoom}` for the
72842
73263
  * zoom as a percentage, written the way the element's locale writes one.
73264
+ * - `edgeRoute`: Draws every connection's line: a function from where it leaves and
73265
+ * arrives, and the sides it does, to its SVG path and where its label sits.
73266
+ *
73267
+ * Absent, or returning nothing for a connection, draws the board's own
73268
+ * route. A function that throws draws the board's own too, and the error is
73269
+ * reported to the page as an uncaught one. Set it as a property. (property only)
72843
73270
  * - `view`: The board's current view: the document's point at the middle of the view,
72844
73271
  * and the zoom.
72845
73272
  *
@@ -72952,6 +73379,8 @@ export type CustomElementsSolidJs = {
72952
73379
  * - `--canvas-label-color`: The color of the label on a connection.
72953
73380
  * - `--canvas-label-editor-inline-size`: The width of the field for editing a label.
72954
73381
  * - `--canvas-label-font-size`: The size of the label on a connection.
73382
+ * - `--canvas-minimap-block-size`: The height of the minimap, under `controls="minimap"`.
73383
+ * - `--canvas-minimap-inline-size`: The width of the minimap, under `controls="minimap"`.
72955
73384
  * - `--canvas-radius`: The frame's corners.
72956
73385
  * - `--canvas-selected-color`: The color of what is selected: a card's outline, its corners and its move handle, a connection and its ends, and the box drawn to select.
72957
73386
  * - `--viewport-control-background-color`: The background of the pan and zoom buttons. `Map` uses the same property.
@@ -72978,6 +73407,9 @@ export type CustomElementsSolidJs = {
72978
73407
  * - `label-editor`: The field for editing a connection's label or a group's name, placed over that text.
72979
73408
  * - `live`: A live region that screen readers announce while a connection is being made.
72980
73409
  * - `marquee`: The box a Shift-drag across the empty board draws, which selects the cards it touches.
73410
+ * - `minimap`: The picture of the whole board, under `controls="minimap"`.
73411
+ * - `minimap-node`: One card in the minimap.
73412
+ * - `minimap-view`: The frame in the minimap around what is on screen.
72981
73413
  * - `pan-down`: The button that moves the board down.
72982
73414
  * - `pan-end`: The button that moves the board toward the end of a line of text: right in English.
72983
73415
  * - `pan-start`: The button that moves the board toward the start of a line of text: left in English.
@@ -74599,6 +75031,9 @@ export type CustomElementsSolidJs = {
74599
75031
  * - `code-name-label`/`codeNameLabel`: The name of a block that scrolls, where the block has a name. `{code}` is
74600
75032
  * `code-label` and `{name}` the block's name.
74601
75033
  * - `collapse-label`/`collapseLabel`: The expand button's words while the block shows every line.
75034
+ * - `context-lines`/`contextLines`: In a diff, how many unchanged lines to keep beside each change. Each
75035
+ * longer run of unchanged lines is folded behind a button that shows it.
75036
+ * Unset shows every line the diff holds.
74602
75037
  * - `copied-label`/`copiedLabel`: The copy button's name and tooltip text after a copy.
74603
75038
  * - `copy-label`/`copyLabel`: The copy button's name and tooltip text before a copy.
74604
75039
  *
@@ -74618,6 +75053,9 @@ export type CustomElementsSolidJs = {
74618
75053
  * the button is drawn only while the cap hides something, measured as the
74619
75054
  * block lays out. Not for a diff, whose files each scroll on their own.
74620
75055
  * - `expand-label`/`expandLabel`: The expand button's words while the cap hides lines.
75056
+ * - `hide-unchanged-label`/`hideUnchangedLabel`: The words of a button that hides a run of unchanged lines it showed, in a
75057
+ * diff with `context-lines`. `{count}` is how many, and each language
75058
+ * writes the forms it has.
74621
75059
  * - `label`: The block's name, usually a file name, drawn in the header.
74622
75060
  *
74623
75061
  * Absent, the block is named by `language` where there is one. In a diff,
@@ -74657,6 +75095,8 @@ export type CustomElementsSolidJs = {
74657
75095
  * `no-copy=""` on hosts that never asked for one, and the rule about a
74658
75096
  * reflected property taking no default is satisfied by the default being
74659
75097
  * `false`.
75098
+ * - `show-unchanged-label`/`showUnchangedLabel`: The words of a button that shows a folded run of unchanged lines, in a
75099
+ * diff with `context-lines`. `{count}` is how many.
74660
75100
  * - `variant`: How a diff's two versions are arranged. It has no effect without `diff`.
74661
75101
  *
74662
75102
  * Absent is unified, each removal above its replacement, which fits any
@@ -74764,6 +75204,7 @@ export type CustomElementsSolidJs = {
74764
75204
  * - `actions`: The box in the header that holds the `actions` slot, drawn while something is slotted there.
74765
75205
  * - `added`: In a diff, a line only the new version has, an `<ins>`.
74766
75206
  * - `block`: The scrolling `<pre>`.
75207
+ * - `changed`: In a diff, the words of a changed line that the line opposite it does not have, inside its `text`.
74767
75208
  * - `code`: The `<code>` inside it.
74768
75209
  * - `context`: In a diff, a line both versions share.
74769
75210
  * - `copy`: The copy button. It sits in the header when there is one, and beside the code otherwise.
@@ -74785,6 +75226,7 @@ export type CustomElementsSolidJs = {
74785
75226
  * - `expand`: The button under a capped block that shows every line, and fewer again. Drawn when `expandable` is set and the cap hides something.
74786
75227
  * - `file`: In a diff, one file's header and block.
74787
75228
  * - `filler`: In a split diff, the empty row opposite a line the other side does not have.
75229
+ * - `fold`: In a diff with `context-lines`, the button that shows a folded run of unchanged lines, and hides it again, saying which with `aria-expanded`.
74788
75230
  * - `frame`: The code, and the copy button beside it where there is no header.
74789
75231
  * - `gutter`: The line numbers beside the code, shown when `line-numbers` is set.
74790
75232
  * - `header`: The bar that holds the name and the copy button, shown when there is a name.
@@ -76913,6 +77355,7 @@ export type CustomElementsSolidJs = {
76913
77355
  *
76914
77356
  * - `empty`: While there are no rows to show and none are loading.
76915
77357
  * - `error`: While `error-text` is set.
77358
+ * - `loading`: While `loading` is set, as the rows are on their way.
76916
77359
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
76917
77360
  */
76918
77361
  "helix-data-table": Partial<
@@ -85320,7 +85763,8 @@ export type CustomElementsSolidJs = {
85320
85763
  * as a checkbox tells a reader its siblings are commands, which is the one
85321
85764
  * thing they are not.
85322
85765
  *
85323
- * `checked` implies it, so a row that is on never has to say both.
85766
+ * `checked` and `exclusive` imply it, so a row that is on, or one of a set,
85767
+ * never has to say both.
85324
85768
  *
85325
85769
  * Choosing the row checks or unchecks it, after a `helix-before-toggle` that
85326
85770
  * you can cancel.
@@ -85328,6 +85772,11 @@ export type CustomElementsSolidJs = {
85328
85772
  *
85329
85773
  * The row changes it when it is chosen. Not reflected: the attribute is the
85330
85774
  * state you start the row in, and `:state(checked)` carries the current one.
85775
+ * - `close-on-select`/`closeOnSelect`: Whether choosing the row closes the menu.
85776
+ *
85777
+ * Unset takes the menu's `close-on-select`, which is on, and keeps the menu
85778
+ * open after a Space on a choice row. Write `close-on-select="false"` for a
85779
+ * row that changes something the reader is watching, such as a zoom step.
85331
85780
  * - `disabled`: Whether the row is disabled, so it cannot be chosen.
85332
85781
  * - `download`: Whether the link downloads the file when the row is chosen.
85333
85782
  *
@@ -85342,8 +85791,7 @@ export type CustomElementsSolidJs = {
85342
85791
  * it checked. `menuitemradio` tells a reader which kind of set they are in,
85343
85792
  * where `menuitemcheckbox` says every row is independent.
85344
85793
  *
85345
- * Meaningless without `checkable`, since a row that cannot be ticked is not
85346
- * one of a set of anything.
85794
+ * It makes the row a choice, so it needs no `checkable` beside it.
85347
85795
  * - `href`: The URL the row links to. Setting it renders the row as a link.
85348
85796
  *
85349
85797
  * **The row itself becomes an `<a>`, and the role goes with it.** A
@@ -85508,6 +85956,11 @@ export type CustomElementsSolidJs = {
85508
85956
  * last reader did rather than what the author wrote. `:state(open)` carries
85509
85957
  * the resolved state for stylesheets, which is what the mirror is for.
85510
85958
  * - `back-label`/`backLabel`: The text of the row that returns from a submenu.
85959
+ * - `close-on-select`/`closeOnSelect`: Whether choosing a row closes the menu.
85960
+ *
85961
+ * On by default, and a Space on a choice row leaves the menu open either way.
85962
+ * Write `close-on-select="false"` to keep the menu open after every choice, as
85963
+ * Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this.
85511
85964
  * - `context`: Whether the menu is the trigger's context menu: it opens where the reader
85512
85965
  * asks for one, with a right-click, a long press, Shift+F10 or the menu key.
85513
85966
  * - `label`: Accessible name for the surface.
@@ -86890,6 +87343,8 @@ export type CustomElementsSolidJs = {
86890
87343
  * reader sees the shape of the value before its contents. `0` starts with the
86891
87344
  * root closed; a large number opens everything, which on a big value is the
86892
87345
  * wall of text this exists to avoid.
87346
+ * - `empty-label`/`emptyLabel`: What the tree says while there is no value to show, such as before a
87347
+ * fetch answers. The `empty` slot replaces it.
86893
87348
  * - `filter`: Text the tree is narrowed to: the entries whose key or value holds it,
86894
87349
  * ignoring case, and the branches that lead to them. Empty shows everything.
86895
87350
  * - `filterable`: Whether to show a field that sets `filter`.
@@ -86921,6 +87376,8 @@ export type CustomElementsSolidJs = {
86921
87376
  * who set the property. This button is positioned out of the flow and takes no
86922
87377
  * room, so nothing selects on it, and reflection exists so that a selector can
86923
87378
  * reach a value.
87379
+ * - `no-matches-label`/`noMatchesLabel`: What the tree says while a filter matched no entry. The `empty` slot
87380
+ * replaces it.
86924
87381
  * - `result-label`/`resultLabel`: What a screen reader hears when a filter matches one entry, where
86925
87382
  * `results-label` should not say it. `{count}` is the count.
86926
87383
  * - `results-label`/`resultsLabel`: What a screen reader hears when a filter matches entries. `{count}` is
@@ -86982,6 +87439,12 @@ export type CustomElementsSolidJs = {
86982
87439
  * - `helix-filtered`: The filter field changed `filter`, which now holds the text.
86983
87440
  * - `toggle`: A reader opened or closed a branch, with `newState` and `oldState`. `expanded` holds every open branch.
86984
87441
  *
87442
+ * ## Slots
87443
+ *
87444
+ * Areas where markup can be added to the component.
87445
+ *
87446
+ * - `empty`: Shown in the tree while it has no entries to show. Defaults to `empty-label`, or `no-matches-label` while a filter matched none.
87447
+ *
86985
87448
  * ## CSS Custom Properties
86986
87449
  *
86987
87450
  * CSS variables available for styling the component.
@@ -87018,6 +87481,7 @@ export type CustomElementsSolidJs = {
87018
87481
  * - `copy-tooltip-right`: The tooltip while it is right of the copy button. Set alongside `copy-tooltip`.
87019
87482
  * - `copy-tooltip-top`: The tooltip while it is above the copy button. Set alongside `copy-tooltip`.
87020
87483
  * - `count`: The number of entries a branch holds.
87484
+ * - `empty`: The row shown in the tree while it has no entries to show: no value, or a filter that matched none. It holds the `empty` slot.
87021
87485
  * - `frame`: The tree and the copy button beside it.
87022
87486
  * - `header`: The bar that holds the label, when there is one.
87023
87487
  * - `key`: A property name or an array index.
@@ -87039,6 +87503,9 @@ export type CustomElementsSolidJs = {
87039
87503
  *
87040
87504
  * These can be used to apply styling when a component is in a given state.
87041
87505
  *
87506
+ * - `empty`: While the tree has no entries to show: no value, or a filter that matched none.
87507
+ * - `filtered`: While `filter` holds text.
87508
+ * - `matched`: While `filter` holds text and matched at least one entry.
87042
87509
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
87043
87510
  */
87044
87511
  "helix-object-inspector": Partial<
@@ -89759,6 +90226,15 @@ export type CustomElementsSolidJs = {
89759
90226
  * reports. A page draws its own spinner or message from either, such as a
89760
90227
  * sibling shown by `helix-sandbox-preview:state(failed) + .message`.
89761
90228
  *
90229
+ * **A failed preview shows the error over the example**, in the `error` part,
90230
+ * until the next source is sent. The terminal says it too, so the part is not
90231
+ * announced. Hide it with `::part(error) { display: none }` where the page
90232
+ * draws its own.
90233
+ *
90234
+ * **`controls` draws two buttons in the preview's corner**: one reloads the
90235
+ * frame's document, as `reload()` does, and one opens the example in a new
90236
+ * tab, as `open()` does. The tab runs it in a frame sandboxed as this one is.
90237
+ *
89762
90238
  * ## Attributes & Properties
89763
90239
  *
89764
90240
  * Component attributes and properties that can be applied to the element or by using JavaScript.
@@ -89776,6 +90252,8 @@ export type CustomElementsSolidJs = {
89776
90252
  * keyed on this attribute, and of the 56 tokens that differ by scheme the
89777
90253
  * theme engine emits 19. The other 37 would stay light in a dark preview,
89778
90254
  * including every one of the 24 series colors a chart reads.
90255
+ * - `controls`: Whether the preview draws a reload button and a button that opens the
90256
+ * example in a new tab, in its corner.
89779
90257
  * - `direction`: Writing direction inside the frame.
89780
90258
  *
89781
90259
  * Not reflected. It is payload for the render message and nothing selects on
@@ -89794,6 +90272,10 @@ export type CustomElementsSolidJs = {
89794
90272
  * Not reflected, for `direction`'s reason: the placement is applied by the
89795
90273
  * document inside the frame, against its own root, so no rule on this side
89796
90274
  * could read it.
90275
+ * - `open-label`/`openLabel`: The name of the button that opens the example in a new tab, under
90276
+ * `controls`.
90277
+ * - `reload-label`/`reloadLabel`: The name of the button that reloads the frame's document, under
90278
+ * `controls`.
89797
90279
  * - `script`: A script to run as a module after the markup, on every render of new
89798
90280
  * source. A sandbox writes its `js` pane here.
89799
90281
  * - `source`: Markup to render.
@@ -89832,6 +90314,17 @@ export type CustomElementsSolidJs = {
89832
90314
  *
89833
90315
  * Methods that can be called to access component functionality.
89834
90316
  *
90317
+ * - `open() => Window | null`: Opens the example in a new tab, and returns the tab's window, or `null`
90318
+ * where the browser refused to open one.
90319
+ *
90320
+ * **The tab runs the example as this preview does**: in a frame that fills
90321
+ * it, with this frame's `sandbox`, loading `src` or the built-in document,
90322
+ * and sent the example once it loads. The example stays on an opaque origin,
90323
+ * and the tab's `opener` is cleared, so it cannot reach this page. The tab
90324
+ * shows the example as it was when it opened, and edits after that do not
90325
+ * reach it. A short inline script in the tab sends the example, so on a page
90326
+ * whose Content Security Policy refuses inline scripts the tab opens empty,
90327
+ * as the built-in document does there.
89835
90328
  * - `reload() => void`: Loads the frame's document again, and re-sends the example to it.
89836
90329
  *
89837
90330
  * For a bundle that has changed underneath a page nobody reloaded. The frame
@@ -89849,7 +90342,11 @@ export type CustomElementsSolidJs = {
89849
90342
  *
89850
90343
  * Custom selectors for styling elements within the component.
89851
90344
  *
90345
+ * - `controls`: The buttons in the preview's corner, under `controls`.
90346
+ * - `error`: The error the example threw and did not catch, shown over it while the preview is `failed`.
89852
90347
  * - `frame`: The iframe.
90348
+ * - `open`: The button that opens the example in a new tab, under `controls`.
90349
+ * - `reload`: The button that reloads the frame's document, under `controls`.
89853
90350
  *
89854
90351
  * ## CSS States
89855
90352
  *
@@ -89882,6 +90379,20 @@ export type CustomElementsSolidJs = {
89882
90379
  * pointer, the keyboard, and the corner. The inner splitter holds the panes and
89883
90380
  * the outer one holds the panel, so the panel spans the full width.
89884
90381
  *
90382
+ * **Several source panes are files**, one shown at a time under a row of
90383
+ * tabs, each named by the pane's `label` or, without one, its `name`. `file`
90384
+ * holds the `name` of the pane shown. The tabs are a tab list: the arrow keys
90385
+ * move between them and show each pane, and `Home` and `End` go to the first
90386
+ * and the last. Choosing one sends `helix-before-change` with the pane's
90387
+ * `name`, which you can cancel, and `change` once `file` holds it. The panes
90388
+ * not shown carry `hidden`. One pane draws no tabs.
90389
+ *
90390
+ * **Any editor can be the source pane**: an element in the `source` slot with
90391
+ * a `name` that dispatches `helix-before-edit` with its text, which bubbles.
90392
+ * A wrapper around CodeMirror or Monaco sends one on each change and is a pane
90393
+ * like `helix-sandbox-source`, and the sandbox reads its `value` to seed the
90394
+ * preview. Dispatch `helix-caret` from it too for the status bar's position.
90395
+ *
89885
90396
  * On a focused divider, the arrow keys move it, and `Home` and `End` move it
89886
90397
  * to its ends. `Enter` on the panes divider shuts the lead pane, and pressed
89887
90398
  * again it opens the pane where it was. `Enter` on the panel divider shuts the
@@ -89908,6 +90419,10 @@ export type CustomElementsSolidJs = {
89908
90419
  *
89909
90420
  * Declared rather than captured, so it is a number a consumer states and can
89910
90421
  * change, and it needs no first frame to be read on.
90422
+ * - `file`: The `name` of the source pane shown, where the sandbox holds several.
90423
+ *
90424
+ * Unset, or a name no pane has, shows the first.
90425
+ * - `files-label`/`filesLabel`: The name of the file tabs, read by screen readers.
89911
90426
  * - `lead`: Which pane comes first, before the divider.
89912
90427
  *
89913
90428
  * A sandbox is read in one of two directions and the two are not a
@@ -89974,6 +90489,8 @@ export type CustomElementsSolidJs = {
89974
90489
  *
89975
90490
  * Events that will be emitted by the component.
89976
90491
  *
90492
+ * - `change`: A file tab showed its pane, whose `name` `file` now holds.
90493
+ * - `helix-before-change`: Fired before a file tab shows its pane, with the pane's `name`. Cancelable: cancel it to keep the pane shown.
89977
90494
  * - `helix-before-edit`: Fired before the source is edited. The source pane dispatches it, and you can listen for it on the sandbox. Cancelable: cancel it to keep the source unchanged.
89978
90495
  * - `helix-before-panel-resize`: Fired before the panel's divider is released, with the panel's height in pixels. A panel dragged closed reports `panel-collapsed-size`, its smallest height. Cancelable: cancel it to keep the current height.
89979
90496
  * - `helix-before-split`: Fired before the panes' divider is released, with the lead pane's share. Cancelable: cancel it to keep the current split.
@@ -90008,6 +90525,8 @@ export type CustomElementsSolidJs = {
90008
90525
  *
90009
90526
  * - `body`: The splitter holding the panes above the panel. `::part(body):state(dragging)` matches while its divider is held.
90010
90527
  * - `corner`: The handle where the two dividers cross.
90528
+ * - `file`: One file tab, `aria-selected` while its pane is shown.
90529
+ * - `files`: The file tabs over the source panes, where there are several.
90011
90530
  * - `pane`: Either pane.
90012
90531
  * - `panel`: The box that holds the slotted panel.
90013
90532
  * - `panes`: The splitter holding the source and preview panes. `::part(panes):state(dragging)` matches while its divider is held.
@@ -90053,6 +90572,8 @@ export type CustomElementsSolidJs = {
90053
90572
  *
90054
90573
  * - `field-label`/`fieldLabel`: The editable region's name, read by screen readers.
90055
90574
  * - `keys-description`/`keysDescription`: The field's description, read by screen readers while Tab indents.
90575
+ * - `label`: The pane's file name, such as `index.html`, on its tab where a sandbox
90576
+ * holds several panes. Empty puts the pane's `name` on the tab.
90056
90577
  * - `name`: Which source this pane holds. Every `helix-before-edit` event includes it.
90057
90578
  *
90058
90579
  * `html` and `css` are what the sandbox root routes on; any other name is
@@ -93883,6 +94404,7 @@ export type CustomElementsSolidJs = {
93883
94404
  *
93884
94405
  * - `empty`: While there are no rows and none are loading.
93885
94406
  * - `error`: While `error-text` is set.
94407
+ * - `loading`: While `loading` is set, as the rows are on their way.
93886
94408
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
93887
94409
  */
93888
94410
  "helix-table": Partial<
@@ -98042,6 +98564,9 @@ export type CustomElementsSolidJs = {
98042
98564
  * These can be used to apply styling when a component is in a given state.
98043
98565
  *
98044
98566
  * - `current`: The entry that is playing.
98567
+ * - `dragging`: The entry a pointer is dragging, in a `reorderable` playlist.
98568
+ * - `drop-after`: The entry the dragged one would land after, which the drop indicator is drawn under.
98569
+ * - `drop-before`: The entry the dragged one would land before, which the drop indicator is drawn over.
98045
98570
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
98046
98571
  */
98047
98572
  "helix-video-playlist-item": Partial<
@@ -98177,17 +98702,29 @@ export type CustomElementsSolidJs = {
98177
98702
  * - `default-active`/`defaultActive`: The `value` of the item declared current in markup.
98178
98703
  *
98179
98704
  * Ignored once `active` is written.
98705
+ * - `canceled-label`/`canceledLabel`: What screen readers hear when a move is put back, in a `reorderable`
98706
+ * playlist. `{name}` is the entry's words.
98707
+ * - `dropped-label`/`droppedLabel`: What screen readers hear when a moved entry is let go, in a `reorderable`
98708
+ * playlist. `{name}` is the entry's words.
98180
98709
  * - `empty-label`/`emptyLabel`: What the playlist says while it has no entries. The `empty` slot replaces it.
98181
98710
  * - `label`: The list's name, read by screen readers.
98711
+ * - `moved-label`/`movedLabel`: What screen readers hear each time a key moves an entry, in a
98712
+ * `reorderable` playlist. `{name}` is the entry's words, `{position}` its
98713
+ * new place, counting from 1, and `{count}` the number of entries.
98182
98714
  * - `no-advance`/`noAdvance`: Stays on an entry when its clip ends, where the playlist would otherwise
98183
98715
  * play the next one. The player's controls, a press, and `next()` still
98184
98716
  * move. `repeat="one"` still plays the entry again.
98717
+ * - `picked-up-label`/`pickedUpLabel`: What screen readers hear when a pointer picks up an entry, in a
98718
+ * `reorderable` playlist. `{name}` is the entry's words.
98185
98719
  * - `playing-label`/`playingLabel`: What the live region says when the playlist moves to another entry.
98186
98720
  * `{title}` is the entry's name.
98187
98721
  *
98188
98722
  * **A move a reader did not make is said.** At the end of a clip the
98189
98723
  * playlist starts the next one, and the only other trace of that is the
98190
98724
  * `aria-current` on a button the reader is not on.
98725
+ * - `reorderable`: Lets a reader move the entries, with Alt and the arrow keys or by
98726
+ * dragging one. The playlist moves no entry itself: you move your entries
98727
+ * on `helix-reorder`.
98191
98728
  * - `repeat`: What happens when an entry ends with no next one to go to. `one` plays the
98192
98729
  * same entry again, and `all` goes from the last entry back to the first.
98193
98730
  * Absent, the playlist stops on the last entry and sends `helix-end`.
@@ -98231,7 +98768,9 @@ export type CustomElementsSolidJs = {
98231
98768
  *
98232
98769
  * - `helix-activate`: The current entry changed. The playlist already holds the new entry when this is sent, and `detail.previous` is the entry it left. `currentEntry` is the entry itself, with its `src`, `poster` and name.
98233
98770
  * - `helix-before-activate`: The current entry is about to change, and `detail.cause` says why: `press`, `next`, `previous`, `ended`, or `removed`. Cancelable: cancel it to keep the current entry.
98771
+ * - `helix-before-reorder`: An entry was moved to a new place, in a `reorderable` playlist, with every entry's value in the new order in `detail.keys`. Cancelable: cancel it to keep the entry where it is.
98234
98772
  * - `helix-end`: The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set.
98773
+ * - `helix-reorder`: Fired after `helix-before-reorder` when nobody canceled it. Move your entries to the order in `keys`. Cancelable: cancel it to say the move did not happen.
98235
98774
  *
98236
98775
  * ## Slots
98237
98776
  *
@@ -99199,6 +99738,10 @@ export type CustomCssProperties = {
99199
99738
  "--canvas-label-editor-inline-size"?: (string) | undefined;
99200
99739
  /** The size of the label on a connection. */
99201
99740
  "--canvas-label-font-size"?: (string) | undefined;
99741
+ /** The height of the minimap, under `controls="minimap"`. */
99742
+ "--canvas-minimap-block-size"?: (string) | undefined;
99743
+ /** The width of the minimap, under `controls="minimap"`. */
99744
+ "--canvas-minimap-inline-size"?: (string) | undefined;
99202
99745
  /** The frame's corners. */
99203
99746
  "--canvas-radius"?: (string) | undefined;
99204
99747
  /** The color of what is selected: a card's outline, its corners and its move handle, a connection and its ends, and the box drawn to select. */