@fusion.dev/helix-headless 0.170.0 → 0.172.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 +1045 -154
- package/dist/chat/composer/chat-composer.d.ts +30 -2
- package/dist/chat/composer/chat-composer.js +29 -4
- package/dist/chat/root/chat-root.d.ts +73 -7
- package/dist/chat/root/chat-root.js +90 -5
- package/dist/code-block/root/code-block-root.d.ts +20 -2
- package/dist/code-block/root/code-block-root.js +29 -8
- 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 +54 -7
- package/dist/color-picker/root/color-picker-root.js +62 -1
- package/dist/combobox/root/combobox-root.d.ts +16 -6
- package/dist/combobox/root/combobox-root.js +9 -2
- package/dist/command/root/command-root.d.ts +16 -1
- package/dist/command/root/command-root.js +8 -0
- 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 +1 -0
- package/dist/filter-input/chip/filter-chip.d.ts +13 -3
- package/dist/filter-input/chip/filter-chip.js +5 -0
- package/dist/filter-input/menu/filter-menu.js +0 -1
- package/dist/filter-input/root/filter-input-root.d.ts +71 -4
- package/dist/filter-input/root/filter-input-root.js +87 -2
- package/dist/format-date/root/format-date-root.d.ts +3 -1
- package/dist/input/root/input-root.d.ts +6 -0
- package/dist/input/root/input-root.js +13 -0
- package/dist/lightbox/root/lightbox-root.js +1 -0
- package/dist/listbox/root/listbox-root.d.ts +8 -1
- package/dist/listbox/root/listbox-root.js +9 -3
- 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/number-input/root/number-input-root.d.ts +16 -6
- package/dist/number-input/root/number-input-root.js +15 -4
- 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 +4 -2
- package/dist/steps/root/steps-root.d.ts +32 -8
- package/dist/steps/root/steps-root.js +70 -9
- package/dist/steps/step/step.d.ts +9 -1
- package/dist/steps/step/step.js +5 -0
- package/dist/textarea/root/textarea-root.d.ts +8 -0
- package/dist/textarea/root/textarea-root.js +16 -0
- package/dist/video-playlist/root/video-playlist-root.d.ts +19 -1
- package/dist/video-playlist/root/video-playlist-root.js +14 -3
- package/dist/virtual-list/root/virtual-list-root.d.ts +8 -0
- package/dist/virtual-list/root/virtual-list-root.js +7 -2
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +800 -144
- package/types/vue.d.ts +165 -31
- package/types/words.d.ts +20 -2
package/types/jsx.d.ts
CHANGED
|
@@ -4966,6 +4966,10 @@ export type HelixHeadlessChatComposerHelixTypingElementEvent =
|
|
|
4966
4966
|
HelixHeadlessChatComposerElementEvent<HelixTypingEvent>;
|
|
4967
4967
|
|
|
4968
4968
|
export type HelixHeadlessChatComposerProps = {
|
|
4969
|
+
/** A message about the draft, shown under the field. While set, the composer
|
|
4970
|
+
is invalid, does not send, and does not submit, as a field's `feedback`
|
|
4971
|
+
does, and the message is announced as it appears. */
|
|
4972
|
+
feedback?: (HelixHeadlessChatComposer["feedback"]) | undefined;
|
|
4969
4973
|
/** The field's name, read by screen readers. */
|
|
4970
4974
|
label?: (HelixHeadlessChatComposer["label"]) | undefined;
|
|
4971
4975
|
/** The most characters a draft can have. The field stops taking more. */
|
|
@@ -5054,6 +5058,10 @@ Here rather than on each control. */
|
|
|
5054
5058
|
};
|
|
5055
5059
|
|
|
5056
5060
|
export type HelixHeadlessChatComposerSolidJsProps = {
|
|
5061
|
+
/** A message about the draft, shown under the field. While set, the composer
|
|
5062
|
+
is invalid, does not send, and does not submit, as a field's `feedback`
|
|
5063
|
+
does, and the message is announced as it appears. */
|
|
5064
|
+
"prop:feedback"?: (HelixHeadlessChatComposer["feedback"]) | undefined;
|
|
5057
5065
|
/** The field's name, read by screen readers. */
|
|
5058
5066
|
"prop:label"?: (HelixHeadlessChatComposer["label"]) | undefined;
|
|
5059
5067
|
/** The most characters a draft can have. The field stops taking more. */
|
|
@@ -6148,6 +6156,12 @@ export type HelixHeadlessCodeBlockHelixToggleElementEvent =
|
|
|
6148
6156
|
HelixHeadlessCodeBlockElementEvent<HelixToggleEvent>;
|
|
6149
6157
|
|
|
6150
6158
|
export type HelixHeadlessCodeBlockProps = {
|
|
6159
|
+
/** The lines to mark as inserted, as numbers and ranges counted from 1, such
|
|
6160
|
+
as `3-4`. Drawn as `mark-lines` is, in the added color. Not for a diff. */
|
|
6161
|
+
"added-lines"?: (HelixHeadlessCodeBlock["addedLines"]) | undefined;
|
|
6162
|
+
/** The lines to mark as inserted, as numbers and ranges counted from 1, such
|
|
6163
|
+
as `3-4`. Drawn as `mark-lines` is, in the added color. Not for a diff. */
|
|
6164
|
+
addedLines?: (HelixHeadlessCodeBlock["addedLines"]) | undefined;
|
|
6151
6165
|
/** The name of a block that scrolls, which is a tab stop while it does.
|
|
6152
6166
|
|
|
6153
6167
|
Where the block has a name, the scroller says it too, such as "Code,
|
|
@@ -6306,6 +6320,12 @@ A false boolean reflects as the attribute's absence, so this costs no
|
|
|
6306
6320
|
reflected property taking no default is satisfied by the default being
|
|
6307
6321
|
`false`. */
|
|
6308
6322
|
noCopy?: (HelixHeadlessCodeBlock["noCopy"]) | undefined;
|
|
6323
|
+
/** The lines to mark as deleted, as numbers and ranges counted from 1. Drawn
|
|
6324
|
+
as `mark-lines` is, in the removed color. Not for a diff. */
|
|
6325
|
+
"removed-lines"?: (HelixHeadlessCodeBlock["removedLines"]) | undefined;
|
|
6326
|
+
/** The lines to mark as deleted, as numbers and ranges counted from 1. Drawn
|
|
6327
|
+
as `mark-lines` is, in the removed color. Not for a diff. */
|
|
6328
|
+
removedLines?: (HelixHeadlessCodeBlock["removedLines"]) | undefined;
|
|
6309
6329
|
/** The words of a button that shows a folded run of unchanged lines, in a
|
|
6310
6330
|
diff with `context-lines`. `{count}` is how many. */
|
|
6311
6331
|
"show-unchanged-label"?: (HelixHeadlessCodeBlock["showUnchangedLabel"]) | undefined;
|
|
@@ -6378,6 +6398,12 @@ read, nor for a diff. */
|
|
|
6378
6398
|
};
|
|
6379
6399
|
|
|
6380
6400
|
export type HelixHeadlessCodeBlockSolidJsProps = {
|
|
6401
|
+
/** The lines to mark as inserted, as numbers and ranges counted from 1, such
|
|
6402
|
+
as `3-4`. Drawn as `mark-lines` is, in the added color. Not for a diff. */
|
|
6403
|
+
"attr:added-lines"?: (HelixHeadlessCodeBlock["addedLines"]) | undefined;
|
|
6404
|
+
/** The lines to mark as inserted, as numbers and ranges counted from 1, such
|
|
6405
|
+
as `3-4`. Drawn as `mark-lines` is, in the added color. Not for a diff. */
|
|
6406
|
+
"prop:addedLines"?: (HelixHeadlessCodeBlock["addedLines"]) | undefined;
|
|
6381
6407
|
/** The name of a block that scrolls, which is a tab stop while it does.
|
|
6382
6408
|
|
|
6383
6409
|
Where the block has a name, the scroller says it too, such as "Code,
|
|
@@ -6536,6 +6562,12 @@ A false boolean reflects as the attribute's absence, so this costs no
|
|
|
6536
6562
|
reflected property taking no default is satisfied by the default being
|
|
6537
6563
|
`false`. */
|
|
6538
6564
|
"prop:noCopy"?: (HelixHeadlessCodeBlock["noCopy"]) | undefined;
|
|
6565
|
+
/** The lines to mark as deleted, as numbers and ranges counted from 1. Drawn
|
|
6566
|
+
as `mark-lines` is, in the removed color. Not for a diff. */
|
|
6567
|
+
"attr:removed-lines"?: (HelixHeadlessCodeBlock["removedLines"]) | undefined;
|
|
6568
|
+
/** The lines to mark as deleted, as numbers and ranges counted from 1. Drawn
|
|
6569
|
+
as `mark-lines` is, in the removed color. Not for a diff. */
|
|
6570
|
+
"prop:removedLines"?: (HelixHeadlessCodeBlock["removedLines"]) | undefined;
|
|
6539
6571
|
/** The words of a button that shows a folded run of unchanged lines, in a
|
|
6540
6572
|
diff with `context-lines`. `{count}` is how many. */
|
|
6541
6573
|
"attr:show-unchanged-label"?: (HelixHeadlessCodeBlock["showUnchangedLabel"]) | undefined;
|
|
@@ -7404,10 +7436,11 @@ would give one control two of each. What is left is the validity call and
|
|
|
7404
7436
|
the anchor the browser points its bubble at.
|
|
7405
7437
|
|
|
7406
7438
|
**Text that is not a color is bad input**, so a form does not submit
|
|
7407
|
-
`#00` from a half-typed value. The picker
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7439
|
+
`#00` from a half-typed value. The picker marks it, and says
|
|
7440
|
+
`badInputMessage` under itself, once the reader leaves the value field or
|
|
7441
|
+
presses Enter, and a missing color once the reader has committed one or a
|
|
7442
|
+
form has refused the picker. Color Input shows its own message against the
|
|
7443
|
+
field the reader typed into. */
|
|
7411
7444
|
required?: (HelixHeadlessColorPicker["required"]) | undefined;
|
|
7412
7445
|
/** What the square's horizontal ramp is called. */
|
|
7413
7446
|
"saturation-label"?: (HelixHeadlessColorPicker["saturationLabel"]) | undefined;
|
|
@@ -7784,10 +7817,11 @@ would give one control two of each. What is left is the validity call and
|
|
|
7784
7817
|
the anchor the browser points its bubble at.
|
|
7785
7818
|
|
|
7786
7819
|
**Text that is not a color is bad input**, so a form does not submit
|
|
7787
|
-
`#00` from a half-typed value. The picker
|
|
7788
|
-
|
|
7789
|
-
|
|
7790
|
-
|
|
7820
|
+
`#00` from a half-typed value. The picker marks it, and says
|
|
7821
|
+
`badInputMessage` under itself, once the reader leaves the value field or
|
|
7822
|
+
presses Enter, and a missing color once the reader has committed one or a
|
|
7823
|
+
form has refused the picker. Color Input shows its own message against the
|
|
7824
|
+
field the reader typed into. */
|
|
7791
7825
|
"prop:required"?: (HelixHeadlessColorPicker["required"]) | undefined;
|
|
7792
7826
|
/** What the square's horizontal ramp is called. */
|
|
7793
7827
|
"attr:saturation-label"?: (HelixHeadlessColorPicker["saturationLabel"]) | undefined;
|
|
@@ -8063,12 +8097,13 @@ language. */
|
|
|
8063
8097
|
locale?: (HelixHeadlessCombobox["locale"]) | undefined;
|
|
8064
8098
|
/** Whether more than one option can be chosen.
|
|
8065
8099
|
|
|
8066
|
-
The list already does the work: `value`
|
|
8067
|
-
toggles rather than replaces, and the arrows move without
|
|
8068
|
-
this adds is the tags, and keeping the panel open between
|
|
8100
|
+
The list already does the work: `value` is the chosen values joined with
|
|
8101
|
+
commas, a press toggles rather than replaces, and the arrows move without
|
|
8102
|
+
choosing. What this adds is the tags, and keeping the panel open between
|
|
8103
|
+
picks.
|
|
8069
8104
|
|
|
8070
|
-
|
|
8071
|
-
|
|
8105
|
+
An option's value may hold a comma, and it is read as one value, as
|
|
8106
|
+
`Select` and `Listbox` read it. So may an answer the reader created.
|
|
8072
8107
|
|
|
8073
8108
|
**The list is told, and the field is not.** `aria-multiselectable` belongs
|
|
8074
8109
|
to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
|
|
@@ -8428,12 +8463,13 @@ language. */
|
|
|
8428
8463
|
"prop:locale"?: (HelixHeadlessCombobox["locale"]) | undefined;
|
|
8429
8464
|
/** Whether more than one option can be chosen.
|
|
8430
8465
|
|
|
8431
|
-
The list already does the work: `value`
|
|
8432
|
-
toggles rather than replaces, and the arrows move without
|
|
8433
|
-
this adds is the tags, and keeping the panel open between
|
|
8466
|
+
The list already does the work: `value` is the chosen values joined with
|
|
8467
|
+
commas, a press toggles rather than replaces, and the arrows move without
|
|
8468
|
+
choosing. What this adds is the tags, and keeping the panel open between
|
|
8469
|
+
picks.
|
|
8434
8470
|
|
|
8435
|
-
|
|
8436
|
-
|
|
8471
|
+
An option's value may hold a comma, and it is read as one value, as
|
|
8472
|
+
`Select` and `Listbox` read it. So may an answer the reader created.
|
|
8437
8473
|
|
|
8438
8474
|
**The list is told, and the field is not.** `aria-multiselectable` belongs
|
|
8439
8475
|
to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
|
|
@@ -8718,6 +8754,18 @@ so a palette filtered on a server sends one `helix-filter` for a word.
|
|
|
8718
8754
|
so a palette filtered on a server sends one `helix-filter` for a word.
|
|
8719
8755
|
`0` filters on every keystroke. See Listbox's `filter-delay`. */
|
|
8720
8756
|
filterDelay?: (HelixHeadlessCommand["filterDelay"]) | undefined;
|
|
8757
|
+
/** Where Home and End go from the filter field.
|
|
8758
|
+
|
|
8759
|
+
Absent, they move the caret, as APG's combobox has them. `list` moves the
|
|
8760
|
+
highlight to the first or the last command, as React Aria's Autocomplete
|
|
8761
|
+
does, and Shift with either still selects the text. */
|
|
8762
|
+
"home-end"?: (HelixHeadlessCommand["homeEnd"]) | undefined;
|
|
8763
|
+
/** Where Home and End go from the filter field.
|
|
8764
|
+
|
|
8765
|
+
Absent, they move the caret, as APG's combobox has them. `list` moves the
|
|
8766
|
+
highlight to the first or the last command, as React Aria's Autocomplete
|
|
8767
|
+
does, and Shift with either still selects the text. */
|
|
8768
|
+
homeEnd?: (HelixHeadlessCommand["homeEnd"]) | undefined;
|
|
8721
8769
|
/** The key that opens the palette, written as `mod+k`, `shift+p`, or `k`,
|
|
8722
8770
|
in Kbd's chord spelling: `mod` is Command or Control, `ctrl`, `cmd`,
|
|
8723
8771
|
`alt` and `shift` the keys they name.
|
|
@@ -8735,6 +8783,10 @@ and `open`, `toggle` and the dialog's parts do nothing. */
|
|
|
8735
8783
|
inline?: (HelixHeadlessCommand["inline"]) | undefined;
|
|
8736
8784
|
/** Accessible name for the overlay, which has no visible heading. */
|
|
8737
8785
|
label?: (HelixHeadlessCommand["label"]) | undefined;
|
|
8786
|
+
/** How the commands are laid out, as Listbox's `layout`: `grid` draws them in
|
|
8787
|
+
rows and columns, for a palette of icons or emoji, and the arrow keys
|
|
8788
|
+
follow the rows and the columns. Absent is one command under another. */
|
|
8789
|
+
layout?: (HelixHeadlessCommand["layout"]) | undefined;
|
|
8738
8790
|
/** What the list says when its commands could not be loaded, such as after a
|
|
8739
8791
|
request to a server fails. Empty, null or no attribute is no error, so
|
|
8740
8792
|
removing the attribute clears it. Passed to the list, which shows it
|
|
@@ -8854,6 +8906,18 @@ so a palette filtered on a server sends one `helix-filter` for a word.
|
|
|
8854
8906
|
so a palette filtered on a server sends one `helix-filter` for a word.
|
|
8855
8907
|
`0` filters on every keystroke. See Listbox's `filter-delay`. */
|
|
8856
8908
|
"prop:filterDelay"?: (HelixHeadlessCommand["filterDelay"]) | undefined;
|
|
8909
|
+
/** Where Home and End go from the filter field.
|
|
8910
|
+
|
|
8911
|
+
Absent, they move the caret, as APG's combobox has them. `list` moves the
|
|
8912
|
+
highlight to the first or the last command, as React Aria's Autocomplete
|
|
8913
|
+
does, and Shift with either still selects the text. */
|
|
8914
|
+
"attr:home-end"?: (HelixHeadlessCommand["homeEnd"]) | undefined;
|
|
8915
|
+
/** Where Home and End go from the filter field.
|
|
8916
|
+
|
|
8917
|
+
Absent, they move the caret, as APG's combobox has them. `list` moves the
|
|
8918
|
+
highlight to the first or the last command, as React Aria's Autocomplete
|
|
8919
|
+
does, and Shift with either still selects the text. */
|
|
8920
|
+
"prop:homeEnd"?: (HelixHeadlessCommand["homeEnd"]) | undefined;
|
|
8857
8921
|
/** The key that opens the palette, written as `mod+k`, `shift+p`, or `k`,
|
|
8858
8922
|
in Kbd's chord spelling: `mod` is Command or Control, `ctrl`, `cmd`,
|
|
8859
8923
|
`alt` and `shift` the keys they name.
|
|
@@ -8871,6 +8935,10 @@ and `open`, `toggle` and the dialog's parts do nothing. */
|
|
|
8871
8935
|
"prop:inline"?: (HelixHeadlessCommand["inline"]) | undefined;
|
|
8872
8936
|
/** Accessible name for the overlay, which has no visible heading. */
|
|
8873
8937
|
"prop:label"?: (HelixHeadlessCommand["label"]) | undefined;
|
|
8938
|
+
/** How the commands are laid out, as Listbox's `layout`: `grid` draws them in
|
|
8939
|
+
rows and columns, for a palette of icons or emoji, and the arrow keys
|
|
8940
|
+
follow the rows and the columns. Absent is one command under another. */
|
|
8941
|
+
"prop:layout"?: (HelixHeadlessCommand["layout"]) | undefined;
|
|
8874
8942
|
/** What the list says when its commands could not be loaded, such as after a
|
|
8875
8943
|
request to a server fails. Empty, null or no attribute is no error, so
|
|
8876
8944
|
removing the attribute clears it. Passed to the list, which shows it
|
|
@@ -9633,7 +9701,11 @@ thousand rows, where the page is a reasonable fetch and a poor render.
|
|
|
9633
9701
|
|
|
9634
9702
|
Off by default. Windowing costs a scroll listener, a measurement per row
|
|
9635
9703
|
drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
9636
|
-
should pay none of them.
|
|
9704
|
+
should pay none of them.
|
|
9705
|
+
|
|
9706
|
+
While windowed, the `table` part scrolls on this tier: it carries
|
|
9707
|
+
`data-scroller`, and `core` ships `[data-scroller] { overflow: auto }` into
|
|
9708
|
+
every shadow root. You still need to give it a block size. */
|
|
9637
9709
|
windowed?: (HelixHeadlessDataTable["windowed"]) | undefined;
|
|
9638
9710
|
/** The text shown and announced when there are no rows and none are loading. */
|
|
9639
9711
|
"empty-text"?: (HelixHeadlessDataTable["emptyText"]) | undefined;
|
|
@@ -10062,7 +10134,11 @@ thousand rows, where the page is a reasonable fetch and a poor render.
|
|
|
10062
10134
|
|
|
10063
10135
|
Off by default. Windowing costs a scroll listener, a measurement per row
|
|
10064
10136
|
drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
10065
|
-
should pay none of them.
|
|
10137
|
+
should pay none of them.
|
|
10138
|
+
|
|
10139
|
+
While windowed, the `table` part scrolls on this tier: it carries
|
|
10140
|
+
`data-scroller`, and `core` ships `[data-scroller] { overflow: auto }` into
|
|
10141
|
+
every shadow root. You still need to give it a block size. */
|
|
10066
10142
|
"prop:windowed"?: (HelixHeadlessDataTable["windowed"]) | undefined;
|
|
10067
10143
|
/** The text shown and announced when there are no rows and none are loading. */
|
|
10068
10144
|
"attr:empty-text"?: (HelixHeadlessDataTable["emptyText"]) | undefined;
|
|
@@ -13542,6 +13618,13 @@ makes an unusual filter look unusual. */
|
|
|
13542
13618
|
operatorLabel?: (HelixHeadlessFilterChip["operatorLabel"]) | undefined;
|
|
13543
13619
|
/** Whether the element shows a control that dismisses it. */
|
|
13544
13620
|
dismissible?: (HelixHeadlessFilterChip["dismissible"]) | undefined;
|
|
13621
|
+
/** Whether the remove button is a tab stop of its own.
|
|
13622
|
+
|
|
13623
|
+
`FilterInput` writes `false` on the chips in its `tags` slot: the field's
|
|
13624
|
+
text is its one tab stop, and the arrow keys move from the text to the
|
|
13625
|
+
chips, as in a `multiple` Combobox. No attribute: it is coordination
|
|
13626
|
+
between elements, as `Tag.dismissTabStop` is. */
|
|
13627
|
+
dismissTabStop?: (HelixHeadlessFilterChip["dismissTabStop"]) | undefined;
|
|
13545
13628
|
|
|
13546
13629
|
/** Fired when the user asks to remove the filter. Cancelable: call `preventDefault()` to keep the chip. */
|
|
13547
13630
|
"onhelix-dismiss"?: ((
|
|
@@ -13612,6 +13695,13 @@ makes an unusual filter look unusual. */
|
|
|
13612
13695
|
"prop:operatorLabel"?: (HelixHeadlessFilterChip["operatorLabel"]) | undefined;
|
|
13613
13696
|
/** Whether the element shows a control that dismisses it. */
|
|
13614
13697
|
"prop:dismissible"?: (HelixHeadlessFilterChip["dismissible"]) | undefined;
|
|
13698
|
+
/** Whether the remove button is a tab stop of its own.
|
|
13699
|
+
|
|
13700
|
+
`FilterInput` writes `false` on the chips in its `tags` slot: the field's
|
|
13701
|
+
text is its one tab stop, and the arrow keys move from the text to the
|
|
13702
|
+
chips, as in a `multiple` Combobox. No attribute: it is coordination
|
|
13703
|
+
between elements, as `Tag.dismissTabStop` is. */
|
|
13704
|
+
"prop:dismissTabStop"?: (HelixHeadlessFilterChip["dismissTabStop"]) | undefined;
|
|
13615
13705
|
/** Fired when the user asks to remove the filter. Cancelable: call `preventDefault()` to keep the chip. */
|
|
13616
13706
|
"on:helix-dismiss"?: ((
|
|
13617
13707
|
e: HelixHeadlessFilterChipHelixDismissElementEvent,
|
|
@@ -13822,6 +13912,18 @@ export type HelixHeadlessFilterInputToggleElementEvent =
|
|
|
13822
13912
|
HelixHeadlessFilterInputElementEvent<ToggleEvent>;
|
|
13823
13913
|
|
|
13824
13914
|
export type HelixHeadlessFilterInputProps = {
|
|
13915
|
+
/** Whether the field keeps a `FilterChip` for each filter in its `tags` slot,
|
|
13916
|
+
from the `helix-facet` events it hears.
|
|
13917
|
+
|
|
13918
|
+
Off, you build the chips, which is what you do when your own model holds
|
|
13919
|
+
the filters. On, a filter typed, picked, or changed adds or updates the
|
|
13920
|
+
chip for its field, one with no values takes it away (unless its
|
|
13921
|
+
comparison takes none, such as "is empty"), and removing the chip clears
|
|
13922
|
+
the filter. A `helix-facet` you cancel changes no chip.
|
|
13923
|
+
|
|
13924
|
+
The chips are elements the field adds to its own children, so leave this
|
|
13925
|
+
off where a framework renders those children and would remove them. */
|
|
13926
|
+
chips?: (HelixHeadlessFilterInput["chips"]) | undefined;
|
|
13825
13927
|
/** Shows a button that empties the field.
|
|
13826
13928
|
|
|
13827
13929
|
The text only. The tokens are the consumer's markup and this element is not
|
|
@@ -13843,6 +13945,29 @@ what you slot and you narrow it. */
|
|
|
13843
13945
|
being typed, as React Aria's Autocomplete filters. Off, the panel shows
|
|
13844
13946
|
what you slot and you narrow it. */
|
|
13845
13947
|
filterSuggestions?: (HelixHeadlessFilterInput["filterSuggestions"]) | undefined;
|
|
13948
|
+
/** Whether the suggestions are still loading, such as while a request for the
|
|
13949
|
+
values of a typed key is out.
|
|
13950
|
+
|
|
13951
|
+
The panel opens on `loading-text`, or the `loading` slot, while the field
|
|
13952
|
+
has focus, and a screen reader hears it. Slot the options and clear this
|
|
13953
|
+
when they arrive. */
|
|
13954
|
+
loading?: (HelixHeadlessFilterInput["loading"]) | undefined;
|
|
13955
|
+
/** Text the panel shows while the suggestions load. */
|
|
13956
|
+
"loading-text"?: (HelixHeadlessFilterInput["loadingText"]) | undefined;
|
|
13957
|
+
/** Text the panel shows while the suggestions load. */
|
|
13958
|
+
loadingText?: (HelixHeadlessFilterInput["loadingText"]) | undefined;
|
|
13959
|
+
/** Text the panel shows when `filter-suggestions` hides every suggestion, such
|
|
13960
|
+
as "No matching filters".
|
|
13961
|
+
|
|
13962
|
+
Empty, or no `no-results` slot, and the panel closes instead, as it does
|
|
13963
|
+
when it has nothing to offer. */
|
|
13964
|
+
"no-results-text"?: (HelixHeadlessFilterInput["noResultsText"]) | undefined;
|
|
13965
|
+
/** Text the panel shows when `filter-suggestions` hides every suggestion, such
|
|
13966
|
+
as "No matching filters".
|
|
13967
|
+
|
|
13968
|
+
Empty, or no `no-results` slot, and the panel closes instead, as it does
|
|
13969
|
+
when it has nothing to offer. */
|
|
13970
|
+
noResultsText?: (HelixHeadlessFilterInput["noResultsText"]) | undefined;
|
|
13846
13971
|
/** The text shown while the field is empty.
|
|
13847
13972
|
|
|
13848
13973
|
Not a label: it goes when typing starts. */
|
|
@@ -14037,6 +14162,18 @@ Here rather than on each control. */
|
|
|
14037
14162
|
};
|
|
14038
14163
|
|
|
14039
14164
|
export type HelixHeadlessFilterInputSolidJsProps = {
|
|
14165
|
+
/** Whether the field keeps a `FilterChip` for each filter in its `tags` slot,
|
|
14166
|
+
from the `helix-facet` events it hears.
|
|
14167
|
+
|
|
14168
|
+
Off, you build the chips, which is what you do when your own model holds
|
|
14169
|
+
the filters. On, a filter typed, picked, or changed adds or updates the
|
|
14170
|
+
chip for its field, one with no values takes it away (unless its
|
|
14171
|
+
comparison takes none, such as "is empty"), and removing the chip clears
|
|
14172
|
+
the filter. A `helix-facet` you cancel changes no chip.
|
|
14173
|
+
|
|
14174
|
+
The chips are elements the field adds to its own children, so leave this
|
|
14175
|
+
off where a framework renders those children and would remove them. */
|
|
14176
|
+
"prop:chips"?: (HelixHeadlessFilterInput["chips"]) | undefined;
|
|
14040
14177
|
/** Shows a button that empties the field.
|
|
14041
14178
|
|
|
14042
14179
|
The text only. The tokens are the consumer's markup and this element is not
|
|
@@ -14058,6 +14195,29 @@ what you slot and you narrow it. */
|
|
|
14058
14195
|
being typed, as React Aria's Autocomplete filters. Off, the panel shows
|
|
14059
14196
|
what you slot and you narrow it. */
|
|
14060
14197
|
"prop:filterSuggestions"?: (HelixHeadlessFilterInput["filterSuggestions"]) | undefined;
|
|
14198
|
+
/** Whether the suggestions are still loading, such as while a request for the
|
|
14199
|
+
values of a typed key is out.
|
|
14200
|
+
|
|
14201
|
+
The panel opens on `loading-text`, or the `loading` slot, while the field
|
|
14202
|
+
has focus, and a screen reader hears it. Slot the options and clear this
|
|
14203
|
+
when they arrive. */
|
|
14204
|
+
"prop:loading"?: (HelixHeadlessFilterInput["loading"]) | undefined;
|
|
14205
|
+
/** Text the panel shows while the suggestions load. */
|
|
14206
|
+
"attr:loading-text"?: (HelixHeadlessFilterInput["loadingText"]) | undefined;
|
|
14207
|
+
/** Text the panel shows while the suggestions load. */
|
|
14208
|
+
"prop:loadingText"?: (HelixHeadlessFilterInput["loadingText"]) | undefined;
|
|
14209
|
+
/** Text the panel shows when `filter-suggestions` hides every suggestion, such
|
|
14210
|
+
as "No matching filters".
|
|
14211
|
+
|
|
14212
|
+
Empty, or no `no-results` slot, and the panel closes instead, as it does
|
|
14213
|
+
when it has nothing to offer. */
|
|
14214
|
+
"attr:no-results-text"?: (HelixHeadlessFilterInput["noResultsText"]) | undefined;
|
|
14215
|
+
/** Text the panel shows when `filter-suggestions` hides every suggestion, such
|
|
14216
|
+
as "No matching filters".
|
|
14217
|
+
|
|
14218
|
+
Empty, or no `no-results` slot, and the panel closes instead, as it does
|
|
14219
|
+
when it has nothing to offer. */
|
|
14220
|
+
"prop:noResultsText"?: (HelixHeadlessFilterInput["noResultsText"]) | undefined;
|
|
14061
14221
|
/** The text shown while the field is empty.
|
|
14062
14222
|
|
|
14063
14223
|
Not a label: it goes when typing starts. */
|
|
@@ -21044,6 +21204,14 @@ or on Alt+Down or Alt+Up. */
|
|
|
21044
21204
|
|
|
21045
21205
|
It moves if that side does not fit. */
|
|
21046
21206
|
placement?: (HelixHeadlessMenu["placement"]) | undefined;
|
|
21207
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
21208
|
+
how many rows are left, written in the locale, and each language writes
|
|
21209
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
21210
|
+
"results-label"?: (HelixHeadlessMenu["resultsLabel"]) | undefined;
|
|
21211
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
21212
|
+
how many rows are left, written in the locale, and each language writes
|
|
21213
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
21214
|
+
resultsLabel?: (HelixHeadlessMenu["resultsLabel"]) | undefined;
|
|
21047
21215
|
/** How a submenu opens. `drill` shows it in place of the page showing, with
|
|
21048
21216
|
a way back. `flyout` opens it in a panel of its own beside its row. */
|
|
21049
21217
|
submenus?: (HelixHeadlessMenu["submenus"]) | undefined;
|
|
@@ -21085,7 +21253,17 @@ Aria's `Autocomplete` takes `filter`. See Listbox's `filterMatch`.
|
|
|
21085
21253
|
Absent, a row is kept where its words hold the filter, in any case. A
|
|
21086
21254
|
property only, there being no way to write a function in markup. */
|
|
21087
21255
|
filterMatch?: (HelixHeadlessMenu["filterMatch"]) | undefined;
|
|
21256
|
+
/** The values of the choice rows that are checked, anywhere in the menu, in
|
|
21257
|
+
document order.
|
|
21088
21258
|
|
|
21259
|
+
Set it to check exactly those rows and uncheck every other choice row, as
|
|
21260
|
+
React Aria's `selectedKeys` controls a menu's selection from one place.
|
|
21261
|
+
Each row keeps its own `checked` too, which this reads and writes. `change`
|
|
21262
|
+
is sent on the menu when a reader's choice changes it. */
|
|
21263
|
+
checkedValues?: (HelixHeadlessMenu["checkedValues"]) | undefined;
|
|
21264
|
+
|
|
21265
|
+
/** A reader's choice checked or unchecked rows. Read `checkedValues` for the rows that are checked now. */
|
|
21266
|
+
onchange?: ((e: HelixHeadlessMenuElementEvent) => void) | undefined;
|
|
21089
21267
|
/** The menu is about to close. Cancelable: cancel it to keep it open. */
|
|
21090
21268
|
"onhelix-before-close"?: ((
|
|
21091
21269
|
e: HelixHeadlessMenuHelixBeforeCloseElementEvent,
|
|
@@ -21164,6 +21342,14 @@ or on Alt+Down or Alt+Up. */
|
|
|
21164
21342
|
|
|
21165
21343
|
It moves if that side does not fit. */
|
|
21166
21344
|
"prop:placement"?: (HelixHeadlessMenu["placement"]) | undefined;
|
|
21345
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
21346
|
+
how many rows are left, written in the locale, and each language writes
|
|
21347
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
21348
|
+
"attr:results-label"?: (HelixHeadlessMenu["resultsLabel"]) | undefined;
|
|
21349
|
+
/** What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
21350
|
+
how many rows are left, written in the locale, and each language writes
|
|
21351
|
+
the forms it has, as Listbox's `results-label` does. */
|
|
21352
|
+
"prop:resultsLabel"?: (HelixHeadlessMenu["resultsLabel"]) | undefined;
|
|
21167
21353
|
/** How a submenu opens. `drill` shows it in place of the page showing, with
|
|
21168
21354
|
a way back. `flyout` opens it in a panel of its own beside its row. */
|
|
21169
21355
|
"prop:submenus"?: (HelixHeadlessMenu["submenus"]) | undefined;
|
|
@@ -21205,6 +21391,16 @@ Aria's `Autocomplete` takes `filter`. See Listbox's `filterMatch`.
|
|
|
21205
21391
|
Absent, a row is kept where its words hold the filter, in any case. A
|
|
21206
21392
|
property only, there being no way to write a function in markup. */
|
|
21207
21393
|
"prop:filterMatch"?: (HelixHeadlessMenu["filterMatch"]) | undefined;
|
|
21394
|
+
/** The values of the choice rows that are checked, anywhere in the menu, in
|
|
21395
|
+
document order.
|
|
21396
|
+
|
|
21397
|
+
Set it to check exactly those rows and uncheck every other choice row, as
|
|
21398
|
+
React Aria's `selectedKeys` controls a menu's selection from one place.
|
|
21399
|
+
Each row keeps its own `checked` too, which this reads and writes. `change`
|
|
21400
|
+
is sent on the menu when a reader's choice changes it. */
|
|
21401
|
+
"prop:checkedValues"?: (HelixHeadlessMenu["checkedValues"]) | undefined;
|
|
21402
|
+
/** A reader's choice checked or unchecked rows. Read `checkedValues` for the rows that are checked now. */
|
|
21403
|
+
"on:change"?: ((e: HelixHeadlessMenuElementEvent) => void) | undefined;
|
|
21208
21404
|
/** The menu is about to close. Cancelable: cancel it to keep it open. */
|
|
21209
21405
|
"on:helix-before-close"?: ((
|
|
21210
21406
|
e: HelixHeadlessMenuHelixBeforeCloseElementEvent,
|
|
@@ -22150,9 +22346,13 @@ speaks it: `feedback` replaces the message under the field and does not
|
|
|
22150
22346
|
reach the bubble. Unset is the sentence registered for the page's
|
|
22151
22347
|
language, then the English. */
|
|
22152
22348
|
badInputMessage?: (HelixHeadlessNumberInput["badInputMessage"]) | undefined;
|
|
22153
|
-
/** The name of the step down button, read by screen readers.
|
|
22349
|
+
/** The name of the step down button, read by screen readers. The field's
|
|
22350
|
+
label follows it, so a reader hears "Decrease Quantity", as React Aria
|
|
22351
|
+
names its steppers. */
|
|
22154
22352
|
"decrement-label"?: (HelixHeadlessNumberInput["decrementLabel"]) | undefined;
|
|
22155
|
-
/** The name of the step down button, read by screen readers.
|
|
22353
|
+
/** The name of the step down button, read by screen readers. The field's
|
|
22354
|
+
label follows it, so a reader hears "Decrease Quantity", as React Aria
|
|
22355
|
+
names its steppers. */
|
|
22156
22356
|
decrementLabel?: (HelixHeadlessNumberInput["decrementLabel"]) | undefined;
|
|
22157
22357
|
/** `Intl.NumberFormat` options the number is shown with while the field is
|
|
22158
22358
|
not being edited: a currency, a percent, a unit, or a number of decimals.
|
|
@@ -22170,9 +22370,13 @@ Written as JSON in the attribute.
|
|
|
22170
22370
|
<helix-number-input format-options='{"style":"currency","currency":"EUR"}'></helix-number-input>
|
|
22171
22371
|
``` */
|
|
22172
22372
|
formatOptions?: (HelixHeadlessNumberInput["formatOptions"]) | undefined;
|
|
22173
|
-
/** The name of the step up button, read by screen readers.
|
|
22373
|
+
/** The name of the step up button, read by screen readers. The field's
|
|
22374
|
+
label follows it, so a reader hears "Increase Quantity", as React Aria
|
|
22375
|
+
names its steppers. */
|
|
22174
22376
|
"increment-label"?: (HelixHeadlessNumberInput["incrementLabel"]) | undefined;
|
|
22175
|
-
/** The name of the step up button, read by screen readers.
|
|
22377
|
+
/** The name of the step up button, read by screen readers. The field's
|
|
22378
|
+
label follows it, so a reader hears "Increase Quantity", as React Aria
|
|
22379
|
+
names its steppers. */
|
|
22176
22380
|
incrementLabel?: (HelixHeadlessNumberInput["incrementLabel"]) | undefined;
|
|
22177
22381
|
/** How many steps `PageUp` and `PageDown` move.
|
|
22178
22382
|
|
|
@@ -22429,9 +22633,13 @@ speaks it: `feedback` replaces the message under the field and does not
|
|
|
22429
22633
|
reach the bubble. Unset is the sentence registered for the page's
|
|
22430
22634
|
language, then the English. */
|
|
22431
22635
|
"prop:badInputMessage"?: (HelixHeadlessNumberInput["badInputMessage"]) | undefined;
|
|
22432
|
-
/** The name of the step down button, read by screen readers.
|
|
22636
|
+
/** The name of the step down button, read by screen readers. The field's
|
|
22637
|
+
label follows it, so a reader hears "Decrease Quantity", as React Aria
|
|
22638
|
+
names its steppers. */
|
|
22433
22639
|
"attr:decrement-label"?: (HelixHeadlessNumberInput["decrementLabel"]) | undefined;
|
|
22434
|
-
/** The name of the step down button, read by screen readers.
|
|
22640
|
+
/** The name of the step down button, read by screen readers. The field's
|
|
22641
|
+
label follows it, so a reader hears "Decrease Quantity", as React Aria
|
|
22642
|
+
names its steppers. */
|
|
22435
22643
|
"prop:decrementLabel"?: (HelixHeadlessNumberInput["decrementLabel"]) | undefined;
|
|
22436
22644
|
/** `Intl.NumberFormat` options the number is shown with while the field is
|
|
22437
22645
|
not being edited: a currency, a percent, a unit, or a number of decimals.
|
|
@@ -22449,9 +22657,13 @@ Written as JSON in the attribute.
|
|
|
22449
22657
|
<helix-number-input format-options='{"style":"currency","currency":"EUR"}'></helix-number-input>
|
|
22450
22658
|
``` */
|
|
22451
22659
|
"prop:formatOptions"?: (HelixHeadlessNumberInput["formatOptions"]) | undefined;
|
|
22452
|
-
/** The name of the step up button, read by screen readers.
|
|
22660
|
+
/** The name of the step up button, read by screen readers. The field's
|
|
22661
|
+
label follows it, so a reader hears "Increase Quantity", as React Aria
|
|
22662
|
+
names its steppers. */
|
|
22453
22663
|
"attr:increment-label"?: (HelixHeadlessNumberInput["incrementLabel"]) | undefined;
|
|
22454
|
-
/** The name of the step up button, read by screen readers.
|
|
22664
|
+
/** The name of the step up button, read by screen readers. The field's
|
|
22665
|
+
label follows it, so a reader hears "Increase Quantity", as React Aria
|
|
22666
|
+
names its steppers. */
|
|
22455
22667
|
"prop:incrementLabel"?: (HelixHeadlessNumberInput["incrementLabel"]) | undefined;
|
|
22456
22668
|
/** How many steps `PageUp` and `PageDown` move.
|
|
22457
22669
|
|
|
@@ -24510,17 +24722,42 @@ export type HelixHeadlessPopoverToggleElementEvent =
|
|
|
24510
24722
|
HelixHeadlessPopoverElementEvent<ToggleEvent>;
|
|
24511
24723
|
|
|
24512
24724
|
export type HelixHeadlessPopoverProps = {
|
|
24725
|
+
/** The element the panel opens against, where that is not the trigger: its
|
|
24726
|
+
`id` in the same document or shadow root, or the element itself. Left
|
|
24727
|
+
empty, the panel opens against the trigger, or against the button whose
|
|
24728
|
+
command opened it. */
|
|
24729
|
+
anchor?: (HelixHeadlessPopover["anchor"]) | undefined;
|
|
24513
24730
|
/** Draws a point on the panel's edge facing the trigger.
|
|
24514
24731
|
|
|
24515
24732
|
Off by default, which is the house style: a panel that opens from its
|
|
24516
24733
|
trigger already reads as belonging to it. */
|
|
24517
24734
|
arrow?: (HelixHeadlessPopover["arrow"]) | undefined;
|
|
24735
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
24736
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
24737
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
24738
|
+
once it would cross one. */
|
|
24739
|
+
"container-padding"?: (HelixHeadlessPopover["containerPadding"] | `${number}`) | undefined;
|
|
24740
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
24741
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
24742
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
24743
|
+
once it would cross one. */
|
|
24744
|
+
containerPadding?: (HelixHeadlessPopover["containerPadding"]) | undefined;
|
|
24745
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
24746
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
24747
|
+
"cross-offset"?: (HelixHeadlessPopover["crossOffset"] | `${number}`) | undefined;
|
|
24748
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
24749
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
24750
|
+
crossOffset?: (HelixHeadlessPopover["crossOffset"]) | undefined;
|
|
24518
24751
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
24519
24752
|
the panel, and no `aria-labelledby` on the host. */
|
|
24520
24753
|
"fallback-label"?: (HelixHeadlessPopover["fallbackLabel"]) | undefined;
|
|
24521
24754
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
24522
24755
|
the panel, and no `aria-labelledby` on the host. */
|
|
24523
24756
|
fallbackLabel?: (HelixHeadlessPopover["fallbackLabel"]) | undefined;
|
|
24757
|
+
/** Whether the panel moves to the other side of the trigger when its own
|
|
24758
|
+
side has no room. On by default. Write `flip="false"` to keep it on its
|
|
24759
|
+
side, where it shrinks to fit, as React Aria's `shouldFlip` turns off. */
|
|
24760
|
+
flip?: (HelixHeadlessPopover["flip"]) | undefined;
|
|
24524
24761
|
/** The panel's name, read by screen readers. Left empty, the first heading in
|
|
24525
24762
|
the panel names it, and then `fallback-label`. */
|
|
24526
24763
|
label?: (HelixHeadlessPopover["label"]) | undefined;
|
|
@@ -24565,17 +24802,42 @@ the resolved state for stylesheets, which is what the mirror is for. */
|
|
|
24565
24802
|
};
|
|
24566
24803
|
|
|
24567
24804
|
export type HelixHeadlessPopoverSolidJsProps = {
|
|
24805
|
+
/** The element the panel opens against, where that is not the trigger: its
|
|
24806
|
+
`id` in the same document or shadow root, or the element itself. Left
|
|
24807
|
+
empty, the panel opens against the trigger, or against the button whose
|
|
24808
|
+
command opened it. */
|
|
24809
|
+
"prop:anchor"?: (HelixHeadlessPopover["anchor"]) | undefined;
|
|
24568
24810
|
/** Draws a point on the panel's edge facing the trigger.
|
|
24569
24811
|
|
|
24570
24812
|
Off by default, which is the house style: a panel that opens from its
|
|
24571
24813
|
trigger already reads as belonging to it. */
|
|
24572
24814
|
"prop:arrow"?: (HelixHeadlessPopover["arrow"]) | undefined;
|
|
24815
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
24816
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
24817
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
24818
|
+
once it would cross one. */
|
|
24819
|
+
"attr:container-padding"?: (HelixHeadlessPopover["containerPadding"] | `${number}`) | undefined;
|
|
24820
|
+
/** How close to the window's edges the panel may come, in pixels, when it
|
|
24821
|
+
slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
24822
|
+
and shrinks to 8 pixels from an edge and moves to the other side only
|
|
24823
|
+
once it would cross one. */
|
|
24824
|
+
"prop:containerPadding"?: (HelixHeadlessPopover["containerPadding"]) | undefined;
|
|
24825
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
24826
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
24827
|
+
"attr:cross-offset"?: (HelixHeadlessPopover["crossOffset"] | `${number}`) | undefined;
|
|
24828
|
+
/** How far to slide the panel along the side it is on, in pixels: to the
|
|
24829
|
+
right on the top or the bottom, and down on the left or the right. */
|
|
24830
|
+
"prop:crossOffset"?: (HelixHeadlessPopover["crossOffset"]) | undefined;
|
|
24573
24831
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
24574
24832
|
the panel, and no `aria-labelledby` on the host. */
|
|
24575
24833
|
"attr:fallback-label"?: (HelixHeadlessPopover["fallbackLabel"]) | undefined;
|
|
24576
24834
|
/** The panel's name where nothing else names it: no `label`, no heading in
|
|
24577
24835
|
the panel, and no `aria-labelledby` on the host. */
|
|
24578
24836
|
"prop:fallbackLabel"?: (HelixHeadlessPopover["fallbackLabel"]) | undefined;
|
|
24837
|
+
/** Whether the panel moves to the other side of the trigger when its own
|
|
24838
|
+
side has no room. On by default. Write `flip="false"` to keep it on its
|
|
24839
|
+
side, where it shrinks to fit, as React Aria's `shouldFlip` turns off. */
|
|
24840
|
+
"prop:flip"?: (HelixHeadlessPopover["flip"]) | undefined;
|
|
24579
24841
|
/** The panel's name, read by screen readers. Left empty, the first heading in
|
|
24580
24842
|
the panel names it, and then `fallback-label`. */
|
|
24581
24843
|
"prop:label"?: (HelixHeadlessPopover["label"]) | undefined;
|
|
@@ -28426,7 +28688,8 @@ export type HelixHeadlessStepsHelixSelectElementEvent =
|
|
|
28426
28688
|
|
|
28427
28689
|
export type HelixHeadlessStepsProps = {
|
|
28428
28690
|
/** Whether the arrow keys move focus between the stages' names, along the
|
|
28429
|
-
way the steps run. Off by default, so the
|
|
28691
|
+
way the steps run, and the names are one tab stop. Off by default, so the
|
|
28692
|
+
arrows keep scrolling the page. */
|
|
28430
28693
|
arrows?: (HelixHeadlessSteps["arrows"]) | undefined;
|
|
28431
28694
|
/** What marks a stage `complete`.
|
|
28432
28695
|
|
|
@@ -28510,7 +28773,8 @@ there. Not asked of an `optional` stage, nor for a move back. */
|
|
|
28510
28773
|
|
|
28511
28774
|
export type HelixHeadlessStepsSolidJsProps = {
|
|
28512
28775
|
/** Whether the arrow keys move focus between the stages' names, along the
|
|
28513
|
-
way the steps run. Off by default, so the
|
|
28776
|
+
way the steps run, and the names are one tab stop. Off by default, so the
|
|
28777
|
+
arrows keep scrolling the page. */
|
|
28514
28778
|
"prop:arrows"?: (HelixHeadlessSteps["arrows"]) | undefined;
|
|
28515
28779
|
/** What marks a stage `complete`.
|
|
28516
28780
|
|
|
@@ -28633,7 +28897,9 @@ with the page. */
|
|
|
28633
28897
|
/** Whether a reader may pass the stage without finishing it, in a sequence
|
|
28634
28898
|
with `linear`. Ark UI's skippable step. */
|
|
28635
28899
|
optional?: (HelixHeadlessStep["optional"]) | undefined;
|
|
28636
|
-
/** The value the step sends in `helix-select
|
|
28900
|
+
/** The value the step sends in `helix-select`, and what names the step in its
|
|
28901
|
+
sequence's `active`. Without one, the sequence names the step by its place,
|
|
28902
|
+
counted from 1. */
|
|
28637
28903
|
value?: (HelixHeadlessStep["value"]) | undefined;
|
|
28638
28904
|
|
|
28639
28905
|
/** Fired when the step is pressed. Cancelable: cancel it to keep the current step. */
|
|
@@ -28666,7 +28932,9 @@ with the page. */
|
|
|
28666
28932
|
/** Whether a reader may pass the stage without finishing it, in a sequence
|
|
28667
28933
|
with `linear`. Ark UI's skippable step. */
|
|
28668
28934
|
"prop:optional"?: (HelixHeadlessStep["optional"]) | undefined;
|
|
28669
|
-
/** The value the step sends in `helix-select
|
|
28935
|
+
/** The value the step sends in `helix-select`, and what names the step in its
|
|
28936
|
+
sequence's `active`. Without one, the sequence names the step by its place,
|
|
28937
|
+
counted from 1. */
|
|
28670
28938
|
"prop:value"?: (HelixHeadlessStep["value"]) | undefined;
|
|
28671
28939
|
/** Fired when the step is pressed. Cancelable: cancel it to keep the current step. */
|
|
28672
28940
|
"on:helix-select"?: ((e: HelixHeadlessStepHelixSelectElementEvent) => void) | undefined;
|
|
@@ -40168,7 +40436,13 @@ export type CustomElements = {
|
|
|
40168
40436
|
* field taking more. A draft that fails them does not send, and the composer
|
|
40169
40437
|
* takes `:state(invalid)` and `aria-invalid` once the reader has tried to send
|
|
40170
40438
|
* it, the form was submitted, or the reader edited the field and left it.
|
|
40171
|
-
*
|
|
40439
|
+
* Sending an empty required composer counts as trying. Tabbing past an empty
|
|
40440
|
+
* composer marks nothing.
|
|
40441
|
+
*
|
|
40442
|
+
* **`feedback` is a message of your own about the draft**, such as one your
|
|
40443
|
+
* server sent back. While it is set, the composer is invalid at once, does
|
|
40444
|
+
* not send or submit, shows the message under the field, and a screen reader
|
|
40445
|
+
* hears it as it appears. Clear it to let the draft go.
|
|
40172
40446
|
*
|
|
40173
40447
|
* **`typing` says whether the user is writing**, and `helix-typing` is sent
|
|
40174
40448
|
* each time it changes: when they start, and when they send or stop for
|
|
@@ -40179,6 +40453,9 @@ export type CustomElements = {
|
|
|
40179
40453
|
*
|
|
40180
40454
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
40181
40455
|
*
|
|
40456
|
+
* - `feedback`: A message about the draft, shown under the field. While set, the composer
|
|
40457
|
+
* is invalid, does not send, and does not submit, as a field's `feedback`
|
|
40458
|
+
* does, and the message is announced as it appears.
|
|
40182
40459
|
* - `label`: The field's name, read by screen readers.
|
|
40183
40460
|
* - `maxlength`/`maxLength`: The most characters a draft can have. The field stops taking more.
|
|
40184
40461
|
* - `minlength`/`minLength`: The fewest characters a draft can have, once the reader has written in
|
|
@@ -40327,6 +40604,7 @@ export type CustomElements = {
|
|
|
40327
40604
|
*
|
|
40328
40605
|
* - `composer`: The whole composer.
|
|
40329
40606
|
* - `end`: The box around the `end` slot.
|
|
40607
|
+
* - `feedback`: The `feedback` message, under the field while it is set.
|
|
40330
40608
|
* - `field`: The text field.
|
|
40331
40609
|
* - `mark`: The icon inside the send button.
|
|
40332
40610
|
* - `send`: The send button.
|
|
@@ -40337,7 +40615,7 @@ export type CustomElements = {
|
|
|
40337
40615
|
*
|
|
40338
40616
|
* These can be used to apply styling when a component is in a given state.
|
|
40339
40617
|
*
|
|
40340
|
-
* - `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.
|
|
40618
|
+
* - `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.
|
|
40341
40619
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
40342
40620
|
*/
|
|
40343
40621
|
"helix-headless-chat-composer": Partial<
|
|
@@ -40471,16 +40749,31 @@ export type CustomElements = {
|
|
|
40471
40749
|
* `loading` while you fetch, then prepend the older turns. The turn the user
|
|
40472
40750
|
* was reading stays in place on screen.
|
|
40473
40751
|
*
|
|
40752
|
+
* The transcript is a `log`, the role for content added in order where the
|
|
40753
|
+
* newest matters most, and it answers the APG feed's keys. The `feed` role
|
|
40754
|
+
* reads its articles as a list from the top, with no newest end to stay
|
|
40755
|
+
* pinned to, so the log keeps the role a conversation has. While `loading` is
|
|
40756
|
+
* set or older turns load, the log carries `aria-busy`, as the APG asks of a
|
|
40757
|
+
* feed.
|
|
40758
|
+
*
|
|
40474
40759
|
* The log is `aria-live="off"`. A separate status region announces each new
|
|
40475
40760
|
* turn once, when it has finished arriving. It skips the user's own turns
|
|
40476
40761
|
* unless they failed to send, turns loaded as history, and the turns already
|
|
40477
40762
|
* there when the transcript opened. A turn is said with its author first, such
|
|
40478
40763
|
* as "Ada: It ships today" (`arrival-label`), where its author can be named.
|
|
40479
40764
|
*
|
|
40480
|
-
* Pass the turns as children or as `turns` data. Do not use both
|
|
40481
|
-
*
|
|
40765
|
+
* Pass the turns as children or as `turns` data. Do not use both: a chat given
|
|
40766
|
+
* both draws every turn from `turns` and then the children, and says so once
|
|
40767
|
+
* in the console. Children render from the server and suit most
|
|
40768
|
+
* conversations. `turns` draws a long
|
|
40482
40769
|
* transcript one window at a time, so the log needs a block size of its own.
|
|
40483
40770
|
*
|
|
40771
|
+
* The log scrolls on this tier. It carries `data-scroller`, and `core` ships
|
|
40772
|
+
* `[data-scroller] { overflow: auto }` into every shadow root, so pinning,
|
|
40773
|
+
* history and the window work with no stylesheet. You still need to give the
|
|
40774
|
+
* log a block size, such as `helix-headless-chat::part(log) { block-size:
|
|
40775
|
+
* 20rem }`.
|
|
40776
|
+
*
|
|
40484
40777
|
* **A conversation is built from three elements.** The chat holds the
|
|
40485
40778
|
* transcript, a `Chat.Message` stands for each turn, and a `Chat.Composer` sits
|
|
40486
40779
|
* in the `composer` slot. When the user sends, `helix-send` reaches the chat:
|
|
@@ -40494,7 +40787,12 @@ export type CustomElements = {
|
|
|
40494
40787
|
* it takes them away. Anything slotted into `status` is drawn first.
|
|
40495
40788
|
*
|
|
40496
40789
|
* **Keyboard.** The transcript moves between turns the way a feed does. Each
|
|
40497
|
-
* turn says its place, such as "3 of 40", windowed or not.
|
|
40790
|
+
* turn says its place, such as "3 of 40", windowed or not. The transcript is
|
|
40791
|
+
* a tab stop while it holds a turn, and the turn a reader moved to is one
|
|
40792
|
+
* too. Moving to an older turn unpins a transcript that scrolls and scrolls
|
|
40793
|
+
* the turn into view, and moving to the newest pins it again. When the turn
|
|
40794
|
+
* holding focus is removed, focus moves to the turn that took its place, or to
|
|
40795
|
+
* the one before it where it was the last.
|
|
40498
40796
|
*
|
|
40499
40797
|
* | Key | What it does |
|
|
40500
40798
|
* |---|---|
|
|
@@ -40673,7 +40971,7 @@ export type CustomElements = {
|
|
|
40673
40971
|
* - `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.
|
|
40674
40972
|
* - `live`: The region where screen readers announce each turn once it has arrived.
|
|
40675
40973
|
* - `loading`: Shown while the history loads.
|
|
40676
|
-
* - `log`: The transcript, which scrolls.
|
|
40974
|
+
* - `log`: The transcript, which scrolls. On this tier, it needs only a block size.
|
|
40677
40975
|
* - `message`: The message drawn for a turn from `turns`, forwarded whole.
|
|
40678
40976
|
* - `message-actions`: The controls on a turn from `turns`, beside its time.
|
|
40679
40977
|
* - `message-avatar`: The avatar box of a turn from `turns`.
|
|
@@ -40705,6 +41003,10 @@ export type CustomElements = {
|
|
|
40705
41003
|
*
|
|
40706
41004
|
* These can be used to apply styling when a component is in a given state.
|
|
40707
41005
|
*
|
|
41006
|
+
* - `empty`: The conversation has no turns.
|
|
41007
|
+
* - `loading`: Older turns are loading: `history` is `loading`.
|
|
41008
|
+
* - `pinned`: The transcript follows its newest turn.
|
|
41009
|
+
* - `typing`: `typing` names someone on the other side.
|
|
40708
41010
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
40709
41011
|
*/
|
|
40710
41012
|
"helix-headless-chat": Partial<
|
|
@@ -41209,7 +41511,11 @@ export type CustomElements = {
|
|
|
41209
41511
|
* from the accessibility tree and left out of a copy. Set `mark-lines` to
|
|
41210
41512
|
* mark lines a reader should look at, such as `2, 4-6`: the block draws a
|
|
41211
41513
|
* band behind each run, placed where the lines are laid out, so it follows a
|
|
41212
|
-
* highlighter's markup and lines that wrap.
|
|
41514
|
+
* highlighter's markup and lines that wrap. `added-lines` and
|
|
41515
|
+
* `removed-lines` mark lines the same way as inserted and deleted, as
|
|
41516
|
+
* Expressive Code's `ins` and `del` do, in code that is not a diff. The bands
|
|
41517
|
+
* are drawn and hidden from screen readers, so say in the text around the
|
|
41518
|
+
* block what a marked line means. Set `wrap` to wrap long lines
|
|
41213
41519
|
* rather than scroll them; a gutter then numbers each line where it starts.
|
|
41214
41520
|
* Set `wrappable` for a button in the header that turns `wrap` on and off,
|
|
41215
41521
|
* pressed while the lines wrap.
|
|
@@ -41278,6 +41584,8 @@ export type CustomElements = {
|
|
|
41278
41584
|
*
|
|
41279
41585
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
41280
41586
|
*
|
|
41587
|
+
* - `added-lines`/`addedLines`: The lines to mark as inserted, as numbers and ranges counted from 1, such
|
|
41588
|
+
* as `3-4`. Drawn as `mark-lines` is, in the added color. Not for a diff.
|
|
41281
41589
|
* - `code-label`/`codeLabel`: The name of a block that scrolls, which is a tab stop while it does.
|
|
41282
41590
|
*
|
|
41283
41591
|
* Where the block has a name, the scroller says it too, such as "Code,
|
|
@@ -41354,6 +41662,8 @@ export type CustomElements = {
|
|
|
41354
41662
|
* `no-copy=""` on hosts that never asked for one, and the rule about a
|
|
41355
41663
|
* reflected property taking no default is satisfied by the default being
|
|
41356
41664
|
* `false`.
|
|
41665
|
+
* - `removed-lines`/`removedLines`: The lines to mark as deleted, as numbers and ranges counted from 1. Drawn
|
|
41666
|
+
* as `mark-lines` is, in the removed color. Not for a diff.
|
|
41357
41667
|
* - `show-unchanged-label`/`showUnchangedLabel`: The words of a button that shows a folded run of unchanged lines, in a
|
|
41358
41668
|
* diff with `context-lines`. `{count}` is how many.
|
|
41359
41669
|
* - `variant`: How a diff's two versions are arranged. It has no effect without `diff`.
|
|
@@ -41433,6 +41743,8 @@ export type CustomElements = {
|
|
|
41433
41743
|
* - `actions`: Controls for the block, in the header before the copy button.
|
|
41434
41744
|
* - `copied-icon`: The copy button's icon after a copy. Defaults to a check mark.
|
|
41435
41745
|
* - `copy-icon`: The copy button's icon before a copy. Defaults to a clipboard.
|
|
41746
|
+
* - `expand-icon`: An icon on the button that shows every line of a capped block, before its words.
|
|
41747
|
+
* - `label`: The block's name in the header, such as a file icon beside the file name. Replaces `label` and `language` there, and draws the header.
|
|
41436
41748
|
*
|
|
41437
41749
|
* ## CSS Custom Properties
|
|
41438
41750
|
*
|
|
@@ -41480,7 +41792,9 @@ export type CustomElements = {
|
|
|
41480
41792
|
* - `header`: The bar that holds the name and the copy button, shown when there is a name.
|
|
41481
41793
|
* - `hunk`: In a diff, a `@@` line saying where the lines under it are.
|
|
41482
41794
|
* - `label`: The block's name: its `label`, or its `language` where it has no label.
|
|
41483
|
-
* - `mark`: The band behind a run of lines `mark-lines` names. The block writes where the run is laid out into `--code-block-mark-start`, `--code-block-mark-size`, and `--code-block-mark-inline-size` on it. Hidden from the accessibility tree.
|
|
41795
|
+
* - `mark`: The band behind a run of lines `mark-lines`, `added-lines` or `removed-lines` names. The block writes where the run is laid out into `--code-block-mark-start`, `--code-block-mark-size`, and `--code-block-mark-inline-size` on it. Hidden from the accessibility tree.
|
|
41796
|
+
* - `mark-added`: The band behind a run of lines `added-lines` names. Applied with `mark`.
|
|
41797
|
+
* - `mark-removed`: The band behind a run of lines `removed-lines` names. Applied with `mark`.
|
|
41484
41798
|
* - `marker`: In a diff, the `+`, `-`, or space that starts a line.
|
|
41485
41799
|
* - `new`: In a split diff, the new version's `<pre>`.
|
|
41486
41800
|
* - `number`: In a diff, a line number. In a `wrap` block with `line-numbers`, one line's number in the gutter, which the block makes as tall as the line it numbers through `--code-block-line-size`.
|
|
@@ -41591,7 +41905,8 @@ export type CustomElements = {
|
|
|
41591
41905
|
*
|
|
41592
41906
|
* The trigger and ArrowDown open the panel with focus in the square. Tab moves
|
|
41593
41907
|
* between the panel's controls without leaving it, and Escape closes it and
|
|
41594
|
-
* returns focus to the
|
|
41908
|
+
* returns focus to the control that opened it: the trigger after a press, and
|
|
41909
|
+
* the field after ArrowDown.
|
|
41595
41910
|
*
|
|
41596
41911
|
* The component sets `--color-input-swatch`, so do not set it yourself. It
|
|
41597
41912
|
* holds the resolved color, so the styled tier can paint the swatch without
|
|
@@ -42087,10 +42402,11 @@ export type CustomElements = {
|
|
|
42087
42402
|
* the anchor the browser points its bubble at.
|
|
42088
42403
|
*
|
|
42089
42404
|
* **Text that is not a color is bad input**, so a form does not submit
|
|
42090
|
-
* `#00` from a half-typed value. The picker
|
|
42091
|
-
*
|
|
42092
|
-
*
|
|
42093
|
-
*
|
|
42405
|
+
* `#00` from a half-typed value. The picker marks it, and says
|
|
42406
|
+
* `badInputMessage` under itself, once the reader leaves the value field or
|
|
42407
|
+
* presses Enter, and a missing color once the reader has committed one or a
|
|
42408
|
+
* form has refused the picker. Color Input shows its own message against the
|
|
42409
|
+
* field the reader typed into.
|
|
42094
42410
|
* - `saturation-label`/`saturationLabel`: What the square's horizontal ramp is called.
|
|
42095
42411
|
* - `square-text`/`squareText`: What a screen reader hears for the square's place, the color's two
|
|
42096
42412
|
* numbers and its name, on whichever of its two inputs it is on.
|
|
@@ -42209,14 +42525,10 @@ export type CustomElements = {
|
|
|
42209
42525
|
*
|
|
42210
42526
|
* Methods that can be called to access component functionality.
|
|
42211
42527
|
*
|
|
42528
|
+
* - `formResetCallback() => void`: A reset ends any typing and takes back text that was not a color, so the
|
|
42529
|
+
* field shows the color the reset put back.
|
|
42212
42530
|
* - `requestValue(next: string) => boolean`: Blocks every change while `readOnly` is set.
|
|
42213
42531
|
* - `focus(options?: FocusOptions) => void`: Moves focus to the square.
|
|
42214
|
-
* - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
|
|
42215
|
-
* where there is no `default-value`.
|
|
42216
|
-
*
|
|
42217
|
-
* Both halves are dropped, the consumer's and the control's, because a
|
|
42218
|
-
* reset means the form is as it was served. Clearing only the internal one
|
|
42219
|
-
* would leave a control that had been written to stuck at that value.
|
|
42220
42532
|
* - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
|
|
42221
42533
|
*
|
|
42222
42534
|
* Falling back to what the markup declared rather than to empty, because
|
|
@@ -42297,7 +42609,7 @@ export type CustomElements = {
|
|
|
42297
42609
|
* - `eyedropper-live`: The live region of the button inside `eyedropper`, which says its pending label.
|
|
42298
42610
|
* - `eyedropper-spinner`: The ring the eyedropper button turns while it is pending.
|
|
42299
42611
|
* - `eyedropper-text`: The words on the button inside `eyedropper`, trimmed to their capitals and baseline.
|
|
42300
|
-
* - `feedback`: The message under the picker
|
|
42612
|
+
* - `feedback`: The message under the picker: `feedback`, or what is wrong with the answer once the picker is marked invalid.
|
|
42301
42613
|
* - `field`: One channel's number field with its label, in `channel-fields`.
|
|
42302
42614
|
* - `field-input`: The number input in a channel's field.
|
|
42303
42615
|
* - `field-label`: The name above a channel's number input.
|
|
@@ -42455,12 +42767,13 @@ export type CustomElements = {
|
|
|
42455
42767
|
* language.
|
|
42456
42768
|
* - `multiple`: Whether more than one option can be chosen.
|
|
42457
42769
|
*
|
|
42458
|
-
* The list already does the work: `value`
|
|
42459
|
-
* toggles rather than replaces, and the arrows move without
|
|
42460
|
-
* this adds is the tags, and keeping the panel open between
|
|
42770
|
+
* The list already does the work: `value` is the chosen values joined with
|
|
42771
|
+
* commas, a press toggles rather than replaces, and the arrows move without
|
|
42772
|
+
* choosing. What this adds is the tags, and keeping the panel open between
|
|
42773
|
+
* picks.
|
|
42461
42774
|
*
|
|
42462
|
-
*
|
|
42463
|
-
*
|
|
42775
|
+
* An option's value may hold a comma, and it is read as one value, as
|
|
42776
|
+
* `Select` and `Listbox` read it. So may an answer the reader created.
|
|
42464
42777
|
*
|
|
42465
42778
|
* **The list is told, and the field is not.** `aria-multiselectable` belongs
|
|
42466
42779
|
* to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
|
|
@@ -42801,7 +43114,8 @@ export type CustomElements = {
|
|
|
42801
43114
|
* | `hotkey`, Command or Control with K by default | Opens the palette from anywhere on the page, or closes it. With `inline`, puts focus in its filter field. |
|
|
42802
43115
|
* | Down, Up | Moves the highlight to the next or the previous command, round from the last to the first. |
|
|
42803
43116
|
* | Page Down, Page Up | Moves the highlight by as many commands as the list shows at once. |
|
|
42804
|
-
* | Home, End
|
|
43117
|
+
* | Home, End | Move the caret in the filter field. With `home-end="list"`, move the highlight to the first or the last command. |
|
|
43118
|
+
* | Left, Right | Move the caret in the filter field. |
|
|
42805
43119
|
* | Enter | Runs the highlighted command, or follows it where it is a link, and closes the palette. On a command with `opens`, shows its page. |
|
|
42806
43120
|
* | Command or Control with Enter | Takes the highlighted command's `alternate` destination, where it has one. |
|
|
42807
43121
|
* | Backspace | In an empty filter on a page, goes back to the page before. |
|
|
@@ -42823,6 +43137,11 @@ export type CustomElements = {
|
|
|
42823
43137
|
* - `filter-delay`/`filterDelay`: How long typing rests before the commands are filtered, in milliseconds,
|
|
42824
43138
|
* so a palette filtered on a server sends one `helix-filter` for a word.
|
|
42825
43139
|
* `0` filters on every keystroke. See Listbox's `filter-delay`.
|
|
43140
|
+
* - `home-end`/`homeEnd`: Where Home and End go from the filter field.
|
|
43141
|
+
*
|
|
43142
|
+
* Absent, they move the caret, as APG's combobox has them. `list` moves the
|
|
43143
|
+
* highlight to the first or the last command, as React Aria's Autocomplete
|
|
43144
|
+
* does, and Shift with either still selects the text.
|
|
42826
43145
|
* - `hotkey`: The key that opens the palette, written as `mod+k`, `shift+p`, or `k`,
|
|
42827
43146
|
* in Kbd's chord spelling: `mod` is Command or Control, `ctrl`, `cmd`,
|
|
42828
43147
|
* `alt` and `shift` the keys they name.
|
|
@@ -42837,6 +43156,9 @@ export type CustomElements = {
|
|
|
42837
43156
|
* Choosing a command says `helix-select` and leaves the list where it is,
|
|
42838
43157
|
* and `open`, `toggle` and the dialog's parts do nothing.
|
|
42839
43158
|
* - `label`: Accessible name for the overlay, which has no visible heading.
|
|
43159
|
+
* - `layout`: How the commands are laid out, as Listbox's `layout`: `grid` draws them in
|
|
43160
|
+
* rows and columns, for a palette of icons or emoji, and the arrow keys
|
|
43161
|
+
* follow the rows and the columns. Absent is one command under another.
|
|
42840
43162
|
* - `load-error`/`loadError`: What the list says when its commands could not be loaded, such as after a
|
|
42841
43163
|
* request to a server fails. Empty, null or no attribute is no error, so
|
|
42842
43164
|
* removing the attribute clears it. Passed to the list, which shows it
|
|
@@ -43538,6 +43860,10 @@ export type CustomElements = {
|
|
|
43538
43860
|
* Off by default. Windowing costs a scroll listener, a measurement per row
|
|
43539
43861
|
* drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
43540
43862
|
* should pay none of them.
|
|
43863
|
+
*
|
|
43864
|
+
* While windowed, the `table` part scrolls on this tier: it carries
|
|
43865
|
+
* `data-scroller`, and `core` ships `[data-scroller] { overflow: auto }` into
|
|
43866
|
+
* every shadow root. You still need to give it a block size.
|
|
43541
43867
|
* - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
|
|
43542
43868
|
* - `loading`: Whether the rows are still loading.
|
|
43543
43869
|
*
|
|
@@ -43700,7 +44026,7 @@ export type CustomElements = {
|
|
|
43700
44026
|
* - `select`: The cell that holds a row's checkbox.
|
|
43701
44027
|
* - `select-all`: The heading that holds the checkbox that selects every row.
|
|
43702
44028
|
* - `select-selected`: Added to `select` in a selected row.
|
|
43703
|
-
* - `table`: The grid.
|
|
44029
|
+
* - `table`: The grid. While `windowed`, the box that scrolls, which needs only a block size on this tier.
|
|
43704
44030
|
* - `toggle`: The mark in a row header that a press opens and closes its row by, in a tree grid.
|
|
43705
44031
|
* - `toggle-mark`: The caret in `toggle`. It points along the line while the row is closed and down while it is open.
|
|
43706
44032
|
* - `toggle-open`: Added to `toggle` while its row is open.
|
|
@@ -45436,6 +45762,10 @@ export type CustomElements = {
|
|
|
45436
45762
|
* <helix-headless-drawer id="nav">…</helix-headless-drawer>
|
|
45437
45763
|
* ```
|
|
45438
45764
|
*
|
|
45765
|
+
* From its first press, a button that opens the drawer this way says whether
|
|
45766
|
+
* the drawer is open: a Helix button through `expanded`, and any other
|
|
45767
|
+
* element with `aria-expanded`.
|
|
45768
|
+
*
|
|
45439
45769
|
* ## Attributes & Properties
|
|
45440
45770
|
*
|
|
45441
45771
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -46326,9 +46656,10 @@ export type CustomElements = {
|
|
|
46326
46656
|
* press. `requestChange` documents the pattern.
|
|
46327
46657
|
*
|
|
46328
46658
|
* **Keyboard.** The remove button is a tab stop of its own, and Enter or Space
|
|
46329
|
-
* on it asks to remove the filter. In a `FilterInput`,
|
|
46330
|
-
* field asks to remove the last chip, the
|
|
46331
|
-
* and the chips, and Delete or Backspace on
|
|
46659
|
+
* on it asks to remove the filter. In a `FilterInput`, the field's text is the
|
|
46660
|
+
* one tab stop: Backspace in the empty field asks to remove the last chip, the
|
|
46661
|
+
* arrow keys move between the field and the chips, and Delete or Backspace on
|
|
46662
|
+
* a chip asks to remove it.
|
|
46332
46663
|
*
|
|
46333
46664
|
* The remove button is named `dismiss-label` followed by the chip's words,
|
|
46334
46665
|
* such as "Remove filter Status is not open", so a row of chips says which
|
|
@@ -46384,6 +46715,12 @@ export type CustomElements = {
|
|
|
46384
46715
|
* reads. The moment somebody picks a different comparison it appears, which
|
|
46385
46716
|
* makes an unusual filter look unusual.
|
|
46386
46717
|
* - `dismissible`: Whether the element shows a control that dismisses it.
|
|
46718
|
+
* - `dismissTabStop`: Whether the remove button is a tab stop of its own.
|
|
46719
|
+
*
|
|
46720
|
+
* `FilterInput` writes `false` on the chips in its `tags` slot: the field's
|
|
46721
|
+
* text is its one tab stop, and the arrow keys move from the text to the
|
|
46722
|
+
* chips, as in a `multiple` Combobox. No attribute: it is coordination
|
|
46723
|
+
* between elements, as `Tag.dismissTabStop` is. (property only)
|
|
46387
46724
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
46388
46725
|
*
|
|
46389
46726
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -46851,8 +47188,9 @@ export type CustomElements = {
|
|
|
46851
47188
|
* first colon, reads a leading `-` as the negation, and reads a word in
|
|
46852
47189
|
* brackets before the colon as the comparison.
|
|
46853
47190
|
*
|
|
46854
|
-
* **Keyboard.** Focus stays in the text
|
|
46855
|
-
* suggestion as its `aria-activedescendant
|
|
47191
|
+
* **Keyboard.** Focus stays in the text, which is the field's one tab stop. The
|
|
47192
|
+
* text names the highlighted suggestion as its `aria-activedescendant`, and the
|
|
47193
|
+
* arrow keys reach the tokens.
|
|
46856
47194
|
*
|
|
46857
47195
|
* | Key | What it does |
|
|
46858
47196
|
* |---|---|
|
|
@@ -46910,12 +47248,24 @@ export type CustomElements = {
|
|
|
46910
47248
|
* and removing the chip alone would leave its value ticked in the hidden
|
|
46911
47249
|
* menu. Its dismissal is treated as the field being filtered by nothing, so
|
|
46912
47250
|
* it fires `helix-facet` like every other change, and the chip goes when the
|
|
46913
|
-
* filter goes.
|
|
47251
|
+
* filter goes. Set `chips` and the field adds, updates, and removes those
|
|
47252
|
+
* chips itself, from every `helix-facet` you do not cancel.
|
|
46914
47253
|
*
|
|
46915
47254
|
* ## Attributes & Properties
|
|
46916
47255
|
*
|
|
46917
47256
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
46918
47257
|
*
|
|
47258
|
+
* - `chips`: Whether the field keeps a `FilterChip` for each filter in its `tags` slot,
|
|
47259
|
+
* from the `helix-facet` events it hears.
|
|
47260
|
+
*
|
|
47261
|
+
* Off, you build the chips, which is what you do when your own model holds
|
|
47262
|
+
* the filters. On, a filter typed, picked, or changed adds or updates the
|
|
47263
|
+
* chip for its field, one with no values takes it away (unless its
|
|
47264
|
+
* comparison takes none, such as "is empty"), and removing the chip clears
|
|
47265
|
+
* the filter. A `helix-facet` you cancel changes no chip.
|
|
47266
|
+
*
|
|
47267
|
+
* The chips are elements the field adds to its own children, so leave this
|
|
47268
|
+
* off where a framework renders those children and would remove them.
|
|
46919
47269
|
* - `clearable`: Shows a button that empties the field.
|
|
46920
47270
|
*
|
|
46921
47271
|
* The text only. The tokens are the consumer's markup and this element is not
|
|
@@ -46927,6 +47277,18 @@ export type CustomElements = {
|
|
|
46927
47277
|
* - `filter-suggestions`/`filterSuggestions`: Whether the panel narrows itself to the suggestions that hold the term
|
|
46928
47278
|
* being typed, as React Aria's Autocomplete filters. Off, the panel shows
|
|
46929
47279
|
* what you slot and you narrow it.
|
|
47280
|
+
* - `loading`: Whether the suggestions are still loading, such as while a request for the
|
|
47281
|
+
* values of a typed key is out.
|
|
47282
|
+
*
|
|
47283
|
+
* The panel opens on `loading-text`, or the `loading` slot, while the field
|
|
47284
|
+
* has focus, and a screen reader hears it. Slot the options and clear this
|
|
47285
|
+
* when they arrive.
|
|
47286
|
+
* - `loading-text`/`loadingText`: Text the panel shows while the suggestions load.
|
|
47287
|
+
* - `no-results-text`/`noResultsText`: Text the panel shows when `filter-suggestions` hides every suggestion, such
|
|
47288
|
+
* as "No matching filters".
|
|
47289
|
+
*
|
|
47290
|
+
* Empty, or no `no-results` slot, and the panel closes instead, as it does
|
|
47291
|
+
* when it has nothing to offer.
|
|
46930
47292
|
* - `placeholder`: The text shown while the field is empty.
|
|
46931
47293
|
*
|
|
46932
47294
|
* Not a label: it goes when typing starts.
|
|
@@ -47088,6 +47450,8 @@ export type CustomElements = {
|
|
|
47088
47450
|
* - `feedback`: The message that says what is wrong, for content richer than a string. It shows while there is a message.
|
|
47089
47451
|
* - `hint`: Help under the control, for content richer than the `hint` text.
|
|
47090
47452
|
* - `label`: The label, for content richer than the `label` text.
|
|
47453
|
+
* - `loading`: What the panel shows while `loading` is set, for content richer than `loading-text`.
|
|
47454
|
+
* - `no-results`: What the panel shows when `filter-suggestions` hides every suggestion, for content richer than `no-results-text`.
|
|
47091
47455
|
* - `start`: Content before the text, such as a search icon.
|
|
47092
47456
|
* - `suggestions`: Suggestions for what to type next, as `Option`s and `Option.Group`s.
|
|
47093
47457
|
* - `tags`: The active filters, as `FilterChip`s or `Tag`s.
|
|
@@ -47171,12 +47535,14 @@ export type CustomElements = {
|
|
|
47171
47535
|
*
|
|
47172
47536
|
* - `clear`: The button that empties the field.
|
|
47173
47537
|
* - `control`: The input itself.
|
|
47538
|
+
* - `empty`: Shown in the panel when `filter-suggestions` hides every suggestion.
|
|
47174
47539
|
* - `feedback`: The error message under the field.
|
|
47175
47540
|
* - `field`: The box that holds everything.
|
|
47176
47541
|
* - `hint`: The help text under the field, shown while there is no error.
|
|
47177
47542
|
* - `label`: The label above the field.
|
|
47178
47543
|
* - `lead`: The box before the text that holds the `start` slot.
|
|
47179
47544
|
* - `live`: The live region that says how many suggestions the open panel offers. It is rendered from the first time the panel opens with suggestions.
|
|
47545
|
+
* - `loading`: Shown in the panel while the suggestions load.
|
|
47180
47546
|
* - `rest`: The count of tokens that did not fit. It is a `<button>` with `expandable` and a `<span>` without it.
|
|
47181
47547
|
* - `surface`: The floating panel the suggestions sit in.
|
|
47182
47548
|
* - `tags`: The row the tokens sit in.
|
|
@@ -47186,6 +47552,8 @@ export type CustomElements = {
|
|
|
47186
47552
|
* These can be used to apply styling when a component is in a given state.
|
|
47187
47553
|
*
|
|
47188
47554
|
* - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
|
|
47555
|
+
* - `loading`: While `loading` is set.
|
|
47556
|
+
* - `no-results`: `filter-suggestions` hid every suggestion, and `no-results-text` or the `no-results` slot says so.
|
|
47189
47557
|
* - `open`: The suggestions are open.
|
|
47190
47558
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
47191
47559
|
*/
|
|
@@ -47207,7 +47575,9 @@ export type CustomElements = {
|
|
|
47207
47575
|
* **`relative` shows the same reading in words**, such as "3 hours ago" at
|
|
47208
47576
|
* `long`, "3 hr. ago" at `short` and "3h ago" at `narrow`, the styles
|
|
47209
47577
|
* `sl-relative-time` offers. `numeric="always"` says "1 day ago" where the
|
|
47210
|
-
* default says "yesterday".
|
|
47578
|
+
* default says "yesterday". Both readings round the count, as
|
|
47579
|
+
* `sl-relative-time` does: 100 seconds ago is "2 minutes ago", and 59.6
|
|
47580
|
+
* minutes is "1 hour".
|
|
47211
47581
|
*
|
|
47212
47582
|
* **`date-style` and `time-style` take each locale's own pattern**, such as
|
|
47213
47583
|
* "Tuesday, August 4, 2026" at `full`, and stand in for the separate fields,
|
|
@@ -48855,6 +49225,9 @@ export type CustomElements = {
|
|
|
48855
49225
|
*
|
|
48856
49226
|
* Methods that can be called to access component functionality.
|
|
48857
49227
|
*
|
|
49228
|
+
* - `setRangeText(replacement: string, start?: number, end?: number, selectMode?: SelectionMode) => void`: Replaces a range of the text, as the native method does: the selection
|
|
49229
|
+
* where `start` and `end` are left out, and `selectMode` says what is
|
|
49230
|
+
* selected after. It sends no event, as the native method sends none.
|
|
48858
49231
|
* - `setSelectionRange(start: number, end: number, direction?: SelectionDirection) => void`: Selects the range from `start` to `end` in one call, which setting
|
|
48859
49232
|
* `selectionStart` and `selectionEnd` one at a time cannot always do.
|
|
48860
49233
|
*
|
|
@@ -52318,6 +52691,8 @@ export type CustomElements = {
|
|
|
52318
52691
|
* These can be used to apply styling when a component is in a given state.
|
|
52319
52692
|
*
|
|
52320
52693
|
* - `checked`: The row is checked.
|
|
52694
|
+
* - `disabled`: The row is disabled.
|
|
52695
|
+
* - `expanded`: Under `submenus="flyout"`, the row's submenu is open beside it.
|
|
52321
52696
|
* - `highlighted`: In a menu with `filterable`, the arrow keys or the pointer reached the row while focus stays in the filter field.
|
|
52322
52697
|
* - `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.
|
|
52323
52698
|
* - `submenu-start`: Under `submenus="flyout"`, a row in this row's submenu has content before its label, so the submenu keeps its leading column.
|
|
@@ -52341,7 +52716,9 @@ export type CustomElements = {
|
|
|
52341
52716
|
*
|
|
52342
52717
|
* Submenus drill down by default. A submenu replaces the panel's content, and a
|
|
52343
52718
|
* back row returns to the previous page. One panel stays inside a narrow
|
|
52344
|
-
* window, and works on touch screens, which have no hover.
|
|
52719
|
+
* window, and works on touch screens, which have no hover. Focus follows a
|
|
52720
|
+
* mouse resting on a row in either mode, and a drilled page is a `menu` named
|
|
52721
|
+
* by the row that opened it.
|
|
52345
52722
|
*
|
|
52346
52723
|
* **`submenus="flyout"` opens each submenu in a panel of its own beside its
|
|
52347
52724
|
* row**, as React Aria's `SubmenuTrigger` and Radix's `Sub` do. Resting the
|
|
@@ -52375,6 +52752,11 @@ export type CustomElements = {
|
|
|
52375
52752
|
* trigger's width, for a menu as wide as its trigger:
|
|
52376
52753
|
* `helix-menu::part(surface) { min-inline-size: var(--floating-anchor-inline-size) }`.
|
|
52377
52754
|
*
|
|
52755
|
+
* **The choices in one place.** `checkedValues` holds the values of the rows
|
|
52756
|
+
* that are checked, anywhere in the menu, and setting it checks exactly
|
|
52757
|
+
* those rows, as React Aria's `selectedKeys` does. `change` is sent on the
|
|
52758
|
+
* menu when a reader's choice changes it.
|
|
52759
|
+
*
|
|
52378
52760
|
* With `context`, the trigger is an area and the menu is its context menu: a
|
|
52379
52761
|
* right-click, a long press, Shift+F10 or the menu key over the area opens it
|
|
52380
52762
|
* at the pointer, or at the area's corner from the keyboard, as Radix's context
|
|
@@ -52397,7 +52779,8 @@ export type CustomElements = {
|
|
|
52397
52779
|
* field: Up and Down Arrow move the highlight through the rows that are left,
|
|
52398
52780
|
* Enter chooses the highlighted row, Right Arrow opens its submenu, Left Arrow
|
|
52399
52781
|
* on a submenu goes back, and Escape clears the filter and then closes the
|
|
52400
|
-
* menu.
|
|
52782
|
+
* menu. A screen reader hears how many rows the filter keeps
|
|
52783
|
+
* (`results-label`). Home, End and the other keys move the caret and type. The field names
|
|
52401
52784
|
* the highlighted row with `aria-activedescendant`, and the rows are a `menu`
|
|
52402
52785
|
* after the field. Cancel `helix-filter` to keep every row
|
|
52403
52786
|
* showing and narrow the rows yourself, such as by replacing them with rows
|
|
@@ -52437,6 +52820,9 @@ export type CustomElements = {
|
|
|
52437
52820
|
* - `placement`: The side the menu opens on, when there is room.
|
|
52438
52821
|
*
|
|
52439
52822
|
* It moves if that side does not fit.
|
|
52823
|
+
* - `results-label`/`resultsLabel`: What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
52824
|
+
* how many rows are left, written in the locale, and each language writes
|
|
52825
|
+
* the forms it has, as Listbox's `results-label` does.
|
|
52440
52826
|
* - `submenus`: How a submenu opens. `drill` shows it in place of the page showing, with
|
|
52441
52827
|
* a way back. `flyout` opens it in a panel of its own beside its row.
|
|
52442
52828
|
* - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
|
|
@@ -52465,6 +52851,13 @@ export type CustomElements = {
|
|
|
52465
52851
|
*
|
|
52466
52852
|
* Absent, a row is kept where its words hold the filter, in any case. A
|
|
52467
52853
|
* property only, there being no way to write a function in markup. (property only)
|
|
52854
|
+
* - `checkedValues`: The values of the choice rows that are checked, anywhere in the menu, in
|
|
52855
|
+
* document order.
|
|
52856
|
+
*
|
|
52857
|
+
* Set it to check exactly those rows and uncheck every other choice row, as
|
|
52858
|
+
* React Aria's `selectedKeys` controls a menu's selection from one place.
|
|
52859
|
+
* Each row keeps its own `checked` too, which this reads and writes. `change`
|
|
52860
|
+
* is sent on the menu when a reader's choice changes it. (property only)
|
|
52468
52861
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
52469
52862
|
*
|
|
52470
52863
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -52490,6 +52883,7 @@ export type CustomElements = {
|
|
|
52490
52883
|
*
|
|
52491
52884
|
* Events that will be emitted by the component.
|
|
52492
52885
|
*
|
|
52886
|
+
* - `change`: A reader's choice checked or unchecked rows. Read `checkedValues` for the rows that are checked now.
|
|
52493
52887
|
* - `helix-before-close`: The menu is about to close. Cancelable: cancel it to keep it open.
|
|
52494
52888
|
* - `helix-before-open`: The menu is about to open. Cancelable: cancel it to keep it closed.
|
|
52495
52889
|
* - `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.
|
|
@@ -52501,6 +52895,8 @@ export type CustomElements = {
|
|
|
52501
52895
|
* Areas where markup can be added to the component.
|
|
52502
52896
|
*
|
|
52503
52897
|
* - `(default)`: The items.
|
|
52898
|
+
* - `empty`: What the menu shows when it has no items, for content richer than `empty-text`.
|
|
52899
|
+
* - `loading`: What the menu shows while its items load, for content richer than `loading-text`.
|
|
52504
52900
|
* - `no-results`: What the menu shows when the filter keeps no rows, for content richer than `no-results-text`.
|
|
52505
52901
|
* - `trigger`: The control that opens the menu, or with `context` the area a context menu opens over.
|
|
52506
52902
|
*
|
|
@@ -52546,6 +52942,8 @@ export type CustomElements = {
|
|
|
52546
52942
|
* These can be used to apply styling when a component is in a given state.
|
|
52547
52943
|
*
|
|
52548
52944
|
* - `drilled`: A submenu's page is showing, so content that is not a row can hide with the top page.
|
|
52945
|
+
* - `entering`: From the moment the panel shows until its entrance has finished.
|
|
52946
|
+
* - `exiting`: From the moment the panel hides until its exit has finished.
|
|
52549
52947
|
* - `mark`: A row on the current page has a checkbox or a link, so every row keeps the trailing column.
|
|
52550
52948
|
* - `open`: While the menu is open.
|
|
52551
52949
|
* - `placed-bottom`: While the open panel sits below its trigger.
|
|
@@ -53525,7 +53923,9 @@ export type CustomElements = {
|
|
|
53525
53923
|
* speaks it: `feedback` replaces the message under the field and does not
|
|
53526
53924
|
* reach the bubble. Unset is the sentence registered for the page's
|
|
53527
53925
|
* language, then the English.
|
|
53528
|
-
* - `decrement-label`/`decrementLabel`: The name of the step down button, read by screen readers.
|
|
53926
|
+
* - `decrement-label`/`decrementLabel`: The name of the step down button, read by screen readers. The field's
|
|
53927
|
+
* label follows it, so a reader hears "Decrease Quantity", as React Aria
|
|
53928
|
+
* names its steppers.
|
|
53529
53929
|
* - `format-options`/`formatOptions`: `Intl.NumberFormat` options the number is shown with while the field is
|
|
53530
53930
|
* not being edited: a currency, a percent, a unit, or a number of decimals.
|
|
53531
53931
|
* Written as JSON in the attribute.
|
|
@@ -53533,7 +53933,9 @@ export type CustomElements = {
|
|
|
53533
53933
|
* ```html
|
|
53534
53934
|
* <helix-number-input format-options='{"style":"currency","currency":"EUR"}'></helix-number-input>
|
|
53535
53935
|
* ```
|
|
53536
|
-
* - `increment-label`/`incrementLabel`: The name of the step up button, read by screen readers.
|
|
53936
|
+
* - `increment-label`/`incrementLabel`: The name of the step up button, read by screen readers. The field's
|
|
53937
|
+
* label follows it, so a reader hears "Increase Quantity", as React Aria
|
|
53938
|
+
* names its steppers.
|
|
53537
53939
|
* - `large-step`/`largeStep`: How many steps `PageUp` and `PageDown` move.
|
|
53538
53940
|
*
|
|
53539
53941
|
* Ten steps, which is the convention every spinner on the platform follows,
|
|
@@ -53715,8 +54117,10 @@ export type CustomElements = {
|
|
|
53715
54117
|
*
|
|
53716
54118
|
* Methods that can be called to access component functionality.
|
|
53717
54119
|
*
|
|
53718
|
-
* - `stepUp(
|
|
53719
|
-
*
|
|
54120
|
+
* - `stepUp(count: number | boolean = 1) => void`: Steps the value up by `step`, `count` times, as the native method and
|
|
54121
|
+
* `Input.stepUp` do. `true` takes `largeStep` steps, as `PageUp` does.
|
|
54122
|
+
* - `stepDown(count: number | boolean = 1) => void`: Steps the value down by `step`, `count` times. `true` takes `largeStep`
|
|
54123
|
+
* steps, as `PageDown` does.
|
|
53720
54124
|
*
|
|
53721
54125
|
* The same path a press of the down arrow takes, so a consumer driving this
|
|
53722
54126
|
* from their own control gets the clamping and the announcement rather than
|
|
@@ -55354,7 +55758,9 @@ export type CustomElements = {
|
|
|
55354
55758
|
*
|
|
55355
55759
|
* It opens on click and from a command. `command="--show"` and the related
|
|
55356
55760
|
* commands work as they do on `Dialog` and `Drawer`, so a button anywhere on
|
|
55357
|
-
* the page can open the popover with no script.
|
|
55761
|
+
* the page can open the popover with no script. From its first press, a
|
|
55762
|
+
* button that opens it this way says whether the popover is open: a Helix
|
|
55763
|
+
* button through `expanded`, and any other element with `aria-expanded`.
|
|
55358
55764
|
*
|
|
55359
55765
|
* **Opening moves focus into the panel**, to the first control in it, or to the
|
|
55360
55766
|
* panel itself where it holds none, and closing from inside gives it back to
|
|
@@ -55364,8 +55770,12 @@ export type CustomElements = {
|
|
|
55364
55770
|
* `modal` keeps `Tab` inside the panel while it is open and says so with
|
|
55365
55771
|
* `aria-modal`, for a panel that has to be answered before the page goes on.
|
|
55366
55772
|
* The rest of the page is hidden from screen readers with `aria-hidden` while
|
|
55367
|
-
* it is open, so the virtual cursor stays in the panel too
|
|
55368
|
-
* popover does not trap focus.
|
|
55773
|
+
* it is open, so the virtual cursor stays in the panel too, and the page does
|
|
55774
|
+
* not scroll behind it. Without it the popover does not trap focus.
|
|
55775
|
+
*
|
|
55776
|
+
* A press outside closes the panel and leaves focus where the press put it.
|
|
55777
|
+
* Where it put focus nowhere, as a press on text or on the page's background
|
|
55778
|
+
* does, focus goes back to the trigger.
|
|
55369
55779
|
*
|
|
55370
55780
|
* The panel's name is `label` when you set it. Otherwise it is the first
|
|
55371
55781
|
* heading in the panel, or the elements an `aria-labelledby` on the host names.
|
|
@@ -55381,10 +55791,17 @@ export type CustomElements = {
|
|
|
55381
55791
|
* | Escape | Closes the panel and puts focus back on the trigger. |
|
|
55382
55792
|
* | 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. |
|
|
55383
55793
|
*
|
|
55794
|
+
* The panel opens against the trigger, or against the element `anchor` names,
|
|
55795
|
+
* such as a field beside the button that opens it. `offset` moves it away from
|
|
55796
|
+
* that element, `cross-offset` slides it along the side it is on,
|
|
55797
|
+
* `container-padding` keeps it that far from the window's edges, and
|
|
55798
|
+
* `flip="false"` keeps it on its side where the other side has more room.
|
|
55799
|
+
*
|
|
55384
55800
|
* `arrow` draws a point on the panel's edge facing the trigger. The side the
|
|
55385
|
-
* panel landed on is on the host as `:state(placed-top)` and its kin,
|
|
55386
|
-
*
|
|
55387
|
-
*
|
|
55801
|
+
* panel landed on is on the host as `:state(placed-top)` and its kin, its
|
|
55802
|
+
* alignment along that side as `:state(aligned-start)` or
|
|
55803
|
+
* `:state(aligned-end)`, and the trigger's width is on the panel as
|
|
55804
|
+
* `--floating-anchor-inline-size`, for a panel as wide as its trigger:
|
|
55388
55805
|
*
|
|
55389
55806
|
* ```css
|
|
55390
55807
|
* helix-popover::part(popover) {
|
|
@@ -55396,12 +55813,25 @@ export type CustomElements = {
|
|
|
55396
55813
|
*
|
|
55397
55814
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
55398
55815
|
*
|
|
55816
|
+
* - `anchor`: The element the panel opens against, where that is not the trigger: its
|
|
55817
|
+
* `id` in the same document or shadow root, or the element itself. Left
|
|
55818
|
+
* empty, the panel opens against the trigger, or against the button whose
|
|
55819
|
+
* command opened it.
|
|
55399
55820
|
* - `arrow`: Draws a point on the panel's edge facing the trigger.
|
|
55400
55821
|
*
|
|
55401
55822
|
* Off by default, which is the house style: a panel that opens from its
|
|
55402
55823
|
* trigger already reads as belonging to it.
|
|
55824
|
+
* - `container-padding`/`containerPadding`: How close to the window's edges the panel may come, in pixels, when it
|
|
55825
|
+
* slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
55826
|
+
* and shrinks to 8 pixels from an edge and moves to the other side only
|
|
55827
|
+
* once it would cross one.
|
|
55828
|
+
* - `cross-offset`/`crossOffset`: How far to slide the panel along the side it is on, in pixels: to the
|
|
55829
|
+
* right on the top or the bottom, and down on the left or the right.
|
|
55403
55830
|
* - `fallback-label`/`fallbackLabel`: The panel's name where nothing else names it: no `label`, no heading in
|
|
55404
55831
|
* the panel, and no `aria-labelledby` on the host.
|
|
55832
|
+
* - `flip`: Whether the panel moves to the other side of the trigger when its own
|
|
55833
|
+
* side has no room. On by default. Write `flip="false"` to keep it on its
|
|
55834
|
+
* side, where it shrinks to fit, as React Aria's `shouldFlip` turns off.
|
|
55405
55835
|
* - `label`: The panel's name, read by screen readers. Left empty, the first heading in
|
|
55406
55836
|
* the panel names it, and then `fallback-label`.
|
|
55407
55837
|
* - `modal`: Keeps `Tab` inside the panel while it is open, marks the panel
|
|
@@ -55499,6 +55929,8 @@ export type CustomElements = {
|
|
|
55499
55929
|
*
|
|
55500
55930
|
* These can be used to apply styling when a component is in a given state.
|
|
55501
55931
|
*
|
|
55932
|
+
* - `aligned-end`: While the panel is aligned to the end of the side it sits on.
|
|
55933
|
+
* - `aligned-start`: While the panel is aligned to the start of the side it sits on.
|
|
55502
55934
|
* - `entering`: From the moment the panel shows until its entrance has finished.
|
|
55503
55935
|
* - `exiting`: From the moment the panel hides until its exit has finished.
|
|
55504
55936
|
* - `open`: While the popover is open.
|
|
@@ -57094,7 +57526,7 @@ export type CustomElements = {
|
|
|
57094
57526
|
* | Down, Enter, Space | Opens the list on the chosen option, or the first. |
|
|
57095
57527
|
* | Up | Opens the list on the chosen option, or the last. |
|
|
57096
57528
|
* | Home, End | Opens the list on the first or the last option. |
|
|
57097
|
-
* | Left, Right | Chooses the option before or after the chosen one without opening, as React Aria's Select does
|
|
57529
|
+
* | 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. |
|
|
57098
57530
|
* | 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. |
|
|
57099
57531
|
*
|
|
57100
57532
|
* In the open list, which is a `Listbox`:
|
|
@@ -58910,12 +59342,21 @@ export type CustomElements = {
|
|
|
58910
59342
|
* sequence is correct in the server's markup, where the root cannot count its
|
|
58911
59343
|
* slotted children.
|
|
58912
59344
|
*
|
|
59345
|
+
* `active` names a step by its `value`. A step with no `value` is named by its
|
|
59346
|
+
* place, counted from 1, so a sequence written without values moves as one
|
|
59347
|
+
* written with them, and `helix-activate` says `1`, `2` and so on. Give every
|
|
59348
|
+
* step a value or none, because a value of `2` and the second place are one
|
|
59349
|
+
* name.
|
|
59350
|
+
*
|
|
58913
59351
|
* `linear` keeps a reader from passing a stage they have not finished, as Ark
|
|
58914
59352
|
* UI's linear steps do: a stage ahead is out of reach, and its button disabled,
|
|
58915
59353
|
* until every stage before it is `complete` or `optional`. Going back is always
|
|
58916
59354
|
* allowed. `next()` and `previous()` move one stage either way, under the
|
|
58917
59355
|
* same rules, for your own buttons. `reset()` goes back to the first stage and
|
|
58918
|
-
* clears every stage's `complete`, as Ark UI's `resetStep` does.
|
|
59356
|
+
* clears every stage's `complete`, as Ark UI's `resetStep` does. A button
|
|
59357
|
+
* anywhere on the page calls them with no script, as Ark UI's previous and
|
|
59358
|
+
* next triggers do: give it `commandfor` with the sequence's `id`, and
|
|
59359
|
+
* `command="--previous"`, `"--next"` or `"--reset"`.
|
|
58919
59360
|
*
|
|
58920
59361
|
* `completion="passed"` marks a stage `complete` once a reader moves past it,
|
|
58921
59362
|
* as Ark UI counts a stage before the current one as completed. Going back
|
|
@@ -58942,18 +59383,21 @@ export type CustomElements = {
|
|
|
58942
59383
|
* button is described by its `complete-label`.
|
|
58943
59384
|
*
|
|
58944
59385
|
* **Keyboard.** Each stage's name is a button and its own tab stop, and Enter
|
|
58945
|
-
* or Space goes to the stage. Set `arrows` and the
|
|
58946
|
-
*
|
|
58947
|
-
* Up and Down a column, Home and End to the first and the last.
|
|
58948
|
-
*
|
|
58949
|
-
*
|
|
59386
|
+
* or Space goes to the stage. Set `arrows` and the names are one tab stop, the
|
|
59387
|
+
* current stage's, and the arrow keys move focus between them: Left and Right
|
|
59388
|
+
* along a row, Up and Down a column, Home and End to the first and the last.
|
|
59389
|
+
* The stop follows focus, so Tab leaves the sequence and Shift+Tab comes back
|
|
59390
|
+
* to the name the reader left. The arrows pass over a disabled stage and one a
|
|
59391
|
+
* linear sequence holds out of reach, and they move focus without going to the
|
|
59392
|
+
* stage.
|
|
58950
59393
|
*
|
|
58951
59394
|
* ## Attributes & Properties
|
|
58952
59395
|
*
|
|
58953
59396
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
58954
59397
|
*
|
|
58955
59398
|
* - `arrows`: Whether the arrow keys move focus between the stages' names, along the
|
|
58956
|
-
* way the steps run. Off by default, so the
|
|
59399
|
+
* way the steps run, and the names are one tab stop. Off by default, so the
|
|
59400
|
+
* arrows keep scrolling the page.
|
|
58957
59401
|
* - `completion`: What marks a stage `complete`.
|
|
58958
59402
|
*
|
|
58959
59403
|
* Absent, you do: each step's `complete` is yours, because a reader who
|
|
@@ -59124,7 +59568,9 @@ export type CustomElements = {
|
|
|
59124
59568
|
* - `disabled`: Whether the stage is disabled, so the user cannot go to it.
|
|
59125
59569
|
* - `optional`: Whether a reader may pass the stage without finishing it, in a sequence
|
|
59126
59570
|
* with `linear`. Ark UI's skippable step.
|
|
59127
|
-
* - `value`: The value the step sends in `helix-select
|
|
59571
|
+
* - `value`: The value the step sends in `helix-select`, and what names the step in its
|
|
59572
|
+
* sequence's `active`. Without one, the sequence names the step by its place,
|
|
59573
|
+
* counted from 1.
|
|
59128
59574
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
59129
59575
|
*
|
|
59130
59576
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -61061,6 +61507,10 @@ export type CustomElements = {
|
|
|
61061
61507
|
* along, so the two writes a consumer would make in sequence do not compose
|
|
61062
61508
|
* into the range they asked for. The platform has this method for that reason
|
|
61063
61509
|
* and so does this.
|
|
61510
|
+
* - `setRangeText(replacement: string, start?: number, end?: number, selectMode?: SelectionMode) => void`: Replaces a range of the text, as the native method does: the selection
|
|
61511
|
+
* where `start` and `end` are left out, and `selectMode` says what is
|
|
61512
|
+
* selected after. It sends no event, as the native method sends none.
|
|
61513
|
+
* - `select() => void`: Selects everything in the field.
|
|
61064
61514
|
* - `focus(options?: FocusOptions) => void`: Puts the caret in the field, as a label pointing at it would.
|
|
61065
61515
|
* - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
|
|
61066
61516
|
*
|
|
@@ -64515,6 +64965,12 @@ export type CustomElements = {
|
|
|
64515
64965
|
* captions, and poster treatment. `Sandbox` takes its preview and `Menu` its
|
|
64516
64966
|
* trigger the same way.
|
|
64517
64967
|
*
|
|
64968
|
+
* **The player is a `Video` or a plain `<video>`.** Either takes `src` and
|
|
64969
|
+
* `poster` from the entry, is named by it, plays on, and answers Shift with N
|
|
64970
|
+
* or P while focused. A plain `<video>` has no previous and next controls
|
|
64971
|
+
* that send `helix-previous` or `helix-next`, so its moves are the entries,
|
|
64972
|
+
* the menu, and your own buttons calling `previous()` and `next()`.
|
|
64973
|
+
*
|
|
64518
64974
|
* **Entries are markup.** React skips properties it would set imperatively
|
|
64519
64975
|
* during hydration, so an array property on a custom element is missing on the
|
|
64520
64976
|
* first paint of a server-rendered page. `using-the-elements.mdx` has the
|
|
@@ -64547,7 +65003,8 @@ export type CustomElements = {
|
|
|
64547
65003
|
*
|
|
64548
65004
|
* **The player is named by the current entry**, and the device's own media
|
|
64549
65005
|
* controls show the entry as the title. A player you gave a `label` keeps
|
|
64550
|
-
* your name, and only the title follows the entry.
|
|
65006
|
+
* your name, and only the title follows the entry. A plain `<video>` is
|
|
65007
|
+
* named through `aria-label`, unless you wrote one.
|
|
64551
65008
|
*
|
|
64552
65009
|
* **Keyboard.** The entries take one stop in the tab order: the entry you
|
|
64553
65010
|
* last focused, or the current entry before you have focused one. Enter or
|
|
@@ -65238,6 +65695,11 @@ export type CustomElements = {
|
|
|
65238
65695
|
* commas. Their rows carry `aria-disabled`, the keys and typing pass over
|
|
65239
65696
|
* them, and a press, Space, or Control with A does not select them.
|
|
65240
65697
|
*
|
|
65698
|
+
* **Rows a stylesheet can tell apart.** A chosen row carries `data-selected`,
|
|
65699
|
+
* a disabled one `data-disabled`, as React Aria's rows do, and the row the
|
|
65700
|
+
* keys are on, which holds the tab stop, `data-active`, whether or not the
|
|
65701
|
+
* list has focus.
|
|
65702
|
+
*
|
|
65241
65703
|
* **Loading more.** `helix-range-change` fires as the items on screen change,
|
|
65242
65704
|
* and `range` holds them. `helix-load-more` fires once a reader is within one
|
|
65243
65705
|
* screen of the end, once for each length of the set: add to `items` and it can
|
|
@@ -69172,7 +69634,13 @@ export type CustomElementsSolidJs = {
|
|
|
69172
69634
|
* field taking more. A draft that fails them does not send, and the composer
|
|
69173
69635
|
* takes `:state(invalid)` and `aria-invalid` once the reader has tried to send
|
|
69174
69636
|
* it, the form was submitted, or the reader edited the field and left it.
|
|
69175
|
-
*
|
|
69637
|
+
* Sending an empty required composer counts as trying. Tabbing past an empty
|
|
69638
|
+
* composer marks nothing.
|
|
69639
|
+
*
|
|
69640
|
+
* **`feedback` is a message of your own about the draft**, such as one your
|
|
69641
|
+
* server sent back. While it is set, the composer is invalid at once, does
|
|
69642
|
+
* not send or submit, shows the message under the field, and a screen reader
|
|
69643
|
+
* hears it as it appears. Clear it to let the draft go.
|
|
69176
69644
|
*
|
|
69177
69645
|
* **`typing` says whether the user is writing**, and `helix-typing` is sent
|
|
69178
69646
|
* each time it changes: when they start, and when they send or stop for
|
|
@@ -69183,6 +69651,9 @@ export type CustomElementsSolidJs = {
|
|
|
69183
69651
|
*
|
|
69184
69652
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
69185
69653
|
*
|
|
69654
|
+
* - `feedback`: A message about the draft, shown under the field. While set, the composer
|
|
69655
|
+
* is invalid, does not send, and does not submit, as a field's `feedback`
|
|
69656
|
+
* does, and the message is announced as it appears.
|
|
69186
69657
|
* - `label`: The field's name, read by screen readers.
|
|
69187
69658
|
* - `maxlength`/`maxLength`: The most characters a draft can have. The field stops taking more.
|
|
69188
69659
|
* - `minlength`/`minLength`: The fewest characters a draft can have, once the reader has written in
|
|
@@ -69331,6 +69802,7 @@ export type CustomElementsSolidJs = {
|
|
|
69331
69802
|
*
|
|
69332
69803
|
* - `composer`: The whole composer.
|
|
69333
69804
|
* - `end`: The box around the `end` slot.
|
|
69805
|
+
* - `feedback`: The `feedback` message, under the field while it is set.
|
|
69334
69806
|
* - `field`: The text field.
|
|
69335
69807
|
* - `mark`: The icon inside the send button.
|
|
69336
69808
|
* - `send`: The send button.
|
|
@@ -69341,7 +69813,7 @@ export type CustomElementsSolidJs = {
|
|
|
69341
69813
|
*
|
|
69342
69814
|
* These can be used to apply styling when a component is in a given state.
|
|
69343
69815
|
*
|
|
69344
|
-
* - `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.
|
|
69816
|
+
* - `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.
|
|
69345
69817
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
69346
69818
|
*/
|
|
69347
69819
|
"helix-headless-chat-composer": Partial<
|
|
@@ -69477,16 +69949,31 @@ export type CustomElementsSolidJs = {
|
|
|
69477
69949
|
* `loading` while you fetch, then prepend the older turns. The turn the user
|
|
69478
69950
|
* was reading stays in place on screen.
|
|
69479
69951
|
*
|
|
69952
|
+
* The transcript is a `log`, the role for content added in order where the
|
|
69953
|
+
* newest matters most, and it answers the APG feed's keys. The `feed` role
|
|
69954
|
+
* reads its articles as a list from the top, with no newest end to stay
|
|
69955
|
+
* pinned to, so the log keeps the role a conversation has. While `loading` is
|
|
69956
|
+
* set or older turns load, the log carries `aria-busy`, as the APG asks of a
|
|
69957
|
+
* feed.
|
|
69958
|
+
*
|
|
69480
69959
|
* The log is `aria-live="off"`. A separate status region announces each new
|
|
69481
69960
|
* turn once, when it has finished arriving. It skips the user's own turns
|
|
69482
69961
|
* unless they failed to send, turns loaded as history, and the turns already
|
|
69483
69962
|
* there when the transcript opened. A turn is said with its author first, such
|
|
69484
69963
|
* as "Ada: It ships today" (`arrival-label`), where its author can be named.
|
|
69485
69964
|
*
|
|
69486
|
-
* Pass the turns as children or as `turns` data. Do not use both
|
|
69487
|
-
*
|
|
69965
|
+
* Pass the turns as children or as `turns` data. Do not use both: a chat given
|
|
69966
|
+
* both draws every turn from `turns` and then the children, and says so once
|
|
69967
|
+
* in the console. Children render from the server and suit most
|
|
69968
|
+
* conversations. `turns` draws a long
|
|
69488
69969
|
* transcript one window at a time, so the log needs a block size of its own.
|
|
69489
69970
|
*
|
|
69971
|
+
* The log scrolls on this tier. It carries `data-scroller`, and `core` ships
|
|
69972
|
+
* `[data-scroller] { overflow: auto }` into every shadow root, so pinning,
|
|
69973
|
+
* history and the window work with no stylesheet. You still need to give the
|
|
69974
|
+
* log a block size, such as `helix-headless-chat::part(log) { block-size:
|
|
69975
|
+
* 20rem }`.
|
|
69976
|
+
*
|
|
69490
69977
|
* **A conversation is built from three elements.** The chat holds the
|
|
69491
69978
|
* transcript, a `Chat.Message` stands for each turn, and a `Chat.Composer` sits
|
|
69492
69979
|
* in the `composer` slot. When the user sends, `helix-send` reaches the chat:
|
|
@@ -69500,7 +69987,12 @@ export type CustomElementsSolidJs = {
|
|
|
69500
69987
|
* it takes them away. Anything slotted into `status` is drawn first.
|
|
69501
69988
|
*
|
|
69502
69989
|
* **Keyboard.** The transcript moves between turns the way a feed does. Each
|
|
69503
|
-
* turn says its place, such as "3 of 40", windowed or not.
|
|
69990
|
+
* turn says its place, such as "3 of 40", windowed or not. The transcript is
|
|
69991
|
+
* a tab stop while it holds a turn, and the turn a reader moved to is one
|
|
69992
|
+
* too. Moving to an older turn unpins a transcript that scrolls and scrolls
|
|
69993
|
+
* the turn into view, and moving to the newest pins it again. When the turn
|
|
69994
|
+
* holding focus is removed, focus moves to the turn that took its place, or to
|
|
69995
|
+
* the one before it where it was the last.
|
|
69504
69996
|
*
|
|
69505
69997
|
* | Key | What it does |
|
|
69506
69998
|
* |---|---|
|
|
@@ -69679,7 +70171,7 @@ export type CustomElementsSolidJs = {
|
|
|
69679
70171
|
* - `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.
|
|
69680
70172
|
* - `live`: The region where screen readers announce each turn once it has arrived.
|
|
69681
70173
|
* - `loading`: Shown while the history loads.
|
|
69682
|
-
* - `log`: The transcript, which scrolls.
|
|
70174
|
+
* - `log`: The transcript, which scrolls. On this tier, it needs only a block size.
|
|
69683
70175
|
* - `message`: The message drawn for a turn from `turns`, forwarded whole.
|
|
69684
70176
|
* - `message-actions`: The controls on a turn from `turns`, beside its time.
|
|
69685
70177
|
* - `message-avatar`: The avatar box of a turn from `turns`.
|
|
@@ -69711,6 +70203,10 @@ export type CustomElementsSolidJs = {
|
|
|
69711
70203
|
*
|
|
69712
70204
|
* These can be used to apply styling when a component is in a given state.
|
|
69713
70205
|
*
|
|
70206
|
+
* - `empty`: The conversation has no turns.
|
|
70207
|
+
* - `loading`: Older turns are loading: `history` is `loading`.
|
|
70208
|
+
* - `pinned`: The transcript follows its newest turn.
|
|
70209
|
+
* - `typing`: `typing` names someone on the other side.
|
|
69714
70210
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
69715
70211
|
*/
|
|
69716
70212
|
"helix-headless-chat": Partial<
|
|
@@ -70222,7 +70718,11 @@ export type CustomElementsSolidJs = {
|
|
|
70222
70718
|
* from the accessibility tree and left out of a copy. Set `mark-lines` to
|
|
70223
70719
|
* mark lines a reader should look at, such as `2, 4-6`: the block draws a
|
|
70224
70720
|
* band behind each run, placed where the lines are laid out, so it follows a
|
|
70225
|
-
* highlighter's markup and lines that wrap.
|
|
70721
|
+
* highlighter's markup and lines that wrap. `added-lines` and
|
|
70722
|
+
* `removed-lines` mark lines the same way as inserted and deleted, as
|
|
70723
|
+
* Expressive Code's `ins` and `del` do, in code that is not a diff. The bands
|
|
70724
|
+
* are drawn and hidden from screen readers, so say in the text around the
|
|
70725
|
+
* block what a marked line means. Set `wrap` to wrap long lines
|
|
70226
70726
|
* rather than scroll them; a gutter then numbers each line where it starts.
|
|
70227
70727
|
* Set `wrappable` for a button in the header that turns `wrap` on and off,
|
|
70228
70728
|
* pressed while the lines wrap.
|
|
@@ -70291,6 +70791,8 @@ export type CustomElementsSolidJs = {
|
|
|
70291
70791
|
*
|
|
70292
70792
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
70293
70793
|
*
|
|
70794
|
+
* - `added-lines`/`addedLines`: The lines to mark as inserted, as numbers and ranges counted from 1, such
|
|
70795
|
+
* as `3-4`. Drawn as `mark-lines` is, in the added color. Not for a diff.
|
|
70294
70796
|
* - `code-label`/`codeLabel`: The name of a block that scrolls, which is a tab stop while it does.
|
|
70295
70797
|
*
|
|
70296
70798
|
* Where the block has a name, the scroller says it too, such as "Code,
|
|
@@ -70367,6 +70869,8 @@ export type CustomElementsSolidJs = {
|
|
|
70367
70869
|
* `no-copy=""` on hosts that never asked for one, and the rule about a
|
|
70368
70870
|
* reflected property taking no default is satisfied by the default being
|
|
70369
70871
|
* `false`.
|
|
70872
|
+
* - `removed-lines`/`removedLines`: The lines to mark as deleted, as numbers and ranges counted from 1. Drawn
|
|
70873
|
+
* as `mark-lines` is, in the removed color. Not for a diff.
|
|
70370
70874
|
* - `show-unchanged-label`/`showUnchangedLabel`: The words of a button that shows a folded run of unchanged lines, in a
|
|
70371
70875
|
* diff with `context-lines`. `{count}` is how many.
|
|
70372
70876
|
* - `variant`: How a diff's two versions are arranged. It has no effect without `diff`.
|
|
@@ -70446,6 +70950,8 @@ export type CustomElementsSolidJs = {
|
|
|
70446
70950
|
* - `actions`: Controls for the block, in the header before the copy button.
|
|
70447
70951
|
* - `copied-icon`: The copy button's icon after a copy. Defaults to a check mark.
|
|
70448
70952
|
* - `copy-icon`: The copy button's icon before a copy. Defaults to a clipboard.
|
|
70953
|
+
* - `expand-icon`: An icon on the button that shows every line of a capped block, before its words.
|
|
70954
|
+
* - `label`: The block's name in the header, such as a file icon beside the file name. Replaces `label` and `language` there, and draws the header.
|
|
70449
70955
|
*
|
|
70450
70956
|
* ## CSS Custom Properties
|
|
70451
70957
|
*
|
|
@@ -70493,7 +70999,9 @@ export type CustomElementsSolidJs = {
|
|
|
70493
70999
|
* - `header`: The bar that holds the name and the copy button, shown when there is a name.
|
|
70494
71000
|
* - `hunk`: In a diff, a `@@` line saying where the lines under it are.
|
|
70495
71001
|
* - `label`: The block's name: its `label`, or its `language` where it has no label.
|
|
70496
|
-
* - `mark`: The band behind a run of lines `mark-lines` names. The block writes where the run is laid out into `--code-block-mark-start`, `--code-block-mark-size`, and `--code-block-mark-inline-size` on it. Hidden from the accessibility tree.
|
|
71002
|
+
* - `mark`: The band behind a run of lines `mark-lines`, `added-lines` or `removed-lines` names. The block writes where the run is laid out into `--code-block-mark-start`, `--code-block-mark-size`, and `--code-block-mark-inline-size` on it. Hidden from the accessibility tree.
|
|
71003
|
+
* - `mark-added`: The band behind a run of lines `added-lines` names. Applied with `mark`.
|
|
71004
|
+
* - `mark-removed`: The band behind a run of lines `removed-lines` names. Applied with `mark`.
|
|
70497
71005
|
* - `marker`: In a diff, the `+`, `-`, or space that starts a line.
|
|
70498
71006
|
* - `new`: In a split diff, the new version's `<pre>`.
|
|
70499
71007
|
* - `number`: In a diff, a line number. In a `wrap` block with `line-numbers`, one line's number in the gutter, which the block makes as tall as the line it numbers through `--code-block-line-size`.
|
|
@@ -70610,7 +71118,8 @@ export type CustomElementsSolidJs = {
|
|
|
70610
71118
|
*
|
|
70611
71119
|
* The trigger and ArrowDown open the panel with focus in the square. Tab moves
|
|
70612
71120
|
* between the panel's controls without leaving it, and Escape closes it and
|
|
70613
|
-
* returns focus to the
|
|
71121
|
+
* returns focus to the control that opened it: the trigger after a press, and
|
|
71122
|
+
* the field after ArrowDown.
|
|
70614
71123
|
*
|
|
70615
71124
|
* The component sets `--color-input-swatch`, so do not set it yourself. It
|
|
70616
71125
|
* holds the resolved color, so the styled tier can paint the swatch without
|
|
@@ -71107,10 +71616,11 @@ export type CustomElementsSolidJs = {
|
|
|
71107
71616
|
* the anchor the browser points its bubble at.
|
|
71108
71617
|
*
|
|
71109
71618
|
* **Text that is not a color is bad input**, so a form does not submit
|
|
71110
|
-
* `#00` from a half-typed value. The picker
|
|
71111
|
-
*
|
|
71112
|
-
*
|
|
71113
|
-
*
|
|
71619
|
+
* `#00` from a half-typed value. The picker marks it, and says
|
|
71620
|
+
* `badInputMessage` under itself, once the reader leaves the value field or
|
|
71621
|
+
* presses Enter, and a missing color once the reader has committed one or a
|
|
71622
|
+
* form has refused the picker. Color Input shows its own message against the
|
|
71623
|
+
* field the reader typed into.
|
|
71114
71624
|
* - `saturation-label`/`saturationLabel`: What the square's horizontal ramp is called.
|
|
71115
71625
|
* - `square-text`/`squareText`: What a screen reader hears for the square's place, the color's two
|
|
71116
71626
|
* numbers and its name, on whichever of its two inputs it is on.
|
|
@@ -71229,14 +71739,10 @@ export type CustomElementsSolidJs = {
|
|
|
71229
71739
|
*
|
|
71230
71740
|
* Methods that can be called to access component functionality.
|
|
71231
71741
|
*
|
|
71742
|
+
* - `formResetCallback() => void`: A reset ends any typing and takes back text that was not a color, so the
|
|
71743
|
+
* field shows the color the reset put back.
|
|
71232
71744
|
* - `requestValue(next: string) => boolean`: Blocks every change while `readOnly` is set.
|
|
71233
71745
|
* - `focus(options?: FocusOptions) => void`: Moves focus to the square.
|
|
71234
|
-
* - `formResetCallback() => void`: Returns the control to its `defaultValue`, or to its `value` attribute
|
|
71235
|
-
* where there is no `default-value`.
|
|
71236
|
-
*
|
|
71237
|
-
* Both halves are dropped, the consumer's and the control's, because a
|
|
71238
|
-
* reset means the form is as it was served. Clearing only the internal one
|
|
71239
|
-
* would leave a control that had been written to stuck at that value.
|
|
71240
71746
|
* - `formStateRestoreCallback(state: string | File | FormData | null) => void`: Restores the value when the browser brings a form back.
|
|
71241
71747
|
*
|
|
71242
71748
|
* Falling back to what the markup declared rather than to empty, because
|
|
@@ -71317,7 +71823,7 @@ export type CustomElementsSolidJs = {
|
|
|
71317
71823
|
* - `eyedropper-live`: The live region of the button inside `eyedropper`, which says its pending label.
|
|
71318
71824
|
* - `eyedropper-spinner`: The ring the eyedropper button turns while it is pending.
|
|
71319
71825
|
* - `eyedropper-text`: The words on the button inside `eyedropper`, trimmed to their capitals and baseline.
|
|
71320
|
-
* - `feedback`: The message under the picker
|
|
71826
|
+
* - `feedback`: The message under the picker: `feedback`, or what is wrong with the answer once the picker is marked invalid.
|
|
71321
71827
|
* - `field`: One channel's number field with its label, in `channel-fields`.
|
|
71322
71828
|
* - `field-input`: The number input in a channel's field.
|
|
71323
71829
|
* - `field-label`: The name above a channel's number input.
|
|
@@ -71476,12 +71982,13 @@ export type CustomElementsSolidJs = {
|
|
|
71476
71982
|
* language.
|
|
71477
71983
|
* - `multiple`: Whether more than one option can be chosen.
|
|
71478
71984
|
*
|
|
71479
|
-
* The list already does the work: `value`
|
|
71480
|
-
* toggles rather than replaces, and the arrows move without
|
|
71481
|
-
* this adds is the tags, and keeping the panel open between
|
|
71985
|
+
* The list already does the work: `value` is the chosen values joined with
|
|
71986
|
+
* commas, a press toggles rather than replaces, and the arrows move without
|
|
71987
|
+
* choosing. What this adds is the tags, and keeping the panel open between
|
|
71988
|
+
* picks.
|
|
71482
71989
|
*
|
|
71483
|
-
*
|
|
71484
|
-
*
|
|
71990
|
+
* An option's value may hold a comma, and it is read as one value, as
|
|
71991
|
+
* `Select` and `Listbox` read it. So may an answer the reader created.
|
|
71485
71992
|
*
|
|
71486
71993
|
* **The list is told, and the field is not.** `aria-multiselectable` belongs
|
|
71487
71994
|
* to `listbox`, `grid`, `tree` and `tablist`, and `combobox` dropped it in
|
|
@@ -71825,7 +72332,8 @@ export type CustomElementsSolidJs = {
|
|
|
71825
72332
|
* | `hotkey`, Command or Control with K by default | Opens the palette from anywhere on the page, or closes it. With `inline`, puts focus in its filter field. |
|
|
71826
72333
|
* | Down, Up | Moves the highlight to the next or the previous command, round from the last to the first. |
|
|
71827
72334
|
* | Page Down, Page Up | Moves the highlight by as many commands as the list shows at once. |
|
|
71828
|
-
* | Home, End
|
|
72335
|
+
* | Home, End | Move the caret in the filter field. With `home-end="list"`, move the highlight to the first or the last command. |
|
|
72336
|
+
* | Left, Right | Move the caret in the filter field. |
|
|
71829
72337
|
* | Enter | Runs the highlighted command, or follows it where it is a link, and closes the palette. On a command with `opens`, shows its page. |
|
|
71830
72338
|
* | Command or Control with Enter | Takes the highlighted command's `alternate` destination, where it has one. |
|
|
71831
72339
|
* | Backspace | In an empty filter on a page, goes back to the page before. |
|
|
@@ -71847,6 +72355,11 @@ export type CustomElementsSolidJs = {
|
|
|
71847
72355
|
* - `filter-delay`/`filterDelay`: How long typing rests before the commands are filtered, in milliseconds,
|
|
71848
72356
|
* so a palette filtered on a server sends one `helix-filter` for a word.
|
|
71849
72357
|
* `0` filters on every keystroke. See Listbox's `filter-delay`.
|
|
72358
|
+
* - `home-end`/`homeEnd`: Where Home and End go from the filter field.
|
|
72359
|
+
*
|
|
72360
|
+
* Absent, they move the caret, as APG's combobox has them. `list` moves the
|
|
72361
|
+
* highlight to the first or the last command, as React Aria's Autocomplete
|
|
72362
|
+
* does, and Shift with either still selects the text.
|
|
71850
72363
|
* - `hotkey`: The key that opens the palette, written as `mod+k`, `shift+p`, or `k`,
|
|
71851
72364
|
* in Kbd's chord spelling: `mod` is Command or Control, `ctrl`, `cmd`,
|
|
71852
72365
|
* `alt` and `shift` the keys they name.
|
|
@@ -71861,6 +72374,9 @@ export type CustomElementsSolidJs = {
|
|
|
71861
72374
|
* Choosing a command says `helix-select` and leaves the list where it is,
|
|
71862
72375
|
* and `open`, `toggle` and the dialog's parts do nothing.
|
|
71863
72376
|
* - `label`: Accessible name for the overlay, which has no visible heading.
|
|
72377
|
+
* - `layout`: How the commands are laid out, as Listbox's `layout`: `grid` draws them in
|
|
72378
|
+
* rows and columns, for a palette of icons or emoji, and the arrow keys
|
|
72379
|
+
* follow the rows and the columns. Absent is one command under another.
|
|
71864
72380
|
* - `load-error`/`loadError`: What the list says when its commands could not be loaded, such as after a
|
|
71865
72381
|
* request to a server fails. Empty, null or no attribute is no error, so
|
|
71866
72382
|
* removing the attribute clears it. Passed to the list, which shows it
|
|
@@ -72566,6 +73082,10 @@ export type CustomElementsSolidJs = {
|
|
|
72566
73082
|
* Off by default. Windowing costs a scroll listener, a measurement per row
|
|
72567
73083
|
* drawn, and a `block-size` on the scrolling box, and a table of twenty rows
|
|
72568
73084
|
* should pay none of them.
|
|
73085
|
+
*
|
|
73086
|
+
* While windowed, the `table` part scrolls on this tier: it carries
|
|
73087
|
+
* `data-scroller`, and `core` ships `[data-scroller] { overflow: auto }` into
|
|
73088
|
+
* every shadow root. You still need to give it a block size.
|
|
72569
73089
|
* - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
|
|
72570
73090
|
* - `loading`: Whether the rows are still loading.
|
|
72571
73091
|
*
|
|
@@ -72728,7 +73248,7 @@ export type CustomElementsSolidJs = {
|
|
|
72728
73248
|
* - `select`: The cell that holds a row's checkbox.
|
|
72729
73249
|
* - `select-all`: The heading that holds the checkbox that selects every row.
|
|
72730
73250
|
* - `select-selected`: Added to `select` in a selected row.
|
|
72731
|
-
* - `table`: The grid.
|
|
73251
|
+
* - `table`: The grid. While `windowed`, the box that scrolls, which needs only a block size on this tier.
|
|
72732
73252
|
* - `toggle`: The mark in a row header that a press opens and closes its row by, in a tree grid.
|
|
72733
73253
|
* - `toggle-mark`: The caret in `toggle`. It points along the line while the row is closed and down while it is open.
|
|
72734
73254
|
* - `toggle-open`: Added to `toggle` while its row is open.
|
|
@@ -74480,6 +75000,10 @@ export type CustomElementsSolidJs = {
|
|
|
74480
75000
|
* <helix-headless-drawer id="nav">…</helix-headless-drawer>
|
|
74481
75001
|
* ```
|
|
74482
75002
|
*
|
|
75003
|
+
* From its first press, a button that opens the drawer this way says whether
|
|
75004
|
+
* the drawer is open: a Helix button through `expanded`, and any other
|
|
75005
|
+
* element with `aria-expanded`.
|
|
75006
|
+
*
|
|
74483
75007
|
* ## Attributes & Properties
|
|
74484
75008
|
*
|
|
74485
75009
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -75383,9 +75907,10 @@ export type CustomElementsSolidJs = {
|
|
|
75383
75907
|
* press. `requestChange` documents the pattern.
|
|
75384
75908
|
*
|
|
75385
75909
|
* **Keyboard.** The remove button is a tab stop of its own, and Enter or Space
|
|
75386
|
-
* on it asks to remove the filter. In a `FilterInput`,
|
|
75387
|
-
* field asks to remove the last chip, the
|
|
75388
|
-
* and the chips, and Delete or Backspace on
|
|
75910
|
+
* on it asks to remove the filter. In a `FilterInput`, the field's text is the
|
|
75911
|
+
* one tab stop: Backspace in the empty field asks to remove the last chip, the
|
|
75912
|
+
* arrow keys move between the field and the chips, and Delete or Backspace on
|
|
75913
|
+
* a chip asks to remove it.
|
|
75389
75914
|
*
|
|
75390
75915
|
* The remove button is named `dismiss-label` followed by the chip's words,
|
|
75391
75916
|
* such as "Remove filter Status is not open", so a row of chips says which
|
|
@@ -75441,6 +75966,12 @@ export type CustomElementsSolidJs = {
|
|
|
75441
75966
|
* reads. The moment somebody picks a different comparison it appears, which
|
|
75442
75967
|
* makes an unusual filter look unusual.
|
|
75443
75968
|
* - `dismissible`: Whether the element shows a control that dismisses it.
|
|
75969
|
+
* - `dismissTabStop`: Whether the remove button is a tab stop of its own.
|
|
75970
|
+
*
|
|
75971
|
+
* `FilterInput` writes `false` on the chips in its `tags` slot: the field's
|
|
75972
|
+
* text is its one tab stop, and the arrow keys move from the text to the
|
|
75973
|
+
* chips, as in a `multiple` Combobox. No attribute: it is coordination
|
|
75974
|
+
* between elements, as `Tag.dismissTabStop` is. (property only)
|
|
75444
75975
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
75445
75976
|
*
|
|
75446
75977
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -75912,8 +76443,9 @@ export type CustomElementsSolidJs = {
|
|
|
75912
76443
|
* first colon, reads a leading `-` as the negation, and reads a word in
|
|
75913
76444
|
* brackets before the colon as the comparison.
|
|
75914
76445
|
*
|
|
75915
|
-
* **Keyboard.** Focus stays in the text
|
|
75916
|
-
* suggestion as its `aria-activedescendant
|
|
76446
|
+
* **Keyboard.** Focus stays in the text, which is the field's one tab stop. The
|
|
76447
|
+
* text names the highlighted suggestion as its `aria-activedescendant`, and the
|
|
76448
|
+
* arrow keys reach the tokens.
|
|
75917
76449
|
*
|
|
75918
76450
|
* | Key | What it does |
|
|
75919
76451
|
* |---|---|
|
|
@@ -75971,12 +76503,24 @@ export type CustomElementsSolidJs = {
|
|
|
75971
76503
|
* and removing the chip alone would leave its value ticked in the hidden
|
|
75972
76504
|
* menu. Its dismissal is treated as the field being filtered by nothing, so
|
|
75973
76505
|
* it fires `helix-facet` like every other change, and the chip goes when the
|
|
75974
|
-
* filter goes.
|
|
76506
|
+
* filter goes. Set `chips` and the field adds, updates, and removes those
|
|
76507
|
+
* chips itself, from every `helix-facet` you do not cancel.
|
|
75975
76508
|
*
|
|
75976
76509
|
* ## Attributes & Properties
|
|
75977
76510
|
*
|
|
75978
76511
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
75979
76512
|
*
|
|
76513
|
+
* - `chips`: Whether the field keeps a `FilterChip` for each filter in its `tags` slot,
|
|
76514
|
+
* from the `helix-facet` events it hears.
|
|
76515
|
+
*
|
|
76516
|
+
* Off, you build the chips, which is what you do when your own model holds
|
|
76517
|
+
* the filters. On, a filter typed, picked, or changed adds or updates the
|
|
76518
|
+
* chip for its field, one with no values takes it away (unless its
|
|
76519
|
+
* comparison takes none, such as "is empty"), and removing the chip clears
|
|
76520
|
+
* the filter. A `helix-facet` you cancel changes no chip.
|
|
76521
|
+
*
|
|
76522
|
+
* The chips are elements the field adds to its own children, so leave this
|
|
76523
|
+
* off where a framework renders those children and would remove them.
|
|
75980
76524
|
* - `clearable`: Shows a button that empties the field.
|
|
75981
76525
|
*
|
|
75982
76526
|
* The text only. The tokens are the consumer's markup and this element is not
|
|
@@ -75988,6 +76532,18 @@ export type CustomElementsSolidJs = {
|
|
|
75988
76532
|
* - `filter-suggestions`/`filterSuggestions`: Whether the panel narrows itself to the suggestions that hold the term
|
|
75989
76533
|
* being typed, as React Aria's Autocomplete filters. Off, the panel shows
|
|
75990
76534
|
* what you slot and you narrow it.
|
|
76535
|
+
* - `loading`: Whether the suggestions are still loading, such as while a request for the
|
|
76536
|
+
* values of a typed key is out.
|
|
76537
|
+
*
|
|
76538
|
+
* The panel opens on `loading-text`, or the `loading` slot, while the field
|
|
76539
|
+
* has focus, and a screen reader hears it. Slot the options and clear this
|
|
76540
|
+
* when they arrive.
|
|
76541
|
+
* - `loading-text`/`loadingText`: Text the panel shows while the suggestions load.
|
|
76542
|
+
* - `no-results-text`/`noResultsText`: Text the panel shows when `filter-suggestions` hides every suggestion, such
|
|
76543
|
+
* as "No matching filters".
|
|
76544
|
+
*
|
|
76545
|
+
* Empty, or no `no-results` slot, and the panel closes instead, as it does
|
|
76546
|
+
* when it has nothing to offer.
|
|
75991
76547
|
* - `placeholder`: The text shown while the field is empty.
|
|
75992
76548
|
*
|
|
75993
76549
|
* Not a label: it goes when typing starts.
|
|
@@ -76149,6 +76705,8 @@ export type CustomElementsSolidJs = {
|
|
|
76149
76705
|
* - `feedback`: The message that says what is wrong, for content richer than a string. It shows while there is a message.
|
|
76150
76706
|
* - `hint`: Help under the control, for content richer than the `hint` text.
|
|
76151
76707
|
* - `label`: The label, for content richer than the `label` text.
|
|
76708
|
+
* - `loading`: What the panel shows while `loading` is set, for content richer than `loading-text`.
|
|
76709
|
+
* - `no-results`: What the panel shows when `filter-suggestions` hides every suggestion, for content richer than `no-results-text`.
|
|
76152
76710
|
* - `start`: Content before the text, such as a search icon.
|
|
76153
76711
|
* - `suggestions`: Suggestions for what to type next, as `Option`s and `Option.Group`s.
|
|
76154
76712
|
* - `tags`: The active filters, as `FilterChip`s or `Tag`s.
|
|
@@ -76232,12 +76790,14 @@ export type CustomElementsSolidJs = {
|
|
|
76232
76790
|
*
|
|
76233
76791
|
* - `clear`: The button that empties the field.
|
|
76234
76792
|
* - `control`: The input itself.
|
|
76793
|
+
* - `empty`: Shown in the panel when `filter-suggestions` hides every suggestion.
|
|
76235
76794
|
* - `feedback`: The error message under the field.
|
|
76236
76795
|
* - `field`: The box that holds everything.
|
|
76237
76796
|
* - `hint`: The help text under the field, shown while there is no error.
|
|
76238
76797
|
* - `label`: The label above the field.
|
|
76239
76798
|
* - `lead`: The box before the text that holds the `start` slot.
|
|
76240
76799
|
* - `live`: The live region that says how many suggestions the open panel offers. It is rendered from the first time the panel opens with suggestions.
|
|
76800
|
+
* - `loading`: Shown in the panel while the suggestions load.
|
|
76241
76801
|
* - `rest`: The count of tokens that did not fit. It is a `<button>` with `expandable` and a `<span>` without it.
|
|
76242
76802
|
* - `surface`: The floating panel the suggestions sit in.
|
|
76243
76803
|
* - `tags`: The row the tokens sit in.
|
|
@@ -76247,6 +76807,8 @@ export type CustomElementsSolidJs = {
|
|
|
76247
76807
|
* These can be used to apply styling when a component is in a given state.
|
|
76248
76808
|
*
|
|
76249
76809
|
* - `invalid`: The field has an error to show, from the browser's validation or from your `feedback`.
|
|
76810
|
+
* - `loading`: While `loading` is set.
|
|
76811
|
+
* - `no-results`: `filter-suggestions` hid every suggestion, and `no-results-text` or the `no-results` slot says so.
|
|
76250
76812
|
* - `open`: The suggestions are open.
|
|
76251
76813
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
76252
76814
|
*/
|
|
@@ -76269,7 +76831,9 @@ export type CustomElementsSolidJs = {
|
|
|
76269
76831
|
* **`relative` shows the same reading in words**, such as "3 hours ago" at
|
|
76270
76832
|
* `long`, "3 hr. ago" at `short` and "3h ago" at `narrow`, the styles
|
|
76271
76833
|
* `sl-relative-time` offers. `numeric="always"` says "1 day ago" where the
|
|
76272
|
-
* default says "yesterday".
|
|
76834
|
+
* default says "yesterday". Both readings round the count, as
|
|
76835
|
+
* `sl-relative-time` does: 100 seconds ago is "2 minutes ago", and 59.6
|
|
76836
|
+
* minutes is "1 hour".
|
|
76273
76837
|
*
|
|
76274
76838
|
* **`date-style` and `time-style` take each locale's own pattern**, such as
|
|
76275
76839
|
* "Tuesday, August 4, 2026" at `full`, and stand in for the separate fields,
|
|
@@ -77931,6 +78495,9 @@ export type CustomElementsSolidJs = {
|
|
|
77931
78495
|
*
|
|
77932
78496
|
* Methods that can be called to access component functionality.
|
|
77933
78497
|
*
|
|
78498
|
+
* - `setRangeText(replacement: string, start?: number, end?: number, selectMode?: SelectionMode) => void`: Replaces a range of the text, as the native method does: the selection
|
|
78499
|
+
* where `start` and `end` are left out, and `selectMode` says what is
|
|
78500
|
+
* selected after. It sends no event, as the native method sends none.
|
|
77934
78501
|
* - `setSelectionRange(start: number, end: number, direction?: SelectionDirection) => void`: Selects the range from `start` to `end` in one call, which setting
|
|
77935
78502
|
* `selectionStart` and `selectionEnd` one at a time cannot always do.
|
|
77936
78503
|
*
|
|
@@ -81448,6 +82015,8 @@ export type CustomElementsSolidJs = {
|
|
|
81448
82015
|
* These can be used to apply styling when a component is in a given state.
|
|
81449
82016
|
*
|
|
81450
82017
|
* - `checked`: The row is checked.
|
|
82018
|
+
* - `disabled`: The row is disabled.
|
|
82019
|
+
* - `expanded`: Under `submenus="flyout"`, the row's submenu is open beside it.
|
|
81451
82020
|
* - `highlighted`: In a menu with `filterable`, the arrow keys or the pointer reached the row while focus stays in the filter field.
|
|
81452
82021
|
* - `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.
|
|
81453
82022
|
* - `submenu-start`: Under `submenus="flyout"`, a row in this row's submenu has content before its label, so the submenu keeps its leading column.
|
|
@@ -81474,7 +82043,9 @@ export type CustomElementsSolidJs = {
|
|
|
81474
82043
|
*
|
|
81475
82044
|
* Submenus drill down by default. A submenu replaces the panel's content, and a
|
|
81476
82045
|
* back row returns to the previous page. One panel stays inside a narrow
|
|
81477
|
-
* window, and works on touch screens, which have no hover.
|
|
82046
|
+
* window, and works on touch screens, which have no hover. Focus follows a
|
|
82047
|
+
* mouse resting on a row in either mode, and a drilled page is a `menu` named
|
|
82048
|
+
* by the row that opened it.
|
|
81478
82049
|
*
|
|
81479
82050
|
* **`submenus="flyout"` opens each submenu in a panel of its own beside its
|
|
81480
82051
|
* row**, as React Aria's `SubmenuTrigger` and Radix's `Sub` do. Resting the
|
|
@@ -81508,6 +82079,11 @@ export type CustomElementsSolidJs = {
|
|
|
81508
82079
|
* trigger's width, for a menu as wide as its trigger:
|
|
81509
82080
|
* `helix-menu::part(surface) { min-inline-size: var(--floating-anchor-inline-size) }`.
|
|
81510
82081
|
*
|
|
82082
|
+
* **The choices in one place.** `checkedValues` holds the values of the rows
|
|
82083
|
+
* that are checked, anywhere in the menu, and setting it checks exactly
|
|
82084
|
+
* those rows, as React Aria's `selectedKeys` does. `change` is sent on the
|
|
82085
|
+
* menu when a reader's choice changes it.
|
|
82086
|
+
*
|
|
81511
82087
|
* With `context`, the trigger is an area and the menu is its context menu: a
|
|
81512
82088
|
* right-click, a long press, Shift+F10 or the menu key over the area opens it
|
|
81513
82089
|
* at the pointer, or at the area's corner from the keyboard, as Radix's context
|
|
@@ -81530,7 +82106,8 @@ export type CustomElementsSolidJs = {
|
|
|
81530
82106
|
* field: Up and Down Arrow move the highlight through the rows that are left,
|
|
81531
82107
|
* Enter chooses the highlighted row, Right Arrow opens its submenu, Left Arrow
|
|
81532
82108
|
* on a submenu goes back, and Escape clears the filter and then closes the
|
|
81533
|
-
* menu.
|
|
82109
|
+
* menu. A screen reader hears how many rows the filter keeps
|
|
82110
|
+
* (`results-label`). Home, End and the other keys move the caret and type. The field names
|
|
81534
82111
|
* the highlighted row with `aria-activedescendant`, and the rows are a `menu`
|
|
81535
82112
|
* after the field. Cancel `helix-filter` to keep every row
|
|
81536
82113
|
* showing and narrow the rows yourself, such as by replacing them with rows
|
|
@@ -81570,6 +82147,9 @@ export type CustomElementsSolidJs = {
|
|
|
81570
82147
|
* - `placement`: The side the menu opens on, when there is room.
|
|
81571
82148
|
*
|
|
81572
82149
|
* It moves if that side does not fit.
|
|
82150
|
+
* - `results-label`/`resultsLabel`: What a screen reader hears when the filter narrows the rows. `{count}` is
|
|
82151
|
+
* how many rows are left, written in the locale, and each language writes
|
|
82152
|
+
* the forms it has, as Listbox's `results-label` does.
|
|
81573
82153
|
* - `submenus`: How a submenu opens. `drill` shows it in place of the page showing, with
|
|
81574
82154
|
* a way back. `flyout` opens it in a panel of its own beside its row.
|
|
81575
82155
|
* - `empty-text`/`emptyText`: The text shown and announced when there are no rows and none are loading.
|
|
@@ -81598,6 +82178,13 @@ export type CustomElementsSolidJs = {
|
|
|
81598
82178
|
*
|
|
81599
82179
|
* Absent, a row is kept where its words hold the filter, in any case. A
|
|
81600
82180
|
* property only, there being no way to write a function in markup. (property only)
|
|
82181
|
+
* - `checkedValues`: The values of the choice rows that are checked, anywhere in the menu, in
|
|
82182
|
+
* document order.
|
|
82183
|
+
*
|
|
82184
|
+
* Set it to check exactly those rows and uncheck every other choice row, as
|
|
82185
|
+
* React Aria's `selectedKeys` controls a menu's selection from one place.
|
|
82186
|
+
* Each row keeps its own `checked` too, which this reads and writes. `change`
|
|
82187
|
+
* is sent on the menu when a reader's choice changes it. (property only)
|
|
81601
82188
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
81602
82189
|
*
|
|
81603
82190
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -81623,6 +82210,7 @@ export type CustomElementsSolidJs = {
|
|
|
81623
82210
|
*
|
|
81624
82211
|
* Events that will be emitted by the component.
|
|
81625
82212
|
*
|
|
82213
|
+
* - `change`: A reader's choice checked or unchecked rows. Read `checkedValues` for the rows that are checked now.
|
|
81626
82214
|
* - `helix-before-close`: The menu is about to close. Cancelable: cancel it to keep it open.
|
|
81627
82215
|
* - `helix-before-open`: The menu is about to open. Cancelable: cancel it to keep it closed.
|
|
81628
82216
|
* - `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.
|
|
@@ -81634,6 +82222,8 @@ export type CustomElementsSolidJs = {
|
|
|
81634
82222
|
* Areas where markup can be added to the component.
|
|
81635
82223
|
*
|
|
81636
82224
|
* - `(default)`: The items.
|
|
82225
|
+
* - `empty`: What the menu shows when it has no items, for content richer than `empty-text`.
|
|
82226
|
+
* - `loading`: What the menu shows while its items load, for content richer than `loading-text`.
|
|
81637
82227
|
* - `no-results`: What the menu shows when the filter keeps no rows, for content richer than `no-results-text`.
|
|
81638
82228
|
* - `trigger`: The control that opens the menu, or with `context` the area a context menu opens over.
|
|
81639
82229
|
*
|
|
@@ -81679,6 +82269,8 @@ export type CustomElementsSolidJs = {
|
|
|
81679
82269
|
* These can be used to apply styling when a component is in a given state.
|
|
81680
82270
|
*
|
|
81681
82271
|
* - `drilled`: A submenu's page is showing, so content that is not a row can hide with the top page.
|
|
82272
|
+
* - `entering`: From the moment the panel shows until its entrance has finished.
|
|
82273
|
+
* - `exiting`: From the moment the panel hides until its exit has finished.
|
|
81682
82274
|
* - `mark`: A row on the current page has a checkbox or a link, so every row keeps the trailing column.
|
|
81683
82275
|
* - `open`: While the menu is open.
|
|
81684
82276
|
* - `placed-bottom`: While the open panel sits below its trigger.
|
|
@@ -82669,7 +83261,9 @@ export type CustomElementsSolidJs = {
|
|
|
82669
83261
|
* speaks it: `feedback` replaces the message under the field and does not
|
|
82670
83262
|
* reach the bubble. Unset is the sentence registered for the page's
|
|
82671
83263
|
* language, then the English.
|
|
82672
|
-
* - `decrement-label`/`decrementLabel`: The name of the step down button, read by screen readers.
|
|
83264
|
+
* - `decrement-label`/`decrementLabel`: The name of the step down button, read by screen readers. The field's
|
|
83265
|
+
* label follows it, so a reader hears "Decrease Quantity", as React Aria
|
|
83266
|
+
* names its steppers.
|
|
82673
83267
|
* - `format-options`/`formatOptions`: `Intl.NumberFormat` options the number is shown with while the field is
|
|
82674
83268
|
* not being edited: a currency, a percent, a unit, or a number of decimals.
|
|
82675
83269
|
* Written as JSON in the attribute.
|
|
@@ -82677,7 +83271,9 @@ export type CustomElementsSolidJs = {
|
|
|
82677
83271
|
* ```html
|
|
82678
83272
|
* <helix-number-input format-options='{"style":"currency","currency":"EUR"}'></helix-number-input>
|
|
82679
83273
|
* ```
|
|
82680
|
-
* - `increment-label`/`incrementLabel`: The name of the step up button, read by screen readers.
|
|
83274
|
+
* - `increment-label`/`incrementLabel`: The name of the step up button, read by screen readers. The field's
|
|
83275
|
+
* label follows it, so a reader hears "Increase Quantity", as React Aria
|
|
83276
|
+
* names its steppers.
|
|
82681
83277
|
* - `large-step`/`largeStep`: How many steps `PageUp` and `PageDown` move.
|
|
82682
83278
|
*
|
|
82683
83279
|
* Ten steps, which is the convention every spinner on the platform follows,
|
|
@@ -82859,8 +83455,10 @@ export type CustomElementsSolidJs = {
|
|
|
82859
83455
|
*
|
|
82860
83456
|
* Methods that can be called to access component functionality.
|
|
82861
83457
|
*
|
|
82862
|
-
* - `stepUp(
|
|
82863
|
-
*
|
|
83458
|
+
* - `stepUp(count: number | boolean = 1) => void`: Steps the value up by `step`, `count` times, as the native method and
|
|
83459
|
+
* `Input.stepUp` do. `true` takes `largeStep` steps, as `PageUp` does.
|
|
83460
|
+
* - `stepDown(count: number | boolean = 1) => void`: Steps the value down by `step`, `count` times. `true` takes `largeStep`
|
|
83461
|
+
* steps, as `PageDown` does.
|
|
82864
83462
|
*
|
|
82865
83463
|
* The same path a press of the down arrow takes, so a consumer driving this
|
|
82866
83464
|
* from their own control gets the clamping and the announcement rather than
|
|
@@ -84514,7 +85112,9 @@ export type CustomElementsSolidJs = {
|
|
|
84514
85112
|
*
|
|
84515
85113
|
* It opens on click and from a command. `command="--show"` and the related
|
|
84516
85114
|
* commands work as they do on `Dialog` and `Drawer`, so a button anywhere on
|
|
84517
|
-
* the page can open the popover with no script.
|
|
85115
|
+
* the page can open the popover with no script. From its first press, a
|
|
85116
|
+
* button that opens it this way says whether the popover is open: a Helix
|
|
85117
|
+
* button through `expanded`, and any other element with `aria-expanded`.
|
|
84518
85118
|
*
|
|
84519
85119
|
* **Opening moves focus into the panel**, to the first control in it, or to the
|
|
84520
85120
|
* panel itself where it holds none, and closing from inside gives it back to
|
|
@@ -84524,8 +85124,12 @@ export type CustomElementsSolidJs = {
|
|
|
84524
85124
|
* `modal` keeps `Tab` inside the panel while it is open and says so with
|
|
84525
85125
|
* `aria-modal`, for a panel that has to be answered before the page goes on.
|
|
84526
85126
|
* The rest of the page is hidden from screen readers with `aria-hidden` while
|
|
84527
|
-
* it is open, so the virtual cursor stays in the panel too
|
|
84528
|
-
* popover does not trap focus.
|
|
85127
|
+
* it is open, so the virtual cursor stays in the panel too, and the page does
|
|
85128
|
+
* not scroll behind it. Without it the popover does not trap focus.
|
|
85129
|
+
*
|
|
85130
|
+
* A press outside closes the panel and leaves focus where the press put it.
|
|
85131
|
+
* Where it put focus nowhere, as a press on text or on the page's background
|
|
85132
|
+
* does, focus goes back to the trigger.
|
|
84529
85133
|
*
|
|
84530
85134
|
* The panel's name is `label` when you set it. Otherwise it is the first
|
|
84531
85135
|
* heading in the panel, or the elements an `aria-labelledby` on the host names.
|
|
@@ -84541,10 +85145,17 @@ export type CustomElementsSolidJs = {
|
|
|
84541
85145
|
* | Escape | Closes the panel and puts focus back on the trigger. |
|
|
84542
85146
|
* | 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. |
|
|
84543
85147
|
*
|
|
85148
|
+
* The panel opens against the trigger, or against the element `anchor` names,
|
|
85149
|
+
* such as a field beside the button that opens it. `offset` moves it away from
|
|
85150
|
+
* that element, `cross-offset` slides it along the side it is on,
|
|
85151
|
+
* `container-padding` keeps it that far from the window's edges, and
|
|
85152
|
+
* `flip="false"` keeps it on its side where the other side has more room.
|
|
85153
|
+
*
|
|
84544
85154
|
* `arrow` draws a point on the panel's edge facing the trigger. The side the
|
|
84545
|
-
* panel landed on is on the host as `:state(placed-top)` and its kin,
|
|
84546
|
-
*
|
|
84547
|
-
*
|
|
85155
|
+
* panel landed on is on the host as `:state(placed-top)` and its kin, its
|
|
85156
|
+
* alignment along that side as `:state(aligned-start)` or
|
|
85157
|
+
* `:state(aligned-end)`, and the trigger's width is on the panel as
|
|
85158
|
+
* `--floating-anchor-inline-size`, for a panel as wide as its trigger:
|
|
84548
85159
|
*
|
|
84549
85160
|
* ```css
|
|
84550
85161
|
* helix-popover::part(popover) {
|
|
@@ -84556,12 +85167,25 @@ export type CustomElementsSolidJs = {
|
|
|
84556
85167
|
*
|
|
84557
85168
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
84558
85169
|
*
|
|
85170
|
+
* - `anchor`: The element the panel opens against, where that is not the trigger: its
|
|
85171
|
+
* `id` in the same document or shadow root, or the element itself. Left
|
|
85172
|
+
* empty, the panel opens against the trigger, or against the button whose
|
|
85173
|
+
* command opened it.
|
|
84559
85174
|
* - `arrow`: Draws a point on the panel's edge facing the trigger.
|
|
84560
85175
|
*
|
|
84561
85176
|
* Off by default, which is the house style: a panel that opens from its
|
|
84562
85177
|
* trigger already reads as belonging to it.
|
|
85178
|
+
* - `container-padding`/`containerPadding`: How close to the window's edges the panel may come, in pixels, when it
|
|
85179
|
+
* slides, shrinks or moves to the other side to fit. Left unset, it slides
|
|
85180
|
+
* and shrinks to 8 pixels from an edge and moves to the other side only
|
|
85181
|
+
* once it would cross one.
|
|
85182
|
+
* - `cross-offset`/`crossOffset`: How far to slide the panel along the side it is on, in pixels: to the
|
|
85183
|
+
* right on the top or the bottom, and down on the left or the right.
|
|
84563
85184
|
* - `fallback-label`/`fallbackLabel`: The panel's name where nothing else names it: no `label`, no heading in
|
|
84564
85185
|
* the panel, and no `aria-labelledby` on the host.
|
|
85186
|
+
* - `flip`: Whether the panel moves to the other side of the trigger when its own
|
|
85187
|
+
* side has no room. On by default. Write `flip="false"` to keep it on its
|
|
85188
|
+
* side, where it shrinks to fit, as React Aria's `shouldFlip` turns off.
|
|
84565
85189
|
* - `label`: The panel's name, read by screen readers. Left empty, the first heading in
|
|
84566
85190
|
* the panel names it, and then `fallback-label`.
|
|
84567
85191
|
* - `modal`: Keeps `Tab` inside the panel while it is open, marks the panel
|
|
@@ -84659,6 +85283,8 @@ export type CustomElementsSolidJs = {
|
|
|
84659
85283
|
*
|
|
84660
85284
|
* These can be used to apply styling when a component is in a given state.
|
|
84661
85285
|
*
|
|
85286
|
+
* - `aligned-end`: While the panel is aligned to the end of the side it sits on.
|
|
85287
|
+
* - `aligned-start`: While the panel is aligned to the start of the side it sits on.
|
|
84662
85288
|
* - `entering`: From the moment the panel shows until its entrance has finished.
|
|
84663
85289
|
* - `exiting`: From the moment the panel hides until its exit has finished.
|
|
84664
85290
|
* - `open`: While the popover is open.
|
|
@@ -86275,7 +86901,7 @@ export type CustomElementsSolidJs = {
|
|
|
86275
86901
|
* | Down, Enter, Space | Opens the list on the chosen option, or the first. |
|
|
86276
86902
|
* | Up | Opens the list on the chosen option, or the last. |
|
|
86277
86903
|
* | Home, End | Opens the list on the first or the last option. |
|
|
86278
|
-
* | Left, Right | Chooses the option before or after the chosen one without opening, as React Aria's Select does
|
|
86904
|
+
* | 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. |
|
|
86279
86905
|
* | 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. |
|
|
86280
86906
|
*
|
|
86281
86907
|
* In the open list, which is a `Listbox`:
|
|
@@ -88120,12 +88746,21 @@ export type CustomElementsSolidJs = {
|
|
|
88120
88746
|
* sequence is correct in the server's markup, where the root cannot count its
|
|
88121
88747
|
* slotted children.
|
|
88122
88748
|
*
|
|
88749
|
+
* `active` names a step by its `value`. A step with no `value` is named by its
|
|
88750
|
+
* place, counted from 1, so a sequence written without values moves as one
|
|
88751
|
+
* written with them, and `helix-activate` says `1`, `2` and so on. Give every
|
|
88752
|
+
* step a value or none, because a value of `2` and the second place are one
|
|
88753
|
+
* name.
|
|
88754
|
+
*
|
|
88123
88755
|
* `linear` keeps a reader from passing a stage they have not finished, as Ark
|
|
88124
88756
|
* UI's linear steps do: a stage ahead is out of reach, and its button disabled,
|
|
88125
88757
|
* until every stage before it is `complete` or `optional`. Going back is always
|
|
88126
88758
|
* allowed. `next()` and `previous()` move one stage either way, under the
|
|
88127
88759
|
* same rules, for your own buttons. `reset()` goes back to the first stage and
|
|
88128
|
-
* clears every stage's `complete`, as Ark UI's `resetStep` does.
|
|
88760
|
+
* clears every stage's `complete`, as Ark UI's `resetStep` does. A button
|
|
88761
|
+
* anywhere on the page calls them with no script, as Ark UI's previous and
|
|
88762
|
+
* next triggers do: give it `commandfor` with the sequence's `id`, and
|
|
88763
|
+
* `command="--previous"`, `"--next"` or `"--reset"`.
|
|
88129
88764
|
*
|
|
88130
88765
|
* `completion="passed"` marks a stage `complete` once a reader moves past it,
|
|
88131
88766
|
* as Ark UI counts a stage before the current one as completed. Going back
|
|
@@ -88152,18 +88787,21 @@ export type CustomElementsSolidJs = {
|
|
|
88152
88787
|
* button is described by its `complete-label`.
|
|
88153
88788
|
*
|
|
88154
88789
|
* **Keyboard.** Each stage's name is a button and its own tab stop, and Enter
|
|
88155
|
-
* or Space goes to the stage. Set `arrows` and the
|
|
88156
|
-
*
|
|
88157
|
-
* Up and Down a column, Home and End to the first and the last.
|
|
88158
|
-
*
|
|
88159
|
-
*
|
|
88790
|
+
* or Space goes to the stage. Set `arrows` and the names are one tab stop, the
|
|
88791
|
+
* current stage's, and the arrow keys move focus between them: Left and Right
|
|
88792
|
+
* along a row, Up and Down a column, Home and End to the first and the last.
|
|
88793
|
+
* The stop follows focus, so Tab leaves the sequence and Shift+Tab comes back
|
|
88794
|
+
* to the name the reader left. The arrows pass over a disabled stage and one a
|
|
88795
|
+
* linear sequence holds out of reach, and they move focus without going to the
|
|
88796
|
+
* stage.
|
|
88160
88797
|
*
|
|
88161
88798
|
* ## Attributes & Properties
|
|
88162
88799
|
*
|
|
88163
88800
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
88164
88801
|
*
|
|
88165
88802
|
* - `arrows`: Whether the arrow keys move focus between the stages' names, along the
|
|
88166
|
-
* way the steps run. Off by default, so the
|
|
88803
|
+
* way the steps run, and the names are one tab stop. Off by default, so the
|
|
88804
|
+
* arrows keep scrolling the page.
|
|
88167
88805
|
* - `completion`: What marks a stage `complete`.
|
|
88168
88806
|
*
|
|
88169
88807
|
* Absent, you do: each step's `complete` is yours, because a reader who
|
|
@@ -88337,7 +88975,9 @@ export type CustomElementsSolidJs = {
|
|
|
88337
88975
|
* - `disabled`: Whether the stage is disabled, so the user cannot go to it.
|
|
88338
88976
|
* - `optional`: Whether a reader may pass the stage without finishing it, in a sequence
|
|
88339
88977
|
* with `linear`. Ark UI's skippable step.
|
|
88340
|
-
* - `value`: The value the step sends in `helix-select
|
|
88978
|
+
* - `value`: The value the step sends in `helix-select`, and what names the step in its
|
|
88979
|
+
* sequence's `active`. Without one, the sequence names the step by its place,
|
|
88980
|
+
* counted from 1.
|
|
88341
88981
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
88342
88982
|
*
|
|
88343
88983
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -90305,6 +90945,10 @@ export type CustomElementsSolidJs = {
|
|
|
90305
90945
|
* along, so the two writes a consumer would make in sequence do not compose
|
|
90306
90946
|
* into the range they asked for. The platform has this method for that reason
|
|
90307
90947
|
* and so does this.
|
|
90948
|
+
* - `setRangeText(replacement: string, start?: number, end?: number, selectMode?: SelectionMode) => void`: Replaces a range of the text, as the native method does: the selection
|
|
90949
|
+
* where `start` and `end` are left out, and `selectMode` says what is
|
|
90950
|
+
* selected after. It sends no event, as the native method sends none.
|
|
90951
|
+
* - `select() => void`: Selects everything in the field.
|
|
90308
90952
|
* - `focus(options?: FocusOptions) => void`: Puts the caret in the field, as a label pointing at it would.
|
|
90309
90953
|
* - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
|
|
90310
90954
|
*
|
|
@@ -93804,6 +94448,12 @@ export type CustomElementsSolidJs = {
|
|
|
93804
94448
|
* captions, and poster treatment. `Sandbox` takes its preview and `Menu` its
|
|
93805
94449
|
* trigger the same way.
|
|
93806
94450
|
*
|
|
94451
|
+
* **The player is a `Video` or a plain `<video>`.** Either takes `src` and
|
|
94452
|
+
* `poster` from the entry, is named by it, plays on, and answers Shift with N
|
|
94453
|
+
* or P while focused. A plain `<video>` has no previous and next controls
|
|
94454
|
+
* that send `helix-previous` or `helix-next`, so its moves are the entries,
|
|
94455
|
+
* the menu, and your own buttons calling `previous()` and `next()`.
|
|
94456
|
+
*
|
|
93807
94457
|
* **Entries are markup.** React skips properties it would set imperatively
|
|
93808
94458
|
* during hydration, so an array property on a custom element is missing on the
|
|
93809
94459
|
* first paint of a server-rendered page. `using-the-elements.mdx` has the
|
|
@@ -93836,7 +94486,8 @@ export type CustomElementsSolidJs = {
|
|
|
93836
94486
|
*
|
|
93837
94487
|
* **The player is named by the current entry**, and the device's own media
|
|
93838
94488
|
* controls show the entry as the title. A player you gave a `label` keeps
|
|
93839
|
-
* your name, and only the title follows the entry.
|
|
94489
|
+
* your name, and only the title follows the entry. A plain `<video>` is
|
|
94490
|
+
* named through `aria-label`, unless you wrote one.
|
|
93840
94491
|
*
|
|
93841
94492
|
* **Keyboard.** The entries take one stop in the tab order: the entry you
|
|
93842
94493
|
* last focused, or the current entry before you have focused one. Enter or
|
|
@@ -94531,6 +95182,11 @@ export type CustomElementsSolidJs = {
|
|
|
94531
95182
|
* commas. Their rows carry `aria-disabled`, the keys and typing pass over
|
|
94532
95183
|
* them, and a press, Space, or Control with A does not select them.
|
|
94533
95184
|
*
|
|
95185
|
+
* **Rows a stylesheet can tell apart.** A chosen row carries `data-selected`,
|
|
95186
|
+
* a disabled one `data-disabled`, as React Aria's rows do, and the row the
|
|
95187
|
+
* keys are on, which holds the tab stop, `data-active`, whether or not the
|
|
95188
|
+
* list has focus.
|
|
95189
|
+
*
|
|
94534
95190
|
* **Loading more.** `helix-range-change` fires as the items on screen change,
|
|
94535
95191
|
* and `range` holds them. `helix-load-more` fires once a reader is within one
|
|
94536
95192
|
* screen of the end, once for each length of the set: add to `items` and it can
|