@fusion.dev/helix-headless 0.171.0 → 0.173.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +1350 -124
- package/dist/button-group/root/button-group-root.d.ts +30 -0
- package/dist/button-group/root/button-group-root.js +50 -4
- package/dist/canvas/root/canvas-root.d.ts +7 -0
- package/dist/canvas/root/canvas-root.js +7 -0
- package/dist/chat/composer/chat-composer.d.ts +28 -1
- package/dist/chat/composer/chat-composer.js +22 -3
- package/dist/chat/root/chat-root.d.ts +38 -2
- package/dist/chat/root/chat-root.js +38 -1
- package/dist/color-input/root/color-input-root.d.ts +15 -1
- package/dist/color-input/root/color-input-root.js +19 -1
- package/dist/color-picker/root/color-picker-root.d.ts +5 -1
- package/dist/color-picker/root/color-picker-root.js +1 -1
- package/dist/copy-button/root/copy-button-root.d.ts +43 -3
- package/dist/copy-button/root/copy-button-root.js +49 -3
- package/dist/data-table/root/data-table-root.d.ts +5 -1
- package/dist/data-table/root/data-table-root.js +1 -0
- package/dist/dialog/root/dialog-root.js +1 -0
- package/dist/drawer/root/drawer-root.d.ts +4 -0
- package/dist/drawer/root/drawer-root.js +1 -0
- package/dist/element-events.generated.js +3 -0
- package/dist/graph/root/graph-root.d.ts +22 -0
- package/dist/graph/root/graph-root.js +21 -5
- package/dist/lightbox/root/lightbox-root.js +1 -0
- package/dist/list/root/list-root.d.ts +6 -1
- package/dist/list/root/list-root.js +3 -2
- package/dist/listbox/root/listbox-root.d.ts +2 -1
- package/dist/listbox/root/listbox-root.js +3 -2
- package/dist/menu/item/menu-item.d.ts +2 -0
- package/dist/menu/item/menu-item.js +2 -0
- package/dist/menu/root/menu-root.d.ts +73 -12
- package/dist/menu/root/menu-root.js +103 -7
- package/dist/outline/root/outline-root.d.ts +57 -0
- package/dist/outline/root/outline-root.js +98 -29
- package/dist/popover/root/popover-root.d.ts +59 -6
- package/dist/popover/root/popover-root.js +51 -3
- package/dist/select/root/select-root.d.ts +2 -2
- package/dist/select/root/select-root.js +2 -2
- package/dist/speed-dial/root/speed-dial-root.d.ts +14 -0
- package/dist/speed-dial/root/speed-dial-root.js +34 -2
- package/dist/splitter/root/splitter-root.d.ts +25 -2
- package/dist/splitter/root/splitter-root.js +19 -4
- package/dist/tag/group/tag-group.d.ts +8 -1
- package/dist/tag/group/tag-group.js +8 -0
- package/dist/tag/root/tag-root.d.ts +12 -0
- package/dist/tag/root/tag-root.js +12 -0
- package/dist/textarea/root/textarea-root.d.ts +8 -0
- package/dist/textarea/root/textarea-root.js +16 -0
- package/dist/time-picker/root/time-picker-root.d.ts +14 -0
- package/dist/time-picker/root/time-picker-root.js +8 -1
- package/dist/timeline/item/timeline-item.d.ts +5 -1
- package/dist/timeline/item/timeline-item.js +9 -0
- package/dist/timeline/root/timeline-root.d.ts +23 -0
- package/dist/timeline/root/timeline-root.js +17 -3
- package/dist/tooltip/root/tooltip-root.d.ts +10 -0
- package/dist/tooltip/root/tooltip-root.js +14 -2
- package/dist/virtual-list/reorder/index.d.ts +1 -0
- package/dist/virtual-list/reorder/index.js +4 -0
- package/dist/virtual-list/reorder/virtual-list-reorder.d.ts +86 -0
- package/dist/virtual-list/reorder/virtual-list-reorder.js +193 -0
- package/dist/virtual-list/root/virtual-list-root.d.ts +49 -11
- package/dist/virtual-list/root/virtual-list-root.js +10 -1
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +880 -48
- package/types/vue.d.ts +174 -19
- package/types/words.d.ts +22 -0
package/types/jsx.d.ts
CHANGED
|
@@ -2410,6 +2410,9 @@ export type HelixHeadlessButtonGroupHelixBeforeChangeElementEvent =
|
|
|
2410
2410
|
HelixHeadlessButtonGroupElementEvent<HelixBeforeChangeEvent>;
|
|
2411
2411
|
|
|
2412
2412
|
export type HelixHeadlessButtonGroupProps = {
|
|
2413
|
+
/** Disables every button in the group, and says so on the group with
|
|
2414
|
+
`aria-disabled`. Reflected, so a stylesheet can select on it. */
|
|
2415
|
+
disabled?: (HelixHeadlessButtonGroup["disabled"]) | undefined;
|
|
2413
2416
|
/** Keeps at least one button pressed once one is, as React Aria's
|
|
2414
2417
|
`disallowEmptySelection`: a press that would leave none pressed is
|
|
2415
2418
|
refused. */
|
|
@@ -2459,6 +2462,9 @@ A button's own `value` names it, so a value holds no comma.
|
|
|
2459
2462
|
The attribute is the seed, and a press changes the property, which does
|
|
2460
2463
|
not reflect, as a native control's `value` does not. */
|
|
2461
2464
|
value?: (HelixHeadlessButtonGroup["value"]) | undefined;
|
|
2465
|
+
/** The pressed values as a list, in a selection mode, and an empty list
|
|
2466
|
+
otherwise. Written, it presses exactly those buttons. */
|
|
2467
|
+
values?: (HelixHeadlessButtonGroup["values"]) | undefined;
|
|
2462
2468
|
|
|
2463
2469
|
/** Fired after a press changes `value`, in a selection mode. */
|
|
2464
2470
|
onchange?: ((e: HelixHeadlessButtonGroupElementEvent) => void) | undefined;
|
|
@@ -2469,6 +2475,9 @@ not reflect, as a native control's `value` does not. */
|
|
|
2469
2475
|
};
|
|
2470
2476
|
|
|
2471
2477
|
export type HelixHeadlessButtonGroupSolidJsProps = {
|
|
2478
|
+
/** Disables every button in the group, and says so on the group with
|
|
2479
|
+
`aria-disabled`. Reflected, so a stylesheet can select on it. */
|
|
2480
|
+
"prop:disabled"?: (HelixHeadlessButtonGroup["disabled"]) | undefined;
|
|
2472
2481
|
/** Keeps at least one button pressed once one is, as React Aria's
|
|
2473
2482
|
`disallowEmptySelection`: a press that would leave none pressed is
|
|
2474
2483
|
refused. */
|
|
@@ -2518,6 +2527,9 @@ A button's own `value` names it, so a value holds no comma.
|
|
|
2518
2527
|
The attribute is the seed, and a press changes the property, which does
|
|
2519
2528
|
not reflect, as a native control's `value` does not. */
|
|
2520
2529
|
"prop:value"?: (HelixHeadlessButtonGroup["value"]) | undefined;
|
|
2530
|
+
/** The pressed values as a list, in a selection mode, and an empty list
|
|
2531
|
+
otherwise. Written, it presses exactly those buttons. */
|
|
2532
|
+
"prop:values"?: (HelixHeadlessButtonGroup["values"]) | undefined;
|
|
2521
2533
|
/** Fired after a press changes `value`, in a selection mode. */
|
|
2522
2534
|
"on:change"?: ((e: HelixHeadlessButtonGroupElementEvent) => void) | undefined;
|
|
2523
2535
|
/** Fired before a press changes `value`, with the value it would leave in `detail.value`. Cancelable: call `preventDefault()` to keep the buttons as they are. */
|
|
@@ -3468,6 +3480,9 @@ Third", rather than with a comma this component chose. */
|
|
|
3468
3480
|
/** The text read with a card that has connections both ways. `{leadsTo}` is
|
|
3469
3481
|
`leads-to-label` and `{comesFrom}` is `comes-from-label`, each filled in. */
|
|
3470
3482
|
linkedLabel?: (HelixHeadlessCanvas["linkedLabel"]) | undefined;
|
|
3483
|
+
/** Marks the board as busy while its document arrives: the board is
|
|
3484
|
+
`aria-busy`, and the `loading` slot is shown. */
|
|
3485
|
+
loading?: (HelixHeadlessCanvas["loading"]) | undefined;
|
|
3471
3486
|
/** What screen readers hear after a key moves a card, with `{name}` for the
|
|
3472
3487
|
card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
3473
3488
|
|
|
@@ -3945,6 +3960,9 @@ Third", rather than with a comma this component chose. */
|
|
|
3945
3960
|
/** The text read with a card that has connections both ways. `{leadsTo}` is
|
|
3946
3961
|
`leads-to-label` and `{comesFrom}` is `comes-from-label`, each filled in. */
|
|
3947
3962
|
"prop:linkedLabel"?: (HelixHeadlessCanvas["linkedLabel"]) | undefined;
|
|
3963
|
+
/** Marks the board as busy while its document arrives: the board is
|
|
3964
|
+
`aria-busy`, and the `loading` slot is shown. */
|
|
3965
|
+
"prop:loading"?: (HelixHeadlessCanvas["loading"]) | undefined;
|
|
3948
3966
|
/** What screen readers hear after a key moves a card, with `{name}` for the
|
|
3949
3967
|
card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
3950
3968
|
|
|
@@ -4966,6 +4984,10 @@ export type HelixHeadlessChatComposerHelixTypingElementEvent =
|
|
|
4966
4984
|
HelixHeadlessChatComposerElementEvent<HelixTypingEvent>;
|
|
4967
4985
|
|
|
4968
4986
|
export type HelixHeadlessChatComposerProps = {
|
|
4987
|
+
/** A message about the draft, shown under the field. While set, the composer
|
|
4988
|
+
is invalid, does not send, and does not submit, as a field's `feedback`
|
|
4989
|
+
does, and the message is announced as it appears. */
|
|
4990
|
+
feedback?: (HelixHeadlessChatComposer["feedback"]) | undefined;
|
|
4969
4991
|
/** The field's name, read by screen readers. */
|
|
4970
4992
|
label?: (HelixHeadlessChatComposer["label"]) | undefined;
|
|
4971
4993
|
/** The most characters a draft can have. The field stops taking more. */
|
|
@@ -5054,6 +5076,10 @@ Here rather than on each control. */
|
|
|
5054
5076
|
};
|
|
5055
5077
|
|
|
5056
5078
|
export type HelixHeadlessChatComposerSolidJsProps = {
|
|
5079
|
+
/** A message about the draft, shown under the field. While set, the composer
|
|
5080
|
+
is invalid, does not send, and does not submit, as a field's `feedback`
|
|
5081
|
+
does, and the message is announced as it appears. */
|
|
5082
|
+
"prop:feedback"?: (HelixHeadlessChatComposer["feedback"]) | undefined;
|
|
5057
5083
|
/** The field's name, read by screen readers. */
|
|
5058
5084
|
"prop:label"?: (HelixHeadlessChatComposer["label"]) | undefined;
|
|
5059
5085
|
/** The most characters a draft can have. The field stops taking more. */
|
|
@@ -9090,6 +9116,24 @@ Defaulted rather than left empty. An icon-only control must be named, and
|
|
|
9090
9116
|
the name of this one is not a judgment call: every copy button in the
|
|
9091
9117
|
world is called Copy. A consumer with a better word still sets it. */
|
|
9092
9118
|
label?: (HelixHeadlessCopyButton["label"]) | undefined;
|
|
9119
|
+
/** Draws the name as words beside the icon, and the result in their place
|
|
9120
|
+
after a press. The button stays as wide as the longest of them. */
|
|
9121
|
+
"show-label"?: (HelixHeadlessCopyButton["showLabel"]) | undefined;
|
|
9122
|
+
/** Draws the name as words beside the icon, and the result in their place
|
|
9123
|
+
after a press. The button stays as wide as the longest of them. */
|
|
9124
|
+
showLabel?: (HelixHeadlessCopyButton["showLabel"]) | undefined;
|
|
9125
|
+
/** When the tooltip shows: `full` on hover and focus and after a press,
|
|
9126
|
+
`copy` only after a press, to show the result, and `none` never, for a
|
|
9127
|
+
button whose result shows another way, such as under `show-label`.
|
|
9128
|
+
|
|
9129
|
+
Unset is `full`, and the attribute stays absent until you write it. */
|
|
9130
|
+
tooltip?: (HelixHeadlessCopyButton["tooltip"]) | undefined;
|
|
9131
|
+
/** The side the tooltip prefers. It moves to another side where this one
|
|
9132
|
+
does not fit. */
|
|
9133
|
+
"tooltip-placement"?: (HelixHeadlessCopyButton["tooltipPlacement"]) | undefined;
|
|
9134
|
+
/** The side the tooltip prefers. It moves to another side where this one
|
|
9135
|
+
does not fit. */
|
|
9136
|
+
tooltipPlacement?: (HelixHeadlessCopyButton["tooltipPlacement"]) | undefined;
|
|
9093
9137
|
/** The text copied to the clipboard.
|
|
9094
9138
|
|
|
9095
9139
|
It replaces `Button.value`, the submit value: a copy button never submits,
|
|
@@ -9205,6 +9249,24 @@ Defaulted rather than left empty. An icon-only control must be named, and
|
|
|
9205
9249
|
the name of this one is not a judgment call: every copy button in the
|
|
9206
9250
|
world is called Copy. A consumer with a better word still sets it. */
|
|
9207
9251
|
"prop:label"?: (HelixHeadlessCopyButton["label"]) | undefined;
|
|
9252
|
+
/** Draws the name as words beside the icon, and the result in their place
|
|
9253
|
+
after a press. The button stays as wide as the longest of them. */
|
|
9254
|
+
"bool:show-label"?: (HelixHeadlessCopyButton["showLabel"]) | undefined;
|
|
9255
|
+
/** Draws the name as words beside the icon, and the result in their place
|
|
9256
|
+
after a press. The button stays as wide as the longest of them. */
|
|
9257
|
+
"prop:showLabel"?: (HelixHeadlessCopyButton["showLabel"]) | undefined;
|
|
9258
|
+
/** When the tooltip shows: `full` on hover and focus and after a press,
|
|
9259
|
+
`copy` only after a press, to show the result, and `none` never, for a
|
|
9260
|
+
button whose result shows another way, such as under `show-label`.
|
|
9261
|
+
|
|
9262
|
+
Unset is `full`, and the attribute stays absent until you write it. */
|
|
9263
|
+
"prop:tooltip"?: (HelixHeadlessCopyButton["tooltip"]) | undefined;
|
|
9264
|
+
/** The side the tooltip prefers. It moves to another side where this one
|
|
9265
|
+
does not fit. */
|
|
9266
|
+
"attr:tooltip-placement"?: (HelixHeadlessCopyButton["tooltipPlacement"]) | undefined;
|
|
9267
|
+
/** The side the tooltip prefers. It moves to another side where this one
|
|
9268
|
+
does not fit. */
|
|
9269
|
+
"prop:tooltipPlacement"?: (HelixHeadlessCopyButton["tooltipPlacement"]) | undefined;
|
|
9208
9270
|
/** The text copied to the clipboard.
|
|
9209
9271
|
|
|
9210
9272
|
It replaces `Button.value`, the submit value: a copy button never submits,
|
|
@@ -9693,7 +9755,11 @@ thousand rows, where the page is a reasonable fetch and a poor render.
|
|
|
9693
9755
|
|
|
9694
9756
|
Off by default. Windowing costs a scroll listener, a measurement per row
|
|
9695
9757
|
drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
9696
|
-
should pay none of them.
|
|
9758
|
+
should pay none of them.
|
|
9759
|
+
|
|
9760
|
+
While windowed, the `table` part scrolls on this tier: it carries
|
|
9761
|
+
`data-scroller`, and `core` ships `[data-scroller] { overflow: auto }` into
|
|
9762
|
+
every shadow root. You still need to give it a block size. */
|
|
9697
9763
|
windowed?: (HelixHeadlessDataTable["windowed"]) | undefined;
|
|
9698
9764
|
/** The text shown and announced when there are no rows and none are loading. */
|
|
9699
9765
|
"empty-text"?: (HelixHeadlessDataTable["emptyText"]) | undefined;
|
|
@@ -10122,7 +10188,11 @@ thousand rows, where the page is a reasonable fetch and a poor render.
|
|
|
10122
10188
|
|
|
10123
10189
|
Off by default. Windowing costs a scroll listener, a measurement per row
|
|
10124
10190
|
drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
10125
|
-
should pay none of them.
|
|
10191
|
+
should pay none of them.
|
|
10192
|
+
|
|
10193
|
+
While windowed, the `table` part scrolls on this tier: it carries
|
|
10194
|
+
`data-scroller`, and `core` ships `[data-scroller] { overflow: auto }` into
|
|
10195
|
+
every shadow root. You still need to give it a block size. */
|
|
10126
10196
|
"prop:windowed"?: (HelixHeadlessDataTable["windowed"]) | undefined;
|
|
10127
10197
|
/** The text shown and announced when there are no rows and none are loading. */
|
|
10128
10198
|
"attr:empty-text"?: (HelixHeadlessDataTable["emptyText"]) | undefined;
|
|
@@ -14785,6 +14855,13 @@ or hides its notes. Drawn where the notes have two groups or more. */
|
|
|
14785
14855
|
"links-to-label"?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
|
|
14786
14856
|
/** How a note that links to the selected one is described, with `{note}`. */
|
|
14787
14857
|
linksToLabel?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
|
|
14858
|
+
/** Marks the graph as busy while its notes arrive: the list is `aria-busy`,
|
|
14859
|
+
and the panel says so where it holds no notes yet. */
|
|
14860
|
+
loading?: (HelixHeadlessGraph["loading"]) | undefined;
|
|
14861
|
+
/** What the panel says while `loading` is set and the list holds no notes. */
|
|
14862
|
+
"loading-label"?: (HelixHeadlessGraph["loadingLabel"]) | undefined;
|
|
14863
|
+
/** What the panel says while `loading` is set and the list holds no notes. */
|
|
14864
|
+
loadingLabel?: (HelixHeadlessGraph["loadingLabel"]) | undefined;
|
|
14788
14865
|
/** What screen readers hear once the drawing has moved down, after `moved()`. */
|
|
14789
14866
|
"moved-down-label"?: (HelixHeadlessGraph["movedDownLabel"]) | undefined;
|
|
14790
14867
|
/** What screen readers hear once the drawing has moved down, after `moved()`. */
|
|
@@ -15006,6 +15083,16 @@ Ignored once `active` is written. */
|
|
|
15006
15083
|
links?: (HelixHeadlessGraph["links"]) | undefined;
|
|
15007
15084
|
/** The notes. A property, never an attribute. */
|
|
15008
15085
|
nodes?: (HelixHeadlessGraph["nodes"]) | undefined;
|
|
15086
|
+
/** What each note's row in the list shows in place of its name: a function
|
|
15087
|
+
given the note that returns text, an element or a Lit template.
|
|
15088
|
+
|
|
15089
|
+
For an icon by its kind, or a date under its name, as React Aria's
|
|
15090
|
+
`ListBoxItem` takes children. The row is still named by the note's name,
|
|
15091
|
+
which typeahead and the search find it by, and described by how it stands
|
|
15092
|
+
to the selected note. Return the name with your content where it should
|
|
15093
|
+
still show. A property only, there being no way to write a function in
|
|
15094
|
+
markup. */
|
|
15095
|
+
noteContent?: (HelixHeadlessGraph["noteContent"]) | undefined;
|
|
15009
15096
|
|
|
15010
15097
|
/** A note was selected, in the list or in the drawing. The detail's `value` is its `id`. */
|
|
15011
15098
|
"onhelix-activate"?: ((e: HelixHeadlessGraphHelixActivateElementEvent) => void) | undefined;
|
|
@@ -15099,6 +15186,13 @@ or hides its notes. Drawn where the notes have two groups or more. */
|
|
|
15099
15186
|
"attr:links-to-label"?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
|
|
15100
15187
|
/** How a note that links to the selected one is described, with `{note}`. */
|
|
15101
15188
|
"prop:linksToLabel"?: (HelixHeadlessGraph["linksToLabel"]) | undefined;
|
|
15189
|
+
/** Marks the graph as busy while its notes arrive: the list is `aria-busy`,
|
|
15190
|
+
and the panel says so where it holds no notes yet. */
|
|
15191
|
+
"prop:loading"?: (HelixHeadlessGraph["loading"]) | undefined;
|
|
15192
|
+
/** What the panel says while `loading` is set and the list holds no notes. */
|
|
15193
|
+
"attr:loading-label"?: (HelixHeadlessGraph["loadingLabel"]) | undefined;
|
|
15194
|
+
/** What the panel says while `loading` is set and the list holds no notes. */
|
|
15195
|
+
"prop:loadingLabel"?: (HelixHeadlessGraph["loadingLabel"]) | undefined;
|
|
15102
15196
|
/** What screen readers hear once the drawing has moved down, after `moved()`. */
|
|
15103
15197
|
"attr:moved-down-label"?: (HelixHeadlessGraph["movedDownLabel"]) | undefined;
|
|
15104
15198
|
/** What screen readers hear once the drawing has moved down, after `moved()`. */
|
|
@@ -15320,6 +15414,16 @@ Ignored once `active` is written. */
|
|
|
15320
15414
|
"prop:links"?: (HelixHeadlessGraph["links"]) | undefined;
|
|
15321
15415
|
/** The notes. A property, never an attribute. */
|
|
15322
15416
|
"prop:nodes"?: (HelixHeadlessGraph["nodes"]) | undefined;
|
|
15417
|
+
/** What each note's row in the list shows in place of its name: a function
|
|
15418
|
+
given the note that returns text, an element or a Lit template.
|
|
15419
|
+
|
|
15420
|
+
For an icon by its kind, or a date under its name, as React Aria's
|
|
15421
|
+
`ListBoxItem` takes children. The row is still named by the note's name,
|
|
15422
|
+
which typeahead and the search find it by, and described by how it stands
|
|
15423
|
+
to the selected note. Return the name with your content where it should
|
|
15424
|
+
still show. A property only, there being no way to write a function in
|
|
15425
|
+
markup. */
|
|
15426
|
+
"prop:noteContent"?: (HelixHeadlessGraph["noteContent"]) | undefined;
|
|
15323
15427
|
/** A note was selected, in the list or in the drawing. The detail's `value` is its `id`. */
|
|
15324
15428
|
"on:helix-activate"?: ((
|
|
15325
15429
|
e: HelixHeadlessGraphHelixActivateElementEvent,
|
|
@@ -18374,7 +18478,8 @@ itself. */
|
|
|
18374
18478
|
type?: (HelixHeadlessList["type"]) | undefined;
|
|
18375
18479
|
/** The selected rows' values, separated by commas with no spaces, such as `a,c`, in a list that selects.
|
|
18376
18480
|
|
|
18377
|
-
|
|
18481
|
+
A press or a key writes it in row order, as Data Table does, whatever
|
|
18482
|
+
order the rows were chosen in. Set it to start with rows selected. A row's value is its `value`, or its
|
|
18378
18483
|
words where it has none. */
|
|
18379
18484
|
value?: (HelixHeadlessList["value"]) | undefined;
|
|
18380
18485
|
|
|
@@ -18520,7 +18625,8 @@ itself. */
|
|
|
18520
18625
|
"prop:type"?: (HelixHeadlessList["type"]) | undefined;
|
|
18521
18626
|
/** The selected rows' values, separated by commas with no spaces, such as `a,c`, in a list that selects.
|
|
18522
18627
|
|
|
18523
|
-
|
|
18628
|
+
A press or a key writes it in row order, as Data Table does, whatever
|
|
18629
|
+
order the rows were chosen in. Set it to start with rows selected. A row's value is its `value`, or its
|
|
18524
18630
|
words where it has none. */
|
|
18525
18631
|
"prop:value"?: (HelixHeadlessList["value"]) | undefined;
|
|
18526
18632
|
/** Fired once a press has changed which rows are selected. */
|
|
@@ -21188,6 +21294,14 @@ or on Alt+Down or Alt+Up. */
|
|
|
21188
21294
|
|
|
21189
21295
|
It moves if that side does not fit. */
|
|
21190
21296
|
placement?: (HelixHeadlessMenu["placement"]) | undefined;
|
|
21297
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
21298
|
+
how many rows are left, written in the locale, and each language writes
|
|
21299
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
21300
|
+
"results-label"?: (HelixHeadlessMenu["resultsLabel"]) | undefined;
|
|
21301
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
21302
|
+
how many rows are left, written in the locale, and each language writes
|
|
21303
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
21304
|
+
resultsLabel?: (HelixHeadlessMenu["resultsLabel"]) | undefined;
|
|
21191
21305
|
/** How a submenu opens. `drill` shows it in place of the page showing, with
|
|
21192
21306
|
a way back. `flyout` opens it in a panel of its own beside its row. */
|
|
21193
21307
|
submenus?: (HelixHeadlessMenu["submenus"]) | undefined;
|
|
@@ -21229,7 +21343,17 @@ Aria's `Autocomplete` takes `filter`. See Listbox's `filterMatch`.
|
|
|
21229
21343
|
Absent, a row is kept where its words hold the filter, in any case. A
|
|
21230
21344
|
property only, there being no way to write a function in markup. */
|
|
21231
21345
|
filterMatch?: (HelixHeadlessMenu["filterMatch"]) | undefined;
|
|
21346
|
+
/** The values of the choice rows that are checked, anywhere in the menu, in
|
|
21347
|
+
document order.
|
|
21232
21348
|
|
|
21349
|
+
Set it to check exactly those rows and uncheck every other choice row, as
|
|
21350
|
+
React Aria's `selectedKeys` controls a menu's selection from one place.
|
|
21351
|
+
Each row keeps its own `checked` too, which this reads and writes. `change`
|
|
21352
|
+
is sent on the menu when a reader's choice changes it. */
|
|
21353
|
+
checkedValues?: (HelixHeadlessMenu["checkedValues"]) | undefined;
|
|
21354
|
+
|
|
21355
|
+
/** A reader's choice checked or unchecked rows. Read `checkedValues` for the rows that are checked now. */
|
|
21356
|
+
onchange?: ((e: HelixHeadlessMenuElementEvent) => void) | undefined;
|
|
21233
21357
|
/** The menu is about to close. Cancelable: cancel it to keep it open. */
|
|
21234
21358
|
"onhelix-before-close"?: ((
|
|
21235
21359
|
e: HelixHeadlessMenuHelixBeforeCloseElementEvent,
|
|
@@ -21308,6 +21432,14 @@ or on Alt+Down or Alt+Up. */
|
|
|
21308
21432
|
|
|
21309
21433
|
It moves if that side does not fit. */
|
|
21310
21434
|
"prop:placement"?: (HelixHeadlessMenu["placement"]) | undefined;
|
|
21435
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
21436
|
+
how many rows are left, written in the locale, and each language writes
|
|
21437
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
21438
|
+
"attr:results-label"?: (HelixHeadlessMenu["resultsLabel"]) | undefined;
|
|
21439
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
21440
|
+
how many rows are left, written in the locale, and each language writes
|
|
21441
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
21442
|
+
"prop:resultsLabel"?: (HelixHeadlessMenu["resultsLabel"]) | undefined;
|
|
21311
21443
|
/** How a submenu opens. `drill` shows it in place of the page showing, with
|
|
21312
21444
|
a way back. `flyout` opens it in a panel of its own beside its row. */
|
|
21313
21445
|
"prop:submenus"?: (HelixHeadlessMenu["submenus"]) | undefined;
|
|
@@ -21349,6 +21481,16 @@ Aria's `Autocomplete` takes `filter`. See Listbox's `filterMatch`.
|
|
|
21349
21481
|
Absent, a row is kept where its words hold the filter, in any case. A
|
|
21350
21482
|
property only, there being no way to write a function in markup. */
|
|
21351
21483
|
"prop:filterMatch"?: (HelixHeadlessMenu["filterMatch"]) | undefined;
|
|
21484
|
+
/** The values of the choice rows that are checked, anywhere in the menu, in
|
|
21485
|
+
document order.
|
|
21486
|
+
|
|
21487
|
+
Set it to check exactly those rows and uncheck every other choice row, as
|
|
21488
|
+
React Aria's `selectedKeys` controls a menu's selection from one place.
|
|
21489
|
+
Each row keeps its own `checked` too, which this reads and writes. `change`
|
|
21490
|
+
is sent on the menu when a reader's choice changes it. */
|
|
21491
|
+
"prop:checkedValues"?: (HelixHeadlessMenu["checkedValues"]) | undefined;
|
|
21492
|
+
/** A reader's choice checked or unchecked rows. Read `checkedValues` for the rows that are checked now. */
|
|
21493
|
+
"on:change"?: ((e: HelixHeadlessMenuElementEvent) => void) | undefined;
|
|
21352
21494
|
/** The menu is about to close. Cancelable: cancel it to keep it open. */
|
|
21353
21495
|
"on:helix-before-close"?: ((
|
|
21354
21496
|
e: HelixHeadlessMenuHelixBeforeCloseElementEvent,
|
|
@@ -23689,6 +23831,10 @@ box the sections scroll in. */
|
|
|
23689
23831
|
/** The navigation's name, read by screen readers. A heading in the `heading`
|
|
23690
23832
|
slot names it in place of this. */
|
|
23691
23833
|
label?: (HelixHeadlessOutline["label"]) | undefined;
|
|
23834
|
+
/** Which links are marked. `reading` marks the one section being read, the
|
|
23835
|
+
last whose heading has passed the reading line. `visible` marks every
|
|
23836
|
+
section with part of it on screen, and the mark runs across their links. */
|
|
23837
|
+
marks?: (HelixHeadlessOutline["marks"]) | undefined;
|
|
23692
23838
|
/** How far below the top of the scroll container a heading counts as reached,
|
|
23693
23839
|
in pixels. The scroll container is the window or the panel the sections
|
|
23694
23840
|
scroll in.
|
|
@@ -23733,6 +23879,10 @@ box the sections scroll in. */
|
|
|
23733
23879
|
/** The navigation's name, read by screen readers. A heading in the `heading`
|
|
23734
23880
|
slot names it in place of this. */
|
|
23735
23881
|
"prop:label"?: (HelixHeadlessOutline["label"]) | undefined;
|
|
23882
|
+
/** Which links are marked. `reading` marks the one section being read, the
|
|
23883
|
+
last whose heading has passed the reading line. `visible` marks every
|
|
23884
|
+
section with part of it on screen, and the mark runs across their links. */
|
|
23885
|
+
"prop:marks"?: (HelixHeadlessOutline["marks"]) | undefined;
|
|
23736
23886
|
/** How far below the top of the scroll container a heading counts as reached,
|
|
23737
23887
|
in pixels. The scroll container is the window or the panel the sections
|
|
23738
23888
|
scroll in.
|
|
@@ -24670,17 +24820,42 @@ export type HelixHeadlessPopoverToggleElementEvent =
|
|
|
24670
24820
|
HelixHeadlessPopoverElementEvent<ToggleEvent>;
|
|
24671
24821
|
|
|
24672
24822
|
export type HelixHeadlessPopoverProps = {
|
|
24823
|
+
/** The element the panel opens against, where that is not the trigger: its
|
|
24824
|
+
`id` in the same document or shadow root, or the element itself. Left
|
|
24825
|
+
empty, the panel opens against the trigger, or against the button whose
|
|
24826
|
+
command opened it. */
|
|
24827
|
+
anchor?: (HelixHeadlessPopover["anchor"]) | undefined;
|
|
24673
24828
|
/** Draws a point on the panel's edge facing the trigger.
|
|
24674
24829
|
|
|
24675
24830
|
Off by default, which is the house style: a panel that opens from its
|
|
24676
24831
|
trigger already reads as belonging to it. */
|
|
24677
24832
|
arrow?: (HelixHeadlessPopover["arrow"]) | undefined;
|
|
24833
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
24834
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
24835
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
24836
|
+
once it would cross one. */
|
|
24837
|
+
"container-padding"?: (HelixHeadlessPopover["containerPadding"] | `${number}`) | undefined;
|
|
24838
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
24839
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
24840
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
24841
|
+
once it would cross one. */
|
|
24842
|
+
containerPadding?: (HelixHeadlessPopover["containerPadding"]) | undefined;
|
|
24843
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
24844
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
24845
|
+
"cross-offset"?: (HelixHeadlessPopover["crossOffset"] | `${number}`) | undefined;
|
|
24846
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
24847
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
24848
|
+
crossOffset?: (HelixHeadlessPopover["crossOffset"]) | undefined;
|
|
24678
24849
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
24679
24850
|
the panel, and no `aria-labelledby` on the host. */
|
|
24680
24851
|
"fallback-label"?: (HelixHeadlessPopover["fallbackLabel"]) | undefined;
|
|
24681
24852
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
24682
24853
|
the panel, and no `aria-labelledby` on the host. */
|
|
24683
24854
|
fallbackLabel?: (HelixHeadlessPopover["fallbackLabel"]) | undefined;
|
|
24855
|
+
/** Whether the panel moves to the other side of the trigger when its own
|
|
24856
|
+
side has no room. On by default. Write `flip="false"` to keep it on its
|
|
24857
|
+
side, where it shrinks to fit, as React Aria's `shouldFlip` turns off. */
|
|
24858
|
+
flip?: (HelixHeadlessPopover["flip"]) | undefined;
|
|
24684
24859
|
/** The panel's name, read by screen readers. Left empty, the first heading in
|
|
24685
24860
|
the panel names it, and then `fallback-label`. */
|
|
24686
24861
|
label?: (HelixHeadlessPopover["label"]) | undefined;
|
|
@@ -24725,17 +24900,42 @@ the resolved state for stylesheets, which is what the mirror is for. */
|
|
|
24725
24900
|
};
|
|
24726
24901
|
|
|
24727
24902
|
export type HelixHeadlessPopoverSolidJsProps = {
|
|
24903
|
+
/** The element the panel opens against, where that is not the trigger: its
|
|
24904
|
+
`id` in the same document or shadow root, or the element itself. Left
|
|
24905
|
+
empty, the panel opens against the trigger, or against the button whose
|
|
24906
|
+
command opened it. */
|
|
24907
|
+
"prop:anchor"?: (HelixHeadlessPopover["anchor"]) | undefined;
|
|
24728
24908
|
/** Draws a point on the panel's edge facing the trigger.
|
|
24729
24909
|
|
|
24730
24910
|
Off by default, which is the house style: a panel that opens from its
|
|
24731
24911
|
trigger already reads as belonging to it. */
|
|
24732
24912
|
"prop:arrow"?: (HelixHeadlessPopover["arrow"]) | undefined;
|
|
24913
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
24914
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
24915
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
24916
|
+
once it would cross one. */
|
|
24917
|
+
"attr:container-padding"?: (HelixHeadlessPopover["containerPadding"] | `${number}`) | undefined;
|
|
24918
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
24919
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
24920
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
24921
|
+
once it would cross one. */
|
|
24922
|
+
"prop:containerPadding"?: (HelixHeadlessPopover["containerPadding"]) | undefined;
|
|
24923
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
24924
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
24925
|
+
"attr:cross-offset"?: (HelixHeadlessPopover["crossOffset"] | `${number}`) | undefined;
|
|
24926
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
24927
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
24928
|
+
"prop:crossOffset"?: (HelixHeadlessPopover["crossOffset"]) | undefined;
|
|
24733
24929
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
24734
24930
|
the panel, and no `aria-labelledby` on the host. */
|
|
24735
24931
|
"attr:fallback-label"?: (HelixHeadlessPopover["fallbackLabel"]) | undefined;
|
|
24736
24932
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
24737
24933
|
the panel, and no `aria-labelledby` on the host. */
|
|
24738
24934
|
"prop:fallbackLabel"?: (HelixHeadlessPopover["fallbackLabel"]) | undefined;
|
|
24935
|
+
/** Whether the panel moves to the other side of the trigger when its own
|
|
24936
|
+
side has no room. On by default. Write `flip="false"` to keep it on its
|
|
24937
|
+
side, where it shrinks to fit, as React Aria's `shouldFlip` turns off. */
|
|
24938
|
+
"prop:flip"?: (HelixHeadlessPopover["flip"]) | undefined;
|
|
24739
24939
|
/** The panel's name, read by screen readers. Left empty, the first heading in
|
|
24740
24940
|
the panel names it, and then `fallback-label`. */
|
|
24741
24941
|
"prop:label"?: (HelixHeadlessPopover["label"]) | undefined;
|
|
@@ -28156,6 +28356,13 @@ that should survive its own collapse says how much of itself to keep, and
|
|
|
28156
28356
|
only whoever put it there knows that, which is the same reason `min` is a
|
|
28157
28357
|
consumer's to set. */
|
|
28158
28358
|
collapsedSize?: (HelixHeadlessSplitter["collapsedSize"]) | undefined;
|
|
28359
|
+
/** Which panes can be collapsed, as Zag's panels each take `collapsible`:
|
|
28360
|
+
`start`, `end`, `both`, or `none`. A pane that cannot be collapsed stops
|
|
28361
|
+
at the edge without shutting. `Enter` collapses the end pane where only
|
|
28362
|
+
the end pane can be collapsed, and the start pane otherwise.
|
|
28363
|
+
|
|
28364
|
+
Unset is `both`, and the attribute stays absent until you write it. */
|
|
28365
|
+
collapsible?: (HelixHeadlessSplitter["collapsible"]) | undefined;
|
|
28159
28366
|
/** The name of the handle where two dividers cross, read by screen readers. */
|
|
28160
28367
|
"corner-label"?: (HelixHeadlessSplitter["cornerLabel"]) | undefined;
|
|
28161
28368
|
/** The name of the handle where two dividers cross, read by screen readers. */
|
|
@@ -28184,6 +28391,18 @@ these words are the whole of where it is. */
|
|
|
28184
28391
|
"default-position"?: (HelixHeadlessSplitter["defaultPosition"] | `${number}`) | undefined;
|
|
28185
28392
|
/** Where the divider starts, when `position` is not set. */
|
|
28186
28393
|
defaultPosition?: (HelixHeadlessSplitter["defaultPosition"]) | undefined;
|
|
28394
|
+
/** The least the end pane keeps, in the units `min` takes: a percentage, or
|
|
28395
|
+
a CSS length such as `16rem` resolved against the splitter's box. The
|
|
28396
|
+
divider stops that far from the end, whatever `max` allows, so `min` and
|
|
28397
|
+
`end-min` hold a minimum for each pane, as Zag's panels each take
|
|
28398
|
+
`minSize`. */
|
|
28399
|
+
"end-min"?: (HelixHeadlessSplitter["endMin"]) | undefined;
|
|
28400
|
+
/** The least the end pane keeps, in the units `min` takes: a percentage, or
|
|
28401
|
+
a CSS length such as `16rem` resolved against the splitter's box. The
|
|
28402
|
+
divider stops that far from the end, whatever `max` allows, so `min` and
|
|
28403
|
+
`end-min` hold a minimum for each pane, as Zag's panels each take
|
|
28404
|
+
`minSize`. */
|
|
28405
|
+
endMin?: (HelixHeadlessSplitter["endMin"]) | undefined;
|
|
28187
28406
|
/** The divider's name, read by screen readers.
|
|
28188
28407
|
|
|
28189
28408
|
An `aria-label` or `aria-labelledby` on the host names the divider too,
|
|
@@ -28316,6 +28535,13 @@ that should survive its own collapse says how much of itself to keep, and
|
|
|
28316
28535
|
only whoever put it there knows that, which is the same reason `min` is a
|
|
28317
28536
|
consumer's to set. */
|
|
28318
28537
|
"prop:collapsedSize"?: (HelixHeadlessSplitter["collapsedSize"]) | undefined;
|
|
28538
|
+
/** Which panes can be collapsed, as Zag's panels each take `collapsible`:
|
|
28539
|
+
`start`, `end`, `both`, or `none`. A pane that cannot be collapsed stops
|
|
28540
|
+
at the edge without shutting. `Enter` collapses the end pane where only
|
|
28541
|
+
the end pane can be collapsed, and the start pane otherwise.
|
|
28542
|
+
|
|
28543
|
+
Unset is `both`, and the attribute stays absent until you write it. */
|
|
28544
|
+
"prop:collapsible"?: (HelixHeadlessSplitter["collapsible"]) | undefined;
|
|
28319
28545
|
/** The name of the handle where two dividers cross, read by screen readers. */
|
|
28320
28546
|
"attr:corner-label"?: (HelixHeadlessSplitter["cornerLabel"]) | undefined;
|
|
28321
28547
|
/** The name of the handle where two dividers cross, read by screen readers. */
|
|
@@ -28344,6 +28570,18 @@ these words are the whole of where it is. */
|
|
|
28344
28570
|
"attr:default-position"?: (HelixHeadlessSplitter["defaultPosition"] | `${number}`) | undefined;
|
|
28345
28571
|
/** Where the divider starts, when `position` is not set. */
|
|
28346
28572
|
"prop:defaultPosition"?: (HelixHeadlessSplitter["defaultPosition"]) | undefined;
|
|
28573
|
+
/** The least the end pane keeps, in the units `min` takes: a percentage, or
|
|
28574
|
+
a CSS length such as `16rem` resolved against the splitter's box. The
|
|
28575
|
+
divider stops that far from the end, whatever `max` allows, so `min` and
|
|
28576
|
+
`end-min` hold a minimum for each pane, as Zag's panels each take
|
|
28577
|
+
`minSize`. */
|
|
28578
|
+
"attr:end-min"?: (HelixHeadlessSplitter["endMin"]) | undefined;
|
|
28579
|
+
/** The least the end pane keeps, in the units `min` takes: a percentage, or
|
|
28580
|
+
a CSS length such as `16rem` resolved against the splitter's box. The
|
|
28581
|
+
divider stops that far from the end, whatever `max` allows, so `min` and
|
|
28582
|
+
`end-min` hold a minimum for each pane, as Zag's panels each take
|
|
28583
|
+
`minSize`. */
|
|
28584
|
+
"prop:endMin"?: (HelixHeadlessSplitter["endMin"]) | undefined;
|
|
28347
28585
|
/** The divider's name, read by screen readers.
|
|
28348
28586
|
|
|
28349
28587
|
An `aria-label` or `aria-labelledby` on the host names the divider too,
|
|
@@ -32309,6 +32547,18 @@ imperatively later, and nothing is hydrating by then.
|
|
|
32309
32547
|
|
|
32310
32548
|
Here rather than on each control. */
|
|
32311
32549
|
name?: (HelixHeadlessTimePicker["name"]) | undefined;
|
|
32550
|
+
/** What each time in the list shows: a function given the time as `HH:mm`,
|
|
32551
|
+
or `HH:mm:ss` with `seconds`, and the time as the row writes it, that
|
|
32552
|
+
returns text, an element or a Lit template.
|
|
32553
|
+
|
|
32554
|
+
For the seats left at a time, or a caption under it, as React Aria's
|
|
32555
|
+
`ListBoxItem` takes children. Content with `slot="start"`, `slot="end"`
|
|
32556
|
+
or `slot="description"` goes to that slot of the row, and a description
|
|
32557
|
+
is read after the time. The row is still named by the written time, and
|
|
32558
|
+
typeahead still finds it by that. Return the written time with your
|
|
32559
|
+
content where it should still show. A property only, there being no way
|
|
32560
|
+
to write a function in markup. The wheels draw their own figures. */
|
|
32561
|
+
timeContent?: (HelixHeadlessTimePicker["timeContent"]) | undefined;
|
|
32312
32562
|
/** The value as a `Date` on 1 January 1970 UTC, or `null` while there is no time.
|
|
32313
32563
|
|
|
32314
32564
|
The platform's own pair on `<input type="time">`, epoch day included: a time
|
|
@@ -32645,6 +32895,18 @@ imperatively later, and nothing is hydrating by then.
|
|
|
32645
32895
|
|
|
32646
32896
|
Here rather than on each control. */
|
|
32647
32897
|
"prop:name"?: (HelixHeadlessTimePicker["name"]) | undefined;
|
|
32898
|
+
/** What each time in the list shows: a function given the time as `HH:mm`,
|
|
32899
|
+
or `HH:mm:ss` with `seconds`, and the time as the row writes it, that
|
|
32900
|
+
returns text, an element or a Lit template.
|
|
32901
|
+
|
|
32902
|
+
For the seats left at a time, or a caption under it, as React Aria's
|
|
32903
|
+
`ListBoxItem` takes children. Content with `slot="start"`, `slot="end"`
|
|
32904
|
+
or `slot="description"` goes to that slot of the row, and a description
|
|
32905
|
+
is read after the time. The row is still named by the written time, and
|
|
32906
|
+
typeahead still finds it by that. Return the written time with your
|
|
32907
|
+
content where it should still show. A property only, there being no way
|
|
32908
|
+
to write a function in markup. The wheels draw their own figures. */
|
|
32909
|
+
"prop:timeContent"?: (HelixHeadlessTimePicker["timeContent"]) | undefined;
|
|
32648
32910
|
/** The value as a `Date` on 1 January 1970 UTC, or `null` while there is no time.
|
|
32649
32911
|
|
|
32650
32912
|
The platform's own pair on `<input type="time">`, epoch day included: a time
|
|
@@ -32783,11 +33045,25 @@ word is not read, which is `neutral` and `primary` in English. */
|
|
|
32783
33045
|
export type HelixHeadlessTimelineProps = {
|
|
32784
33046
|
/** Accessible name for the timeline, for people who reach it out of context. */
|
|
32785
33047
|
label?: (HelixHeadlessTimeline["label"]) | undefined;
|
|
33048
|
+
/** Marks the timeline as busy fetching more entries, and draws an entry
|
|
33049
|
+
after the last that says so. */
|
|
33050
|
+
loading?: (HelixHeadlessTimeline["loading"]) | undefined;
|
|
33051
|
+
/** The text of the entry drawn while `loading` is set, where the `loading` slot is empty. */
|
|
33052
|
+
"loading-label"?: (HelixHeadlessTimeline["loadingLabel"]) | undefined;
|
|
33053
|
+
/** The text of the entry drawn while `loading` is set, where the `loading` slot is empty. */
|
|
33054
|
+
loadingLabel?: (HelixHeadlessTimeline["loadingLabel"]) | undefined;
|
|
32786
33055
|
};
|
|
32787
33056
|
|
|
32788
33057
|
export type HelixHeadlessTimelineSolidJsProps = {
|
|
32789
33058
|
/** Accessible name for the timeline, for people who reach it out of context. */
|
|
32790
33059
|
"prop:label"?: (HelixHeadlessTimeline["label"]) | undefined;
|
|
33060
|
+
/** Marks the timeline as busy fetching more entries, and draws an entry
|
|
33061
|
+
after the last that says so. */
|
|
33062
|
+
"prop:loading"?: (HelixHeadlessTimeline["loading"]) | undefined;
|
|
33063
|
+
/** The text of the entry drawn while `loading` is set, where the `loading` slot is empty. */
|
|
33064
|
+
"attr:loading-label"?: (HelixHeadlessTimeline["loadingLabel"]) | undefined;
|
|
33065
|
+
/** The text of the entry drawn while `loading` is set, where the `loading` slot is empty. */
|
|
33066
|
+
"prop:loadingLabel"?: (HelixHeadlessTimeline["loadingLabel"]) | undefined;
|
|
32791
33067
|
|
|
32792
33068
|
/** Set the innerHTML of the element */
|
|
32793
33069
|
innerHTML?: (string) | undefined;
|
|
@@ -36319,12 +36595,18 @@ export type HelixHeadlessVirtualListElementEvent<E = Event> = TypedEvent<
|
|
|
36319
36595
|
/** `helix-before-change` event type */
|
|
36320
36596
|
export type HelixHeadlessVirtualListHelixBeforeChangeElementEvent =
|
|
36321
36597
|
HelixHeadlessVirtualListElementEvent<HelixBeforeChangeEvent>;
|
|
36598
|
+
/** `helix-before-reorder` event type */
|
|
36599
|
+
export type HelixHeadlessVirtualListHelixBeforeReorderElementEvent =
|
|
36600
|
+
HelixHeadlessVirtualListElementEvent<HelixBeforeReorderEvent>;
|
|
36322
36601
|
/** `helix-load-more` event type */
|
|
36323
36602
|
export type HelixHeadlessVirtualListHelixLoadMoreElementEvent =
|
|
36324
36603
|
HelixHeadlessVirtualListElementEvent<HelixLoadMoreEvent>;
|
|
36325
36604
|
/** `helix-range-change` event type */
|
|
36326
36605
|
export type HelixHeadlessVirtualListHelixRangeChangeElementEvent =
|
|
36327
36606
|
HelixHeadlessVirtualListElementEvent<HelixRangeChangeEvent>;
|
|
36607
|
+
/** `helix-reorder` event type */
|
|
36608
|
+
export type HelixHeadlessVirtualListHelixReorderElementEvent =
|
|
36609
|
+
HelixHeadlessVirtualListElementEvent<HelixReorderEvent>;
|
|
36328
36610
|
|
|
36329
36611
|
export type HelixHeadlessVirtualListProps = {
|
|
36330
36612
|
/** How many items a line holds. One, the default, is a list; more lays the
|
|
@@ -36404,6 +36686,13 @@ and scrolls it sideways: Left and Right move between items, the other
|
|
|
36404
36686
|
way round on a right-to-left page, and `estimate` is an item's width. A
|
|
36405
36687
|
grid always runs down. */
|
|
36406
36688
|
orientation?: (HelixHeadlessVirtualList["orientation"]) | undefined;
|
|
36689
|
+
/** Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`
|
|
36690
|
+
(or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt
|
|
36691
|
+
with an arrow moves the row the keys are on, and a pointer drags a row.
|
|
36692
|
+
The list moves no item itself: you move your `items` on `helix-reorder`.
|
|
36693
|
+
Without that import it does nothing, so a list that never moves items
|
|
36694
|
+
carries none of the code. A list of one column, without sections. */
|
|
36695
|
+
reorderable?: (HelixHeadlessVirtualList["reorderable"]) | undefined;
|
|
36407
36696
|
/** The field of each item that names its section, as a key or a path of
|
|
36408
36697
|
keys. Set, the items are drawn in sections: a header, then the items, in
|
|
36409
36698
|
an element with the `group` role that the header names. A section starts
|
|
@@ -36469,6 +36758,10 @@ it is unset, the header is the name as text. */
|
|
|
36469
36758
|
"onhelix-before-change"?: ((
|
|
36470
36759
|
e: HelixHeadlessVirtualListHelixBeforeChangeElementEvent,
|
|
36471
36760
|
) => void) | undefined;
|
|
36761
|
+
/** Fired when an item is dropped at a new place, in a `reorderable` list with `@fusion.dev/helix/virtual-list/reorder` imported, with every key in the new order. Cancelable: cancel it to keep the item where it is. */
|
|
36762
|
+
"onhelix-before-reorder"?: ((
|
|
36763
|
+
e: HelixHeadlessVirtualListHelixBeforeReorderElementEvent,
|
|
36764
|
+
) => void) | undefined;
|
|
36472
36765
|
/** Fired when a reader comes within one screen of the last item, once for each length of the set. */
|
|
36473
36766
|
"onhelix-load-more"?: ((
|
|
36474
36767
|
e: HelixHeadlessVirtualListHelixLoadMoreElementEvent,
|
|
@@ -36477,6 +36770,10 @@ it is unset, the header is the name as text. */
|
|
|
36477
36770
|
"onhelix-range-change"?: ((
|
|
36478
36771
|
e: HelixHeadlessVirtualListHelixRangeChangeElementEvent,
|
|
36479
36772
|
) => void) | undefined;
|
|
36773
|
+
/** Fired after `helix-before-reorder` when nobody canceled it. Set `items` to the order in `keys`. Cancelable: cancel it to say the move did not happen. */
|
|
36774
|
+
"onhelix-reorder"?: ((
|
|
36775
|
+
e: HelixHeadlessVirtualListHelixReorderElementEvent,
|
|
36776
|
+
) => void) | undefined;
|
|
36480
36777
|
};
|
|
36481
36778
|
|
|
36482
36779
|
export type HelixHeadlessVirtualListSolidJsProps = {
|
|
@@ -36557,6 +36854,13 @@ and scrolls it sideways: Left and Right move between items, the other
|
|
|
36557
36854
|
way round on a right-to-left page, and `estimate` is an item's width. A
|
|
36558
36855
|
grid always runs down. */
|
|
36559
36856
|
"prop:orientation"?: (HelixHeadlessVirtualList["orientation"]) | undefined;
|
|
36857
|
+
/** Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`
|
|
36858
|
+
(or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt
|
|
36859
|
+
with an arrow moves the row the keys are on, and a pointer drags a row.
|
|
36860
|
+
The list moves no item itself: you move your `items` on `helix-reorder`.
|
|
36861
|
+
Without that import it does nothing, so a list that never moves items
|
|
36862
|
+
carries none of the code. A list of one column, without sections. */
|
|
36863
|
+
"prop:reorderable"?: (HelixHeadlessVirtualList["reorderable"]) | undefined;
|
|
36560
36864
|
/** The field of each item that names its section, as a key or a path of
|
|
36561
36865
|
keys. Set, the items are drawn in sections: a header, then the items, in
|
|
36562
36866
|
an element with the `group` role that the header names. A section starts
|
|
@@ -36621,6 +36925,10 @@ it is unset, the header is the name as text. */
|
|
|
36621
36925
|
"on:helix-before-change"?: ((
|
|
36622
36926
|
e: HelixHeadlessVirtualListHelixBeforeChangeElementEvent,
|
|
36623
36927
|
) => void) | undefined;
|
|
36928
|
+
/** Fired when an item is dropped at a new place, in a `reorderable` list with `@fusion.dev/helix/virtual-list/reorder` imported, with every key in the new order. Cancelable: cancel it to keep the item where it is. */
|
|
36929
|
+
"on:helix-before-reorder"?: ((
|
|
36930
|
+
e: HelixHeadlessVirtualListHelixBeforeReorderElementEvent,
|
|
36931
|
+
) => void) | undefined;
|
|
36624
36932
|
/** Fired when a reader comes within one screen of the last item, once for each length of the set. */
|
|
36625
36933
|
"on:helix-load-more"?: ((
|
|
36626
36934
|
e: HelixHeadlessVirtualListHelixLoadMoreElementEvent,
|
|
@@ -36629,6 +36937,10 @@ it is unset, the header is the name as text. */
|
|
|
36629
36937
|
"on:helix-range-change"?: ((
|
|
36630
36938
|
e: HelixHeadlessVirtualListHelixRangeChangeElementEvent,
|
|
36631
36939
|
) => void) | undefined;
|
|
36940
|
+
/** Fired after `helix-before-reorder` when nobody canceled it. Set `items` to the order in `keys`. Cancelable: cancel it to say the move did not happen. */
|
|
36941
|
+
"on:helix-reorder"?: ((
|
|
36942
|
+
e: HelixHeadlessVirtualListHelixReorderElementEvent,
|
|
36943
|
+
) => void) | undefined;
|
|
36632
36944
|
|
|
36633
36945
|
/** Set the innerHTML of the element */
|
|
36634
36946
|
innerHTML?: (string) | undefined;
|
|
@@ -38638,10 +38950,18 @@ export type CustomElements = {
|
|
|
38638
38950
|
* a named `group`, and the toolbar's own arrow keys walk its buttons, so a
|
|
38639
38951
|
* reader meets one toolbar. Under `single` it is a `radiogroup` either way.
|
|
38640
38952
|
*
|
|
38953
|
+
* **Disabled.** `disabled` on the group disables every button in it, Helix
|
|
38954
|
+
* and native alike, and says so on the group with `aria-disabled`, as React
|
|
38955
|
+
* Aria's `isDisabled` does. A button disabled on its own stays disabled when
|
|
38956
|
+
* the group is enabled again, and a button that leaves the group gets back
|
|
38957
|
+
* what it said for itself.
|
|
38958
|
+
*
|
|
38641
38959
|
* ## Attributes & Properties
|
|
38642
38960
|
*
|
|
38643
38961
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
38644
38962
|
*
|
|
38963
|
+
* - `disabled`: Disables every button in the group, and says so on the group with
|
|
38964
|
+
* `aria-disabled`. Reflected, so a stylesheet can select on it.
|
|
38645
38965
|
* - `disallow-empty-selection`/`disallowEmptySelection`: Keeps at least one button pressed once one is, as React Aria's
|
|
38646
38966
|
* `disallowEmptySelection`: a press that would leave none pressed is
|
|
38647
38967
|
* refused.
|
|
@@ -38676,6 +38996,8 @@ export type CustomElements = {
|
|
|
38676
38996
|
*
|
|
38677
38997
|
* The attribute is the seed, and a press changes the property, which does
|
|
38678
38998
|
* not reflect, as a native control's `value` does not.
|
|
38999
|
+
* - `values`: The pressed values as a list, in a selection mode, and an empty list
|
|
39000
|
+
* otherwise. Written, it presses exactly those buttons. (property only)
|
|
38679
39001
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
38680
39002
|
*
|
|
38681
39003
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -39529,6 +39851,8 @@ export type CustomElements = {
|
|
|
39529
39851
|
* Third", rather than with a comma this component chose.
|
|
39530
39852
|
* - `linked-label`/`linkedLabel`: The text read with a card that has connections both ways. `{leadsTo}` is
|
|
39531
39853
|
* `leads-to-label` and `{comesFrom}` is `comes-from-label`, each filled in.
|
|
39854
|
+
* - `loading`: Marks the board as busy while its document arrives: the board is
|
|
39855
|
+
* `aria-busy`, and the `loading` slot is shown.
|
|
39532
39856
|
* - `moved-label`/`movedLabel`: What screen readers hear after a key moves a card, with `{name}` for the
|
|
39533
39857
|
* card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
39534
39858
|
*
|
|
@@ -39769,6 +40093,7 @@ export type CustomElements = {
|
|
|
39769
40093
|
* - `footer`: Content below the board.
|
|
39770
40094
|
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
39771
40095
|
* - `header`: Content above the board.
|
|
40096
|
+
* - `loading`: Content shown while `loading` is set, such as a progress bar while the document arrives.
|
|
39772
40097
|
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
39773
40098
|
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
39774
40099
|
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
@@ -39891,6 +40216,7 @@ export type CustomElements = {
|
|
|
39891
40216
|
* - `fullscreen`: While the board fills the screen.
|
|
39892
40217
|
* - `holding`: An item picked up with a click follows the pointer until the next press puts it down.
|
|
39893
40218
|
* - `idle`: The user has been still for `idle-delay` milliseconds. The board's own controls stay; select on it to hide chrome of your own.
|
|
40219
|
+
* - `loading`: While `loading` is set.
|
|
39894
40220
|
* - `pressing`: While a press on the board, its cards or its connections is under way.
|
|
39895
40221
|
* - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a board with `gestures="activate"` waits to be pressed.
|
|
39896
40222
|
* - `using`: A board with `gestures="activate"` has been pressed and has the gestures.
|
|
@@ -40337,6 +40663,11 @@ export type CustomElements = {
|
|
|
40337
40663
|
* Sending an empty required composer counts as trying. Tabbing past an empty
|
|
40338
40664
|
* composer marks nothing.
|
|
40339
40665
|
*
|
|
40666
|
+
* **`feedback` is a message of your own about the draft**, such as one your
|
|
40667
|
+
* server sent back. While it is set, the composer is invalid at once, does
|
|
40668
|
+
* not send or submit, shows the message under the field, and a screen reader
|
|
40669
|
+
* hears it as it appears. Clear it to let the draft go.
|
|
40670
|
+
*
|
|
40340
40671
|
* **`typing` says whether the user is writing**, and `helix-typing` is sent
|
|
40341
40672
|
* each time it changes: when they start, and when they send or stop for
|
|
40342
40673
|
* `typing-timeout` milliseconds. Pass it on to show "is typing" to the other
|
|
@@ -40346,6 +40677,9 @@ export type CustomElements = {
|
|
|
40346
40677
|
*
|
|
40347
40678
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
40348
40679
|
*
|
|
40680
|
+
* - `feedback`: A message about the draft, shown under the field. While set, the composer
|
|
40681
|
+
* is invalid, does not send, and does not submit, as a field's `feedback`
|
|
40682
|
+
* does, and the message is announced as it appears.
|
|
40349
40683
|
* - `label`: The field's name, read by screen readers.
|
|
40350
40684
|
* - `maxlength`/`maxLength`: The most characters a draft can have. The field stops taking more.
|
|
40351
40685
|
* - `minlength`/`minLength`: The fewest characters a draft can have, once the reader has written in
|
|
@@ -40494,6 +40828,7 @@ export type CustomElements = {
|
|
|
40494
40828
|
*
|
|
40495
40829
|
* - `composer`: The whole composer.
|
|
40496
40830
|
* - `end`: The box around the `end` slot.
|
|
40831
|
+
* - `feedback`: The `feedback` message, under the field while it is set.
|
|
40497
40832
|
* - `field`: The text field.
|
|
40498
40833
|
* - `mark`: The icon inside the send button.
|
|
40499
40834
|
* - `send`: The send button.
|
|
@@ -40504,7 +40839,7 @@ export type CustomElements = {
|
|
|
40504
40839
|
*
|
|
40505
40840
|
* These can be used to apply styling when a component is in a given state.
|
|
40506
40841
|
*
|
|
40507
|
-
* - `invalid`: The draft fails `required`, `minlength`, `maxlength`, or a custom error, and the reader has tried to send or submit it, or edited the field and left it.
|
|
40842
|
+
* - `invalid`: The draft fails `required`, `minlength`, `maxlength`, or a custom error, and the reader has tried to send or submit it, or edited the field and left it. Or `feedback` is set.
|
|
40508
40843
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
40509
40844
|
*/
|
|
40510
40845
|
"helix-headless-chat-composer": Partial<
|
|
@@ -40638,6 +40973,13 @@ export type CustomElements = {
|
|
|
40638
40973
|
* `loading` while you fetch, then prepend the older turns. The turn the user
|
|
40639
40974
|
* was reading stays in place on screen.
|
|
40640
40975
|
*
|
|
40976
|
+
* The transcript is a `log`, the role for content added in order where the
|
|
40977
|
+
* newest matters most, and it answers the APG feed's keys. The `feed` role
|
|
40978
|
+
* reads its articles as a list from the top, with no newest end to stay
|
|
40979
|
+
* pinned to, so the log keeps the role a conversation has. While `loading` is
|
|
40980
|
+
* set or older turns load, the log carries `aria-busy`, as the APG asks of a
|
|
40981
|
+
* feed.
|
|
40982
|
+
*
|
|
40641
40983
|
* The log is `aria-live="off"`. A separate status region announces each new
|
|
40642
40984
|
* turn once, when it has finished arriving. It skips the user's own turns
|
|
40643
40985
|
* unless they failed to send, turns loaded as history, and the turns already
|
|
@@ -40650,6 +40992,12 @@ export type CustomElements = {
|
|
|
40650
40992
|
* conversations. `turns` draws a long
|
|
40651
40993
|
* transcript one window at a time, so the log needs a block size of its own.
|
|
40652
40994
|
*
|
|
40995
|
+
* The log scrolls on this tier. It carries `data-scroller`, and `core` ships
|
|
40996
|
+
* `[data-scroller] { overflow: auto }` into every shadow root, so pinning,
|
|
40997
|
+
* history and the window work with no stylesheet. You still need to give the
|
|
40998
|
+
* log a block size, such as `helix-headless-chat::part(log) { block-size:
|
|
40999
|
+
* 20rem }`.
|
|
41000
|
+
*
|
|
40653
41001
|
* **A conversation is built from three elements.** The chat holds the
|
|
40654
41002
|
* transcript, a `Chat.Message` stands for each turn, and a `Chat.Composer` sits
|
|
40655
41003
|
* in the `composer` slot. When the user sends, `helix-send` reaches the chat:
|
|
@@ -40666,7 +41014,9 @@ export type CustomElements = {
|
|
|
40666
41014
|
* turn says its place, such as "3 of 40", windowed or not. The transcript is
|
|
40667
41015
|
* a tab stop while it holds a turn, and the turn a reader moved to is one
|
|
40668
41016
|
* too. Moving to an older turn unpins a transcript that scrolls and scrolls
|
|
40669
|
-
* the turn into view, and moving to the newest pins it again.
|
|
41017
|
+
* the turn into view, and moving to the newest pins it again. When the turn
|
|
41018
|
+
* holding focus is removed, focus moves to the turn that took its place, or to
|
|
41019
|
+
* the one before it where it was the last.
|
|
40670
41020
|
*
|
|
40671
41021
|
* | Key | What it does |
|
|
40672
41022
|
* |---|---|
|
|
@@ -40845,7 +41195,7 @@ export type CustomElements = {
|
|
|
40845
41195
|
* - `indicator`: The three dots before the words that say who is typing, which the styled tier animates as a message's are. Hidden from screen readers.
|
|
40846
41196
|
* - `live`: The region where screen readers announce each turn once it has arrived.
|
|
40847
41197
|
* - `loading`: Shown while the history loads.
|
|
40848
|
-
* - `log`: The transcript, which scrolls.
|
|
41198
|
+
* - `log`: The transcript, which scrolls. On this tier, it needs only a block size.
|
|
40849
41199
|
* - `message`: The message drawn for a turn from `turns`, forwarded whole.
|
|
40850
41200
|
* - `message-actions`: The controls on a turn from `turns`, beside its time.
|
|
40851
41201
|
* - `message-avatar`: The avatar box of a turn from `turns`.
|
|
@@ -41779,7 +42129,8 @@ export type CustomElements = {
|
|
|
41779
42129
|
*
|
|
41780
42130
|
* The trigger and ArrowDown open the panel with focus in the square. Tab moves
|
|
41781
42131
|
* between the panel's controls without leaving it, and Escape closes it and
|
|
41782
|
-
* returns focus to the
|
|
42132
|
+
* returns focus to the control that opened it: the trigger after a press, and
|
|
42133
|
+
* the field after ArrowDown.
|
|
41783
42134
|
*
|
|
41784
42135
|
* The component sets `--color-input-swatch`, so do not set it yourself. It
|
|
41785
42136
|
* holds the resolved color, so the styled tier can paint the swatch without
|
|
@@ -43212,7 +43563,17 @@ export type CustomElements = {
|
|
|
43212
43563
|
* The button is named `label`, or the host's `aria-label`, and its name
|
|
43213
43564
|
* changes to `copied-label` or `error-label` for the moment after a press. The
|
|
43214
43565
|
* same words are said in a live region, so a screen reader hears the result,
|
|
43215
|
-
* and the tooltip shows them.
|
|
43566
|
+
* and the tooltip shows them. The tooltip does not also describe the button,
|
|
43567
|
+
* since its words are the button's name.
|
|
43568
|
+
*
|
|
43569
|
+
* **The tooltip.** It shows the name on hover and focus and the result after a
|
|
43570
|
+
* press. `tooltip="copy"` shows it only for the result, and `tooltip="none"`
|
|
43571
|
+
* draws none, as Web Awesome's copy button offers. `tooltip-placement` is the
|
|
43572
|
+
* side it prefers, and it moves to another side where that one does not fit.
|
|
43573
|
+
*
|
|
43574
|
+
* **Words on the button.** `show-label` draws the name beside the icon, and
|
|
43575
|
+
* the result in its place after a press. The button is as wide as the longest
|
|
43576
|
+
* of the three, so a press does not resize it.
|
|
43216
43577
|
*
|
|
43217
43578
|
* ## Attributes & Properties
|
|
43218
43579
|
*
|
|
@@ -43235,6 +43596,15 @@ export type CustomElements = {
|
|
|
43235
43596
|
* Defaulted rather than left empty. An icon-only control must be named, and
|
|
43236
43597
|
* the name of this one is not a judgment call: every copy button in the
|
|
43237
43598
|
* world is called Copy. A consumer with a better word still sets it.
|
|
43599
|
+
* - `show-label`/`showLabel`: Draws the name as words beside the icon, and the result in their place
|
|
43600
|
+
* after a press. The button stays as wide as the longest of them.
|
|
43601
|
+
* - `tooltip`: When the tooltip shows: `full` on hover and focus and after a press,
|
|
43602
|
+
* `copy` only after a press, to show the result, and `none` never, for a
|
|
43603
|
+
* button whose result shows another way, such as under `show-label`.
|
|
43604
|
+
*
|
|
43605
|
+
* Unset is `full`, and the attribute stays absent until you write it.
|
|
43606
|
+
* - `tooltip-placement`/`tooltipPlacement`: The side the tooltip prefers. It moves to another side where this one
|
|
43607
|
+
* does not fit.
|
|
43238
43608
|
* - `value`: The text copied to the clipboard.
|
|
43239
43609
|
*
|
|
43240
43610
|
* It replaces `Button.value`, the submit value: a copy button never submits,
|
|
@@ -43396,6 +43766,7 @@ export type CustomElements = {
|
|
|
43396
43766
|
* - `live`: The live region that says `copied-label` or `error-label` after a press, and `pending-label` when the button becomes pending under focus. It is rendered from the first time it says anything.
|
|
43397
43767
|
* - `mark`: The clipboard icon, and the confirmation icon that replaces it.
|
|
43398
43768
|
* - `spinner`: The ring a pending button turns, an empty element the styled button draws over the icon. It is rendered only while the button is pending.
|
|
43769
|
+
* - `text`: The words beside the icon, under `show-label`. It holds all three, `label`, `copied-label` and `error-label`, with all but the current one hidden.
|
|
43399
43770
|
* - `tooltip`: The tooltip bubble, forwarded from the tooltip inside the button.
|
|
43400
43771
|
* - `tooltip-arrow`: The tooltip's arrow, which points at the button.
|
|
43401
43772
|
* - `tooltip-arrow-bottom`: The arrow while the bubble is below the button, on the bubble's top edge. Set together with `tooltip-arrow`.
|
|
@@ -43733,6 +44104,10 @@ export type CustomElements = {
|
|
|
43733
44104
|
* Off by default. Windowing costs a scroll listener, a measurement per row
|
|
43734
44105
|
* drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
43735
44106
|
* should pay none of them.
|
|
44107
|
+
*
|
|
44108
|
+
* While windowed, the `table` part scrolls on this tier: it carries
|
|
44109
|
+
* `data-scroller`, and `core` ships `[data-scroller] { overflow: auto }` into
|
|
44110
|
+
* every shadow root. You still need to give it a block size.
|
|
43736
44111
|
* - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
|
|
43737
44112
|
* - `loading`: Whether the rows are still loading.
|
|
43738
44113
|
*
|
|
@@ -43895,7 +44270,7 @@ export type CustomElements = {
|
|
|
43895
44270
|
* - `select`: The cell that holds a row's checkbox.
|
|
43896
44271
|
* - `select-all`: The heading that holds the checkbox that selects every row.
|
|
43897
44272
|
* - `select-selected`: Added to `select` in a selected row.
|
|
43898
|
-
* - `table`: The grid.
|
|
44273
|
+
* - `table`: The grid. While `windowed`, the box that scrolls, which needs only a block size on this tier.
|
|
43899
44274
|
* - `toggle`: The mark in a row header that a press opens and closes its row by, in a tree grid.
|
|
43900
44275
|
* - `toggle-mark`: The caret in `toggle`. It points along the line while the row is closed and down while it is open.
|
|
43901
44276
|
* - `toggle-open`: Added to `toggle` while its row is open.
|
|
@@ -45631,6 +46006,10 @@ export type CustomElements = {
|
|
|
45631
46006
|
* <helix-headless-drawer id="nav">…</helix-headless-drawer>
|
|
45632
46007
|
* ```
|
|
45633
46008
|
*
|
|
46009
|
+
* From its first press, a button that opens the drawer this way says whether
|
|
46010
|
+
* the drawer is open: a Helix button through `expanded`, and any other
|
|
46011
|
+
* element with `aria-expanded`.
|
|
46012
|
+
*
|
|
45634
46013
|
* ## Attributes & Properties
|
|
45635
46014
|
*
|
|
45636
46015
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -47673,6 +48052,9 @@ export type CustomElements = {
|
|
|
47673
48052
|
* - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
|
|
47674
48053
|
* - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
|
|
47675
48054
|
* - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
|
|
48055
|
+
* - `loading`: Marks the graph as busy while its notes arrive: the list is `aria-busy`,
|
|
48056
|
+
* and the panel says so where it holds no notes yet.
|
|
48057
|
+
* - `loading-label`/`loadingLabel`: What the panel says while `loading` is set and the list holds no notes.
|
|
47676
48058
|
* - `moved-down-label`/`movedDownLabel`: What screen readers hear once the drawing has moved down, after `moved()`.
|
|
47677
48059
|
* - `moved-left-label`/`movedLeftLabel`: What screen readers hear once the drawing has moved left, after `moved()`.
|
|
47678
48060
|
* - `moved-right-label`/`movedRightLabel`: What screen readers hear once the drawing has moved right, after `moved()`.
|
|
@@ -47781,6 +48163,15 @@ export type CustomElements = {
|
|
|
47781
48163
|
* - `hiddenGroups`: The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. (property only)
|
|
47782
48164
|
* - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
|
|
47783
48165
|
* - `nodes`: The notes. A property, never an attribute. (property only)
|
|
48166
|
+
* - `noteContent`: What each note's row in the list shows in place of its name: a function
|
|
48167
|
+
* given the note that returns text, an element or a Lit template.
|
|
48168
|
+
*
|
|
48169
|
+
* For an icon by its kind, or a date under its name, as React Aria's
|
|
48170
|
+
* `ListBoxItem` takes children. The row is still named by the note's name,
|
|
48171
|
+
* which typeahead and the search find it by, and described by how it stands
|
|
48172
|
+
* to the selected note. Return the name with your content where it should
|
|
48173
|
+
* still show. A property only, there being no way to write a function in
|
|
48174
|
+
* markup. (property only)
|
|
47784
48175
|
* - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
|
|
47785
48176
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
47786
48177
|
*
|
|
@@ -47827,6 +48218,7 @@ export type CustomElements = {
|
|
|
47827
48218
|
* - `footer`: Content below the graph.
|
|
47828
48219
|
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
47829
48220
|
* - `header`: Content above the graph.
|
|
48221
|
+
* - `loading`: What the panel shows while `loading` is set and the list holds no notes. Defaults to `loading-label`.
|
|
47830
48222
|
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
47831
48223
|
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
47832
48224
|
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
@@ -47900,6 +48292,7 @@ export type CustomElements = {
|
|
|
47900
48292
|
* - `legend-swatch`: The mark in a group's color, before its name.
|
|
47901
48293
|
* - `list`: The list of notes, which draws only the rows in view.
|
|
47902
48294
|
* - `live`: What screen readers hear: how many notes there are when a search or the legend changes it, and which way the drawing went after a key or a control moved it.
|
|
48295
|
+
* - `loading`: The box in place of the list while `loading` is set and it holds no notes, holding the `loading` slot.
|
|
47903
48296
|
* - `note`: One note in the list.
|
|
47904
48297
|
* - `note-cursor`: The note the keyboard is on in the list.
|
|
47905
48298
|
* - `note-linked`: A note linked to or from the selected one.
|
|
@@ -47927,6 +48320,7 @@ export type CustomElements = {
|
|
|
47927
48320
|
* - `empty`: The list holds no notes: the graph has none, or a search or the groups hid them all.
|
|
47928
48321
|
* - `fullscreen`: The graph fills the screen.
|
|
47929
48322
|
* - `idle`: The user has been still long enough for the header and footer to fade.
|
|
48323
|
+
* - `loading`: While `loading` is set.
|
|
47930
48324
|
* - `local`: The drawing shows the selected note's local graph, with `depth`.
|
|
47931
48325
|
* - `panel-open`: A graph with `no-panel` has the search and the list open over the drawing.
|
|
47932
48326
|
* - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
|
|
@@ -50470,7 +50864,8 @@ export type CustomElements = {
|
|
|
50470
50864
|
* itself.
|
|
50471
50865
|
* - `value`: The selected rows' values, separated by commas with no spaces, such as `a,c`, in a list that selects.
|
|
50472
50866
|
*
|
|
50473
|
-
*
|
|
50867
|
+
* A press or a key writes it in row order, as Data Table does, whatever
|
|
50868
|
+
* order the rows were chosen in. Set it to start with rows selected. A row's value is its `value`, or its
|
|
50474
50869
|
* words where it has none.
|
|
50475
50870
|
* - `rows`: The rows the list holds, in order. (property only) (readonly)
|
|
50476
50871
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
@@ -52556,6 +52951,8 @@ export type CustomElements = {
|
|
|
52556
52951
|
* These can be used to apply styling when a component is in a given state.
|
|
52557
52952
|
*
|
|
52558
52953
|
* - `checked`: The row is checked.
|
|
52954
|
+
* - `disabled`: The row is disabled.
|
|
52955
|
+
* - `expanded`: Under `submenus="flyout"`, the row's submenu is open beside it.
|
|
52559
52956
|
* - `highlighted`: In a menu with `filterable`, the arrow keys or the pointer reached the row while focus stays in the filter field.
|
|
52560
52957
|
* - `submenu-mark`: Under `submenus="flyout"`, a row in this row's submenu can be ticked or opens a submenu, so the submenu keeps its trailing column.
|
|
52561
52958
|
* - `submenu-start`: Under `submenus="flyout"`, a row in this row's submenu has content before its label, so the submenu keeps its leading column.
|
|
@@ -52579,7 +52976,9 @@ export type CustomElements = {
|
|
|
52579
52976
|
*
|
|
52580
52977
|
* Submenus drill down by default. A submenu replaces the panel's content, and a
|
|
52581
52978
|
* back row returns to the previous page. One panel stays inside a narrow
|
|
52582
|
-
* window, and works on touch screens, which have no hover.
|
|
52979
|
+
* window, and works on touch screens, which have no hover. Focus follows a
|
|
52980
|
+
* mouse resting on a row in either mode, and a drilled page is a `menu` named
|
|
52981
|
+
* by the row that opened it.
|
|
52583
52982
|
*
|
|
52584
52983
|
* **`submenus="flyout"` opens each submenu in a panel of its own beside its
|
|
52585
52984
|
* row**, as React Aria's `SubmenuTrigger` and Radix's `Sub` do. Resting the
|
|
@@ -52613,6 +53012,11 @@ export type CustomElements = {
|
|
|
52613
53012
|
* trigger's width, for a menu as wide as its trigger:
|
|
52614
53013
|
* `helix-menu::part(surface) { min-inline-size: var(--floating-anchor-inline-size) }`.
|
|
52615
53014
|
*
|
|
53015
|
+
* **The choices in one place.** `checkedValues` holds the values of the rows
|
|
53016
|
+
* that are checked, anywhere in the menu, and setting it checks exactly
|
|
53017
|
+
* those rows, as React Aria's `selectedKeys` does. `change` is sent on the
|
|
53018
|
+
* menu when a reader's choice changes it.
|
|
53019
|
+
*
|
|
52616
53020
|
* With `context`, the trigger is an area and the menu is its context menu: a
|
|
52617
53021
|
* right-click, a long press, Shift+F10 or the menu key over the area opens it
|
|
52618
53022
|
* at the pointer, or at the area's corner from the keyboard, as Radix's context
|
|
@@ -52635,7 +53039,8 @@ export type CustomElements = {
|
|
|
52635
53039
|
* field: Up and Down Arrow move the highlight through the rows that are left,
|
|
52636
53040
|
* Enter chooses the highlighted row, Right Arrow opens its submenu, Left Arrow
|
|
52637
53041
|
* on a submenu goes back, and Escape clears the filter and then closes the
|
|
52638
|
-
* menu.
|
|
53042
|
+
* menu. A screen reader hears how many rows the filter keeps
|
|
53043
|
+
* (`results-label`). Home, End and the other keys move the caret and type. The field names
|
|
52639
53044
|
* the highlighted row with `aria-activedescendant`, and the rows are a `menu`
|
|
52640
53045
|
* after the field. Cancel `helix-filter` to keep every row
|
|
52641
53046
|
* showing and narrow the rows yourself, such as by replacing them with rows
|
|
@@ -52675,6 +53080,9 @@ export type CustomElements = {
|
|
|
52675
53080
|
* - `placement`: The side the menu opens on, when there is room.
|
|
52676
53081
|
*
|
|
52677
53082
|
* It moves if that side does not fit.
|
|
53083
|
+
* - `results-label`/`resultsLabel`: What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
53084
|
+
* how many rows are left, written in the locale, and each language writes
|
|
53085
|
+
* the forms it has, as Listbox's `results-label` does.
|
|
52678
53086
|
* - `submenus`: How a submenu opens. `drill` shows it in place of the page showing, with
|
|
52679
53087
|
* a way back. `flyout` opens it in a panel of its own beside its row.
|
|
52680
53088
|
* - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
|
|
@@ -52703,6 +53111,13 @@ export type CustomElements = {
|
|
|
52703
53111
|
*
|
|
52704
53112
|
* Absent, a row is kept where its words hold the filter, in any case. A
|
|
52705
53113
|
* property only, there being no way to write a function in markup. (property only)
|
|
53114
|
+
* - `checkedValues`: The values of the choice rows that are checked, anywhere in the menu, in
|
|
53115
|
+
* document order.
|
|
53116
|
+
*
|
|
53117
|
+
* Set it to check exactly those rows and uncheck every other choice row, as
|
|
53118
|
+
* React Aria's `selectedKeys` controls a menu's selection from one place.
|
|
53119
|
+
* Each row keeps its own `checked` too, which this reads and writes. `change`
|
|
53120
|
+
* is sent on the menu when a reader's choice changes it. (property only)
|
|
52706
53121
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
52707
53122
|
*
|
|
52708
53123
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -52728,6 +53143,7 @@ export type CustomElements = {
|
|
|
52728
53143
|
*
|
|
52729
53144
|
* Events that will be emitted by the component.
|
|
52730
53145
|
*
|
|
53146
|
+
* - `change`: A reader's choice checked or unchecked rows. Read `checkedValues` for the rows that are checked now.
|
|
52731
53147
|
* - `helix-before-close`: The menu is about to close. Cancelable: cancel it to keep it open.
|
|
52732
53148
|
* - `helix-before-open`: The menu is about to open. Cancelable: cancel it to keep it closed.
|
|
52733
53149
|
* - `helix-filter`: The text in the filter field changed, with the new text in `detail.value`. Cancelable: cancel it to keep every row showing and narrow the rows yourself.
|
|
@@ -52739,6 +53155,8 @@ export type CustomElements = {
|
|
|
52739
53155
|
* Areas where markup can be added to the component.
|
|
52740
53156
|
*
|
|
52741
53157
|
* - `(default)`: The items.
|
|
53158
|
+
* - `empty`: What the menu shows when it has no items, for content richer than `empty-text`.
|
|
53159
|
+
* - `loading`: What the menu shows while its items load, for content richer than `loading-text`.
|
|
52742
53160
|
* - `no-results`: What the menu shows when the filter keeps no rows, for content richer than `no-results-text`.
|
|
52743
53161
|
* - `trigger`: The control that opens the menu, or with `context` the area a context menu opens over.
|
|
52744
53162
|
*
|
|
@@ -52784,6 +53202,8 @@ export type CustomElements = {
|
|
|
52784
53202
|
* These can be used to apply styling when a component is in a given state.
|
|
52785
53203
|
*
|
|
52786
53204
|
* - `drilled`: A submenu's page is showing, so content that is not a row can hide with the top page.
|
|
53205
|
+
* - `entering`: From the moment the panel shows until its entrance has finished.
|
|
53206
|
+
* - `exiting`: From the moment the panel hides until its exit has finished.
|
|
52787
53207
|
* - `mark`: A row on the current page has a checkbox or a link, so every row keeps the trailing column.
|
|
52788
53208
|
* - `open`: While the menu is open.
|
|
52789
53209
|
* - `placed-bottom`: While the open panel sits below its trigger.
|
|
@@ -54731,6 +55151,22 @@ export type CustomElements = {
|
|
|
54731
55151
|
* headings are far apart, none is in the band and no section is marked, and
|
|
54732
55152
|
* when they are close together, several are in the band at once.
|
|
54733
55153
|
*
|
|
55154
|
+
* **Several sections at once.** `marks="visible"` marks the link of every
|
|
55155
|
+
* section with part of it on screen, from the reading line to the bottom of
|
|
55156
|
+
* what the sections scroll in, as Zag's table of contents marks its active
|
|
55157
|
+
* ids. The mark then runs from the first of those links to the last, and
|
|
55158
|
+
* `marked` lists their ids in page order.
|
|
55159
|
+
*
|
|
55160
|
+
* **Going to a section from code.** `scrollToSection(id)` scrolls to the
|
|
55161
|
+
* section as a press on its link does, with `behavior`, and marks its link at
|
|
55162
|
+
* once.
|
|
55163
|
+
*
|
|
55164
|
+
* **Styling a link by its state.** Each link the outline finds carries
|
|
55165
|
+
* `data-depth`, its depth in the outline from `1`, nested lists and
|
|
55166
|
+
* `data-level` alike, and `aria-current="location"` while its section is
|
|
55167
|
+
* marked, so `a[aria-current]` and `a[data-depth="2"]` are the hooks for a
|
|
55168
|
+
* rule of yours.
|
|
55169
|
+
*
|
|
54734
55170
|
* ## Attributes & Properties
|
|
54735
55171
|
*
|
|
54736
55172
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -54760,6 +55196,9 @@ export type CustomElements = {
|
|
|
54760
55196
|
* box the sections scroll in.
|
|
54761
55197
|
* - `label`: The navigation's name, read by screen readers. A heading in the `heading`
|
|
54762
55198
|
* slot names it in place of this.
|
|
55199
|
+
* - `marks`: Which links are marked. `reading` marks the one section being read, the
|
|
55200
|
+
* last whose heading has passed the reading line. `visible` marks every
|
|
55201
|
+
* section with part of it on screen, and the mark runs across their links.
|
|
54763
55202
|
* - `offset`: How far below the top of the scroll container a heading counts as reached,
|
|
54764
55203
|
* in pixels. The scroll container is the window or the panel the sections
|
|
54765
55204
|
* scroll in.
|
|
@@ -54775,6 +55214,9 @@ export type CustomElements = {
|
|
|
54775
55214
|
* writable property in this library that a component also writes is state a
|
|
54776
55215
|
* consumer can own; this one cannot be, and saying so with the type is better
|
|
54777
55216
|
* than saying it in a sentence nobody reads. (property only) (readonly)
|
|
55217
|
+
* - `marked`: The ids of the sections whose links are marked, in page order: the one
|
|
55218
|
+
* `current` names, or under `marks="visible"` every section on screen.
|
|
55219
|
+
* Read-only, for the reason `current` gives. (property only) (readonly)
|
|
54778
55220
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
54779
55221
|
*
|
|
54780
55222
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -54810,6 +55252,14 @@ export type CustomElements = {
|
|
|
54810
55252
|
* - `heading`: A heading above the links, such as "On this page". It names the navigation.
|
|
54811
55253
|
* - `indicator`: A mark of your own, drawn inside the `indicator` part, where `--indicator-x`, `--indicator-y`, `--indicator-inline-size` and `--indicator-block-size` reach it.
|
|
54812
55254
|
*
|
|
55255
|
+
* ## Methods
|
|
55256
|
+
*
|
|
55257
|
+
* Methods that can be called to access component functionality.
|
|
55258
|
+
*
|
|
55259
|
+
* - `scrollToSection(id: string) => boolean`: Scrolls to the section with this id, as a press on its link does, with
|
|
55260
|
+
* `behavior`, and marks its link at once. The address and focus stay where
|
|
55261
|
+
* they are. Returns whether the outline has a link to that section.
|
|
55262
|
+
*
|
|
54813
55263
|
* ## CSS Parts
|
|
54814
55264
|
*
|
|
54815
55265
|
* Custom selectors for styling elements within the component.
|
|
@@ -55598,7 +56048,9 @@ export type CustomElements = {
|
|
|
55598
56048
|
*
|
|
55599
56049
|
* It opens on click and from a command. `command="--show"` and the related
|
|
55600
56050
|
* commands work as they do on `Dialog` and `Drawer`, so a button anywhere on
|
|
55601
|
-
* the page can open the popover with no script.
|
|
56051
|
+
* the page can open the popover with no script. From its first press, a
|
|
56052
|
+
* button that opens it this way says whether the popover is open: a Helix
|
|
56053
|
+
* button through `expanded`, and any other element with `aria-expanded`.
|
|
55602
56054
|
*
|
|
55603
56055
|
* **Opening moves focus into the panel**, to the first control in it, or to the
|
|
55604
56056
|
* panel itself where it holds none, and closing from inside gives it back to
|
|
@@ -55608,8 +56060,12 @@ export type CustomElements = {
|
|
|
55608
56060
|
* `modal` keeps `Tab` inside the panel while it is open and says so with
|
|
55609
56061
|
* `aria-modal`, for a panel that has to be answered before the page goes on.
|
|
55610
56062
|
* The rest of the page is hidden from screen readers with `aria-hidden` while
|
|
55611
|
-
* it is open, so the virtual cursor stays in the panel too
|
|
55612
|
-
* popover does not trap focus.
|
|
56063
|
+
* it is open, so the virtual cursor stays in the panel too, and the page does
|
|
56064
|
+
* not scroll behind it. Without it the popover does not trap focus.
|
|
56065
|
+
*
|
|
56066
|
+
* A press outside closes the panel and leaves focus where the press put it.
|
|
56067
|
+
* Where it put focus nowhere, as a press on text or on the page's background
|
|
56068
|
+
* does, focus goes back to the trigger.
|
|
55613
56069
|
*
|
|
55614
56070
|
* The panel's name is `label` when you set it. Otherwise it is the first
|
|
55615
56071
|
* heading in the panel, or the elements an `aria-labelledby` on the host names.
|
|
@@ -55625,10 +56081,17 @@ export type CustomElements = {
|
|
|
55625
56081
|
* | Escape | Closes the panel and puts focus back on the trigger. |
|
|
55626
56082
|
* | Tab, Shift+Tab | Moves through the controls in the panel. Leaving the panel and the trigger closes it. With `modal`, moves from the last control round to the first and from the first round to the last. |
|
|
55627
56083
|
*
|
|
56084
|
+
* The panel opens against the trigger, or against the element `anchor` names,
|
|
56085
|
+
* such as a field beside the button that opens it. `offset` moves it away from
|
|
56086
|
+
* that element, `cross-offset` slides it along the side it is on,
|
|
56087
|
+
* `container-padding` keeps it that far from the window's edges, and
|
|
56088
|
+
* `flip="false"` keeps it on its side where the other side has more room.
|
|
56089
|
+
*
|
|
55628
56090
|
* `arrow` draws a point on the panel's edge facing the trigger. The side the
|
|
55629
|
-
* panel landed on is on the host as `:state(placed-top)` and its kin,
|
|
55630
|
-
*
|
|
55631
|
-
*
|
|
56091
|
+
* panel landed on is on the host as `:state(placed-top)` and its kin, its
|
|
56092
|
+
* alignment along that side as `:state(aligned-start)` or
|
|
56093
|
+
* `:state(aligned-end)`, and the trigger's width is on the panel as
|
|
56094
|
+
* `--floating-anchor-inline-size`, for a panel as wide as its trigger:
|
|
55632
56095
|
*
|
|
55633
56096
|
* ```css
|
|
55634
56097
|
* helix-popover::part(popover) {
|
|
@@ -55640,12 +56103,25 @@ export type CustomElements = {
|
|
|
55640
56103
|
*
|
|
55641
56104
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
55642
56105
|
*
|
|
56106
|
+
* - `anchor`: The element the panel opens against, where that is not the trigger: its
|
|
56107
|
+
* `id` in the same document or shadow root, or the element itself. Left
|
|
56108
|
+
* empty, the panel opens against the trigger, or against the button whose
|
|
56109
|
+
* command opened it.
|
|
55643
56110
|
* - `arrow`: Draws a point on the panel's edge facing the trigger.
|
|
55644
56111
|
*
|
|
55645
56112
|
* Off by default, which is the house style: a panel that opens from its
|
|
55646
56113
|
* trigger already reads as belonging to it.
|
|
56114
|
+
* - `container-padding`/`containerPadding`: How close to the window's edges the panel may come, in pixels, when it
|
|
56115
|
+
* slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
56116
|
+
* and shrinks to 8 pixels from an edge and moves to the other side only
|
|
56117
|
+
* once it would cross one.
|
|
56118
|
+
* - `cross-offset`/`crossOffset`: How far to slide the panel along the side it is on, in pixels: to the
|
|
56119
|
+
* right on the top or the bottom, and down on the left or the right.
|
|
55647
56120
|
* - `fallback-label`/`fallbackLabel`: The panel's name where nothing else names it: no `label`, no heading in
|
|
55648
56121
|
* the panel, and no `aria-labelledby` on the host.
|
|
56122
|
+
* - `flip`: Whether the panel moves to the other side of the trigger when its own
|
|
56123
|
+
* side has no room. On by default. Write `flip="false"` to keep it on its
|
|
56124
|
+
* side, where it shrinks to fit, as React Aria's `shouldFlip` turns off.
|
|
55649
56125
|
* - `label`: The panel's name, read by screen readers. Left empty, the first heading in
|
|
55650
56126
|
* the panel names it, and then `fallback-label`.
|
|
55651
56127
|
* - `modal`: Keeps `Tab` inside the panel while it is open, marks the panel
|
|
@@ -55743,6 +56219,8 @@ export type CustomElements = {
|
|
|
55743
56219
|
*
|
|
55744
56220
|
* These can be used to apply styling when a component is in a given state.
|
|
55745
56221
|
*
|
|
56222
|
+
* - `aligned-end`: While the panel is aligned to the end of the side it sits on.
|
|
56223
|
+
* - `aligned-start`: While the panel is aligned to the start of the side it sits on.
|
|
55746
56224
|
* - `entering`: From the moment the panel shows until its entrance has finished.
|
|
55747
56225
|
* - `exiting`: From the moment the panel hides until its exit has finished.
|
|
55748
56226
|
* - `open`: While the popover is open.
|
|
@@ -57338,7 +57816,7 @@ export type CustomElements = {
|
|
|
57338
57816
|
* | Down, Enter, Space | Opens the list on the chosen option, or the first. |
|
|
57339
57817
|
* | Up | Opens the list on the chosen option, or the last. |
|
|
57340
57818
|
* | Home, End | Opens the list on the first or the last option. |
|
|
57341
|
-
* | Left, Right | Chooses the option before or after the chosen one without opening, as React Aria's Select does
|
|
57819
|
+
* | Left, Right | Chooses the option before or after the chosen one without opening, as React Aria's Select does. On a right-to-left page Left chooses the one after. |
|
|
57342
57820
|
* | A letter or a word | Chooses the option whose words start with what you typed, as a native `<select>` does. With `multiple`, opens the list on it. |
|
|
57343
57821
|
*
|
|
57344
57822
|
* In the open list, which is a `Listbox`:
|
|
@@ -58753,7 +59231,11 @@ export type CustomElements = {
|
|
|
58753
59231
|
* back to the position where the collapsing gesture began. A drag records that position
|
|
58754
59232
|
* on press, and every other way of collapsing records it in `settle`.
|
|
58755
59233
|
* `collapsed-size` keeps a sliver of the pane visible, such as a tab strip.
|
|
58756
|
-
* Collapsing overrides `min` and `max`.
|
|
59234
|
+
* Collapsing overrides `min` and `max`. `collapsible` says which panes can be
|
|
59235
|
+
* collapsed at all, as Zag's panels each say.
|
|
59236
|
+
*
|
|
59237
|
+
* `min` is the least the start pane keeps and `end-min` the least the end pane
|
|
59238
|
+
* keeps, each a percentage or a CSS length such as `16rem`.
|
|
58757
59239
|
*
|
|
58758
59240
|
* Set `primary` to the pane that keeps its size when the splitter's own size
|
|
58759
59241
|
* changes, such as a sidebar beside a window being resized. The other pane
|
|
@@ -58774,7 +59256,7 @@ export type CustomElements = {
|
|
|
58774
59256
|
* | Left, Right | Moves a side-by-side divider by `step`. On a right-to-left page, Left moves it toward the end. |
|
|
58775
59257
|
* | Up, Down | Moves a stacked divider by `step`. |
|
|
58776
59258
|
* | Home, End | Moves the divider to its bounds. |
|
|
58777
|
-
* | Enter | Collapses the start pane, and opens it again. |
|
|
59259
|
+
* | Enter | Collapses the start pane, or the end pane where `collapsible="end"`, and opens it again. |
|
|
58778
59260
|
* | F6 | Moves focus from one pane to the first control in the other, and from the divider to the start pane. |
|
|
58779
59261
|
*
|
|
58780
59262
|
* ## Attributes & Properties
|
|
@@ -58804,6 +59286,12 @@ export type CustomElements = {
|
|
|
58804
59286
|
* that should survive its own collapse says how much of itself to keep, and
|
|
58805
59287
|
* only whoever put it there knows that, which is the same reason `min` is a
|
|
58806
59288
|
* consumer's to set.
|
|
59289
|
+
* - `collapsible`: Which panes can be collapsed, as Zag's panels each take `collapsible`:
|
|
59290
|
+
* `start`, `end`, `both`, or `none`. A pane that cannot be collapsed stops
|
|
59291
|
+
* at the edge without shutting. `Enter` collapses the end pane where only
|
|
59292
|
+
* the end pane can be collapsed, and the start pane otherwise.
|
|
59293
|
+
*
|
|
59294
|
+
* Unset is `both`, and the attribute stays absent until you write it.
|
|
58807
59295
|
* - `corner-label`/`cornerLabel`: The name of the handle where two dividers cross, read by screen readers.
|
|
58808
59296
|
* - `corner-value-label`/`cornerValueLabel`: What the handle where two dividers cross says it is set to, both dividers
|
|
58809
59297
|
* at once: `{across}` is where the divider that runs down stands, and
|
|
@@ -58814,6 +59302,11 @@ export type CustomElements = {
|
|
|
58814
59302
|
* these words are the whole of where it is.
|
|
58815
59303
|
* - `default-collapsed`/`defaultCollapsed`: Which pane starts shut, when `collapsed` is not set.
|
|
58816
59304
|
* - `default-position`/`defaultPosition`: Where the divider starts, when `position` is not set.
|
|
59305
|
+
* - `end-min`/`endMin`: The least the end pane keeps, in the units `min` takes: a percentage, or
|
|
59306
|
+
* a CSS length such as `16rem` resolved against the splitter's box. The
|
|
59307
|
+
* divider stops that far from the end, whatever `max` allows, so `min` and
|
|
59308
|
+
* `end-min` hold a minimum for each pane, as Zag's panels each take
|
|
59309
|
+
* `minSize`.
|
|
58817
59310
|
* - `label`: The divider's name, read by screen readers.
|
|
58818
59311
|
*
|
|
58819
59312
|
* An `aria-label` or `aria-labelledby` on the host names the divider too,
|
|
@@ -60891,7 +61384,8 @@ export type CustomElements = {
|
|
|
60891
61384
|
* not disabled. `selection-behavior="replace"` selects the tag a reader
|
|
60892
61385
|
* presses or moves to alone, as a file list does, and Control or Command
|
|
60893
61386
|
* with a press or Space adds or takes out one tag. `disallow-empty-selection`
|
|
60894
|
-
* keeps one tag selected once one is
|
|
61387
|
+
* keeps one tag selected once one is, and Escape lets go of the selection
|
|
61388
|
+
* otherwise. `value` holds the
|
|
60895
61389
|
* selected tags' values, separated by commas, and a change asks with
|
|
60896
61390
|
* `helix-before-change` and tells with `change`. Enter on a tag with an
|
|
60897
61391
|
* `href` follows its link. A `disabled` tag is passed over. A selected tag
|
|
@@ -60909,6 +61403,12 @@ export type CustomElements = {
|
|
|
60909
61403
|
* Where only disabled tags are left, the first of them holds the tab stop and
|
|
60910
61404
|
* takes focus, so the reader stays in the set.
|
|
60911
61405
|
*
|
|
61406
|
+
* **Typing new tags.** A field where people type tags and press Enter to add
|
|
61407
|
+
* each one is Combobox with `multiple` and `allows-custom-value`, or
|
|
61408
|
+
* `creatable` to ask first with `helix-create`. It draws each value as a tag,
|
|
61409
|
+
* Backspace on the empty field removes the last one, and the arrow keys move
|
|
61410
|
+
* between them.
|
|
61411
|
+
*
|
|
60912
61412
|
* ## Attributes & Properties
|
|
60913
61413
|
*
|
|
60914
61414
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -61011,6 +61511,12 @@ export type CustomElements = {
|
|
|
61011
61511
|
* selected. Its remove button leaves the tab order there, Delete and Backspace
|
|
61012
61512
|
* doing its job from the row.
|
|
61013
61513
|
*
|
|
61514
|
+
* **Styling a tag by what is happening to it.** `:state(selected)` while it is
|
|
61515
|
+
* selected, `:state(focus-visible)` while its cell shows keyboard focus,
|
|
61516
|
+
* `[disabled]` while it is out of reach, and the host's own `:hover` and
|
|
61517
|
+
* `:active` under the pointer, as React Aria's `data-hovered` and
|
|
61518
|
+
* `data-pressed` are.
|
|
61519
|
+
*
|
|
61014
61520
|
* ## Attributes & Properties
|
|
61015
61521
|
*
|
|
61016
61522
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -61103,6 +61609,7 @@ export type CustomElements = {
|
|
|
61103
61609
|
*
|
|
61104
61610
|
* These can be used to apply styling when a component is in a given state.
|
|
61105
61611
|
*
|
|
61612
|
+
* - `focus-visible`: The tag's cell has keyboard focus that the browser shows, in a `Tag.Group`.
|
|
61106
61613
|
* - `selected`: The tag is selected in a `Tag.Group` that selects.
|
|
61107
61614
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
61108
61615
|
*/
|
|
@@ -61319,6 +61826,10 @@ export type CustomElements = {
|
|
|
61319
61826
|
* along, so the two writes a consumer would make in sequence do not compose
|
|
61320
61827
|
* into the range they asked for. The platform has this method for that reason
|
|
61321
61828
|
* and so does this.
|
|
61829
|
+
* - `setRangeText(replacement: string, start?: number, end?: number, selectMode?: SelectionMode) => void`: Replaces a range of the text, as the native method does: the selection
|
|
61830
|
+
* where `start` and `end` are left out, and `selectMode` says what is
|
|
61831
|
+
* selected after. It sends no event, as the native method sends none.
|
|
61832
|
+
* - `select() => void`: Selects everything in the field.
|
|
61322
61833
|
* - `focus(options?: FocusOptions) => void`: Puts the caret in the field, as a label pointing at it would.
|
|
61323
61834
|
* - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
|
|
61324
61835
|
*
|
|
@@ -62103,6 +62614,17 @@ export type CustomElements = {
|
|
|
62103
62614
|
* imperatively later, and nothing is hydrating by then.
|
|
62104
62615
|
*
|
|
62105
62616
|
* Here rather than on each control.
|
|
62617
|
+
* - `timeContent`: What each time in the list shows: a function given the time as `HH:mm`,
|
|
62618
|
+
* or `HH:mm:ss` with `seconds`, and the time as the row writes it, that
|
|
62619
|
+
* returns text, an element or a Lit template.
|
|
62620
|
+
*
|
|
62621
|
+
* For the seats left at a time, or a caption under it, as React Aria's
|
|
62622
|
+
* `ListBoxItem` takes children. Content with `slot="start"`, `slot="end"`
|
|
62623
|
+
* or `slot="description"` goes to that slot of the row, and a description
|
|
62624
|
+
* is read after the time. The row is still named by the written time, and
|
|
62625
|
+
* typeahead still finds it by that. Return the written time with your
|
|
62626
|
+
* content where it should still show. A property only, there being no way
|
|
62627
|
+
* to write a function in markup. The wheels draw their own figures. (property only)
|
|
62106
62628
|
* - `valueAsDate`: The value as a `Date` on 1 January 1970 UTC, or `null` while there is no time.
|
|
62107
62629
|
*
|
|
62108
62630
|
* The platform's own pair on `<input type="time">`, epoch day included: a time
|
|
@@ -62379,7 +62901,9 @@ export type CustomElements = {
|
|
|
62379
62901
|
* hours ago", from `datetime`, where the `time` slot is empty. The words move
|
|
62380
62902
|
* on as they go stale, "3 hours ago" becoming "4 hours ago", with one wakeup
|
|
62381
62903
|
* shared by every reading on the page, as `FormatDate` keeps its own. They are
|
|
62382
|
-
* in the language of the page, or of the nearest `lang`.
|
|
62904
|
+
* in the language of the page, or of the nearest `lang`. The whole date and
|
|
62905
|
+
* time is the reading's `title`, so a pointer resting on "3 hours ago" shows
|
|
62906
|
+
* when it was, and a screen reader reads it as the description.
|
|
62383
62907
|
*
|
|
62384
62908
|
* Each entry draws the connector line that arrives at it and hides it when it
|
|
62385
62909
|
* is the first entry, using `:host(:first-child)`. This needs no index, no
|
|
@@ -62493,11 +63017,20 @@ export type CustomElements = {
|
|
|
62493
63017
|
* Write the entries in the order the events happened, oldest or newest first,
|
|
62494
63018
|
* and the layout only moves where they are drawn.
|
|
62495
63019
|
*
|
|
63020
|
+
* **A feed that loads more entries sets `loading` while it fetches.** The
|
|
63021
|
+
* timeline is busy, and an entry after the last says "Loading more"
|
|
63022
|
+
* (`loading-label`, or your own content in the `loading` slot). Put a button
|
|
63023
|
+
* that asks for more after the timeline, and move focus to the first new
|
|
63024
|
+
* entry when they arrive.
|
|
63025
|
+
*
|
|
62496
63026
|
* ## Attributes & Properties
|
|
62497
63027
|
*
|
|
62498
63028
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
62499
63029
|
*
|
|
62500
63030
|
* - `label`: Accessible name for the timeline, for people who reach it out of context.
|
|
63031
|
+
* - `loading`: Marks the timeline as busy fetching more entries, and draws an entry
|
|
63032
|
+
* after the last that says so.
|
|
63033
|
+
* - `loading-label`/`loadingLabel`: The text of the entry drawn while `loading` is set, where the `loading` slot is empty.
|
|
62501
63034
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
62502
63035
|
*
|
|
62503
63036
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -62524,11 +63057,19 @@ export type CustomElements = {
|
|
|
62524
63057
|
* Areas where markup can be added to the component.
|
|
62525
63058
|
*
|
|
62526
63059
|
* - `(default)`: The entries, and any groups of them.
|
|
63060
|
+
* - `loading`: Content for the entry after the last while `loading` is set. Falls back to `loading-label`.
|
|
63061
|
+
*
|
|
63062
|
+
* ## CSS Parts
|
|
63063
|
+
*
|
|
63064
|
+
* Custom selectors for styling elements within the component.
|
|
63065
|
+
*
|
|
63066
|
+
* - `loading`: The entry after the last while `loading` is set.
|
|
62527
63067
|
*
|
|
62528
63068
|
* ## CSS States
|
|
62529
63069
|
*
|
|
62530
63070
|
* These can be used to apply styling when a component is in a given state.
|
|
62531
63071
|
*
|
|
63072
|
+
* - `loading`: While `loading` is set.
|
|
62532
63073
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
62533
63074
|
*/
|
|
62534
63075
|
"helix-headless-timeline": Partial<
|
|
@@ -63413,6 +63954,9 @@ export type CustomElements = {
|
|
|
63413
63954
|
* describes a Helix component and leaves a plain element undescribed. In the
|
|
63414
63955
|
* `for` form the tooltip itself is out of the accessibility tree while its
|
|
63415
63956
|
* bubble is down, so you meet its words once, as the trigger's description.
|
|
63957
|
+
* A trigger whose name is already the tooltip's words, such as an icon button
|
|
63958
|
+
* named Settings under a tooltip reading Settings, is not described by them
|
|
63959
|
+
* again.
|
|
63416
63960
|
*
|
|
63417
63961
|
* The tooltip shows on hover and on focus. It hides on pointer leave, on blur,
|
|
63418
63962
|
* on Escape, and when the trigger is activated. The pointer can move from the
|
|
@@ -65469,11 +66013,14 @@ export type CustomElements = {
|
|
|
65469
66013
|
* | Page Down, Page Up | Moves by the number of items, or of lines in a grid, on screen. |
|
|
65470
66014
|
* | A letter or a word | Moves to the next item whose text starts with what you typed. |
|
|
65471
66015
|
* | Escape | Lets go of every chosen item, in a list with `selection-mode`. |
|
|
66016
|
+
* | Alt with Up or Down | In a `reorderable` list, moves the item a place. Alt with Home or End moves it to either end. |
|
|
65472
66017
|
* | Tab | Moves into the focused row's own links and buttons, then out of the list. |
|
|
65473
66018
|
*
|
|
65474
66019
|
* An item that is not drawn is scrolled into view and focused, so a keyboard
|
|
65475
|
-
* reaches the whole set.
|
|
65476
|
-
*
|
|
66020
|
+
* reaches the whole set. The row a reader last focused keeps the tab stop and
|
|
66021
|
+
* stays drawn when it scrolls away, so Tab and Shift+Tab come back to it, as
|
|
66022
|
+
* React Aria's collections do. In a list nobody has focused yet, the stop
|
|
66023
|
+
* moves to the first row on screen. Typing matches each item's
|
|
65477
66024
|
* `text-field`, which is the first `data-field` of the row template by default,
|
|
65478
66025
|
* or the item itself when it is a string or a number.
|
|
65479
66026
|
*
|
|
@@ -65515,6 +66062,23 @@ export type CustomElements = {
|
|
|
65515
66062
|
* the last item says "Loading more" (`loading-label`, or your own content in
|
|
65516
66063
|
* the `loading` slot). `scrollToIndex` takes a reader to an item.
|
|
65517
66064
|
*
|
|
66065
|
+
* **Moving items** is a separate import, `@fusion.dev/helix/virtual-list/reorder`,
|
|
66066
|
+
* as React Aria's drag and drop is. With it imported, `reorderable` lets a
|
|
66067
|
+
* reader move items in a list of one column without sections:
|
|
66068
|
+
*
|
|
66069
|
+
* - Alt with Up or Down moves the item the keys are on a place, and Alt with
|
|
66070
|
+
* Home or End to either end, as the APG's rearrangeable listbox does.
|
|
66071
|
+
* - A pointer drags a whole row. A press that does not travel is still a
|
|
66072
|
+
* press. The list scrolls near an edge, and an item far down a long set is
|
|
66073
|
+
* reached by dragging to the edge.
|
|
66074
|
+
* - A drop sends `helix-before-reorder`, which you can refuse, and then
|
|
66075
|
+
* `helix-reorder`, whose `keys` hold every item's key in the new order.
|
|
66076
|
+
* **You move the items**: set `items` to them in that order. The keys stay
|
|
66077
|
+
* on the item that moved.
|
|
66078
|
+
* - Each move is said in a region screen readers announce. The row being
|
|
66079
|
+
* dragged carries `data-dragging`, and the row a drop would land beside
|
|
66080
|
+
* `data-drop-before` or `data-drop-after`.
|
|
66081
|
+
*
|
|
65518
66082
|
* **An empty list.** Set `empty-label`, or put your own content in the `empty`
|
|
65519
66083
|
* slot, for a row shown when there are no items and none are loading, such as
|
|
65520
66084
|
* "No messages yet" and a link to write one. Without either, an empty list
|
|
@@ -65593,6 +66157,12 @@ export type CustomElements = {
|
|
|
65593
66157
|
* and scrolls it sideways: Left and Right move between items, the other
|
|
65594
66158
|
* way round on a right-to-left page, and `estimate` is an item's width. A
|
|
65595
66159
|
* grid always runs down.
|
|
66160
|
+
* - `reorderable`: Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`
|
|
66161
|
+
* (or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt
|
|
66162
|
+
* with an arrow moves the row the keys are on, and a pointer drags a row.
|
|
66163
|
+
* The list moves no item itself: you move your `items` on `helix-reorder`.
|
|
66164
|
+
* Without that import it does nothing, so a list that never moves items
|
|
66165
|
+
* carries none of the code. A list of one column, without sections.
|
|
65596
66166
|
* - `section-field`/`sectionField`: The field of each item that names its section, as a key or a path of
|
|
65597
66167
|
* keys. Set, the items are drawn in sections: a header, then the items, in
|
|
65598
66168
|
* an element with the `group` role that the header names. A section starts
|
|
@@ -65655,8 +66225,10 @@ export type CustomElements = {
|
|
|
65655
66225
|
*
|
|
65656
66226
|
* - `change`: Fired once a press or a key has changed which items are selected, in a list with `selection-mode`.
|
|
65657
66227
|
* - `helix-before-change`: Fired before a press or a key changes which items are selected, with the `value` it would leave. Cancelable.
|
|
66228
|
+
* - `helix-before-reorder`: Fired when an item is dropped at a new place, in a `reorderable` list with `@fusion.dev/helix/virtual-list/reorder` imported, with every key in the new order. Cancelable: cancel it to keep the item where it is.
|
|
65658
66229
|
* - `helix-load-more`: Fired when a reader comes within one screen of the last item, once for each length of the set.
|
|
65659
66230
|
* - `helix-range-change`: Fired when the items on screen change, with the new `first` and `last`, which `range` also holds.
|
|
66231
|
+
* - `helix-reorder`: Fired after `helix-before-reorder` when nobody canceled it. Set `items` to the order in `keys`. Cancelable: cancel it to say the move did not happen.
|
|
65660
66232
|
*
|
|
65661
66233
|
* ## Slots
|
|
65662
66234
|
*
|
|
@@ -67728,10 +68300,18 @@ export type CustomElementsSolidJs = {
|
|
|
67728
68300
|
* a named `group`, and the toolbar's own arrow keys walk its buttons, so a
|
|
67729
68301
|
* reader meets one toolbar. Under `single` it is a `radiogroup` either way.
|
|
67730
68302
|
*
|
|
68303
|
+
* **Disabled.** `disabled` on the group disables every button in it, Helix
|
|
68304
|
+
* and native alike, and says so on the group with `aria-disabled`, as React
|
|
68305
|
+
* Aria's `isDisabled` does. A button disabled on its own stays disabled when
|
|
68306
|
+
* the group is enabled again, and a button that leaves the group gets back
|
|
68307
|
+
* what it said for itself.
|
|
68308
|
+
*
|
|
67731
68309
|
* ## Attributes & Properties
|
|
67732
68310
|
*
|
|
67733
68311
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
67734
68312
|
*
|
|
68313
|
+
* - `disabled`: Disables every button in the group, and says so on the group with
|
|
68314
|
+
* `aria-disabled`. Reflected, so a stylesheet can select on it.
|
|
67735
68315
|
* - `disallow-empty-selection`/`disallowEmptySelection`: Keeps at least one button pressed once one is, as React Aria's
|
|
67736
68316
|
* `disallowEmptySelection`: a press that would leave none pressed is
|
|
67737
68317
|
* refused.
|
|
@@ -67766,6 +68346,8 @@ export type CustomElementsSolidJs = {
|
|
|
67766
68346
|
*
|
|
67767
68347
|
* The attribute is the seed, and a press changes the property, which does
|
|
67768
68348
|
* not reflect, as a native control's `value` does not.
|
|
68349
|
+
* - `values`: The pressed values as a list, in a selection mode, and an empty list
|
|
68350
|
+
* otherwise. Written, it presses exactly those buttons. (property only)
|
|
67769
68351
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
67770
68352
|
*
|
|
67771
68353
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -68628,6 +69210,8 @@ export type CustomElementsSolidJs = {
|
|
|
68628
69210
|
* Third", rather than with a comma this component chose.
|
|
68629
69211
|
* - `linked-label`/`linkedLabel`: The text read with a card that has connections both ways. `{leadsTo}` is
|
|
68630
69212
|
* `leads-to-label` and `{comesFrom}` is `comes-from-label`, each filled in.
|
|
69213
|
+
* - `loading`: Marks the board as busy while its document arrives: the board is
|
|
69214
|
+
* `aria-busy`, and the `loading` slot is shown.
|
|
68631
69215
|
* - `moved-label`/`movedLabel`: What screen readers hear after a key moves a card, with `{name}` for the
|
|
68632
69216
|
* card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
68633
69217
|
*
|
|
@@ -68868,6 +69452,7 @@ export type CustomElementsSolidJs = {
|
|
|
68868
69452
|
* - `footer`: Content below the board.
|
|
68869
69453
|
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
68870
69454
|
* - `header`: Content above the board.
|
|
69455
|
+
* - `loading`: Content shown while `loading` is set, such as a progress bar while the document arrives.
|
|
68871
69456
|
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
68872
69457
|
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
68873
69458
|
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
@@ -68990,6 +69575,7 @@ export type CustomElementsSolidJs = {
|
|
|
68990
69575
|
* - `fullscreen`: While the board fills the screen.
|
|
68991
69576
|
* - `holding`: An item picked up with a click follows the pointer until the next press puts it down.
|
|
68992
69577
|
* - `idle`: The user has been still for `idle-delay` milliseconds. The board's own controls stay; select on it to hide chrome of your own.
|
|
69578
|
+
* - `loading`: While `loading` is set.
|
|
68993
69579
|
* - `pressing`: While a press on the board, its cards or its connections is under way.
|
|
68994
69580
|
* - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a board with `gestures="activate"` waits to be pressed.
|
|
68995
69581
|
* - `using`: A board with `gestures="activate"` has been pressed and has the gestures.
|
|
@@ -69445,6 +70031,11 @@ export type CustomElementsSolidJs = {
|
|
|
69445
70031
|
* Sending an empty required composer counts as trying. Tabbing past an empty
|
|
69446
70032
|
* composer marks nothing.
|
|
69447
70033
|
*
|
|
70034
|
+
* **`feedback` is a message of your own about the draft**, such as one your
|
|
70035
|
+
* server sent back. While it is set, the composer is invalid at once, does
|
|
70036
|
+
* not send or submit, shows the message under the field, and a screen reader
|
|
70037
|
+
* hears it as it appears. Clear it to let the draft go.
|
|
70038
|
+
*
|
|
69448
70039
|
* **`typing` says whether the user is writing**, and `helix-typing` is sent
|
|
69449
70040
|
* each time it changes: when they start, and when they send or stop for
|
|
69450
70041
|
* `typing-timeout` milliseconds. Pass it on to show "is typing" to the other
|
|
@@ -69454,6 +70045,9 @@ export type CustomElementsSolidJs = {
|
|
|
69454
70045
|
*
|
|
69455
70046
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
69456
70047
|
*
|
|
70048
|
+
* - `feedback`: A message about the draft, shown under the field. While set, the composer
|
|
70049
|
+
* is invalid, does not send, and does not submit, as a field's `feedback`
|
|
70050
|
+
* does, and the message is announced as it appears.
|
|
69457
70051
|
* - `label`: The field's name, read by screen readers.
|
|
69458
70052
|
* - `maxlength`/`maxLength`: The most characters a draft can have. The field stops taking more.
|
|
69459
70053
|
* - `minlength`/`minLength`: The fewest characters a draft can have, once the reader has written in
|
|
@@ -69602,6 +70196,7 @@ export type CustomElementsSolidJs = {
|
|
|
69602
70196
|
*
|
|
69603
70197
|
* - `composer`: The whole composer.
|
|
69604
70198
|
* - `end`: The box around the `end` slot.
|
|
70199
|
+
* - `feedback`: The `feedback` message, under the field while it is set.
|
|
69605
70200
|
* - `field`: The text field.
|
|
69606
70201
|
* - `mark`: The icon inside the send button.
|
|
69607
70202
|
* - `send`: The send button.
|
|
@@ -69612,7 +70207,7 @@ export type CustomElementsSolidJs = {
|
|
|
69612
70207
|
*
|
|
69613
70208
|
* These can be used to apply styling when a component is in a given state.
|
|
69614
70209
|
*
|
|
69615
|
-
* - `invalid`: The draft fails `required`, `minlength`, `maxlength`, or a custom error, and the reader has tried to send or submit it, or edited the field and left it.
|
|
70210
|
+
* - `invalid`: The draft fails `required`, `minlength`, `maxlength`, or a custom error, and the reader has tried to send or submit it, or edited the field and left it. Or `feedback` is set.
|
|
69616
70211
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
69617
70212
|
*/
|
|
69618
70213
|
"helix-headless-chat-composer": Partial<
|
|
@@ -69748,6 +70343,13 @@ export type CustomElementsSolidJs = {
|
|
|
69748
70343
|
* `loading` while you fetch, then prepend the older turns. The turn the user
|
|
69749
70344
|
* was reading stays in place on screen.
|
|
69750
70345
|
*
|
|
70346
|
+
* The transcript is a `log`, the role for content added in order where the
|
|
70347
|
+
* newest matters most, and it answers the APG feed's keys. The `feed` role
|
|
70348
|
+
* reads its articles as a list from the top, with no newest end to stay
|
|
70349
|
+
* pinned to, so the log keeps the role a conversation has. While `loading` is
|
|
70350
|
+
* set or older turns load, the log carries `aria-busy`, as the APG asks of a
|
|
70351
|
+
* feed.
|
|
70352
|
+
*
|
|
69751
70353
|
* The log is `aria-live="off"`. A separate status region announces each new
|
|
69752
70354
|
* turn once, when it has finished arriving. It skips the user's own turns
|
|
69753
70355
|
* unless they failed to send, turns loaded as history, and the turns already
|
|
@@ -69760,6 +70362,12 @@ export type CustomElementsSolidJs = {
|
|
|
69760
70362
|
* conversations. `turns` draws a long
|
|
69761
70363
|
* transcript one window at a time, so the log needs a block size of its own.
|
|
69762
70364
|
*
|
|
70365
|
+
* The log scrolls on this tier. It carries `data-scroller`, and `core` ships
|
|
70366
|
+
* `[data-scroller] { overflow: auto }` into every shadow root, so pinning,
|
|
70367
|
+
* history and the window work with no stylesheet. You still need to give the
|
|
70368
|
+
* log a block size, such as `helix-headless-chat::part(log) { block-size:
|
|
70369
|
+
* 20rem }`.
|
|
70370
|
+
*
|
|
69763
70371
|
* **A conversation is built from three elements.** The chat holds the
|
|
69764
70372
|
* transcript, a `Chat.Message` stands for each turn, and a `Chat.Composer` sits
|
|
69765
70373
|
* in the `composer` slot. When the user sends, `helix-send` reaches the chat:
|
|
@@ -69776,7 +70384,9 @@ export type CustomElementsSolidJs = {
|
|
|
69776
70384
|
* turn says its place, such as "3 of 40", windowed or not. The transcript is
|
|
69777
70385
|
* a tab stop while it holds a turn, and the turn a reader moved to is one
|
|
69778
70386
|
* too. Moving to an older turn unpins a transcript that scrolls and scrolls
|
|
69779
|
-
* the turn into view, and moving to the newest pins it again.
|
|
70387
|
+
* the turn into view, and moving to the newest pins it again. When the turn
|
|
70388
|
+
* holding focus is removed, focus moves to the turn that took its place, or to
|
|
70389
|
+
* the one before it where it was the last.
|
|
69780
70390
|
*
|
|
69781
70391
|
* | Key | What it does |
|
|
69782
70392
|
* |---|---|
|
|
@@ -69955,7 +70565,7 @@ export type CustomElementsSolidJs = {
|
|
|
69955
70565
|
* - `indicator`: The three dots before the words that say who is typing, which the styled tier animates as a message's are. Hidden from screen readers.
|
|
69956
70566
|
* - `live`: The region where screen readers announce each turn once it has arrived.
|
|
69957
70567
|
* - `loading`: Shown while the history loads.
|
|
69958
|
-
* - `log`: The transcript, which scrolls.
|
|
70568
|
+
* - `log`: The transcript, which scrolls. On this tier, it needs only a block size.
|
|
69959
70569
|
* - `message`: The message drawn for a turn from `turns`, forwarded whole.
|
|
69960
70570
|
* - `message-actions`: The controls on a turn from `turns`, beside its time.
|
|
69961
70571
|
* - `message-avatar`: The avatar box of a turn from `turns`.
|
|
@@ -70902,7 +71512,8 @@ export type CustomElementsSolidJs = {
|
|
|
70902
71512
|
*
|
|
70903
71513
|
* The trigger and ArrowDown open the panel with focus in the square. Tab moves
|
|
70904
71514
|
* between the panel's controls without leaving it, and Escape closes it and
|
|
70905
|
-
* returns focus to the
|
|
71515
|
+
* returns focus to the control that opened it: the trigger after a press, and
|
|
71516
|
+
* the field after ArrowDown.
|
|
70906
71517
|
*
|
|
70907
71518
|
* The component sets `--color-input-swatch`, so do not set it yourself. It
|
|
70908
71519
|
* holds the resolved color, so the styled tier can paint the swatch without
|
|
@@ -72343,7 +72954,17 @@ export type CustomElementsSolidJs = {
|
|
|
72343
72954
|
* The button is named `label`, or the host's `aria-label`, and its name
|
|
72344
72955
|
* changes to `copied-label` or `error-label` for the moment after a press. The
|
|
72345
72956
|
* same words are said in a live region, so a screen reader hears the result,
|
|
72346
|
-
* and the tooltip shows them.
|
|
72957
|
+
* and the tooltip shows them. The tooltip does not also describe the button,
|
|
72958
|
+
* since its words are the button's name.
|
|
72959
|
+
*
|
|
72960
|
+
* **The tooltip.** It shows the name on hover and focus and the result after a
|
|
72961
|
+
* press. `tooltip="copy"` shows it only for the result, and `tooltip="none"`
|
|
72962
|
+
* draws none, as Web Awesome's copy button offers. `tooltip-placement` is the
|
|
72963
|
+
* side it prefers, and it moves to another side where that one does not fit.
|
|
72964
|
+
*
|
|
72965
|
+
* **Words on the button.** `show-label` draws the name beside the icon, and
|
|
72966
|
+
* the result in its place after a press. The button is as wide as the longest
|
|
72967
|
+
* of the three, so a press does not resize it.
|
|
72347
72968
|
*
|
|
72348
72969
|
* ## Attributes & Properties
|
|
72349
72970
|
*
|
|
@@ -72366,6 +72987,15 @@ export type CustomElementsSolidJs = {
|
|
|
72366
72987
|
* Defaulted rather than left empty. An icon-only control must be named, and
|
|
72367
72988
|
* the name of this one is not a judgment call: every copy button in the
|
|
72368
72989
|
* world is called Copy. A consumer with a better word still sets it.
|
|
72990
|
+
* - `show-label`/`showLabel`: Draws the name as words beside the icon, and the result in their place
|
|
72991
|
+
* after a press. The button stays as wide as the longest of them.
|
|
72992
|
+
* - `tooltip`: When the tooltip shows: `full` on hover and focus and after a press,
|
|
72993
|
+
* `copy` only after a press, to show the result, and `none` never, for a
|
|
72994
|
+
* button whose result shows another way, such as under `show-label`.
|
|
72995
|
+
*
|
|
72996
|
+
* Unset is `full`, and the attribute stays absent until you write it.
|
|
72997
|
+
* - `tooltip-placement`/`tooltipPlacement`: The side the tooltip prefers. It moves to another side where this one
|
|
72998
|
+
* does not fit.
|
|
72369
72999
|
* - `value`: The text copied to the clipboard.
|
|
72370
73000
|
*
|
|
72371
73001
|
* It replaces `Button.value`, the submit value: a copy button never submits,
|
|
@@ -72527,6 +73157,7 @@ export type CustomElementsSolidJs = {
|
|
|
72527
73157
|
* - `live`: The live region that says `copied-label` or `error-label` after a press, and `pending-label` when the button becomes pending under focus. It is rendered from the first time it says anything.
|
|
72528
73158
|
* - `mark`: The clipboard icon, and the confirmation icon that replaces it.
|
|
72529
73159
|
* - `spinner`: The ring a pending button turns, an empty element the styled button draws over the icon. It is rendered only while the button is pending.
|
|
73160
|
+
* - `text`: The words beside the icon, under `show-label`. It holds all three, `label`, `copied-label` and `error-label`, with all but the current one hidden.
|
|
72530
73161
|
* - `tooltip`: The tooltip bubble, forwarded from the tooltip inside the button.
|
|
72531
73162
|
* - `tooltip-arrow`: The tooltip's arrow, which points at the button.
|
|
72532
73163
|
* - `tooltip-arrow-bottom`: The arrow while the bubble is below the button, on the bubble's top edge. Set together with `tooltip-arrow`.
|
|
@@ -72865,6 +73496,10 @@ export type CustomElementsSolidJs = {
|
|
|
72865
73496
|
* Off by default. Windowing costs a scroll listener, a measurement per row
|
|
72866
73497
|
* drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
72867
73498
|
* should pay none of them.
|
|
73499
|
+
*
|
|
73500
|
+
* While windowed, the `table` part scrolls on this tier: it carries
|
|
73501
|
+
* `data-scroller`, and `core` ships `[data-scroller] { overflow: auto }` into
|
|
73502
|
+
* every shadow root. You still need to give it a block size.
|
|
72868
73503
|
* - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
|
|
72869
73504
|
* - `loading`: Whether the rows are still loading.
|
|
72870
73505
|
*
|
|
@@ -73027,7 +73662,7 @@ export type CustomElementsSolidJs = {
|
|
|
73027
73662
|
* - `select`: The cell that holds a row's checkbox.
|
|
73028
73663
|
* - `select-all`: The heading that holds the checkbox that selects every row.
|
|
73029
73664
|
* - `select-selected`: Added to `select` in a selected row.
|
|
73030
|
-
* - `table`: The grid.
|
|
73665
|
+
* - `table`: The grid. While `windowed`, the box that scrolls, which needs only a block size on this tier.
|
|
73031
73666
|
* - `toggle`: The mark in a row header that a press opens and closes its row by, in a tree grid.
|
|
73032
73667
|
* - `toggle-mark`: The caret in `toggle`. It points along the line while the row is closed and down while it is open.
|
|
73033
73668
|
* - `toggle-open`: Added to `toggle` while its row is open.
|
|
@@ -74779,6 +75414,10 @@ export type CustomElementsSolidJs = {
|
|
|
74779
75414
|
* <helix-headless-drawer id="nav">…</helix-headless-drawer>
|
|
74780
75415
|
* ```
|
|
74781
75416
|
*
|
|
75417
|
+
* From its first press, a button that opens the drawer this way says whether
|
|
75418
|
+
* the drawer is open: a Helix button through `expanded`, and any other
|
|
75419
|
+
* element with `aria-expanded`.
|
|
75420
|
+
*
|
|
74782
75421
|
* ## Attributes & Properties
|
|
74783
75422
|
*
|
|
74784
75423
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -76840,6 +77479,9 @@ export type CustomElementsSolidJs = {
|
|
|
76840
77479
|
* - `linked-both-label`/`linkedBothLabel`: How a note linked both to and from the selected one is described, with `{note}`.
|
|
76841
77480
|
* - `linked-from-label`/`linkedFromLabel`: How a note the selected one links to is described, with `{note}`, the selected note's name.
|
|
76842
77481
|
* - `links-to-label`/`linksToLabel`: How a note that links to the selected one is described, with `{note}`.
|
|
77482
|
+
* - `loading`: Marks the graph as busy while its notes arrive: the list is `aria-busy`,
|
|
77483
|
+
* and the panel says so where it holds no notes yet.
|
|
77484
|
+
* - `loading-label`/`loadingLabel`: What the panel says while `loading` is set and the list holds no notes.
|
|
76843
77485
|
* - `moved-down-label`/`movedDownLabel`: What screen readers hear once the drawing has moved down, after `moved()`.
|
|
76844
77486
|
* - `moved-left-label`/`movedLeftLabel`: What screen readers hear once the drawing has moved left, after `moved()`.
|
|
76845
77487
|
* - `moved-right-label`/`movedRightLabel`: What screen readers hear once the drawing has moved right, after `moved()`.
|
|
@@ -76948,6 +77590,15 @@ export type CustomElementsSolidJs = {
|
|
|
76948
77590
|
* - `hiddenGroups`: The groups turned off in the legend, by name, whose notes neither the drawing nor the list shows. A property, never an attribute. (property only)
|
|
76949
77591
|
* - `links`: The links between notes, each from `source` to `target`. A property, never an attribute. (property only)
|
|
76950
77592
|
* - `nodes`: The notes. A property, never an attribute. (property only)
|
|
77593
|
+
* - `noteContent`: What each note's row in the list shows in place of its name: a function
|
|
77594
|
+
* given the note that returns text, an element or a Lit template.
|
|
77595
|
+
*
|
|
77596
|
+
* For an icon by its kind, or a date under its name, as React Aria's
|
|
77597
|
+
* `ListBoxItem` takes children. The row is still named by the note's name,
|
|
77598
|
+
* which typeahead and the search find it by, and described by how it stands
|
|
77599
|
+
* to the selected note. Return the name with your content where it should
|
|
77600
|
+
* still show. A property only, there being no way to write a function in
|
|
77601
|
+
* markup. (property only)
|
|
76951
77602
|
* - `ready`: Whether the graph has been drawn whole. For code that runs after `helix-graph-ready`. (property only) (readonly)
|
|
76952
77603
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
76953
77604
|
*
|
|
@@ -76994,6 +77645,7 @@ export type CustomElementsSolidJs = {
|
|
|
76994
77645
|
* - `footer`: Content below the graph.
|
|
76995
77646
|
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
76996
77647
|
* - `header`: Content above the graph.
|
|
77648
|
+
* - `loading`: What the panel shows while `loading` is set and the list holds no notes. Defaults to `loading-label`.
|
|
76997
77649
|
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
76998
77650
|
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
76999
77651
|
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
@@ -77067,6 +77719,7 @@ export type CustomElementsSolidJs = {
|
|
|
77067
77719
|
* - `legend-swatch`: The mark in a group's color, before its name.
|
|
77068
77720
|
* - `list`: The list of notes, which draws only the rows in view.
|
|
77069
77721
|
* - `live`: What screen readers hear: how many notes there are when a search or the legend changes it, and which way the drawing went after a key or a control moved it.
|
|
77722
|
+
* - `loading`: The box in place of the list while `loading` is set and it holds no notes, holding the `loading` slot.
|
|
77070
77723
|
* - `note`: One note in the list.
|
|
77071
77724
|
* - `note-cursor`: The note the keyboard is on in the list.
|
|
77072
77725
|
* - `note-linked`: A note linked to or from the selected one.
|
|
@@ -77094,6 +77747,7 @@ export type CustomElementsSolidJs = {
|
|
|
77094
77747
|
* - `empty`: The list holds no notes: the graph has none, or a search or the groups hid them all.
|
|
77095
77748
|
* - `fullscreen`: The graph fills the screen.
|
|
77096
77749
|
* - `idle`: The user has been still long enough for the header and footer to fade.
|
|
77750
|
+
* - `loading`: While `loading` is set.
|
|
77097
77751
|
* - `local`: The drawing shows the selected note's local graph, with `depth`.
|
|
77098
77752
|
* - `panel-open`: A graph with `no-panel` has the search and the list open over the drawing.
|
|
77099
77753
|
* - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
|
|
@@ -79669,7 +80323,8 @@ export type CustomElementsSolidJs = {
|
|
|
79669
80323
|
* itself.
|
|
79670
80324
|
* - `value`: The selected rows' values, separated by commas with no spaces, such as `a,c`, in a list that selects.
|
|
79671
80325
|
*
|
|
79672
|
-
*
|
|
80326
|
+
* A press or a key writes it in row order, as Data Table does, whatever
|
|
80327
|
+
* order the rows were chosen in. Set it to start with rows selected. A row's value is its `value`, or its
|
|
79673
80328
|
* words where it has none.
|
|
79674
80329
|
* - `rows`: The rows the list holds, in order. (property only) (readonly)
|
|
79675
80330
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
@@ -81790,6 +82445,8 @@ export type CustomElementsSolidJs = {
|
|
|
81790
82445
|
* These can be used to apply styling when a component is in a given state.
|
|
81791
82446
|
*
|
|
81792
82447
|
* - `checked`: The row is checked.
|
|
82448
|
+
* - `disabled`: The row is disabled.
|
|
82449
|
+
* - `expanded`: Under `submenus="flyout"`, the row's submenu is open beside it.
|
|
81793
82450
|
* - `highlighted`: In a menu with `filterable`, the arrow keys or the pointer reached the row while focus stays in the filter field.
|
|
81794
82451
|
* - `submenu-mark`: Under `submenus="flyout"`, a row in this row's submenu can be ticked or opens a submenu, so the submenu keeps its trailing column.
|
|
81795
82452
|
* - `submenu-start`: Under `submenus="flyout"`, a row in this row's submenu has content before its label, so the submenu keeps its leading column.
|
|
@@ -81816,7 +82473,9 @@ export type CustomElementsSolidJs = {
|
|
|
81816
82473
|
*
|
|
81817
82474
|
* Submenus drill down by default. A submenu replaces the panel's content, and a
|
|
81818
82475
|
* back row returns to the previous page. One panel stays inside a narrow
|
|
81819
|
-
* window, and works on touch screens, which have no hover.
|
|
82476
|
+
* window, and works on touch screens, which have no hover. Focus follows a
|
|
82477
|
+
* mouse resting on a row in either mode, and a drilled page is a `menu` named
|
|
82478
|
+
* by the row that opened it.
|
|
81820
82479
|
*
|
|
81821
82480
|
* **`submenus="flyout"` opens each submenu in a panel of its own beside its
|
|
81822
82481
|
* row**, as React Aria's `SubmenuTrigger` and Radix's `Sub` do. Resting the
|
|
@@ -81850,6 +82509,11 @@ export type CustomElementsSolidJs = {
|
|
|
81850
82509
|
* trigger's width, for a menu as wide as its trigger:
|
|
81851
82510
|
* `helix-menu::part(surface) { min-inline-size: var(--floating-anchor-inline-size) }`.
|
|
81852
82511
|
*
|
|
82512
|
+
* **The choices in one place.** `checkedValues` holds the values of the rows
|
|
82513
|
+
* that are checked, anywhere in the menu, and setting it checks exactly
|
|
82514
|
+
* those rows, as React Aria's `selectedKeys` does. `change` is sent on the
|
|
82515
|
+
* menu when a reader's choice changes it.
|
|
82516
|
+
*
|
|
81853
82517
|
* With `context`, the trigger is an area and the menu is its context menu: a
|
|
81854
82518
|
* right-click, a long press, Shift+F10 or the menu key over the area opens it
|
|
81855
82519
|
* at the pointer, or at the area's corner from the keyboard, as Radix's context
|
|
@@ -81872,7 +82536,8 @@ export type CustomElementsSolidJs = {
|
|
|
81872
82536
|
* field: Up and Down Arrow move the highlight through the rows that are left,
|
|
81873
82537
|
* Enter chooses the highlighted row, Right Arrow opens its submenu, Left Arrow
|
|
81874
82538
|
* on a submenu goes back, and Escape clears the filter and then closes the
|
|
81875
|
-
* menu.
|
|
82539
|
+
* menu. A screen reader hears how many rows the filter keeps
|
|
82540
|
+
* (`results-label`). Home, End and the other keys move the caret and type. The field names
|
|
81876
82541
|
* the highlighted row with `aria-activedescendant`, and the rows are a `menu`
|
|
81877
82542
|
* after the field. Cancel `helix-filter` to keep every row
|
|
81878
82543
|
* showing and narrow the rows yourself, such as by replacing them with rows
|
|
@@ -81912,6 +82577,9 @@ export type CustomElementsSolidJs = {
|
|
|
81912
82577
|
* - `placement`: The side the menu opens on, when there is room.
|
|
81913
82578
|
*
|
|
81914
82579
|
* It moves if that side does not fit.
|
|
82580
|
+
* - `results-label`/`resultsLabel`: What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
82581
|
+
* how many rows are left, written in the locale, and each language writes
|
|
82582
|
+
* the forms it has, as Listbox's `results-label` does.
|
|
81915
82583
|
* - `submenus`: How a submenu opens. `drill` shows it in place of the page showing, with
|
|
81916
82584
|
* a way back. `flyout` opens it in a panel of its own beside its row.
|
|
81917
82585
|
* - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
|
|
@@ -81940,6 +82608,13 @@ export type CustomElementsSolidJs = {
|
|
|
81940
82608
|
*
|
|
81941
82609
|
* Absent, a row is kept where its words hold the filter, in any case. A
|
|
81942
82610
|
* property only, there being no way to write a function in markup. (property only)
|
|
82611
|
+
* - `checkedValues`: The values of the choice rows that are checked, anywhere in the menu, in
|
|
82612
|
+
* document order.
|
|
82613
|
+
*
|
|
82614
|
+
* Set it to check exactly those rows and uncheck every other choice row, as
|
|
82615
|
+
* React Aria's `selectedKeys` controls a menu's selection from one place.
|
|
82616
|
+
* Each row keeps its own `checked` too, which this reads and writes. `change`
|
|
82617
|
+
* is sent on the menu when a reader's choice changes it. (property only)
|
|
81943
82618
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
81944
82619
|
*
|
|
81945
82620
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -81965,6 +82640,7 @@ export type CustomElementsSolidJs = {
|
|
|
81965
82640
|
*
|
|
81966
82641
|
* Events that will be emitted by the component.
|
|
81967
82642
|
*
|
|
82643
|
+
* - `change`: A reader's choice checked or unchecked rows. Read `checkedValues` for the rows that are checked now.
|
|
81968
82644
|
* - `helix-before-close`: The menu is about to close. Cancelable: cancel it to keep it open.
|
|
81969
82645
|
* - `helix-before-open`: The menu is about to open. Cancelable: cancel it to keep it closed.
|
|
81970
82646
|
* - `helix-filter`: The text in the filter field changed, with the new text in `detail.value`. Cancelable: cancel it to keep every row showing and narrow the rows yourself.
|
|
@@ -81976,6 +82652,8 @@ export type CustomElementsSolidJs = {
|
|
|
81976
82652
|
* Areas where markup can be added to the component.
|
|
81977
82653
|
*
|
|
81978
82654
|
* - `(default)`: The items.
|
|
82655
|
+
* - `empty`: What the menu shows when it has no items, for content richer than `empty-text`.
|
|
82656
|
+
* - `loading`: What the menu shows while its items load, for content richer than `loading-text`.
|
|
81979
82657
|
* - `no-results`: What the menu shows when the filter keeps no rows, for content richer than `no-results-text`.
|
|
81980
82658
|
* - `trigger`: The control that opens the menu, or with `context` the area a context menu opens over.
|
|
81981
82659
|
*
|
|
@@ -82021,6 +82699,8 @@ export type CustomElementsSolidJs = {
|
|
|
82021
82699
|
* These can be used to apply styling when a component is in a given state.
|
|
82022
82700
|
*
|
|
82023
82701
|
* - `drilled`: A submenu's page is showing, so content that is not a row can hide with the top page.
|
|
82702
|
+
* - `entering`: From the moment the panel shows until its entrance has finished.
|
|
82703
|
+
* - `exiting`: From the moment the panel hides until its exit has finished.
|
|
82024
82704
|
* - `mark`: A row on the current page has a checkbox or a link, so every row keeps the trailing column.
|
|
82025
82705
|
* - `open`: While the menu is open.
|
|
82026
82706
|
* - `placed-bottom`: While the open panel sits below its trigger.
|
|
@@ -83986,6 +84666,22 @@ export type CustomElementsSolidJs = {
|
|
|
83986
84666
|
* headings are far apart, none is in the band and no section is marked, and
|
|
83987
84667
|
* when they are close together, several are in the band at once.
|
|
83988
84668
|
*
|
|
84669
|
+
* **Several sections at once.** `marks="visible"` marks the link of every
|
|
84670
|
+
* section with part of it on screen, from the reading line to the bottom of
|
|
84671
|
+
* what the sections scroll in, as Zag's table of contents marks its active
|
|
84672
|
+
* ids. The mark then runs from the first of those links to the last, and
|
|
84673
|
+
* `marked` lists their ids in page order.
|
|
84674
|
+
*
|
|
84675
|
+
* **Going to a section from code.** `scrollToSection(id)` scrolls to the
|
|
84676
|
+
* section as a press on its link does, with `behavior`, and marks its link at
|
|
84677
|
+
* once.
|
|
84678
|
+
*
|
|
84679
|
+
* **Styling a link by its state.** Each link the outline finds carries
|
|
84680
|
+
* `data-depth`, its depth in the outline from `1`, nested lists and
|
|
84681
|
+
* `data-level` alike, and `aria-current="location"` while its section is
|
|
84682
|
+
* marked, so `a[aria-current]` and `a[data-depth="2"]` are the hooks for a
|
|
84683
|
+
* rule of yours.
|
|
84684
|
+
*
|
|
83989
84685
|
* ## Attributes & Properties
|
|
83990
84686
|
*
|
|
83991
84687
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -84015,6 +84711,9 @@ export type CustomElementsSolidJs = {
|
|
|
84015
84711
|
* box the sections scroll in.
|
|
84016
84712
|
* - `label`: The navigation's name, read by screen readers. A heading in the `heading`
|
|
84017
84713
|
* slot names it in place of this.
|
|
84714
|
+
* - `marks`: Which links are marked. `reading` marks the one section being read, the
|
|
84715
|
+
* last whose heading has passed the reading line. `visible` marks every
|
|
84716
|
+
* section with part of it on screen, and the mark runs across their links.
|
|
84018
84717
|
* - `offset`: How far below the top of the scroll container a heading counts as reached,
|
|
84019
84718
|
* in pixels. The scroll container is the window or the panel the sections
|
|
84020
84719
|
* scroll in.
|
|
@@ -84030,6 +84729,9 @@ export type CustomElementsSolidJs = {
|
|
|
84030
84729
|
* writable property in this library that a component also writes is state a
|
|
84031
84730
|
* consumer can own; this one cannot be, and saying so with the type is better
|
|
84032
84731
|
* than saying it in a sentence nobody reads. (property only) (readonly)
|
|
84732
|
+
* - `marked`: The ids of the sections whose links are marked, in page order: the one
|
|
84733
|
+
* `current` names, or under `marks="visible"` every section on screen.
|
|
84734
|
+
* Read-only, for the reason `current` gives. (property only) (readonly)
|
|
84033
84735
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
84034
84736
|
*
|
|
84035
84737
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -84065,6 +84767,14 @@ export type CustomElementsSolidJs = {
|
|
|
84065
84767
|
* - `heading`: A heading above the links, such as "On this page". It names the navigation.
|
|
84066
84768
|
* - `indicator`: A mark of your own, drawn inside the `indicator` part, where `--indicator-x`, `--indicator-y`, `--indicator-inline-size` and `--indicator-block-size` reach it.
|
|
84067
84769
|
*
|
|
84770
|
+
* ## Methods
|
|
84771
|
+
*
|
|
84772
|
+
* Methods that can be called to access component functionality.
|
|
84773
|
+
*
|
|
84774
|
+
* - `scrollToSection(id: string) => boolean`: Scrolls to the section with this id, as a press on its link does, with
|
|
84775
|
+
* `behavior`, and marks its link at once. The address and focus stay where
|
|
84776
|
+
* they are. Returns whether the outline has a link to that section.
|
|
84777
|
+
*
|
|
84068
84778
|
* ## CSS Parts
|
|
84069
84779
|
*
|
|
84070
84780
|
* Custom selectors for styling elements within the component.
|
|
@@ -84862,7 +85572,9 @@ export type CustomElementsSolidJs = {
|
|
|
84862
85572
|
*
|
|
84863
85573
|
* It opens on click and from a command. `command="--show"` and the related
|
|
84864
85574
|
* commands work as they do on `Dialog` and `Drawer`, so a button anywhere on
|
|
84865
|
-
* the page can open the popover with no script.
|
|
85575
|
+
* the page can open the popover with no script. From its first press, a
|
|
85576
|
+
* button that opens it this way says whether the popover is open: a Helix
|
|
85577
|
+
* button through `expanded`, and any other element with `aria-expanded`.
|
|
84866
85578
|
*
|
|
84867
85579
|
* **Opening moves focus into the panel**, to the first control in it, or to the
|
|
84868
85580
|
* panel itself where it holds none, and closing from inside gives it back to
|
|
@@ -84872,8 +85584,12 @@ export type CustomElementsSolidJs = {
|
|
|
84872
85584
|
* `modal` keeps `Tab` inside the panel while it is open and says so with
|
|
84873
85585
|
* `aria-modal`, for a panel that has to be answered before the page goes on.
|
|
84874
85586
|
* The rest of the page is hidden from screen readers with `aria-hidden` while
|
|
84875
|
-
* it is open, so the virtual cursor stays in the panel too
|
|
84876
|
-
* popover does not trap focus.
|
|
85587
|
+
* it is open, so the virtual cursor stays in the panel too, and the page does
|
|
85588
|
+
* not scroll behind it. Without it the popover does not trap focus.
|
|
85589
|
+
*
|
|
85590
|
+
* A press outside closes the panel and leaves focus where the press put it.
|
|
85591
|
+
* Where it put focus nowhere, as a press on text or on the page's background
|
|
85592
|
+
* does, focus goes back to the trigger.
|
|
84877
85593
|
*
|
|
84878
85594
|
* The panel's name is `label` when you set it. Otherwise it is the first
|
|
84879
85595
|
* heading in the panel, or the elements an `aria-labelledby` on the host names.
|
|
@@ -84889,10 +85605,17 @@ export type CustomElementsSolidJs = {
|
|
|
84889
85605
|
* | Escape | Closes the panel and puts focus back on the trigger. |
|
|
84890
85606
|
* | Tab, Shift+Tab | Moves through the controls in the panel. Leaving the panel and the trigger closes it. With `modal`, moves from the last control round to the first and from the first round to the last. |
|
|
84891
85607
|
*
|
|
85608
|
+
* The panel opens against the trigger, or against the element `anchor` names,
|
|
85609
|
+
* such as a field beside the button that opens it. `offset` moves it away from
|
|
85610
|
+
* that element, `cross-offset` slides it along the side it is on,
|
|
85611
|
+
* `container-padding` keeps it that far from the window's edges, and
|
|
85612
|
+
* `flip="false"` keeps it on its side where the other side has more room.
|
|
85613
|
+
*
|
|
84892
85614
|
* `arrow` draws a point on the panel's edge facing the trigger. The side the
|
|
84893
|
-
* panel landed on is on the host as `:state(placed-top)` and its kin,
|
|
84894
|
-
*
|
|
84895
|
-
*
|
|
85615
|
+
* panel landed on is on the host as `:state(placed-top)` and its kin, its
|
|
85616
|
+
* alignment along that side as `:state(aligned-start)` or
|
|
85617
|
+
* `:state(aligned-end)`, and the trigger's width is on the panel as
|
|
85618
|
+
* `--floating-anchor-inline-size`, for a panel as wide as its trigger:
|
|
84896
85619
|
*
|
|
84897
85620
|
* ```css
|
|
84898
85621
|
* helix-popover::part(popover) {
|
|
@@ -84904,12 +85627,25 @@ export type CustomElementsSolidJs = {
|
|
|
84904
85627
|
*
|
|
84905
85628
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
84906
85629
|
*
|
|
85630
|
+
* - `anchor`: The element the panel opens against, where that is not the trigger: its
|
|
85631
|
+
* `id` in the same document or shadow root, or the element itself. Left
|
|
85632
|
+
* empty, the panel opens against the trigger, or against the button whose
|
|
85633
|
+
* command opened it.
|
|
84907
85634
|
* - `arrow`: Draws a point on the panel's edge facing the trigger.
|
|
84908
85635
|
*
|
|
84909
85636
|
* Off by default, which is the house style: a panel that opens from its
|
|
84910
85637
|
* trigger already reads as belonging to it.
|
|
85638
|
+
* - `container-padding`/`containerPadding`: How close to the window's edges the panel may come, in pixels, when it
|
|
85639
|
+
* slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
85640
|
+
* and shrinks to 8 pixels from an edge and moves to the other side only
|
|
85641
|
+
* once it would cross one.
|
|
85642
|
+
* - `cross-offset`/`crossOffset`: How far to slide the panel along the side it is on, in pixels: to the
|
|
85643
|
+
* right on the top or the bottom, and down on the left or the right.
|
|
84911
85644
|
* - `fallback-label`/`fallbackLabel`: The panel's name where nothing else names it: no `label`, no heading in
|
|
84912
85645
|
* the panel, and no `aria-labelledby` on the host.
|
|
85646
|
+
* - `flip`: Whether the panel moves to the other side of the trigger when its own
|
|
85647
|
+
* side has no room. On by default. Write `flip="false"` to keep it on its
|
|
85648
|
+
* side, where it shrinks to fit, as React Aria's `shouldFlip` turns off.
|
|
84913
85649
|
* - `label`: The panel's name, read by screen readers. Left empty, the first heading in
|
|
84914
85650
|
* the panel names it, and then `fallback-label`.
|
|
84915
85651
|
* - `modal`: Keeps `Tab` inside the panel while it is open, marks the panel
|
|
@@ -85007,6 +85743,8 @@ export type CustomElementsSolidJs = {
|
|
|
85007
85743
|
*
|
|
85008
85744
|
* These can be used to apply styling when a component is in a given state.
|
|
85009
85745
|
*
|
|
85746
|
+
* - `aligned-end`: While the panel is aligned to the end of the side it sits on.
|
|
85747
|
+
* - `aligned-start`: While the panel is aligned to the start of the side it sits on.
|
|
85010
85748
|
* - `entering`: From the moment the panel shows until its entrance has finished.
|
|
85011
85749
|
* - `exiting`: From the moment the panel hides until its exit has finished.
|
|
85012
85750
|
* - `open`: While the popover is open.
|
|
@@ -86623,7 +87361,7 @@ export type CustomElementsSolidJs = {
|
|
|
86623
87361
|
* | Down, Enter, Space | Opens the list on the chosen option, or the first. |
|
|
86624
87362
|
* | Up | Opens the list on the chosen option, or the last. |
|
|
86625
87363
|
* | Home, End | Opens the list on the first or the last option. |
|
|
86626
|
-
* | Left, Right | Chooses the option before or after the chosen one without opening, as React Aria's Select does
|
|
87364
|
+
* | Left, Right | Chooses the option before or after the chosen one without opening, as React Aria's Select does. On a right-to-left page Left chooses the one after. |
|
|
86627
87365
|
* | A letter or a word | Chooses the option whose words start with what you typed, as a native `<select>` does. With `multiple`, opens the list on it. |
|
|
86628
87366
|
*
|
|
86629
87367
|
* In the open list, which is a `Listbox`:
|
|
@@ -88058,7 +88796,11 @@ export type CustomElementsSolidJs = {
|
|
|
88058
88796
|
* back to the position where the collapsing gesture began. A drag records that position
|
|
88059
88797
|
* on press, and every other way of collapsing records it in `settle`.
|
|
88060
88798
|
* `collapsed-size` keeps a sliver of the pane visible, such as a tab strip.
|
|
88061
|
-
* Collapsing overrides `min` and `max`.
|
|
88799
|
+
* Collapsing overrides `min` and `max`. `collapsible` says which panes can be
|
|
88800
|
+
* collapsed at all, as Zag's panels each say.
|
|
88801
|
+
*
|
|
88802
|
+
* `min` is the least the start pane keeps and `end-min` the least the end pane
|
|
88803
|
+
* keeps, each a percentage or a CSS length such as `16rem`.
|
|
88062
88804
|
*
|
|
88063
88805
|
* Set `primary` to the pane that keeps its size when the splitter's own size
|
|
88064
88806
|
* changes, such as a sidebar beside a window being resized. The other pane
|
|
@@ -88079,7 +88821,7 @@ export type CustomElementsSolidJs = {
|
|
|
88079
88821
|
* | Left, Right | Moves a side-by-side divider by `step`. On a right-to-left page, Left moves it toward the end. |
|
|
88080
88822
|
* | Up, Down | Moves a stacked divider by `step`. |
|
|
88081
88823
|
* | Home, End | Moves the divider to its bounds. |
|
|
88082
|
-
* | Enter | Collapses the start pane, and opens it again. |
|
|
88824
|
+
* | Enter | Collapses the start pane, or the end pane where `collapsible="end"`, and opens it again. |
|
|
88083
88825
|
* | F6 | Moves focus from one pane to the first control in the other, and from the divider to the start pane. |
|
|
88084
88826
|
*
|
|
88085
88827
|
* ## Attributes & Properties
|
|
@@ -88109,6 +88851,12 @@ export type CustomElementsSolidJs = {
|
|
|
88109
88851
|
* that should survive its own collapse says how much of itself to keep, and
|
|
88110
88852
|
* only whoever put it there knows that, which is the same reason `min` is a
|
|
88111
88853
|
* consumer's to set.
|
|
88854
|
+
* - `collapsible`: Which panes can be collapsed, as Zag's panels each take `collapsible`:
|
|
88855
|
+
* `start`, `end`, `both`, or `none`. A pane that cannot be collapsed stops
|
|
88856
|
+
* at the edge without shutting. `Enter` collapses the end pane where only
|
|
88857
|
+
* the end pane can be collapsed, and the start pane otherwise.
|
|
88858
|
+
*
|
|
88859
|
+
* Unset is `both`, and the attribute stays absent until you write it.
|
|
88112
88860
|
* - `corner-label`/`cornerLabel`: The name of the handle where two dividers cross, read by screen readers.
|
|
88113
88861
|
* - `corner-value-label`/`cornerValueLabel`: What the handle where two dividers cross says it is set to, both dividers
|
|
88114
88862
|
* at once: `{across}` is where the divider that runs down stands, and
|
|
@@ -88119,6 +88867,11 @@ export type CustomElementsSolidJs = {
|
|
|
88119
88867
|
* these words are the whole of where it is.
|
|
88120
88868
|
* - `default-collapsed`/`defaultCollapsed`: Which pane starts shut, when `collapsed` is not set.
|
|
88121
88869
|
* - `default-position`/`defaultPosition`: Where the divider starts, when `position` is not set.
|
|
88870
|
+
* - `end-min`/`endMin`: The least the end pane keeps, in the units `min` takes: a percentage, or
|
|
88871
|
+
* a CSS length such as `16rem` resolved against the splitter's box. The
|
|
88872
|
+
* divider stops that far from the end, whatever `max` allows, so `min` and
|
|
88873
|
+
* `end-min` hold a minimum for each pane, as Zag's panels each take
|
|
88874
|
+
* `minSize`.
|
|
88122
88875
|
* - `label`: The divider's name, read by screen readers.
|
|
88123
88876
|
*
|
|
88124
88877
|
* An `aria-label` or `aria-labelledby` on the host names the divider too,
|
|
@@ -90233,7 +90986,8 @@ export type CustomElementsSolidJs = {
|
|
|
90233
90986
|
* not disabled. `selection-behavior="replace"` selects the tag a reader
|
|
90234
90987
|
* presses or moves to alone, as a file list does, and Control or Command
|
|
90235
90988
|
* with a press or Space adds or takes out one tag. `disallow-empty-selection`
|
|
90236
|
-
* keeps one tag selected once one is
|
|
90989
|
+
* keeps one tag selected once one is, and Escape lets go of the selection
|
|
90990
|
+
* otherwise. `value` holds the
|
|
90237
90991
|
* selected tags' values, separated by commas, and a change asks with
|
|
90238
90992
|
* `helix-before-change` and tells with `change`. Enter on a tag with an
|
|
90239
90993
|
* `href` follows its link. A `disabled` tag is passed over. A selected tag
|
|
@@ -90251,6 +91005,12 @@ export type CustomElementsSolidJs = {
|
|
|
90251
91005
|
* Where only disabled tags are left, the first of them holds the tab stop and
|
|
90252
91006
|
* takes focus, so the reader stays in the set.
|
|
90253
91007
|
*
|
|
91008
|
+
* **Typing new tags.** A field where people type tags and press Enter to add
|
|
91009
|
+
* each one is Combobox with `multiple` and `allows-custom-value`, or
|
|
91010
|
+
* `creatable` to ask first with `helix-create`. It draws each value as a tag,
|
|
91011
|
+
* Backspace on the empty field removes the last one, and the arrow keys move
|
|
91012
|
+
* between them.
|
|
91013
|
+
*
|
|
90254
91014
|
* ## Attributes & Properties
|
|
90255
91015
|
*
|
|
90256
91016
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -90356,6 +91116,12 @@ export type CustomElementsSolidJs = {
|
|
|
90356
91116
|
* selected. Its remove button leaves the tab order there, Delete and Backspace
|
|
90357
91117
|
* doing its job from the row.
|
|
90358
91118
|
*
|
|
91119
|
+
* **Styling a tag by what is happening to it.** `:state(selected)` while it is
|
|
91120
|
+
* selected, `:state(focus-visible)` while its cell shows keyboard focus,
|
|
91121
|
+
* `[disabled]` while it is out of reach, and the host's own `:hover` and
|
|
91122
|
+
* `:active` under the pointer, as React Aria's `data-hovered` and
|
|
91123
|
+
* `data-pressed` are.
|
|
91124
|
+
*
|
|
90359
91125
|
* ## Attributes & Properties
|
|
90360
91126
|
*
|
|
90361
91127
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -90448,6 +91214,7 @@ export type CustomElementsSolidJs = {
|
|
|
90448
91214
|
*
|
|
90449
91215
|
* These can be used to apply styling when a component is in a given state.
|
|
90450
91216
|
*
|
|
91217
|
+
* - `focus-visible`: The tag's cell has keyboard focus that the browser shows, in a `Tag.Group`.
|
|
90451
91218
|
* - `selected`: The tag is selected in a `Tag.Group` that selects.
|
|
90452
91219
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
90453
91220
|
*/
|
|
@@ -90667,6 +91434,10 @@ export type CustomElementsSolidJs = {
|
|
|
90667
91434
|
* along, so the two writes a consumer would make in sequence do not compose
|
|
90668
91435
|
* into the range they asked for. The platform has this method for that reason
|
|
90669
91436
|
* and so does this.
|
|
91437
|
+
* - `setRangeText(replacement: string, start?: number, end?: number, selectMode?: SelectionMode) => void`: Replaces a range of the text, as the native method does: the selection
|
|
91438
|
+
* where `start` and `end` are left out, and `selectMode` says what is
|
|
91439
|
+
* selected after. It sends no event, as the native method sends none.
|
|
91440
|
+
* - `select() => void`: Selects everything in the field.
|
|
90670
91441
|
* - `focus(options?: FocusOptions) => void`: Puts the caret in the field, as a label pointing at it would.
|
|
90671
91442
|
* - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
|
|
90672
91443
|
*
|
|
@@ -91457,6 +92228,17 @@ export type CustomElementsSolidJs = {
|
|
|
91457
92228
|
* imperatively later, and nothing is hydrating by then.
|
|
91458
92229
|
*
|
|
91459
92230
|
* Here rather than on each control.
|
|
92231
|
+
* - `timeContent`: What each time in the list shows: a function given the time as `HH:mm`,
|
|
92232
|
+
* or `HH:mm:ss` with `seconds`, and the time as the row writes it, that
|
|
92233
|
+
* returns text, an element or a Lit template.
|
|
92234
|
+
*
|
|
92235
|
+
* For the seats left at a time, or a caption under it, as React Aria's
|
|
92236
|
+
* `ListBoxItem` takes children. Content with `slot="start"`, `slot="end"`
|
|
92237
|
+
* or `slot="description"` goes to that slot of the row, and a description
|
|
92238
|
+
* is read after the time. The row is still named by the written time, and
|
|
92239
|
+
* typeahead still finds it by that. Return the written time with your
|
|
92240
|
+
* content where it should still show. A property only, there being no way
|
|
92241
|
+
* to write a function in markup. The wheels draw their own figures. (property only)
|
|
91460
92242
|
* - `valueAsDate`: The value as a `Date` on 1 January 1970 UTC, or `null` while there is no time.
|
|
91461
92243
|
*
|
|
91462
92244
|
* The platform's own pair on `<input type="time">`, epoch day included: a time
|
|
@@ -91735,7 +92517,9 @@ export type CustomElementsSolidJs = {
|
|
|
91735
92517
|
* hours ago", from `datetime`, where the `time` slot is empty. The words move
|
|
91736
92518
|
* on as they go stale, "3 hours ago" becoming "4 hours ago", with one wakeup
|
|
91737
92519
|
* shared by every reading on the page, as `FormatDate` keeps its own. They are
|
|
91738
|
-
* in the language of the page, or of the nearest `lang`.
|
|
92520
|
+
* in the language of the page, or of the nearest `lang`. The whole date and
|
|
92521
|
+
* time is the reading's `title`, so a pointer resting on "3 hours ago" shows
|
|
92522
|
+
* when it was, and a screen reader reads it as the description.
|
|
91739
92523
|
*
|
|
91740
92524
|
* Each entry draws the connector line that arrives at it and hides it when it
|
|
91741
92525
|
* is the first entry, using `:host(:first-child)`. This needs no index, no
|
|
@@ -91850,11 +92634,20 @@ export type CustomElementsSolidJs = {
|
|
|
91850
92634
|
* Write the entries in the order the events happened, oldest or newest first,
|
|
91851
92635
|
* and the layout only moves where they are drawn.
|
|
91852
92636
|
*
|
|
92637
|
+
* **A feed that loads more entries sets `loading` while it fetches.** The
|
|
92638
|
+
* timeline is busy, and an entry after the last says "Loading more"
|
|
92639
|
+
* (`loading-label`, or your own content in the `loading` slot). Put a button
|
|
92640
|
+
* that asks for more after the timeline, and move focus to the first new
|
|
92641
|
+
* entry when they arrive.
|
|
92642
|
+
*
|
|
91853
92643
|
* ## Attributes & Properties
|
|
91854
92644
|
*
|
|
91855
92645
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
91856
92646
|
*
|
|
91857
92647
|
* - `label`: Accessible name for the timeline, for people who reach it out of context.
|
|
92648
|
+
* - `loading`: Marks the timeline as busy fetching more entries, and draws an entry
|
|
92649
|
+
* after the last that says so.
|
|
92650
|
+
* - `loading-label`/`loadingLabel`: The text of the entry drawn while `loading` is set, where the `loading` slot is empty.
|
|
91858
92651
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
91859
92652
|
*
|
|
91860
92653
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -91881,11 +92674,19 @@ export type CustomElementsSolidJs = {
|
|
|
91881
92674
|
* Areas where markup can be added to the component.
|
|
91882
92675
|
*
|
|
91883
92676
|
* - `(default)`: The entries, and any groups of them.
|
|
92677
|
+
* - `loading`: Content for the entry after the last while `loading` is set. Falls back to `loading-label`.
|
|
92678
|
+
*
|
|
92679
|
+
* ## CSS Parts
|
|
92680
|
+
*
|
|
92681
|
+
* Custom selectors for styling elements within the component.
|
|
92682
|
+
*
|
|
92683
|
+
* - `loading`: The entry after the last while `loading` is set.
|
|
91884
92684
|
*
|
|
91885
92685
|
* ## CSS States
|
|
91886
92686
|
*
|
|
91887
92687
|
* These can be used to apply styling when a component is in a given state.
|
|
91888
92688
|
*
|
|
92689
|
+
* - `loading`: While `loading` is set.
|
|
91889
92690
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
91890
92691
|
*/
|
|
91891
92692
|
"helix-headless-timeline": Partial<
|
|
@@ -92786,6 +93587,9 @@ export type CustomElementsSolidJs = {
|
|
|
92786
93587
|
* describes a Helix component and leaves a plain element undescribed. In the
|
|
92787
93588
|
* `for` form the tooltip itself is out of the accessibility tree while its
|
|
92788
93589
|
* bubble is down, so you meet its words once, as the trigger's description.
|
|
93590
|
+
* A trigger whose name is already the tooltip's words, such as an icon button
|
|
93591
|
+
* named Settings under a tooltip reading Settings, is not described by them
|
|
93592
|
+
* again.
|
|
92789
93593
|
*
|
|
92790
93594
|
* The tooltip shows on hover and on focus. It hides on pointer leave, on blur,
|
|
92791
93595
|
* on Escape, and when the trigger is activated. The pointer can move from the
|
|
@@ -94866,11 +95670,14 @@ export type CustomElementsSolidJs = {
|
|
|
94866
95670
|
* | Page Down, Page Up | Moves by the number of items, or of lines in a grid, on screen. |
|
|
94867
95671
|
* | A letter or a word | Moves to the next item whose text starts with what you typed. |
|
|
94868
95672
|
* | Escape | Lets go of every chosen item, in a list with `selection-mode`. |
|
|
95673
|
+
* | Alt with Up or Down | In a `reorderable` list, moves the item a place. Alt with Home or End moves it to either end. |
|
|
94869
95674
|
* | Tab | Moves into the focused row's own links and buttons, then out of the list. |
|
|
94870
95675
|
*
|
|
94871
95676
|
* An item that is not drawn is scrolled into view and focused, so a keyboard
|
|
94872
|
-
* reaches the whole set.
|
|
94873
|
-
*
|
|
95677
|
+
* reaches the whole set. The row a reader last focused keeps the tab stop and
|
|
95678
|
+
* stays drawn when it scrolls away, so Tab and Shift+Tab come back to it, as
|
|
95679
|
+
* React Aria's collections do. In a list nobody has focused yet, the stop
|
|
95680
|
+
* moves to the first row on screen. Typing matches each item's
|
|
94874
95681
|
* `text-field`, which is the first `data-field` of the row template by default,
|
|
94875
95682
|
* or the item itself when it is a string or a number.
|
|
94876
95683
|
*
|
|
@@ -94912,6 +95719,23 @@ export type CustomElementsSolidJs = {
|
|
|
94912
95719
|
* the last item says "Loading more" (`loading-label`, or your own content in
|
|
94913
95720
|
* the `loading` slot). `scrollToIndex` takes a reader to an item.
|
|
94914
95721
|
*
|
|
95722
|
+
* **Moving items** is a separate import, `@fusion.dev/helix/virtual-list/reorder`,
|
|
95723
|
+
* as React Aria's drag and drop is. With it imported, `reorderable` lets a
|
|
95724
|
+
* reader move items in a list of one column without sections:
|
|
95725
|
+
*
|
|
95726
|
+
* - Alt with Up or Down moves the item the keys are on a place, and Alt with
|
|
95727
|
+
* Home or End to either end, as the APG's rearrangeable listbox does.
|
|
95728
|
+
* - A pointer drags a whole row. A press that does not travel is still a
|
|
95729
|
+
* press. The list scrolls near an edge, and an item far down a long set is
|
|
95730
|
+
* reached by dragging to the edge.
|
|
95731
|
+
* - A drop sends `helix-before-reorder`, which you can refuse, and then
|
|
95732
|
+
* `helix-reorder`, whose `keys` hold every item's key in the new order.
|
|
95733
|
+
* **You move the items**: set `items` to them in that order. The keys stay
|
|
95734
|
+
* on the item that moved.
|
|
95735
|
+
* - Each move is said in a region screen readers announce. The row being
|
|
95736
|
+
* dragged carries `data-dragging`, and the row a drop would land beside
|
|
95737
|
+
* `data-drop-before` or `data-drop-after`.
|
|
95738
|
+
*
|
|
94915
95739
|
* **An empty list.** Set `empty-label`, or put your own content in the `empty`
|
|
94916
95740
|
* slot, for a row shown when there are no items and none are loading, such as
|
|
94917
95741
|
* "No messages yet" and a link to write one. Without either, an empty list
|
|
@@ -94990,6 +95814,12 @@ export type CustomElementsSolidJs = {
|
|
|
94990
95814
|
* and scrolls it sideways: Left and Right move between items, the other
|
|
94991
95815
|
* way round on a right-to-left page, and `estimate` is an item's width. A
|
|
94992
95816
|
* grid always runs down.
|
|
95817
|
+
* - `reorderable`: Lets a reader move items, once `@fusion.dev/helix/virtual-list/reorder`
|
|
95818
|
+
* (or `@fusion.dev/helix-headless/virtual-list/reorder`) is imported: Alt
|
|
95819
|
+
* with an arrow moves the row the keys are on, and a pointer drags a row.
|
|
95820
|
+
* The list moves no item itself: you move your `items` on `helix-reorder`.
|
|
95821
|
+
* Without that import it does nothing, so a list that never moves items
|
|
95822
|
+
* carries none of the code. A list of one column, without sections.
|
|
94993
95823
|
* - `section-field`/`sectionField`: The field of each item that names its section, as a key or a path of
|
|
94994
95824
|
* keys. Set, the items are drawn in sections: a header, then the items, in
|
|
94995
95825
|
* an element with the `group` role that the header names. A section starts
|
|
@@ -95052,8 +95882,10 @@ export type CustomElementsSolidJs = {
|
|
|
95052
95882
|
*
|
|
95053
95883
|
* - `change`: Fired once a press or a key has changed which items are selected, in a list with `selection-mode`.
|
|
95054
95884
|
* - `helix-before-change`: Fired before a press or a key changes which items are selected, with the `value` it would leave. Cancelable.
|
|
95885
|
+
* - `helix-before-reorder`: Fired when an item is dropped at a new place, in a `reorderable` list with `@fusion.dev/helix/virtual-list/reorder` imported, with every key in the new order. Cancelable: cancel it to keep the item where it is.
|
|
95055
95886
|
* - `helix-load-more`: Fired when a reader comes within one screen of the last item, once for each length of the set.
|
|
95056
95887
|
* - `helix-range-change`: Fired when the items on screen change, with the new `first` and `last`, which `range` also holds.
|
|
95888
|
+
* - `helix-reorder`: Fired after `helix-before-reorder` when nobody canceled it. Set `items` to the order in `keys`. Cancelable: cancel it to say the move did not happen.
|
|
95057
95889
|
*
|
|
95058
95890
|
* ## Slots
|
|
95059
95891
|
*
|