@fusion.dev/helix-headless 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.
Files changed (45) hide show
  1. package/custom-elements.json +1041 -47
  2. package/dist/callout/root/callout-root.d.ts +43 -4
  3. package/dist/callout/root/callout-root.js +58 -2
  4. package/dist/canvas/index.d.ts +1 -1
  5. package/dist/canvas/root/canvas-document.d.ts +33 -0
  6. package/dist/canvas/root/canvas-root.d.ts +50 -2
  7. package/dist/canvas/root/canvas-root.js +98 -3
  8. package/dist/chat/composer/chat-composer.js +1 -1
  9. package/dist/chat/root/chat-root.d.ts +15 -4
  10. package/dist/chat/root/chat-root.js +19 -8
  11. package/dist/code-block/patch.d.ts +42 -0
  12. package/dist/code-block/patch.js +118 -0
  13. package/dist/code-block/root/code-block-root.d.ts +37 -1
  14. package/dist/code-block/root/code-block-root.js +57 -9
  15. package/dist/color-picker/root/color-picker-root.d.ts +7 -3
  16. package/dist/color-picker/root/color-picker-root.js +7 -4
  17. package/dist/combobox/root/combobox-root.d.ts +1 -0
  18. package/dist/combobox/root/combobox-root.js +10 -1
  19. package/dist/data-table/root/data-table-root.d.ts +1 -0
  20. package/dist/data-table/root/data-table-root.js +1 -0
  21. package/dist/element-events.generated.js +7 -1
  22. package/dist/map/root/map-root.d.ts +8 -1
  23. package/dist/map/root/map-root.js +12 -0
  24. package/dist/menu/item/menu-item.d.ts +38 -7
  25. package/dist/menu/item/menu-item.js +20 -9
  26. package/dist/menu/root/menu-root.d.ts +10 -1
  27. package/dist/menu/root/menu-root.js +8 -3
  28. package/dist/object-inspector/root/object-inspector-root.d.ts +23 -0
  29. package/dist/object-inspector/root/object-inspector-root.js +19 -1
  30. package/dist/steps/root/steps-root.d.ts +7 -1
  31. package/dist/steps/root/steps-root.js +6 -1
  32. package/dist/table/grid-controller.d.ts +7 -0
  33. package/dist/table/grid-controller.js +15 -1
  34. package/dist/table/root/table-root.d.ts +10 -0
  35. package/dist/table/root/table-root.js +18 -1
  36. package/dist/video/root/video-root.js +2 -1
  37. package/dist/video-playlist/item/video-playlist-item.d.ts +8 -0
  38. package/dist/video-playlist/item/video-playlist-item.js +7 -0
  39. package/dist/video-playlist/root/video-playlist-root.d.ts +60 -0
  40. package/dist/video-playlist/root/video-playlist-root.js +55 -1
  41. package/lint.json +1 -1
  42. package/package.json +5 -5
  43. package/types/jsx.d.ts +502 -40
  44. package/types/vue.d.ts +126 -14
  45. package/types/words.d.ts +58 -0
package/types/jsx.d.ts CHANGED
@@ -2926,6 +2926,11 @@ none.
2926
2926
  takes away, where every button was "Dismiss". A label without `{label}` is
2927
2927
  read as written. */
2928
2928
  dismissLabel?: (HelixHeadlessCallout["dismissLabel"]) | undefined;
2929
+ /** Whether the callout is showing. A dismissal nobody canceled turns it
2930
+ false and the callout hides itself, and setting it true shows the callout
2931
+ again. Not reflected: open is the resting state, so an `open` attribute
2932
+ would appear on markup a server sent without it. */
2933
+ open?: (HelixHeadlessCallout["open"]) | undefined;
2929
2934
  /** What kind of attention the passage needs.
2930
2935
 
2931
2936
  `tone` is the axis for what a thing means, and this is a subset of it: a
@@ -2960,7 +2965,7 @@ out keeps its English, and `tone-label` wins over both.
2960
2965
  /** Whether the element shows a control that dismisses it. */
2961
2966
  dismissible?: (HelixHeadlessCallout["dismissible"]) | undefined;
2962
2967
 
2963
- /** The dismiss button was pressed. The callout does not remove itself, so remove it in response. Cancelable. */
2968
+ /** 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. */
2964
2969
  "onhelix-dismiss"?: ((e: HelixHeadlessCalloutHelixDismissElementEvent) => void) | undefined;
2965
2970
  };
2966
2971
 
@@ -2981,6 +2986,11 @@ none.
2981
2986
  takes away, where every button was "Dismiss". A label without `{label}` is
2982
2987
  read as written. */
2983
2988
  "prop:dismissLabel"?: (HelixHeadlessCallout["dismissLabel"]) | undefined;
2989
+ /** Whether the callout is showing. A dismissal nobody canceled turns it
2990
+ false and the callout hides itself, and setting it true shows the callout
2991
+ again. Not reflected: open is the resting state, so an `open` attribute
2992
+ would appear on markup a server sent without it. */
2993
+ "prop:open"?: (HelixHeadlessCallout["open"]) | undefined;
2984
2994
  /** What kind of attention the passage needs.
2985
2995
 
2986
2996
  `tone` is the axis for what a thing means, and this is a subset of it: a
@@ -3014,7 +3024,7 @@ out keeps its English, and `tone-label` wins over both.
3014
3024
  "prop:toneLabels"?: (HelixHeadlessCallout["toneLabels"]) | undefined;
3015
3025
  /** Whether the element shows a control that dismisses it. */
3016
3026
  "prop:dismissible"?: (HelixHeadlessCallout["dismissible"]) | undefined;
3017
- /** The dismiss button was pressed. The callout does not remove itself, so remove it in response. Cancelable. */
3027
+ /** 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. */
3018
3028
  "on:helix-dismiss"?: ((
3019
3029
  e: HelixHeadlessCalloutHelixDismissElementEvent,
3020
3030
  ) => void) | undefined;
@@ -3754,6 +3764,13 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
3754
3764
  "zoom-out-label"?: (HelixHeadlessCanvas["zoomOutLabel"]) | undefined;
3755
3765
  /** The zoom out button's label. */
3756
3766
  zoomOutLabel?: (HelixHeadlessCanvas["zoomOutLabel"]) | undefined;
3767
+ /** Draws every connection's line: a function from where it leaves and
3768
+ arrives, and the sides it does, to its SVG path and where its label sits.
3769
+
3770
+ Absent, or returning nothing for a connection, draws the board's own
3771
+ route. A function that throws draws the board's own too, and the error is
3772
+ reported to the page as an uncaught one. Set it as a property. */
3773
+ edgeRoute?: (HelixHeadlessCanvas["edgeRoute"]) | undefined;
3757
3774
  /** The board's current view: the document's point at the middle of the view,
3758
3775
  and the zoom.
3759
3776
 
@@ -4202,6 +4219,13 @@ at any zoom, and a consumer who wants their own units multiplies by them. */
4202
4219
  "attr:zoom-out-label"?: (HelixHeadlessCanvas["zoomOutLabel"]) | undefined;
4203
4220
  /** The zoom out button's label. */
4204
4221
  "prop:zoomOutLabel"?: (HelixHeadlessCanvas["zoomOutLabel"]) | undefined;
4222
+ /** Draws every connection's line: a function from where it leaves and
4223
+ arrives, and the sides it does, to its SVG path and where its label sits.
4224
+
4225
+ Absent, or returning nothing for a connection, draws the board's own
4226
+ route. A function that throws draws the board's own too, and the error is
4227
+ reported to the page as an uncaught one. Set it as a property. */
4228
+ "prop:edgeRoute"?: (HelixHeadlessCanvas["edgeRoute"]) | undefined;
4205
4229
  /** The board's current view: the document's point at the middle of the view,
4206
4230
  and the zoom.
4207
4231
 
@@ -6079,6 +6103,14 @@ app.ts", as `code-name-label` puts it. */
6079
6103
  "collapse-label"?: (HelixHeadlessCodeBlock["collapseLabel"]) | undefined;
6080
6104
  /** The expand button's words while the block shows every line. */
6081
6105
  collapseLabel?: (HelixHeadlessCodeBlock["collapseLabel"]) | undefined;
6106
+ /** In a diff, how many unchanged lines to keep beside each change. Each
6107
+ longer run of unchanged lines is folded behind a button that shows it.
6108
+ Unset shows every line the diff holds. */
6109
+ "context-lines"?: (HelixHeadlessCodeBlock["contextLines"] | `${number}`) | undefined;
6110
+ /** In a diff, how many unchanged lines to keep beside each change. Each
6111
+ longer run of unchanged lines is folded behind a button that shows it.
6112
+ Unset shows every line the diff holds. */
6113
+ contextLines?: (HelixHeadlessCodeBlock["contextLines"]) | undefined;
6082
6114
  /** The copy button's name and tooltip text after a copy. */
6083
6115
  "copied-label"?: (HelixHeadlessCodeBlock["copiedLabel"]) | undefined;
6084
6116
  /** The copy button's name and tooltip text after a copy. */
@@ -6117,6 +6149,14 @@ block lays out. Not for a diff, whose files each scroll on their own. */
6117
6149
  "expand-label"?: (HelixHeadlessCodeBlock["expandLabel"]) | undefined;
6118
6150
  /** The expand button's words while the cap hides lines. */
6119
6151
  expandLabel?: (HelixHeadlessCodeBlock["expandLabel"]) | undefined;
6152
+ /** The words of a button that hides a run of unchanged lines it showed, in a
6153
+ diff with `context-lines`. `{count}` is how many, and each language
6154
+ writes the forms it has. */
6155
+ "hide-unchanged-label"?: (HelixHeadlessCodeBlock["hideUnchangedLabel"]) | undefined;
6156
+ /** The words of a button that hides a run of unchanged lines it showed, in a
6157
+ diff with `context-lines`. `{count}` is how many, and each language
6158
+ writes the forms it has. */
6159
+ hideUnchangedLabel?: (HelixHeadlessCodeBlock["hideUnchangedLabel"]) | undefined;
6120
6160
  /** The block's name, usually a file name, drawn in the header.
6121
6161
 
6122
6162
  Absent, the block is named by `language` where there is one. In a diff,
@@ -6192,6 +6232,12 @@ A false boolean reflects as the attribute's absence, so this costs no
6192
6232
  reflected property taking no default is satisfied by the default being
6193
6233
  `false`. */
6194
6234
  noCopy?: (HelixHeadlessCodeBlock["noCopy"]) | undefined;
6235
+ /** The words of a button that shows a folded run of unchanged lines, in a
6236
+ diff with `context-lines`. `{count}` is how many. */
6237
+ "show-unchanged-label"?: (HelixHeadlessCodeBlock["showUnchangedLabel"]) | undefined;
6238
+ /** The words of a button that shows a folded run of unchanged lines, in a
6239
+ diff with `context-lines`. `{count}` is how many. */
6240
+ showUnchangedLabel?: (HelixHeadlessCodeBlock["showUnchangedLabel"]) | undefined;
6195
6241
  /** How a diff's two versions are arranged. It has no effect without `diff`.
6196
6242
 
6197
6243
  Absent is unified, each removal above its replacement, which fits any
@@ -6266,6 +6312,14 @@ app.ts", as `code-name-label` puts it. */
6266
6312
  "attr:collapse-label"?: (HelixHeadlessCodeBlock["collapseLabel"]) | undefined;
6267
6313
  /** The expand button's words while the block shows every line. */
6268
6314
  "prop:collapseLabel"?: (HelixHeadlessCodeBlock["collapseLabel"]) | undefined;
6315
+ /** In a diff, how many unchanged lines to keep beside each change. Each
6316
+ longer run of unchanged lines is folded behind a button that shows it.
6317
+ Unset shows every line the diff holds. */
6318
+ "attr:context-lines"?: (HelixHeadlessCodeBlock["contextLines"] | `${number}`) | undefined;
6319
+ /** In a diff, how many unchanged lines to keep beside each change. Each
6320
+ longer run of unchanged lines is folded behind a button that shows it.
6321
+ Unset shows every line the diff holds. */
6322
+ "prop:contextLines"?: (HelixHeadlessCodeBlock["contextLines"]) | undefined;
6269
6323
  /** The copy button's name and tooltip text after a copy. */
6270
6324
  "attr:copied-label"?: (HelixHeadlessCodeBlock["copiedLabel"]) | undefined;
6271
6325
  /** The copy button's name and tooltip text after a copy. */
@@ -6304,6 +6358,14 @@ block lays out. Not for a diff, whose files each scroll on their own. */
6304
6358
  "attr:expand-label"?: (HelixHeadlessCodeBlock["expandLabel"]) | undefined;
6305
6359
  /** The expand button's words while the cap hides lines. */
6306
6360
  "prop:expandLabel"?: (HelixHeadlessCodeBlock["expandLabel"]) | undefined;
6361
+ /** The words of a button that hides a run of unchanged lines it showed, in a
6362
+ diff with `context-lines`. `{count}` is how many, and each language
6363
+ writes the forms it has. */
6364
+ "attr:hide-unchanged-label"?: (HelixHeadlessCodeBlock["hideUnchangedLabel"]) | undefined;
6365
+ /** The words of a button that hides a run of unchanged lines it showed, in a
6366
+ diff with `context-lines`. `{count}` is how many, and each language
6367
+ writes the forms it has. */
6368
+ "prop:hideUnchangedLabel"?: (HelixHeadlessCodeBlock["hideUnchangedLabel"]) | undefined;
6307
6369
  /** The block's name, usually a file name, drawn in the header.
6308
6370
 
6309
6371
  Absent, the block is named by `language` where there is one. In a diff,
@@ -6379,6 +6441,12 @@ A false boolean reflects as the attribute's absence, so this costs no
6379
6441
  reflected property taking no default is satisfied by the default being
6380
6442
  `false`. */
6381
6443
  "prop:noCopy"?: (HelixHeadlessCodeBlock["noCopy"]) | undefined;
6444
+ /** The words of a button that shows a folded run of unchanged lines, in a
6445
+ diff with `context-lines`. `{count}` is how many. */
6446
+ "attr:show-unchanged-label"?: (HelixHeadlessCodeBlock["showUnchangedLabel"]) | undefined;
6447
+ /** The words of a button that shows a folded run of unchanged lines, in a
6448
+ diff with `context-lines`. `{count}` is how many. */
6449
+ "prop:showUnchangedLabel"?: (HelixHeadlessCodeBlock["showUnchangedLabel"]) | undefined;
6382
6450
  /** How a diff's two versions are arranged. It has no effect without `diff`.
6383
6451
 
6384
6452
  Absent is unified, each removal above its replacement, which fits any
@@ -20613,7 +20681,8 @@ was never tickable look identical from here. Announcing only the ticked one
20613
20681
  as a checkbox tells a reader its siblings are commands, which is the one
20614
20682
  thing they are not.
20615
20683
 
20616
- `checked` implies it, so a row that is on never has to say both.
20684
+ `checked` and `exclusive` imply it, so a row that is on, or one of a set,
20685
+ never has to say both.
20617
20686
 
20618
20687
  Choosing the row checks or unchecks it, after a `helix-before-toggle` that
20619
20688
  you can cancel. */
@@ -20623,6 +20692,18 @@ you can cancel. */
20623
20692
  The row changes it when it is chosen. Not reflected: the attribute is the
20624
20693
  state you start the row in, and `:state(checked)` carries the current one. */
20625
20694
  checked?: (HelixHeadlessMenuItem["checked"]) | undefined;
20695
+ /** Whether choosing the row closes the menu.
20696
+
20697
+ Unset takes the menu's `close-on-select`, which is on, and keeps the menu
20698
+ open after a Space on a choice row. Write `close-on-select="false"` for a
20699
+ row that changes something the reader is watching, such as a zoom step. */
20700
+ "close-on-select"?: (HelixHeadlessMenuItem["closeOnSelect"]) | undefined;
20701
+ /** Whether choosing the row closes the menu.
20702
+
20703
+ Unset takes the menu's `close-on-select`, which is on, and keeps the menu
20704
+ open after a Space on a choice row. Write `close-on-select="false"` for a
20705
+ row that changes something the reader is watching, such as a zoom step. */
20706
+ closeOnSelect?: (HelixHeadlessMenuItem["closeOnSelect"]) | undefined;
20626
20707
  /** Whether the row is disabled, so it cannot be chosen. */
20627
20708
  disabled?: (HelixHeadlessMenuItem["disabled"]) | undefined;
20628
20709
  /** Whether the link downloads the file when the row is chosen.
@@ -20639,8 +20720,7 @@ that row and unchecks the others. Choosing the row that is checked leaves
20639
20720
  it checked. `menuitemradio` tells a reader which kind of set they are in,
20640
20721
  where `menuitemcheckbox` says every row is independent.
20641
20722
 
20642
- Meaningless without `checkable`, since a row that cannot be ticked is not
20643
- one of a set of anything. */
20723
+ It makes the row a choice, so it needs no `checkable` beside it. */
20644
20724
  exclusive?: (HelixHeadlessMenuItem["exclusive"]) | undefined;
20645
20725
  /** The URL the row links to. Setting it renders the row as a link.
20646
20726
 
@@ -20687,7 +20767,8 @@ was never tickable look identical from here. Announcing only the ticked one
20687
20767
  as a checkbox tells a reader its siblings are commands, which is the one
20688
20768
  thing they are not.
20689
20769
 
20690
- `checked` implies it, so a row that is on never has to say both.
20770
+ `checked` and `exclusive` imply it, so a row that is on, or one of a set,
20771
+ never has to say both.
20691
20772
 
20692
20773
  Choosing the row checks or unchecks it, after a `helix-before-toggle` that
20693
20774
  you can cancel. */
@@ -20697,6 +20778,18 @@ you can cancel. */
20697
20778
  The row changes it when it is chosen. Not reflected: the attribute is the
20698
20779
  state you start the row in, and `:state(checked)` carries the current one. */
20699
20780
  "prop:checked"?: (HelixHeadlessMenuItem["checked"]) | undefined;
20781
+ /** Whether choosing the row closes the menu.
20782
+
20783
+ Unset takes the menu's `close-on-select`, which is on, and keeps the menu
20784
+ open after a Space on a choice row. Write `close-on-select="false"` for a
20785
+ row that changes something the reader is watching, such as a zoom step. */
20786
+ "bool:close-on-select"?: (HelixHeadlessMenuItem["closeOnSelect"]) | undefined;
20787
+ /** Whether choosing the row closes the menu.
20788
+
20789
+ Unset takes the menu's `close-on-select`, which is on, and keeps the menu
20790
+ open after a Space on a choice row. Write `close-on-select="false"` for a
20791
+ row that changes something the reader is watching, such as a zoom step. */
20792
+ "prop:closeOnSelect"?: (HelixHeadlessMenuItem["closeOnSelect"]) | undefined;
20700
20793
  /** Whether the row is disabled, so it cannot be chosen. */
20701
20794
  "prop:disabled"?: (HelixHeadlessMenuItem["disabled"]) | undefined;
20702
20795
  /** Whether the link downloads the file when the row is chosen.
@@ -20713,8 +20806,7 @@ that row and unchecks the others. Choosing the row that is checked leaves
20713
20806
  it checked. `menuitemradio` tells a reader which kind of set they are in,
20714
20807
  where `menuitemcheckbox` says every row is independent.
20715
20808
 
20716
- Meaningless without `checkable`, since a row that cannot be ticked is not
20717
- one of a set of anything. */
20809
+ It makes the row a choice, so it needs no `checkable` beside it. */
20718
20810
  "prop:exclusive"?: (HelixHeadlessMenuItem["exclusive"]) | undefined;
20719
20811
  /** The URL the row links to. Setting it renders the row as a link.
20720
20812
 
@@ -20779,6 +20871,18 @@ export type HelixHeadlessMenuProps = {
20779
20871
  "back-label"?: (HelixHeadlessMenu["backLabel"]) | undefined;
20780
20872
  /** The text of the row that returns from a submenu. */
20781
20873
  backLabel?: (HelixHeadlessMenu["backLabel"]) | undefined;
20874
+ /** Whether choosing a row closes the menu.
20875
+
20876
+ On by default, and a Space on a choice row leaves the menu open either way.
20877
+ Write `close-on-select="false"` to keep the menu open after every choice, as
20878
+ Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this. */
20879
+ "close-on-select"?: (HelixHeadlessMenu["closeOnSelect"]) | undefined;
20880
+ /** Whether choosing a row closes the menu.
20881
+
20882
+ On by default, and a Space on a choice row leaves the menu open either way.
20883
+ Write `close-on-select="false"` to keep the menu open after every choice, as
20884
+ Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this. */
20885
+ closeOnSelect?: (HelixHeadlessMenu["closeOnSelect"]) | undefined;
20782
20886
  /** Whether the menu is the trigger's context menu: it opens where the reader
20783
20887
  asks for one, with a right-click, a long press, Shift+F10 or the menu key. */
20784
20888
  context?: (HelixHeadlessMenu["context"]) | undefined;
@@ -20862,6 +20966,18 @@ export type HelixHeadlessMenuSolidJsProps = {
20862
20966
  "attr:back-label"?: (HelixHeadlessMenu["backLabel"]) | undefined;
20863
20967
  /** The text of the row that returns from a submenu. */
20864
20968
  "prop:backLabel"?: (HelixHeadlessMenu["backLabel"]) | undefined;
20969
+ /** Whether choosing a row closes the menu.
20970
+
20971
+ On by default, and a Space on a choice row leaves the menu open either way.
20972
+ Write `close-on-select="false"` to keep the menu open after every choice, as
20973
+ Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this. */
20974
+ "bool:close-on-select"?: (HelixHeadlessMenu["closeOnSelect"]) | undefined;
20975
+ /** Whether choosing a row closes the menu.
20976
+
20977
+ On by default, and a Space on a choice row leaves the menu open either way.
20978
+ Write `close-on-select="false"` to keep the menu open after every choice, as
20979
+ Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this. */
20980
+ "prop:closeOnSelect"?: (HelixHeadlessMenu["closeOnSelect"]) | undefined;
20865
20981
  /** Whether the menu is the trigger's context menu: it opens where the reader
20866
20982
  asks for one, with a right-click, a long press, Shift+F10 or the menu key. */
20867
20983
  "prop:context"?: (HelixHeadlessMenu["context"]) | undefined;
@@ -22431,6 +22547,12 @@ reader sees the shape of the value before its contents. `0` starts with the
22431
22547
  root closed; a large number opens everything, which on a big value is the
22432
22548
  wall of text this exists to avoid. */
22433
22549
  defaultDepth?: (HelixHeadlessObjectInspector["defaultDepth"]) | undefined;
22550
+ /** What the tree says while there is no value to show, such as before a
22551
+ fetch answers. The `empty` slot replaces it. */
22552
+ "empty-label"?: (HelixHeadlessObjectInspector["emptyLabel"]) | undefined;
22553
+ /** What the tree says while there is no value to show, such as before a
22554
+ fetch answers. The `empty` slot replaces it. */
22555
+ emptyLabel?: (HelixHeadlessObjectInspector["emptyLabel"]) | undefined;
22434
22556
  /** Text the tree is narrowed to: the entries whose key or value holds it,
22435
22557
  ignoring case, and the branches that lead to them. Empty shows everything. */
22436
22558
  filter?: (HelixHeadlessObjectInspector["filter"]) | undefined;
@@ -22500,6 +22622,12 @@ who set the property. This button is positioned out of the flow and takes no
22500
22622
  room, so nothing selects on it, and reflection exists so that a selector can
22501
22623
  reach a value. */
22502
22624
  noCopy?: (HelixHeadlessObjectInspector["noCopy"]) | undefined;
22625
+ /** What the tree says while a filter matched no entry. The `empty` slot
22626
+ replaces it. */
22627
+ "no-matches-label"?: (HelixHeadlessObjectInspector["noMatchesLabel"]) | undefined;
22628
+ /** What the tree says while a filter matched no entry. The `empty` slot
22629
+ replaces it. */
22630
+ noMatchesLabel?: (HelixHeadlessObjectInspector["noMatchesLabel"]) | undefined;
22503
22631
  /** What a screen reader hears when a filter matches one entry, where
22504
22632
  `results-label` should not say it. `{count}` is the count. */
22505
22633
  "result-label"?: (HelixHeadlessObjectInspector["resultLabel"]) | undefined;
@@ -22617,6 +22745,12 @@ reader sees the shape of the value before its contents. `0` starts with the
22617
22745
  root closed; a large number opens everything, which on a big value is the
22618
22746
  wall of text this exists to avoid. */
22619
22747
  "prop:defaultDepth"?: (HelixHeadlessObjectInspector["defaultDepth"]) | undefined;
22748
+ /** What the tree says while there is no value to show, such as before a
22749
+ fetch answers. The `empty` slot replaces it. */
22750
+ "attr:empty-label"?: (HelixHeadlessObjectInspector["emptyLabel"]) | undefined;
22751
+ /** What the tree says while there is no value to show, such as before a
22752
+ fetch answers. The `empty` slot replaces it. */
22753
+ "prop:emptyLabel"?: (HelixHeadlessObjectInspector["emptyLabel"]) | undefined;
22620
22754
  /** Text the tree is narrowed to: the entries whose key or value holds it,
22621
22755
  ignoring case, and the branches that lead to them. Empty shows everything. */
22622
22756
  "prop:filter"?: (HelixHeadlessObjectInspector["filter"]) | undefined;
@@ -22686,6 +22820,12 @@ who set the property. This button is positioned out of the flow and takes no
22686
22820
  room, so nothing selects on it, and reflection exists so that a selector can
22687
22821
  reach a value. */
22688
22822
  "prop:noCopy"?: (HelixHeadlessObjectInspector["noCopy"]) | undefined;
22823
+ /** What the tree says while a filter matched no entry. The `empty` slot
22824
+ replaces it. */
22825
+ "attr:no-matches-label"?: (HelixHeadlessObjectInspector["noMatchesLabel"]) | undefined;
22826
+ /** What the tree says while a filter matched no entry. The `empty` slot
22827
+ replaces it. */
22828
+ "prop:noMatchesLabel"?: (HelixHeadlessObjectInspector["noMatchesLabel"]) | undefined;
22689
22829
  /** What a screen reader hears when a filter matches one entry, where
22690
22830
  `results-label` should not say it. `{count}` is the count. */
22691
22831
  "attr:result-label"?: (HelixHeadlessObjectInspector["resultLabel"]) | undefined;
@@ -34551,17 +34691,43 @@ export type HelixHeadlessVideoPlaylistHelixActivateElementEvent =
34551
34691
  /** `helix-before-activate` event type */
34552
34692
  export type HelixHeadlessVideoPlaylistHelixBeforeActivateElementEvent =
34553
34693
  HelixHeadlessVideoPlaylistElementEvent<HelixBeforeActivateEvent>;
34694
+ /** `helix-before-reorder` event type */
34695
+ export type HelixHeadlessVideoPlaylistHelixBeforeReorderElementEvent =
34696
+ HelixHeadlessVideoPlaylistElementEvent<HelixBeforeReorderEvent>;
34554
34697
  /** `helix-end` event type */
34555
34698
  export type HelixHeadlessVideoPlaylistHelixEndElementEvent =
34556
34699
  HelixHeadlessVideoPlaylistElementEvent<HelixEndEvent>;
34700
+ /** `helix-reorder` event type */
34701
+ export type HelixHeadlessVideoPlaylistHelixReorderElementEvent =
34702
+ HelixHeadlessVideoPlaylistElementEvent<HelixReorderEvent>;
34557
34703
 
34558
34704
  export type HelixHeadlessVideoPlaylistProps = {
34705
+ /** What screen readers hear when a move is put back, in a `reorderable`
34706
+ playlist. `{name}` is the entry's words. */
34707
+ "canceled-label"?: (HelixHeadlessVideoPlaylist["canceledLabel"]) | undefined;
34708
+ /** What screen readers hear when a move is put back, in a `reorderable`
34709
+ playlist. `{name}` is the entry's words. */
34710
+ canceledLabel?: (HelixHeadlessVideoPlaylist["canceledLabel"]) | undefined;
34711
+ /** What screen readers hear when a moved entry is let go, in a `reorderable`
34712
+ playlist. `{name}` is the entry's words. */
34713
+ "dropped-label"?: (HelixHeadlessVideoPlaylist["droppedLabel"]) | undefined;
34714
+ /** What screen readers hear when a moved entry is let go, in a `reorderable`
34715
+ playlist. `{name}` is the entry's words. */
34716
+ droppedLabel?: (HelixHeadlessVideoPlaylist["droppedLabel"]) | undefined;
34559
34717
  /** What the playlist says while it has no entries. The `empty` slot replaces it. */
34560
34718
  "empty-label"?: (HelixHeadlessVideoPlaylist["emptyLabel"]) | undefined;
34561
34719
  /** What the playlist says while it has no entries. The `empty` slot replaces it. */
34562
34720
  emptyLabel?: (HelixHeadlessVideoPlaylist["emptyLabel"]) | undefined;
34563
34721
  /** The list's name, read by screen readers. */
34564
34722
  label?: (HelixHeadlessVideoPlaylist["label"]) | undefined;
34723
+ /** What screen readers hear each time a key moves an entry, in a
34724
+ `reorderable` playlist. `{name}` is the entry's words, `{position}` its
34725
+ new place, counting from 1, and `{count}` the number of entries. */
34726
+ "moved-label"?: (HelixHeadlessVideoPlaylist["movedLabel"]) | undefined;
34727
+ /** What screen readers hear each time a key moves an entry, in a
34728
+ `reorderable` playlist. `{name}` is the entry's words, `{position}` its
34729
+ new place, counting from 1, and `{count}` the number of entries. */
34730
+ movedLabel?: (HelixHeadlessVideoPlaylist["movedLabel"]) | undefined;
34565
34731
  /** Stays on an entry when its clip ends, where the playlist would otherwise
34566
34732
  play the next one. The player's controls, a press, and `next()` still
34567
34733
  move. `repeat="one"` still plays the entry again. */
@@ -34570,6 +34736,12 @@ move. `repeat="one"` still plays the entry again. */
34570
34736
  play the next one. The player's controls, a press, and `next()` still
34571
34737
  move. `repeat="one"` still plays the entry again. */
34572
34738
  noAdvance?: (HelixHeadlessVideoPlaylist["noAdvance"]) | undefined;
34739
+ /** What screen readers hear when a pointer picks up an entry, in a
34740
+ `reorderable` playlist. `{name}` is the entry's words. */
34741
+ "picked-up-label"?: (HelixHeadlessVideoPlaylist["pickedUpLabel"]) | undefined;
34742
+ /** What screen readers hear when a pointer picks up an entry, in a
34743
+ `reorderable` playlist. `{name}` is the entry's words. */
34744
+ pickedUpLabel?: (HelixHeadlessVideoPlaylist["pickedUpLabel"]) | undefined;
34573
34745
  /** What the live region says when the playlist moves to another entry.
34574
34746
  `{title}` is the entry's name.
34575
34747
 
@@ -34584,6 +34756,10 @@ playlist starts the next one, and the only other trace of that is the
34584
34756
  playlist starts the next one, and the only other trace of that is the
34585
34757
  `aria-current` on a button the reader is not on. */
34586
34758
  playingLabel?: (HelixHeadlessVideoPlaylist["playingLabel"]) | undefined;
34759
+ /** Lets a reader move the entries, with Alt and the arrow keys or by
34760
+ dragging one. The playlist moves no entry itself: you move your entries
34761
+ on `helix-reorder`. */
34762
+ reorderable?: (HelixHeadlessVideoPlaylist["reorderable"]) | undefined;
34587
34763
  /** What happens when an entry ends with no next one to go to. `one` plays the
34588
34764
  same entry again, and `all` goes from the last entry back to the first.
34589
34765
  Absent, the playlist stops on the last entry and sends `helix-end`.
@@ -34622,17 +34798,45 @@ Ignored once `active` is written. */
34622
34798
  "onhelix-before-activate"?: ((
34623
34799
  e: HelixHeadlessVideoPlaylistHelixBeforeActivateElementEvent,
34624
34800
  ) => void) | undefined;
34801
+ /** 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. */
34802
+ "onhelix-before-reorder"?: ((
34803
+ e: HelixHeadlessVideoPlaylistHelixBeforeReorderElementEvent,
34804
+ ) => void) | undefined;
34625
34805
  /** The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set. */
34626
34806
  "onhelix-end"?: ((e: HelixHeadlessVideoPlaylistHelixEndElementEvent) => void) | undefined;
34807
+ /** 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. */
34808
+ "onhelix-reorder"?: ((
34809
+ e: HelixHeadlessVideoPlaylistHelixReorderElementEvent,
34810
+ ) => void) | undefined;
34627
34811
  };
34628
34812
 
34629
34813
  export type HelixHeadlessVideoPlaylistSolidJsProps = {
34814
+ /** What screen readers hear when a move is put back, in a `reorderable`
34815
+ playlist. `{name}` is the entry's words. */
34816
+ "attr:canceled-label"?: (HelixHeadlessVideoPlaylist["canceledLabel"]) | undefined;
34817
+ /** What screen readers hear when a move is put back, in a `reorderable`
34818
+ playlist. `{name}` is the entry's words. */
34819
+ "prop:canceledLabel"?: (HelixHeadlessVideoPlaylist["canceledLabel"]) | undefined;
34820
+ /** What screen readers hear when a moved entry is let go, in a `reorderable`
34821
+ playlist. `{name}` is the entry's words. */
34822
+ "attr:dropped-label"?: (HelixHeadlessVideoPlaylist["droppedLabel"]) | undefined;
34823
+ /** What screen readers hear when a moved entry is let go, in a `reorderable`
34824
+ playlist. `{name}` is the entry's words. */
34825
+ "prop:droppedLabel"?: (HelixHeadlessVideoPlaylist["droppedLabel"]) | undefined;
34630
34826
  /** What the playlist says while it has no entries. The `empty` slot replaces it. */
34631
34827
  "attr:empty-label"?: (HelixHeadlessVideoPlaylist["emptyLabel"]) | undefined;
34632
34828
  /** What the playlist says while it has no entries. The `empty` slot replaces it. */
34633
34829
  "prop:emptyLabel"?: (HelixHeadlessVideoPlaylist["emptyLabel"]) | undefined;
34634
34830
  /** The list's name, read by screen readers. */
34635
34831
  "prop:label"?: (HelixHeadlessVideoPlaylist["label"]) | undefined;
34832
+ /** What screen readers hear each time a key moves an entry, in a
34833
+ `reorderable` playlist. `{name}` is the entry's words, `{position}` its
34834
+ new place, counting from 1, and `{count}` the number of entries. */
34835
+ "attr:moved-label"?: (HelixHeadlessVideoPlaylist["movedLabel"]) | undefined;
34836
+ /** What screen readers hear each time a key moves an entry, in a
34837
+ `reorderable` playlist. `{name}` is the entry's words, `{position}` its
34838
+ new place, counting from 1, and `{count}` the number of entries. */
34839
+ "prop:movedLabel"?: (HelixHeadlessVideoPlaylist["movedLabel"]) | undefined;
34636
34840
  /** Stays on an entry when its clip ends, where the playlist would otherwise
34637
34841
  play the next one. The player's controls, a press, and `next()` still
34638
34842
  move. `repeat="one"` still plays the entry again. */
@@ -34641,6 +34845,12 @@ move. `repeat="one"` still plays the entry again. */
34641
34845
  play the next one. The player's controls, a press, and `next()` still
34642
34846
  move. `repeat="one"` still plays the entry again. */
34643
34847
  "prop:noAdvance"?: (HelixHeadlessVideoPlaylist["noAdvance"]) | undefined;
34848
+ /** What screen readers hear when a pointer picks up an entry, in a
34849
+ `reorderable` playlist. `{name}` is the entry's words. */
34850
+ "attr:picked-up-label"?: (HelixHeadlessVideoPlaylist["pickedUpLabel"]) | undefined;
34851
+ /** What screen readers hear when a pointer picks up an entry, in a
34852
+ `reorderable` playlist. `{name}` is the entry's words. */
34853
+ "prop:pickedUpLabel"?: (HelixHeadlessVideoPlaylist["pickedUpLabel"]) | undefined;
34644
34854
  /** What the live region says when the playlist moves to another entry.
34645
34855
  `{title}` is the entry's name.
34646
34856
 
@@ -34655,6 +34865,10 @@ playlist starts the next one, and the only other trace of that is the
34655
34865
  playlist starts the next one, and the only other trace of that is the
34656
34866
  `aria-current` on a button the reader is not on. */
34657
34867
  "prop:playingLabel"?: (HelixHeadlessVideoPlaylist["playingLabel"]) | undefined;
34868
+ /** Lets a reader move the entries, with Alt and the arrow keys or by
34869
+ dragging one. The playlist moves no entry itself: you move your entries
34870
+ on `helix-reorder`. */
34871
+ "prop:reorderable"?: (HelixHeadlessVideoPlaylist["reorderable"]) | undefined;
34658
34872
  /** What happens when an entry ends with no next one to go to. `one` plays the
34659
34873
  same entry again, and `all` goes from the last entry back to the first.
34660
34874
  Absent, the playlist stops on the last entry and sends `helix-end`.
@@ -34692,8 +34906,16 @@ Ignored once `active` is written. */
34692
34906
  "on:helix-before-activate"?: ((
34693
34907
  e: HelixHeadlessVideoPlaylistHelixBeforeActivateElementEvent,
34694
34908
  ) => void) | undefined;
34909
+ /** 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. */
34910
+ "on:helix-before-reorder"?: ((
34911
+ e: HelixHeadlessVideoPlaylistHelixBeforeReorderElementEvent,
34912
+ ) => void) | undefined;
34695
34913
  /** The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set. */
34696
34914
  "on:helix-end"?: ((e: HelixHeadlessVideoPlaylistHelixEndElementEvent) => void) | undefined;
34915
+ /** 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. */
34916
+ "on:helix-reorder"?: ((
34917
+ e: HelixHeadlessVideoPlaylistHelixReorderElementEvent,
34918
+ ) => void) | undefined;
34697
34919
 
34698
34920
  /** Set the innerHTML of the element */
34699
34921
  innerHTML?: (string) | undefined;
@@ -38328,8 +38550,12 @@ export type CustomElements = {
38328
38550
  * region around it.
38329
38551
  *
38330
38552
  * Set `dismissible` for a note a reader may put away, as Shoelace's `closable`
38331
- * alert does. The button fires `helix-dismiss` and the callout stays until a
38332
- * listener removes it, so the page decides whether it comes back.
38553
+ * alert does. The button fires `helix-dismiss`, and unless a listener cancels
38554
+ * it the callout hides itself: `open` turns false, `:state(exiting)` holds
38555
+ * while its exit animations run, and then it is `hidden`. Remove it in your
38556
+ * listener to take it out of the page, or set `open` to show it again, which
38557
+ * holds `:state(entering)` while it comes back. Focus on its dismiss button
38558
+ * moves to the next callout's, or to the tab stop beside it, once it hides.
38333
38559
  *
38334
38560
  * A callout sets a passage apart inside a document and is read where it sits.
38335
38561
  * For page-level chrome above the masthead that is a live region and can be
@@ -38346,6 +38572,10 @@ export type CustomElements = {
38346
38572
  * "Dismiss Scheduled maintenance" says which of several callouts the button
38347
38573
  * takes away, where every button was "Dismiss". A label without `{label}` is
38348
38574
  * read as written.
38575
+ * - `open`: Whether the callout is showing. A dismissal nobody canceled turns it
38576
+ * false and the callout hides itself, and setting it true shows the callout
38577
+ * again. Not reflected: open is the resting state, so an `open` attribute
38578
+ * would appear on markup a server sent without it.
38349
38579
  * - `tone`: What kind of attention the passage needs.
38350
38580
  *
38351
38581
  * `tone` is the axis for what a thing means, and this is a subset of it: a
@@ -38388,7 +38618,7 @@ export type CustomElements = {
38388
38618
  *
38389
38619
  * Events that will be emitted by the component.
38390
38620
  *
38391
- * - `helix-dismiss`: The dismiss button was pressed. The callout does not remove itself, so remove it in response. Cancelable.
38621
+ * - `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.
38392
38622
  *
38393
38623
  * ## Slots
38394
38624
  *
@@ -38403,7 +38633,8 @@ export type CustomElements = {
38403
38633
  *
38404
38634
  * Methods that can be called to access component functionality.
38405
38635
  *
38406
- * - `dismiss() => boolean`: Fires `helix-dismiss`, and returns `false` if a listener cancels it.
38636
+ * - `dismiss() => boolean`: Hides the callout once a dismissal stands, unless the page removed it in
38637
+ * its listener, which is the page's answer and leaves `open` as it was.
38407
38638
  *
38408
38639
  * ## CSS Parts
38409
38640
  *
@@ -38419,6 +38650,11 @@ export type CustomElements = {
38419
38650
  *
38420
38651
  * These can be used to apply styling when a component is in a given state.
38421
38652
  *
38653
+ * - `closed`: While `open` is false: the callout was dismissed, and is leaving or hidden.
38654
+ * - `entering`: While a callout shown again by `open` runs its entrance animations.
38655
+ * - `exiting`: While a dismissed callout runs its exit animations, before it is hidden.
38656
+ * - `has-heading`: Something is slotted into `heading`.
38657
+ * - `has-icon`: An icon of your own is slotted into `icon`, in place of the tone's.
38422
38658
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
38423
38659
  */
38424
38660
  "helix-headless-callout": Partial<
@@ -38751,6 +38987,17 @@ export type CustomElements = {
38751
38987
  * connection is a new element, and React discards an element the board adds to
38752
38988
  * its markup on the next render, so you write the connection.
38753
38989
  *
38990
+ * **`edgeRoute` draws the connections' lines your own way**: a function from
38991
+ * where a line leaves and arrives, and the sides it does, to its SVG path, for
38992
+ * a route such as one that bends around the cards between. What it returns
38993
+ * is the line drawn, the line pressed and focused, and the one an arrowhead
38994
+ * sits at the end of. Nothing back draws the board's own.
38995
+ *
38996
+ * Add `minimap` to `controls` for a picture of the whole board in a corner:
38997
+ * each card as a box, and a frame around what is on screen. A press or a drag
38998
+ * on it brings that place to the middle of the view. It is for a pointer, and
38999
+ * a screen reader skips it: the arrow keys and `show()` reach every card.
39000
+ *
38754
39001
  * Cards and connections are `helix-canvas-node` and `helix-canvas-edge`
38755
39002
  * elements, so they are in the served markup whichever renderer wrote them. The
38756
39003
  * library fetches nothing, and an array passed to an element is missing from
@@ -38962,6 +39209,12 @@ export type CustomElements = {
38962
39209
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
38963
39210
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
38964
39211
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
39212
+ * - `edgeRoute`: Draws every connection's line: a function from where it leaves and
39213
+ * arrives, and the sides it does, to its SVG path and where its label sits.
39214
+ *
39215
+ * Absent, or returning nothing for a connection, draws the board's own
39216
+ * route. A function that throws draws the board's own too, and the error is
39217
+ * reported to the page as an uncaught one. Set it as a property. (property only)
38965
39218
  * - `view`: The board's current view: the document's point at the middle of the view,
38966
39219
  * and the zoom.
38967
39220
  *
@@ -39102,6 +39355,9 @@ export type CustomElements = {
39102
39355
  * - `label-editor`: The field for editing a connection's label or a group's name, placed over that text.
39103
39356
  * - `live`: A live region that screen readers announce while a connection is being made.
39104
39357
  * - `marquee`: The box a Shift-drag across the empty board draws, which selects the cards it touches.
39358
+ * - `minimap`: The picture of the whole board, under `controls="minimap"`.
39359
+ * - `minimap-node`: One card in the minimap.
39360
+ * - `minimap-view`: The frame in the minimap around what is on screen.
39105
39361
  * - `pan-down`: The button that moves the board down.
39106
39362
  * - `pan-end`: The button that moves the board toward the end of a line of text: right in English.
39107
39363
  * - `pan-start`: The button that moves the board toward the start of a line of text: left in English.
@@ -40632,9 +40888,14 @@ export type CustomElements = {
40632
40888
  * removed. The block never computes a diff itself. Line numbers come from the
40633
40889
  * hunk headers and are hidden from the accessibility tree. Changed lines are
40634
40890
  * `<ins>` and `<del>` with the `+` and `-` kept as text, so the change does not
40635
- * depend on color. Each file in the patch is its own block under its own name,
40891
+ * depend on color. Where a removed line is paired with the added line that
40892
+ * replaced it, the words each does not share with the other are the `changed`
40893
+ * part, so the eye goes to what changed within the line. Each file in the patch is its own block under its own name,
40636
40894
  * and its copy button copies the new version of the file. `variant="split"`
40637
40895
  * shows the old version beside the new, each removal opposite its replacement.
40896
+ * `context-lines` folds each long run of unchanged lines, keeping that many
40897
+ * beside each change, behind a button that shows them and hides them again,
40898
+ * as a code host draws a diff written with more context than a reader needs.
40638
40899
  *
40639
40900
  * **A block that scrolls is a tab stop.** While its lines run past its width or
40640
40901
  * its cap, the scroller is a region named for the block, such as "Code,
@@ -40664,6 +40925,9 @@ export type CustomElements = {
40664
40925
  * - `code-name-label`/`codeNameLabel`: The name of a block that scrolls, where the block has a name. `{code}` is
40665
40926
  * `code-label` and `{name}` the block's name.
40666
40927
  * - `collapse-label`/`collapseLabel`: The expand button's words while the block shows every line.
40928
+ * - `context-lines`/`contextLines`: In a diff, how many unchanged lines to keep beside each change. Each
40929
+ * longer run of unchanged lines is folded behind a button that shows it.
40930
+ * Unset shows every line the diff holds.
40667
40931
  * - `copied-label`/`copiedLabel`: The copy button's name and tooltip text after a copy.
40668
40932
  * - `copy-label`/`copyLabel`: The copy button's name and tooltip text before a copy.
40669
40933
  *
@@ -40683,6 +40947,9 @@ export type CustomElements = {
40683
40947
  * the button is drawn only while the cap hides something, measured as the
40684
40948
  * block lays out. Not for a diff, whose files each scroll on their own.
40685
40949
  * - `expand-label`/`expandLabel`: The expand button's words while the cap hides lines.
40950
+ * - `hide-unchanged-label`/`hideUnchangedLabel`: The words of a button that hides a run of unchanged lines it showed, in a
40951
+ * diff with `context-lines`. `{count}` is how many, and each language
40952
+ * writes the forms it has.
40686
40953
  * - `label`: The block's name, usually a file name, drawn in the header.
40687
40954
  *
40688
40955
  * Absent, the block is named by `language` where there is one. In a diff,
@@ -40722,6 +40989,8 @@ export type CustomElements = {
40722
40989
  * `no-copy=""` on hosts that never asked for one, and the rule about a
40723
40990
  * reflected property taking no default is satisfied by the default being
40724
40991
  * `false`.
40992
+ * - `show-unchanged-label`/`showUnchangedLabel`: The words of a button that shows a folded run of unchanged lines, in a
40993
+ * diff with `context-lines`. `{count}` is how many.
40725
40994
  * - `variant`: How a diff's two versions are arranged. It has no effect without `diff`.
40726
40995
  *
40727
40996
  * Absent is unified, each removal above its replacement, which fits any
@@ -40812,6 +41081,7 @@ export type CustomElements = {
40812
41081
  * - `actions`: The box in the header that holds the `actions` slot, drawn while something is slotted there.
40813
41082
  * - `added`: In a diff, a line only the new version has, an `<ins>`.
40814
41083
  * - `block`: The scrolling `<pre>`.
41084
+ * - `changed`: In a diff, the words of a changed line that the line opposite it does not have, inside its `text`.
40815
41085
  * - `code`: The `<code>` inside it.
40816
41086
  * - `context`: In a diff, a line both versions share.
40817
41087
  * - `copy`: The copy button. It sits in the header when there is one, and beside the code otherwise.
@@ -40833,6 +41103,7 @@ export type CustomElements = {
40833
41103
  * - `expand`: The button under a capped block that shows every line, and fewer again. Drawn when `expandable` is set and the cap hides something.
40834
41104
  * - `file`: In a diff, one file's header and block.
40835
41105
  * - `filler`: In a split diff, the empty row opposite a line the other side does not have.
41106
+ * - `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`.
40836
41107
  * - `frame`: The code, and the copy button beside it where there is no header.
40837
41108
  * - `gutter`: The line numbers beside the code, shown when `line-numbers` is set.
40838
41109
  * - `header`: The bar that holds the name and the copy button, shown when there is a name.
@@ -41298,8 +41569,10 @@ export type CustomElements = {
41298
41569
  * gray after you drag to the bottom of the square and back.
41299
41570
  *
41300
41571
  * The square is one tab stop. In it, the up and down arrows move brightness
41301
- * and the left and right arrows move saturation, and PageUp and PageDown move
41302
- * brightness by ten. The picker sends `input` as the color moves and `change`
41572
+ * and the left and right arrows move saturation, by ten with Shift. PageUp and
41573
+ * PageDown move brightness by ten, and Home and End move saturation by ten,
41574
+ * turned on a right-to-left page as the arrows are, as React Aria's ColorArea
41575
+ * does. The picker sends `input` as the color moves and `change`
41303
41576
  * when a drag, a key, a typed value or a preset settles it, as
41304
41577
  * `<input type="color">` does.
41305
41578
  *
@@ -41711,6 +41984,7 @@ export type CustomElements = {
41711
41984
  * | Key | What it does |
41712
41985
  * |---|---|
41713
41986
  * | Down, Up | On a closed field, opens the list on the chosen option, or the first or the last. In the open list, moves the highlight, round from the last option to the first. |
41987
+ * | Alt with Down, Alt with Up | Opens the list without moving the highlight, and closes it, choosing nothing. |
41714
41988
  * | Page Down, Page Up | In the open list, moves the highlight by as many options as the list shows at once. |
41715
41989
  * | Enter | Chooses the highlighted option. With nothing left in the list, creates what was typed with `creatable`, or takes it with `allows-custom-value`. On a closed field, submits the form. |
41716
41990
  * | Escape | Closes the list and puts the chosen words back. On a closed field, a second Escape clears a single choice. |
@@ -43061,6 +43335,7 @@ export type CustomElements = {
43061
43335
  *
43062
43336
  * - `empty`: While there are no rows to show and none are loading.
43063
43337
  * - `error`: While `error-text` is set.
43338
+ * - `loading`: While `loading` is set, as the rows are on their way.
43064
43339
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
43065
43340
  */
43066
43341
  "helix-headless-data-table": Partial<
@@ -50797,7 +51072,8 @@ export type CustomElements = {
50797
51072
  * same `group`, such as a route and its dotted legs, share one tile. A tile
50798
51073
  * sends `helix-before-toggle` from the layer first, so you can store the
50799
51074
  * choice or refuse it, and `helix-toggle` from it once `hidden` holds the
50800
- * choice.
51075
+ * choice. Escape closes the menu and returns focus to its button, and the menu
51076
+ * closes when focus moves on from it or a press lands outside the map.
50801
51077
  *
50802
51078
  * Imagery, a `helix-map-raster` with `ground`, is a map type and not a tile.
50803
51079
  * The menu opens with a card for each type, Standard, Hybrid, and Satellite,
@@ -51458,16 +51734,22 @@ export type CustomElements = {
51458
51734
  * - `checked` makes the row a choice.
51459
51735
  * - With neither, the row is a command.
51460
51736
  *
51461
- * The role follows the kind. A row with `checked` is `menuitemcheckbox` with
51462
- * `aria-checked`, and `exclusive` makes it `menuitemradio`, for a set where
51463
- * only one can be on. A row that opens a page keeps `menuitem` and sets
51464
- * `aria-haspopup`.
51737
+ * The role follows the kind. A row with `checkable` or `checked` is
51738
+ * `menuitemcheckbox` with `aria-checked`, and an `exclusive` row is
51739
+ * `menuitemradio`, for a set where only one can be on. A row that opens a page
51740
+ * keeps `menuitem` and sets `aria-haspopup`.
51465
51741
  *
51466
51742
  * Choosing a choice row checks or unchecks it before `helix-select` is sent,
51467
51743
  * so a listener reads the new `checked`. An `exclusive` row turns on and turns
51468
51744
  * off the `exclusive` rows next to it. Cancel `helix-before-toggle` to keep a
51469
51745
  * row as it is and set `checked` yourself.
51470
51746
  *
51747
+ * Space on a choice row changes it and leaves the menu open, so a reader can
51748
+ * set several in a row, as the APG's menu does. Enter and a press change it and
51749
+ * close the menu. `close-on-select="false"` on the row keeps the menu open after
51750
+ * any choice of it, and `close-on-select` on the row closes it after a Space as
51751
+ * well.
51752
+ *
51471
51753
  * The menu sets whether the row's page is showing as a property, never as an
51472
51754
  * attribute. An attribute written onto your element after it upgrades causes a
51473
51755
  * hydration mismatch.
@@ -51501,7 +51783,8 @@ export type CustomElements = {
51501
51783
  * as a checkbox tells a reader its siblings are commands, which is the one
51502
51784
  * thing they are not.
51503
51785
  *
51504
- * `checked` implies it, so a row that is on never has to say both.
51786
+ * `checked` and `exclusive` imply it, so a row that is on, or one of a set,
51787
+ * never has to say both.
51505
51788
  *
51506
51789
  * Choosing the row checks or unchecks it, after a `helix-before-toggle` that
51507
51790
  * you can cancel.
@@ -51509,6 +51792,11 @@ export type CustomElements = {
51509
51792
  *
51510
51793
  * The row changes it when it is chosen. Not reflected: the attribute is the
51511
51794
  * state you start the row in, and `:state(checked)` carries the current one.
51795
+ * - `close-on-select`/`closeOnSelect`: Whether choosing the row closes the menu.
51796
+ *
51797
+ * Unset takes the menu's `close-on-select`, which is on, and keeps the menu
51798
+ * open after a Space on a choice row. Write `close-on-select="false"` for a
51799
+ * row that changes something the reader is watching, such as a zoom step.
51512
51800
  * - `disabled`: Whether the row is disabled, so it cannot be chosen.
51513
51801
  * - `download`: Whether the link downloads the file when the row is chosen.
51514
51802
  *
@@ -51523,8 +51811,7 @@ export type CustomElements = {
51523
51811
  * it checked. `menuitemradio` tells a reader which kind of set they are in,
51524
51812
  * where `menuitemcheckbox` says every row is independent.
51525
51813
  *
51526
- * Meaningless without `checkable`, since a row that cannot be ticked is not
51527
- * one of a set of anything.
51814
+ * It makes the row a choice, so it needs no `checkable` beside it.
51528
51815
  * - `href`: The URL the row links to. Setting it renders the row as a link.
51529
51816
  *
51530
51817
  * **The row itself becomes an `<a>`, and the role goes with it.** A
@@ -51680,7 +51967,8 @@ export type CustomElements = {
51680
51967
  * Keys: Enter, Space or Down Arrow on the trigger opens the menu on its first
51681
51968
  * row, and Up Arrow on its last. In the menu, Up and Down Arrow move between
51682
51969
  * rows, Home and End go to the first and the last, a typed letter moves to
51683
- * the next row whose name starts with it, Enter and Space choose, Right Arrow
51970
+ * the next row whose name starts with it, Enter and Space choose (Space on a
51971
+ * choice row changes it and leaves the menu open), Right Arrow
51684
51972
  * opens a row's submenu and Left Arrow goes back, the two swapping on a
51685
51973
  * right-to-left page. Left Arrow on the top page does nothing. Escape closes
51686
51974
  * the menu and returns focus to the trigger. Tab closes it and moves on.
@@ -51709,6 +51997,11 @@ export type CustomElements = {
51709
51997
  * Component attributes and properties that can be applied to the element or by using JavaScript.
51710
51998
  *
51711
51999
  * - `back-label`/`backLabel`: The text of the row that returns from a submenu.
52000
+ * - `close-on-select`/`closeOnSelect`: Whether choosing a row closes the menu.
52001
+ *
52002
+ * On by default, and a Space on a choice row leaves the menu open either way.
52003
+ * Write `close-on-select="false"` to keep the menu open after every choice, as
52004
+ * Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this.
51712
52005
  * - `context`: Whether the menu is the trigger's context menu: it opens where the reader
51713
52006
  * asks for one, with a right-click, a long press, Shift+F10 or the menu key.
51714
52007
  * - `label`: Accessible name for the surface.
@@ -53160,6 +53453,8 @@ export type CustomElements = {
53160
53453
  * reader sees the shape of the value before its contents. `0` starts with the
53161
53454
  * root closed; a large number opens everything, which on a big value is the
53162
53455
  * wall of text this exists to avoid.
53456
+ * - `empty-label`/`emptyLabel`: What the tree says while there is no value to show, such as before a
53457
+ * fetch answers. The `empty` slot replaces it.
53163
53458
  * - `filter`: Text the tree is narrowed to: the entries whose key or value holds it,
53164
53459
  * ignoring case, and the branches that lead to them. Empty shows everything.
53165
53460
  * - `filterable`: Whether to show a field that sets `filter`.
@@ -53191,6 +53486,8 @@ export type CustomElements = {
53191
53486
  * who set the property. This button is positioned out of the flow and takes no
53192
53487
  * room, so nothing selects on it, and reflection exists so that a selector can
53193
53488
  * reach a value.
53489
+ * - `no-matches-label`/`noMatchesLabel`: What the tree says while a filter matched no entry. The `empty` slot
53490
+ * replaces it.
53194
53491
  * - `result-label`/`resultLabel`: What a screen reader hears when a filter matches one entry, where
53195
53492
  * `results-label` should not say it. `{count}` is the count.
53196
53493
  * - `results-label`/`resultsLabel`: What a screen reader hears when a filter matches entries. `{count}` is
@@ -53252,6 +53549,12 @@ export type CustomElements = {
53252
53549
  * - `helix-filtered`: The filter field changed `filter`, which now holds the text.
53253
53550
  * - `toggle`: A reader opened or closed a branch, with `newState` and `oldState`. `expanded` holds every open branch.
53254
53551
  *
53552
+ * ## Slots
53553
+ *
53554
+ * Areas where markup can be added to the component.
53555
+ *
53556
+ * - `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.
53557
+ *
53255
53558
  * ## CSS Custom Properties
53256
53559
  *
53257
53560
  * CSS variables available for styling the component.
@@ -53282,6 +53585,7 @@ export type CustomElements = {
53282
53585
  * - `copy-tooltip-right`: The tooltip while it is right of the copy button. Set alongside `copy-tooltip`.
53283
53586
  * - `copy-tooltip-top`: The tooltip while it is above the copy button. Set alongside `copy-tooltip`.
53284
53587
  * - `count`: The number of entries a branch holds.
53588
+ * - `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.
53285
53589
  * - `frame`: The tree and the copy button beside it.
53286
53590
  * - `header`: The bar that holds the label, when there is one.
53287
53591
  * - `key`: A property name or an array index.
@@ -53303,6 +53607,9 @@ export type CustomElements = {
53303
53607
  *
53304
53608
  * These can be used to apply styling when a component is in a given state.
53305
53609
  *
53610
+ * - `empty`: While the tree has no entries to show: no value, or a filter that matched none.
53611
+ * - `filtered`: While `filter` holds text.
53612
+ * - `matched`: While `filter` holds text and matched at least one entry.
53306
53613
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
53307
53614
  */
53308
53615
  "helix-headless-object-inspector": Partial<
@@ -59083,6 +59390,8 @@ export type CustomElements = {
59083
59390
  * | Enter, Space on a sortable heading | Sorts by the column. |
59084
59391
  * | Space on a row, Enter or Space on its checkbox cell | Selects the row, in a `selectable` table. |
59085
59392
  * | Enter or Space on a disclosure cell | Shows or hides the rows under the row, in a table whose rows nest. |
59393
+ * | Right on a disclosure cell | Shows the rows under a shut row, and otherwise moves one cell along the row. Left does, on a right-to-left page. |
59394
+ * | Left on a disclosure cell | Hides the rows under an open row, and moves to the row this one sits under from any other. |
59086
59395
  * | Enter or Space on a grip cell | Picks the row up, or drops it, in a `reorderable` table. Up, Down, Home, and End move a row picked up, and Escape puts it back. |
59087
59396
  * | Down, Up, Page Down, Page Up under `selection-behavior="replace"` | Selects the row it moves to alone. Control or Command with the key moves without selecting. |
59088
59397
  * | Shift with Down or Up | Selects the rows it moves across, in a `selectable` table. |
@@ -59319,6 +59628,7 @@ export type CustomElements = {
59319
59628
  *
59320
59629
  * - `empty`: While there are no rows and none are loading.
59321
59630
  * - `error`: While `error-text` is set.
59631
+ * - `loading`: While `loading` is set, as the rows are on their way.
59322
59632
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
59323
59633
  */
59324
59634
  "helix-headless-table": Partial<
@@ -63602,6 +63912,9 @@ export type CustomElements = {
63602
63912
  * These can be used to apply styling when a component is in a given state.
63603
63913
  *
63604
63914
  * - `current`: The entry that is playing.
63915
+ * - `dragging`: The entry a pointer is dragging, in a `reorderable` playlist.
63916
+ * - `drop-after`: The entry the dragged one would land after, which the drop indicator is drawn under.
63917
+ * - `drop-before`: The entry the dragged one would land before, which the drop indicator is drawn over.
63605
63918
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
63606
63919
  */
63607
63920
  "helix-headless-video-playlist-item": Partial<
@@ -63748,6 +64061,21 @@ export type CustomElements = {
63748
64061
  * the next or the previous entry. The player's previous and next controls
63749
64062
  * move through the entries in the same order the playlist does.
63750
64063
  *
64064
+ * **Moving entries.** `reorderable` lets a reader change the order of the
64065
+ * queue:
64066
+ *
64067
+ * - Alt with Up or Down moves the focused entry a place, and Alt with Home or
64068
+ * End moves it to either end, as the APG's rearrangeable listbox does.
64069
+ * Focus stays on it.
64070
+ * - A pointer drags an entry, with a drop indicator, and the page scrolls near
64071
+ * an edge. A press that does not travel still plays the entry.
64072
+ * - A drop sends `helix-before-reorder`, which you can refuse, and then
64073
+ * `helix-reorder`, whose `keys` hold every entry's `value` in the new order.
64074
+ * **You move the entries**: the playlist moves no element of yours, and the
64075
+ * next entry is the one after the current entry in the order you leave.
64076
+ * - Each move is said in the live region, in words you can change:
64077
+ * `moved-label`, `dropped-label`, `canceled-label`, and `picked-up-label`.
64078
+ *
63751
64079
  * **What a screen reader hears.** A list named by `label`, with a button for
63752
64080
  * each entry. When the playlist moves to another entry, by a press, by the
63753
64081
  * player's controls, or at the end of a clip, a live region says
@@ -63757,17 +64085,29 @@ export type CustomElements = {
63757
64085
  *
63758
64086
  * Component attributes and properties that can be applied to the element or by using JavaScript.
63759
64087
  *
64088
+ * - `canceled-label`/`canceledLabel`: What screen readers hear when a move is put back, in a `reorderable`
64089
+ * playlist. `{name}` is the entry's words.
64090
+ * - `dropped-label`/`droppedLabel`: What screen readers hear when a moved entry is let go, in a `reorderable`
64091
+ * playlist. `{name}` is the entry's words.
63760
64092
  * - `empty-label`/`emptyLabel`: What the playlist says while it has no entries. The `empty` slot replaces it.
63761
64093
  * - `label`: The list's name, read by screen readers.
64094
+ * - `moved-label`/`movedLabel`: What screen readers hear each time a key moves an entry, in a
64095
+ * `reorderable` playlist. `{name}` is the entry's words, `{position}` its
64096
+ * new place, counting from 1, and `{count}` the number of entries.
63762
64097
  * - `no-advance`/`noAdvance`: Stays on an entry when its clip ends, where the playlist would otherwise
63763
64098
  * play the next one. The player's controls, a press, and `next()` still
63764
64099
  * move. `repeat="one"` still plays the entry again.
64100
+ * - `picked-up-label`/`pickedUpLabel`: What screen readers hear when a pointer picks up an entry, in a
64101
+ * `reorderable` playlist. `{name}` is the entry's words.
63765
64102
  * - `playing-label`/`playingLabel`: What the live region says when the playlist moves to another entry.
63766
64103
  * `{title}` is the entry's name.
63767
64104
  *
63768
64105
  * **A move a reader did not make is said.** At the end of a clip the
63769
64106
  * playlist starts the next one, and the only other trace of that is the
63770
64107
  * `aria-current` on a button the reader is not on.
64108
+ * - `reorderable`: Lets a reader move the entries, with Alt and the arrow keys or by
64109
+ * dragging one. The playlist moves no entry itself: you move your entries
64110
+ * on `helix-reorder`.
63771
64111
  * - `repeat`: What happens when an entry ends with no next one to go to. `one` plays the
63772
64112
  * same entry again, and `all` goes from the last entry back to the first.
63773
64113
  * Absent, the playlist stops on the last entry and sends `helix-end`.
@@ -63822,7 +64162,9 @@ export type CustomElements = {
63822
64162
  *
63823
64163
  * - `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.
63824
64164
  * - `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.
64165
+ * - `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.
63825
64166
  * - `helix-end`: The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set.
64167
+ * - `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.
63826
64168
  *
63827
64169
  * ## Slots
63828
64170
  *
@@ -66984,8 +67326,12 @@ export type CustomElementsSolidJs = {
66984
67326
  * region around it.
66985
67327
  *
66986
67328
  * Set `dismissible` for a note a reader may put away, as Shoelace's `closable`
66987
- * alert does. The button fires `helix-dismiss` and the callout stays until a
66988
- * listener removes it, so the page decides whether it comes back.
67329
+ * alert does. The button fires `helix-dismiss`, and unless a listener cancels
67330
+ * it the callout hides itself: `open` turns false, `:state(exiting)` holds
67331
+ * while its exit animations run, and then it is `hidden`. Remove it in your
67332
+ * listener to take it out of the page, or set `open` to show it again, which
67333
+ * holds `:state(entering)` while it comes back. Focus on its dismiss button
67334
+ * moves to the next callout's, or to the tab stop beside it, once it hides.
66989
67335
  *
66990
67336
  * A callout sets a passage apart inside a document and is read where it sits.
66991
67337
  * For page-level chrome above the masthead that is a live region and can be
@@ -67002,6 +67348,10 @@ export type CustomElementsSolidJs = {
67002
67348
  * "Dismiss Scheduled maintenance" says which of several callouts the button
67003
67349
  * takes away, where every button was "Dismiss". A label without `{label}` is
67004
67350
  * read as written.
67351
+ * - `open`: Whether the callout is showing. A dismissal nobody canceled turns it
67352
+ * false and the callout hides itself, and setting it true shows the callout
67353
+ * again. Not reflected: open is the resting state, so an `open` attribute
67354
+ * would appear on markup a server sent without it.
67005
67355
  * - `tone`: What kind of attention the passage needs.
67006
67356
  *
67007
67357
  * `tone` is the axis for what a thing means, and this is a subset of it: a
@@ -67044,7 +67394,7 @@ export type CustomElementsSolidJs = {
67044
67394
  *
67045
67395
  * Events that will be emitted by the component.
67046
67396
  *
67047
- * - `helix-dismiss`: The dismiss button was pressed. The callout does not remove itself, so remove it in response. Cancelable.
67397
+ * - `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.
67048
67398
  *
67049
67399
  * ## Slots
67050
67400
  *
@@ -67059,7 +67409,8 @@ export type CustomElementsSolidJs = {
67059
67409
  *
67060
67410
  * Methods that can be called to access component functionality.
67061
67411
  *
67062
- * - `dismiss() => boolean`: Fires `helix-dismiss`, and returns `false` if a listener cancels it.
67412
+ * - `dismiss() => boolean`: Hides the callout once a dismissal stands, unless the page removed it in
67413
+ * its listener, which is the page's answer and leaves `open` as it was.
67063
67414
  *
67064
67415
  * ## CSS Parts
67065
67416
  *
@@ -67075,6 +67426,11 @@ export type CustomElementsSolidJs = {
67075
67426
  *
67076
67427
  * These can be used to apply styling when a component is in a given state.
67077
67428
  *
67429
+ * - `closed`: While `open` is false: the callout was dismissed, and is leaving or hidden.
67430
+ * - `entering`: While a callout shown again by `open` runs its entrance animations.
67431
+ * - `exiting`: While a dismissed callout runs its exit animations, before it is hidden.
67432
+ * - `has-heading`: Something is slotted into `heading`.
67433
+ * - `has-icon`: An icon of your own is slotted into `icon`, in place of the tone's.
67078
67434
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
67079
67435
  */
67080
67436
  "helix-headless-callout": Partial<
@@ -67412,6 +67768,17 @@ export type CustomElementsSolidJs = {
67412
67768
  * connection is a new element, and React discards an element the board adds to
67413
67769
  * its markup on the next render, so you write the connection.
67414
67770
  *
67771
+ * **`edgeRoute` draws the connections' lines your own way**: a function from
67772
+ * where a line leaves and arrives, and the sides it does, to its SVG path, for
67773
+ * a route such as one that bends around the cards between. What it returns
67774
+ * is the line drawn, the line pressed and focused, and the one an arrowhead
67775
+ * sits at the end of. Nothing back draws the board's own.
67776
+ *
67777
+ * Add `minimap` to `controls` for a picture of the whole board in a corner:
67778
+ * each card as a box, and a frame around what is on screen. A press or a drag
67779
+ * on it brings that place to the middle of the view. It is for a pointer, and
67780
+ * a screen reader skips it: the arrow keys and `show()` reach every card.
67781
+ *
67415
67782
  * Cards and connections are `helix-canvas-node` and `helix-canvas-edge`
67416
67783
  * elements, so they are in the served markup whichever renderer wrote them. The
67417
67784
  * library fetches nothing, and an array passed to an element is missing from
@@ -67623,6 +67990,12 @@ export type CustomElementsSolidJs = {
67623
67990
  * - `pan-up-label`/`panUpLabel`: The pan up button's label.
67624
67991
  * - `zoom-in-label`/`zoomInLabel`: The zoom in button's label.
67625
67992
  * - `zoom-out-label`/`zoomOutLabel`: The zoom out button's label.
67993
+ * - `edgeRoute`: Draws every connection's line: a function from where it leaves and
67994
+ * arrives, and the sides it does, to its SVG path and where its label sits.
67995
+ *
67996
+ * Absent, or returning nothing for a connection, draws the board's own
67997
+ * route. A function that throws draws the board's own too, and the error is
67998
+ * reported to the page as an uncaught one. Set it as a property. (property only)
67626
67999
  * - `view`: The board's current view: the document's point at the middle of the view,
67627
68000
  * and the zoom.
67628
68001
  *
@@ -67763,6 +68136,9 @@ export type CustomElementsSolidJs = {
67763
68136
  * - `label-editor`: The field for editing a connection's label or a group's name, placed over that text.
67764
68137
  * - `live`: A live region that screen readers announce while a connection is being made.
67765
68138
  * - `marquee`: The box a Shift-drag across the empty board draws, which selects the cards it touches.
68139
+ * - `minimap`: The picture of the whole board, under `controls="minimap"`.
68140
+ * - `minimap-node`: One card in the minimap.
68141
+ * - `minimap-view`: The frame in the minimap around what is on screen.
67766
68142
  * - `pan-down`: The button that moves the board down.
67767
68143
  * - `pan-end`: The button that moves the board toward the end of a line of text: right in English.
67768
68144
  * - `pan-start`: The button that moves the board toward the start of a line of text: left in English.
@@ -69311,9 +69687,14 @@ export type CustomElementsSolidJs = {
69311
69687
  * removed. The block never computes a diff itself. Line numbers come from the
69312
69688
  * hunk headers and are hidden from the accessibility tree. Changed lines are
69313
69689
  * `<ins>` and `<del>` with the `+` and `-` kept as text, so the change does not
69314
- * depend on color. Each file in the patch is its own block under its own name,
69690
+ * depend on color. Where a removed line is paired with the added line that
69691
+ * replaced it, the words each does not share with the other are the `changed`
69692
+ * part, so the eye goes to what changed within the line. Each file in the patch is its own block under its own name,
69315
69693
  * and its copy button copies the new version of the file. `variant="split"`
69316
69694
  * shows the old version beside the new, each removal opposite its replacement.
69695
+ * `context-lines` folds each long run of unchanged lines, keeping that many
69696
+ * beside each change, behind a button that shows them and hides them again,
69697
+ * as a code host draws a diff written with more context than a reader needs.
69317
69698
  *
69318
69699
  * **A block that scrolls is a tab stop.** While its lines run past its width or
69319
69700
  * its cap, the scroller is a region named for the block, such as "Code,
@@ -69343,6 +69724,9 @@ export type CustomElementsSolidJs = {
69343
69724
  * - `code-name-label`/`codeNameLabel`: The name of a block that scrolls, where the block has a name. `{code}` is
69344
69725
  * `code-label` and `{name}` the block's name.
69345
69726
  * - `collapse-label`/`collapseLabel`: The expand button's words while the block shows every line.
69727
+ * - `context-lines`/`contextLines`: In a diff, how many unchanged lines to keep beside each change. Each
69728
+ * longer run of unchanged lines is folded behind a button that shows it.
69729
+ * Unset shows every line the diff holds.
69346
69730
  * - `copied-label`/`copiedLabel`: The copy button's name and tooltip text after a copy.
69347
69731
  * - `copy-label`/`copyLabel`: The copy button's name and tooltip text before a copy.
69348
69732
  *
@@ -69362,6 +69746,9 @@ export type CustomElementsSolidJs = {
69362
69746
  * the button is drawn only while the cap hides something, measured as the
69363
69747
  * block lays out. Not for a diff, whose files each scroll on their own.
69364
69748
  * - `expand-label`/`expandLabel`: The expand button's words while the cap hides lines.
69749
+ * - `hide-unchanged-label`/`hideUnchangedLabel`: The words of a button that hides a run of unchanged lines it showed, in a
69750
+ * diff with `context-lines`. `{count}` is how many, and each language
69751
+ * writes the forms it has.
69365
69752
  * - `label`: The block's name, usually a file name, drawn in the header.
69366
69753
  *
69367
69754
  * Absent, the block is named by `language` where there is one. In a diff,
@@ -69401,6 +69788,8 @@ export type CustomElementsSolidJs = {
69401
69788
  * `no-copy=""` on hosts that never asked for one, and the rule about a
69402
69789
  * reflected property taking no default is satisfied by the default being
69403
69790
  * `false`.
69791
+ * - `show-unchanged-label`/`showUnchangedLabel`: The words of a button that shows a folded run of unchanged lines, in a
69792
+ * diff with `context-lines`. `{count}` is how many.
69404
69793
  * - `variant`: How a diff's two versions are arranged. It has no effect without `diff`.
69405
69794
  *
69406
69795
  * Absent is unified, each removal above its replacement, which fits any
@@ -69491,6 +69880,7 @@ export type CustomElementsSolidJs = {
69491
69880
  * - `actions`: The box in the header that holds the `actions` slot, drawn while something is slotted there.
69492
69881
  * - `added`: In a diff, a line only the new version has, an `<ins>`.
69493
69882
  * - `block`: The scrolling `<pre>`.
69883
+ * - `changed`: In a diff, the words of a changed line that the line opposite it does not have, inside its `text`.
69494
69884
  * - `code`: The `<code>` inside it.
69495
69885
  * - `context`: In a diff, a line both versions share.
69496
69886
  * - `copy`: The copy button. It sits in the header when there is one, and beside the code otherwise.
@@ -69512,6 +69902,7 @@ export type CustomElementsSolidJs = {
69512
69902
  * - `expand`: The button under a capped block that shows every line, and fewer again. Drawn when `expandable` is set and the cap hides something.
69513
69903
  * - `file`: In a diff, one file's header and block.
69514
69904
  * - `filler`: In a split diff, the empty row opposite a line the other side does not have.
69905
+ * - `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`.
69515
69906
  * - `frame`: The code, and the copy button beside it where there is no header.
69516
69907
  * - `gutter`: The line numbers beside the code, shown when `line-numbers` is set.
69517
69908
  * - `header`: The bar that holds the name and the copy button, shown when there is a name.
@@ -69984,8 +70375,10 @@ export type CustomElementsSolidJs = {
69984
70375
  * gray after you drag to the bottom of the square and back.
69985
70376
  *
69986
70377
  * The square is one tab stop. In it, the up and down arrows move brightness
69987
- * and the left and right arrows move saturation, and PageUp and PageDown move
69988
- * brightness by ten. The picker sends `input` as the color moves and `change`
70378
+ * and the left and right arrows move saturation, by ten with Shift. PageUp and
70379
+ * PageDown move brightness by ten, and Home and End move saturation by ten,
70380
+ * turned on a right-to-left page as the arrows are, as React Aria's ColorArea
70381
+ * does. The picker sends `input` as the color moves and `change`
69989
70382
  * when a drag, a key, a typed value or a preset settles it, as
69990
70383
  * `<input type="color">` does.
69991
70384
  *
@@ -70398,6 +70791,7 @@ export type CustomElementsSolidJs = {
70398
70791
  * | Key | What it does |
70399
70792
  * |---|---|
70400
70793
  * | Down, Up | On a closed field, opens the list on the chosen option, or the first or the last. In the open list, moves the highlight, round from the last option to the first. |
70794
+ * | Alt with Down, Alt with Up | Opens the list without moving the highlight, and closes it, choosing nothing. |
70401
70795
  * | Page Down, Page Up | In the open list, moves the highlight by as many options as the list shows at once. |
70402
70796
  * | Enter | Chooses the highlighted option. With nothing left in the list, creates what was typed with `creatable`, or takes it with `allows-custom-value`. On a closed field, submits the form. |
70403
70797
  * | Escape | Closes the list and puts the chosen words back. On a closed field, a second Escape clears a single choice. |
@@ -71755,6 +72149,7 @@ export type CustomElementsSolidJs = {
71755
72149
  *
71756
72150
  * - `empty`: While there are no rows to show and none are loading.
71757
72151
  * - `error`: While `error-text` is set.
72152
+ * - `loading`: While `loading` is set, as the rows are on their way.
71758
72153
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
71759
72154
  */
71760
72155
  "helix-headless-data-table": Partial<
@@ -79583,7 +79978,8 @@ export type CustomElementsSolidJs = {
79583
79978
  * same `group`, such as a route and its dotted legs, share one tile. A tile
79584
79979
  * sends `helix-before-toggle` from the layer first, so you can store the
79585
79980
  * choice or refuse it, and `helix-toggle` from it once `hidden` holds the
79586
- * choice.
79981
+ * choice. Escape closes the menu and returns focus to its button, and the menu
79982
+ * closes when focus moves on from it or a press lands outside the map.
79587
79983
  *
79588
79984
  * Imagery, a `helix-map-raster` with `ground`, is a map type and not a tile.
79589
79985
  * The menu opens with a card for each type, Standard, Hybrid, and Satellite,
@@ -80254,16 +80650,22 @@ export type CustomElementsSolidJs = {
80254
80650
  * - `checked` makes the row a choice.
80255
80651
  * - With neither, the row is a command.
80256
80652
  *
80257
- * The role follows the kind. A row with `checked` is `menuitemcheckbox` with
80258
- * `aria-checked`, and `exclusive` makes it `menuitemradio`, for a set where
80259
- * only one can be on. A row that opens a page keeps `menuitem` and sets
80260
- * `aria-haspopup`.
80653
+ * The role follows the kind. A row with `checkable` or `checked` is
80654
+ * `menuitemcheckbox` with `aria-checked`, and an `exclusive` row is
80655
+ * `menuitemradio`, for a set where only one can be on. A row that opens a page
80656
+ * keeps `menuitem` and sets `aria-haspopup`.
80261
80657
  *
80262
80658
  * Choosing a choice row checks or unchecks it before `helix-select` is sent,
80263
80659
  * so a listener reads the new `checked`. An `exclusive` row turns on and turns
80264
80660
  * off the `exclusive` rows next to it. Cancel `helix-before-toggle` to keep a
80265
80661
  * row as it is and set `checked` yourself.
80266
80662
  *
80663
+ * Space on a choice row changes it and leaves the menu open, so a reader can
80664
+ * set several in a row, as the APG's menu does. Enter and a press change it and
80665
+ * close the menu. `close-on-select="false"` on the row keeps the menu open after
80666
+ * any choice of it, and `close-on-select` on the row closes it after a Space as
80667
+ * well.
80668
+ *
80267
80669
  * The menu sets whether the row's page is showing as a property, never as an
80268
80670
  * attribute. An attribute written onto your element after it upgrades causes a
80269
80671
  * hydration mismatch.
@@ -80297,7 +80699,8 @@ export type CustomElementsSolidJs = {
80297
80699
  * as a checkbox tells a reader its siblings are commands, which is the one
80298
80700
  * thing they are not.
80299
80701
  *
80300
- * `checked` implies it, so a row that is on never has to say both.
80702
+ * `checked` and `exclusive` imply it, so a row that is on, or one of a set,
80703
+ * never has to say both.
80301
80704
  *
80302
80705
  * Choosing the row checks or unchecks it, after a `helix-before-toggle` that
80303
80706
  * you can cancel.
@@ -80305,6 +80708,11 @@ export type CustomElementsSolidJs = {
80305
80708
  *
80306
80709
  * The row changes it when it is chosen. Not reflected: the attribute is the
80307
80710
  * state you start the row in, and `:state(checked)` carries the current one.
80711
+ * - `close-on-select`/`closeOnSelect`: Whether choosing the row closes the menu.
80712
+ *
80713
+ * Unset takes the menu's `close-on-select`, which is on, and keeps the menu
80714
+ * open after a Space on a choice row. Write `close-on-select="false"` for a
80715
+ * row that changes something the reader is watching, such as a zoom step.
80308
80716
  * - `disabled`: Whether the row is disabled, so it cannot be chosen.
80309
80717
  * - `download`: Whether the link downloads the file when the row is chosen.
80310
80718
  *
@@ -80319,8 +80727,7 @@ export type CustomElementsSolidJs = {
80319
80727
  * it checked. `menuitemradio` tells a reader which kind of set they are in,
80320
80728
  * where `menuitemcheckbox` says every row is independent.
80321
80729
  *
80322
- * Meaningless without `checkable`, since a row that cannot be ticked is not
80323
- * one of a set of anything.
80730
+ * It makes the row a choice, so it needs no `checkable` beside it.
80324
80731
  * - `href`: The URL the row links to. Setting it renders the row as a link.
80325
80732
  *
80326
80733
  * **The row itself becomes an `<a>`, and the role goes with it.** A
@@ -80479,7 +80886,8 @@ export type CustomElementsSolidJs = {
80479
80886
  * Keys: Enter, Space or Down Arrow on the trigger opens the menu on its first
80480
80887
  * row, and Up Arrow on its last. In the menu, Up and Down Arrow move between
80481
80888
  * rows, Home and End go to the first and the last, a typed letter moves to
80482
- * the next row whose name starts with it, Enter and Space choose, Right Arrow
80889
+ * the next row whose name starts with it, Enter and Space choose (Space on a
80890
+ * choice row changes it and leaves the menu open), Right Arrow
80483
80891
  * opens a row's submenu and Left Arrow goes back, the two swapping on a
80484
80892
  * right-to-left page. Left Arrow on the top page does nothing. Escape closes
80485
80893
  * the menu and returns focus to the trigger. Tab closes it and moves on.
@@ -80508,6 +80916,11 @@ export type CustomElementsSolidJs = {
80508
80916
  * Component attributes and properties that can be applied to the element or by using JavaScript.
80509
80917
  *
80510
80918
  * - `back-label`/`backLabel`: The text of the row that returns from a submenu.
80919
+ * - `close-on-select`/`closeOnSelect`: Whether choosing a row closes the menu.
80920
+ *
80921
+ * On by default, and a Space on a choice row leaves the menu open either way.
80922
+ * Write `close-on-select="false"` to keep the menu open after every choice, as
80923
+ * Ark UI's `closeOnSelect` does. A row's own `close-on-select` wins over this.
80511
80924
  * - `context`: Whether the menu is the trigger's context menu: it opens where the reader
80512
80925
  * asks for one, with a right-click, a long press, Shift+F10 or the menu key.
80513
80926
  * - `label`: Accessible name for the surface.
@@ -81971,6 +82384,8 @@ export type CustomElementsSolidJs = {
81971
82384
  * reader sees the shape of the value before its contents. `0` starts with the
81972
82385
  * root closed; a large number opens everything, which on a big value is the
81973
82386
  * wall of text this exists to avoid.
82387
+ * - `empty-label`/`emptyLabel`: What the tree says while there is no value to show, such as before a
82388
+ * fetch answers. The `empty` slot replaces it.
81974
82389
  * - `filter`: Text the tree is narrowed to: the entries whose key or value holds it,
81975
82390
  * ignoring case, and the branches that lead to them. Empty shows everything.
81976
82391
  * - `filterable`: Whether to show a field that sets `filter`.
@@ -82002,6 +82417,8 @@ export type CustomElementsSolidJs = {
82002
82417
  * who set the property. This button is positioned out of the flow and takes no
82003
82418
  * room, so nothing selects on it, and reflection exists so that a selector can
82004
82419
  * reach a value.
82420
+ * - `no-matches-label`/`noMatchesLabel`: What the tree says while a filter matched no entry. The `empty` slot
82421
+ * replaces it.
82005
82422
  * - `result-label`/`resultLabel`: What a screen reader hears when a filter matches one entry, where
82006
82423
  * `results-label` should not say it. `{count}` is the count.
82007
82424
  * - `results-label`/`resultsLabel`: What a screen reader hears when a filter matches entries. `{count}` is
@@ -82063,6 +82480,12 @@ export type CustomElementsSolidJs = {
82063
82480
  * - `helix-filtered`: The filter field changed `filter`, which now holds the text.
82064
82481
  * - `toggle`: A reader opened or closed a branch, with `newState` and `oldState`. `expanded` holds every open branch.
82065
82482
  *
82483
+ * ## Slots
82484
+ *
82485
+ * Areas where markup can be added to the component.
82486
+ *
82487
+ * - `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.
82488
+ *
82066
82489
  * ## CSS Custom Properties
82067
82490
  *
82068
82491
  * CSS variables available for styling the component.
@@ -82093,6 +82516,7 @@ export type CustomElementsSolidJs = {
82093
82516
  * - `copy-tooltip-right`: The tooltip while it is right of the copy button. Set alongside `copy-tooltip`.
82094
82517
  * - `copy-tooltip-top`: The tooltip while it is above the copy button. Set alongside `copy-tooltip`.
82095
82518
  * - `count`: The number of entries a branch holds.
82519
+ * - `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.
82096
82520
  * - `frame`: The tree and the copy button beside it.
82097
82521
  * - `header`: The bar that holds the label, when there is one.
82098
82522
  * - `key`: A property name or an array index.
@@ -82114,6 +82538,9 @@ export type CustomElementsSolidJs = {
82114
82538
  *
82115
82539
  * These can be used to apply styling when a component is in a given state.
82116
82540
  *
82541
+ * - `empty`: While the tree has no entries to show: no value, or a filter that matched none.
82542
+ * - `filtered`: While `filter` holds text.
82543
+ * - `matched`: While `filter` holds text and matched at least one entry.
82117
82544
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
82118
82545
  */
82119
82546
  "helix-headless-object-inspector": Partial<
@@ -87972,6 +88399,8 @@ export type CustomElementsSolidJs = {
87972
88399
  * | Enter, Space on a sortable heading | Sorts by the column. |
87973
88400
  * | Space on a row, Enter or Space on its checkbox cell | Selects the row, in a `selectable` table. |
87974
88401
  * | Enter or Space on a disclosure cell | Shows or hides the rows under the row, in a table whose rows nest. |
88402
+ * | Right on a disclosure cell | Shows the rows under a shut row, and otherwise moves one cell along the row. Left does, on a right-to-left page. |
88403
+ * | Left on a disclosure cell | Hides the rows under an open row, and moves to the row this one sits under from any other. |
87975
88404
  * | Enter or Space on a grip cell | Picks the row up, or drops it, in a `reorderable` table. Up, Down, Home, and End move a row picked up, and Escape puts it back. |
87976
88405
  * | Down, Up, Page Down, Page Up under `selection-behavior="replace"` | Selects the row it moves to alone. Control or Command with the key moves without selecting. |
87977
88406
  * | Shift with Down or Up | Selects the rows it moves across, in a `selectable` table. |
@@ -88208,6 +88637,7 @@ export type CustomElementsSolidJs = {
88208
88637
  *
88209
88638
  * - `empty`: While there are no rows and none are loading.
88210
88639
  * - `error`: While `error-text` is set.
88640
+ * - `loading`: While `loading` is set, as the rows are on their way.
88211
88641
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
88212
88642
  */
88213
88643
  "helix-headless-table": Partial<
@@ -92555,6 +92985,9 @@ export type CustomElementsSolidJs = {
92555
92985
  * These can be used to apply styling when a component is in a given state.
92556
92986
  *
92557
92987
  * - `current`: The entry that is playing.
92988
+ * - `dragging`: The entry a pointer is dragging, in a `reorderable` playlist.
92989
+ * - `drop-after`: The entry the dragged one would land after, which the drop indicator is drawn under.
92990
+ * - `drop-before`: The entry the dragged one would land before, which the drop indicator is drawn over.
92558
92991
  * - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
92559
92992
  */
92560
92993
  "helix-headless-video-playlist-item": Partial<
@@ -92703,6 +93136,21 @@ export type CustomElementsSolidJs = {
92703
93136
  * the next or the previous entry. The player's previous and next controls
92704
93137
  * move through the entries in the same order the playlist does.
92705
93138
  *
93139
+ * **Moving entries.** `reorderable` lets a reader change the order of the
93140
+ * queue:
93141
+ *
93142
+ * - Alt with Up or Down moves the focused entry a place, and Alt with Home or
93143
+ * End moves it to either end, as the APG's rearrangeable listbox does.
93144
+ * Focus stays on it.
93145
+ * - A pointer drags an entry, with a drop indicator, and the page scrolls near
93146
+ * an edge. A press that does not travel still plays the entry.
93147
+ * - A drop sends `helix-before-reorder`, which you can refuse, and then
93148
+ * `helix-reorder`, whose `keys` hold every entry's `value` in the new order.
93149
+ * **You move the entries**: the playlist moves no element of yours, and the
93150
+ * next entry is the one after the current entry in the order you leave.
93151
+ * - Each move is said in the live region, in words you can change:
93152
+ * `moved-label`, `dropped-label`, `canceled-label`, and `picked-up-label`.
93153
+ *
92706
93154
  * **What a screen reader hears.** A list named by `label`, with a button for
92707
93155
  * each entry. When the playlist moves to another entry, by a press, by the
92708
93156
  * player's controls, or at the end of a clip, a live region says
@@ -92712,17 +93160,29 @@ export type CustomElementsSolidJs = {
92712
93160
  *
92713
93161
  * Component attributes and properties that can be applied to the element or by using JavaScript.
92714
93162
  *
93163
+ * - `canceled-label`/`canceledLabel`: What screen readers hear when a move is put back, in a `reorderable`
93164
+ * playlist. `{name}` is the entry's words.
93165
+ * - `dropped-label`/`droppedLabel`: What screen readers hear when a moved entry is let go, in a `reorderable`
93166
+ * playlist. `{name}` is the entry's words.
92715
93167
  * - `empty-label`/`emptyLabel`: What the playlist says while it has no entries. The `empty` slot replaces it.
92716
93168
  * - `label`: The list's name, read by screen readers.
93169
+ * - `moved-label`/`movedLabel`: What screen readers hear each time a key moves an entry, in a
93170
+ * `reorderable` playlist. `{name}` is the entry's words, `{position}` its
93171
+ * new place, counting from 1, and `{count}` the number of entries.
92717
93172
  * - `no-advance`/`noAdvance`: Stays on an entry when its clip ends, where the playlist would otherwise
92718
93173
  * play the next one. The player's controls, a press, and `next()` still
92719
93174
  * move. `repeat="one"` still plays the entry again.
93175
+ * - `picked-up-label`/`pickedUpLabel`: What screen readers hear when a pointer picks up an entry, in a
93176
+ * `reorderable` playlist. `{name}` is the entry's words.
92720
93177
  * - `playing-label`/`playingLabel`: What the live region says when the playlist moves to another entry.
92721
93178
  * `{title}` is the entry's name.
92722
93179
  *
92723
93180
  * **A move a reader did not make is said.** At the end of a clip the
92724
93181
  * playlist starts the next one, and the only other trace of that is the
92725
93182
  * `aria-current` on a button the reader is not on.
93183
+ * - `reorderable`: Lets a reader move the entries, with Alt and the arrow keys or by
93184
+ * dragging one. The playlist moves no entry itself: you move your entries
93185
+ * on `helix-reorder`.
92726
93186
  * - `repeat`: What happens when an entry ends with no next one to go to. `one` plays the
92727
93187
  * same entry again, and `all` goes from the last entry back to the first.
92728
93188
  * Absent, the playlist stops on the last entry and sends `helix-end`.
@@ -92777,7 +93237,9 @@ export type CustomElementsSolidJs = {
92777
93237
  *
92778
93238
  * - `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.
92779
93239
  * - `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.
93240
+ * - `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.
92780
93241
  * - `helix-end`: The last entry finished playing, and the playlist stopped there. Not sent while `repeat` is set.
93242
+ * - `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.
92781
93243
  *
92782
93244
  * ## Slots
92783
93245
  *