@fusion.dev/helix-headless 0.147.0 → 0.148.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 +4512 -790
- package/dist/accordion/item/accordion-item.d.ts +5 -2
- package/dist/accordion/item/accordion-item.js +11 -7
- package/dist/accordion/root/accordion-root.js +4 -6
- package/dist/announcement/root/announcement-root.d.ts +56 -5
- package/dist/announcement/root/announcement-root.js +124 -21
- package/dist/area-chart/root/area-chart-root.js +3 -4
- package/dist/badge/count.d.ts +14 -0
- package/dist/badge/count.js +20 -0
- package/dist/badge/root/badge-root.js +8 -22
- package/dist/blockquote/root/blockquote-root.d.ts +66 -8
- package/dist/blockquote/root/blockquote-root.js +85 -8
- package/dist/breadcrumbs/breadcrumb/breadcrumb.js +2 -2
- package/dist/button-group/arrows.d.ts +14 -0
- package/dist/button-group/arrows.js +10 -0
- package/dist/button-group/root/button-group-root.d.ts +141 -3
- package/dist/button-group/root/button-group-root.js +142 -2
- package/dist/canvas/edge-pan.d.ts +61 -0
- package/dist/canvas/edge-pan.js +63 -0
- package/dist/canvas/node/canvas-node.d.ts +12 -2
- package/dist/canvas/node/canvas-node.js +6 -2
- package/dist/canvas/root/canvas-document.d.ts +10 -0
- package/dist/canvas/root/canvas-document.js +1 -0
- package/dist/canvas/root/canvas-root.d.ts +107 -5
- package/dist/canvas/root/canvas-root.js +140 -36
- package/dist/canvas/snap.d.ts +42 -0
- package/dist/canvas/snap.js +32 -0
- package/dist/carousel/root/carousel-root.d.ts +4 -3
- package/dist/carousel/root/carousel-root.js +2 -6
- package/dist/chat/root/chat-root.d.ts +13 -3
- package/dist/chat/root/chat-root.js +2 -6
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +13 -0
- package/dist/checkbox-group/root/checkbox-group-root.js +18 -10
- package/dist/checkbox-group/select-all.d.ts +11 -0
- package/dist/checkbox-group/select-all.js +5 -0
- package/dist/code-block/root/code-block-root.d.ts +8 -6
- package/dist/code-block/root/code-block-root.js +4 -3
- package/dist/color-picker/root/color-picker-root.js +6 -12
- package/dist/color-picker/wheel.d.ts +11 -0
- package/dist/color-picker/wheel.js +9 -0
- package/dist/combobox/root/combobox-root.d.ts +70 -11
- package/dist/combobox/root/combobox-root.js +68 -18
- package/dist/command/root/command-root.d.ts +4 -3
- package/dist/data-table/root/data-table-root.js +17 -44
- package/dist/description-list/item/description-list-item.d.ts +4 -0
- package/dist/description-list/item/description-list-item.js +7 -1
- package/dist/divider/root/divider-root.d.ts +45 -16
- package/dist/divider/root/divider-root.js +28 -4
- package/dist/drilldown/item/drilldown-item.js +3 -4
- package/dist/element-events.generated.js +1 -0
- package/dist/empty/root/empty-root.d.ts +17 -3
- package/dist/empty/root/empty-root.js +29 -5
- package/dist/file-input/root/file-input-root.js +3 -4
- package/dist/file-input/status.js +2 -1
- package/dist/filter-input/chip/filter-chip.js +2 -3
- package/dist/format-date/fields.d.ts +20 -0
- package/dist/format-date/fields.js +14 -0
- package/dist/format-date/options.d.ts +2 -1
- package/dist/format-date/options.js +9 -38
- package/dist/format-date/root/format-date-root.d.ts +35 -3
- package/dist/format-date/root/format-date-root.js +24 -32
- package/dist/graph/root/graph-root.d.ts +23 -5
- package/dist/graph/root/graph-root.js +17 -20
- package/dist/heatmap/root/heatmap-root.d.ts +12 -0
- package/dist/heatmap/root/heatmap-root.js +26 -11
- package/dist/image/root/image-root.d.ts +11 -0
- package/dist/kbd/root/kbd-root.js +1 -2
- package/dist/legend/root/legend-root.js +4 -17
- package/dist/list/root/list-root.js +8 -22
- package/dist/listbox/root/listbox-root.d.ts +119 -24
- package/dist/listbox/root/listbox-root.js +130 -132
- package/dist/map/marker/map-marker.d.ts +2 -1
- package/dist/map/root/map-root.d.ts +40 -2
- package/dist/map/root/map-root.js +64 -23
- package/dist/megamenu/root/megamenu-root.js +4 -11
- package/dist/menu/root/menu-root.d.ts +2 -2
- package/dist/navigation/root/navigation-root.js +5 -8
- package/dist/notifications/group/notification-group.d.ts +8 -1
- package/dist/notifications/group/notification-group.js +12 -6
- package/dist/notifications/notification/notification.d.ts +12 -1
- package/dist/notifications/notification/notification.js +3 -1
- package/dist/notifications/root/notifications-root.d.ts +41 -5
- package/dist/notifications/root/notifications-root.js +27 -7
- package/dist/object-inspector/root/object-inspector-root.d.ts +5 -1
- package/dist/object-inspector/root/object-inspector-root.js +21 -11
- package/dist/pagination/size/pagination-size.d.ts +1 -0
- package/dist/pagination/size/pagination-size.js +1 -1
- package/dist/pin-input/code.d.ts +23 -0
- package/dist/pin-input/code.js +25 -0
- package/dist/pin-input/root/pin-input-root.js +9 -23
- package/dist/qr-code/root/qr-code-root.d.ts +14 -3
- package/dist/qr-code/root/qr-code-root.js +19 -5
- package/dist/scatter-chart/measures.d.ts +22 -0
- package/dist/scatter-chart/measures.js +11 -0
- package/dist/scatter-chart/root/scatter-chart-root.d.ts +2 -6
- package/dist/scatter-chart/root/scatter-chart-root.js +6 -19
- package/dist/select/root/select-root.d.ts +56 -8
- package/dist/select/root/select-root.js +33 -9
- package/dist/speed-dial/group/speed-dial-group.d.ts +48 -0
- package/dist/speed-dial/group/speed-dial-group.js +43 -0
- package/dist/speed-dial/index.d.ts +1 -0
- package/dist/speed-dial/index.js +1 -0
- package/dist/speed-dial/item/speed-dial-item.d.ts +26 -1
- package/dist/speed-dial/item/speed-dial-item.js +41 -3
- package/dist/speed-dial/long-press.d.ts +50 -0
- package/dist/speed-dial/long-press.js +48 -0
- package/dist/speed-dial/root/speed-dial-root.d.ts +80 -1
- package/dist/speed-dial/root/speed-dial-root.js +114 -5
- package/dist/splitter/root/splitter-root.d.ts +7 -3
- package/dist/splitter/root/splitter-root.js +16 -3
- package/dist/table/cell/table-cell.d.ts +8 -1
- package/dist/table/cell/table-cell.js +6 -2
- package/dist/table/grid-controller.d.ts +117 -0
- package/dist/table/grid-controller.js +293 -0
- package/dist/table/root/table-root.d.ts +47 -3
- package/dist/table/root/table-root.js +81 -24
- package/dist/table/row/table-row.d.ts +13 -1
- package/dist/table/row/table-row.js +20 -6
- package/dist/tag/group/tag-group.js +6 -15
- package/dist/time-picker/root/time-picker-root.d.ts +1 -0
- package/dist/time-picker/root/time-picker-root.js +3 -0
- package/dist/toast/item/toast-item.d.ts +6 -3
- package/dist/toast/item/toast-item.js +1 -0
- package/dist/toast/root/toast-root.d.ts +13 -1
- package/dist/toast/root/toast-root.js +20 -14
- package/dist/toggle/group/toggle-group.js +3 -5
- package/dist/toolbar/root/toolbar-root.d.ts +31 -0
- package/dist/toolbar/root/toolbar-root.js +39 -8
- package/dist/tooltip/root/tooltip-root.js +1 -2
- package/dist/video/root/video-root.d.ts +11 -0
- package/dist/video/root/video-root.js +15 -1
- package/dist/virtual-list/root/virtual-list-root.js +6 -18
- package/lint.json +1 -1
- package/package.json +5 -5
- package/types/jsx.d.ts +2005 -266
- package/types/svelte.d.ts +1 -0
- package/types/vue.d.ts +338 -62
- package/dist/kbd/keys.d.ts +0 -29
- package/dist/kbd/keys.js +0 -52
- package/dist/tooltip/focus-target.d.ts +0 -6
- package/dist/tooltip/focus-target.js +0 -9
package/types/jsx.d.ts
CHANGED
|
@@ -148,6 +148,7 @@ import type {
|
|
|
148
148
|
HelixHeadlessSlider,
|
|
149
149
|
HelixHeadlessSparkline,
|
|
150
150
|
HelixHeadlessSpeedDial,
|
|
151
|
+
HelixHeadlessSpeedDialGroup,
|
|
151
152
|
HelixHeadlessSpeedDialItem,
|
|
152
153
|
HelixHeadlessSplitter,
|
|
153
154
|
HelixHeadlessStat,
|
|
@@ -780,6 +781,22 @@ export type HelixHeadlessAnnouncementProps = {
|
|
|
780
781
|
Read once when the announcement is first rendered, as `Toast` reads its
|
|
781
782
|
own. The clock stops while the pointer or focus is on the announcement. */
|
|
782
783
|
duration?: (HelixHeadlessAnnouncement["duration"]) | undefined;
|
|
784
|
+
/** The key that moves focus to the announcement's first control, and back
|
|
785
|
+
to where it was, written as keys joined by `+`, such as `F6` or `Alt+A`.
|
|
786
|
+
|
|
787
|
+
F6 by default, the key React Aria's regions answer to. Empty turns it
|
|
788
|
+
off. With several announcements, the first one in the page takes focus. */
|
|
789
|
+
hotkey?: (HelixHeadlessAnnouncement["hotkey"]) | undefined;
|
|
790
|
+
/** The name of the announcement's region, which screen readers list among
|
|
791
|
+
the page's landmarks. Translate it with the rest of your interface.
|
|
792
|
+
|
|
793
|
+
Empty leaves the announcement no region. */
|
|
794
|
+
label?: (HelixHeadlessAnnouncement["label"]) | undefined;
|
|
795
|
+
/** Whether the announcement waits its turn behind the queued announcements
|
|
796
|
+
before it in the same parent, showing when the last of them is removed.
|
|
797
|
+
|
|
798
|
+
Off by default, so every announcement on a page shows at once. */
|
|
799
|
+
queued?: (HelixHeadlessAnnouncement["queued"]) | undefined;
|
|
783
800
|
/** The band's color.
|
|
784
801
|
|
|
785
802
|
Paint only: unlike `Callout`, no value here draws a mark, changes the label,
|
|
@@ -831,6 +848,22 @@ export type HelixHeadlessAnnouncementSolidJsProps = {
|
|
|
831
848
|
Read once when the announcement is first rendered, as `Toast` reads its
|
|
832
849
|
own. The clock stops while the pointer or focus is on the announcement. */
|
|
833
850
|
"prop:duration"?: (HelixHeadlessAnnouncement["duration"]) | undefined;
|
|
851
|
+
/** The key that moves focus to the announcement's first control, and back
|
|
852
|
+
to where it was, written as keys joined by `+`, such as `F6` or `Alt+A`.
|
|
853
|
+
|
|
854
|
+
F6 by default, the key React Aria's regions answer to. Empty turns it
|
|
855
|
+
off. With several announcements, the first one in the page takes focus. */
|
|
856
|
+
"prop:hotkey"?: (HelixHeadlessAnnouncement["hotkey"]) | undefined;
|
|
857
|
+
/** The name of the announcement's region, which screen readers list among
|
|
858
|
+
the page's landmarks. Translate it with the rest of your interface.
|
|
859
|
+
|
|
860
|
+
Empty leaves the announcement no region. */
|
|
861
|
+
"prop:label"?: (HelixHeadlessAnnouncement["label"]) | undefined;
|
|
862
|
+
/** Whether the announcement waits its turn behind the queued announcements
|
|
863
|
+
before it in the same parent, showing when the last of them is removed.
|
|
864
|
+
|
|
865
|
+
Off by default, so every announcement on a page shows at once. */
|
|
866
|
+
"prop:queued"?: (HelixHeadlessAnnouncement["queued"]) | undefined;
|
|
834
867
|
/** The band's color.
|
|
835
868
|
|
|
836
869
|
Paint only: unlike `Callout`, no value here draws a mark, changes the label,
|
|
@@ -1707,13 +1740,35 @@ legend hid is not counted. */
|
|
|
1707
1740
|
};
|
|
1708
1741
|
|
|
1709
1742
|
export type HelixHeadlessBlockquoteProps = {
|
|
1710
|
-
/**
|
|
1743
|
+
/** Who said it, and where, as words, such as "Maria Lopez, operations
|
|
1744
|
+
manager". The `attribution` slot replaces them, for markup such as a link.
|
|
1745
|
+
|
|
1746
|
+
Words are served with the figure they name, where a server cannot see a
|
|
1747
|
+
slotted attribution. */
|
|
1748
|
+
attribution?: (HelixHeadlessBlockquote["attribution"]) | undefined;
|
|
1749
|
+
/** The URL of the source the passage came from. Who said it goes in
|
|
1750
|
+
`attribution`: a `cite` with words in it warns once, with the runtime kind
|
|
1751
|
+
`cite-not-url`. */
|
|
1711
1752
|
cite?: (HelixHeadlessBlockquote["cite"]) | undefined;
|
|
1753
|
+
/** Whether to draw an opening quotation mark before the passage, in the
|
|
1754
|
+
element's language. Leave the marks out of the text. */
|
|
1755
|
+
marks?: (HelixHeadlessBlockquote["marks"]) | undefined;
|
|
1712
1756
|
};
|
|
1713
1757
|
|
|
1714
1758
|
export type HelixHeadlessBlockquoteSolidJsProps = {
|
|
1715
|
-
/**
|
|
1759
|
+
/** Who said it, and where, as words, such as "Maria Lopez, operations
|
|
1760
|
+
manager". The `attribution` slot replaces them, for markup such as a link.
|
|
1761
|
+
|
|
1762
|
+
Words are served with the figure they name, where a server cannot see a
|
|
1763
|
+
slotted attribution. */
|
|
1764
|
+
"prop:attribution"?: (HelixHeadlessBlockquote["attribution"]) | undefined;
|
|
1765
|
+
/** The URL of the source the passage came from. Who said it goes in
|
|
1766
|
+
`attribution`: a `cite` with words in it warns once, with the runtime kind
|
|
1767
|
+
`cite-not-url`. */
|
|
1716
1768
|
"prop:cite"?: (HelixHeadlessBlockquote["cite"]) | undefined;
|
|
1769
|
+
/** Whether to draw an opening quotation mark before the passage, in the
|
|
1770
|
+
element's language. Leave the marks out of the text. */
|
|
1771
|
+
"prop:marks"?: (HelixHeadlessBlockquote["marks"]) | undefined;
|
|
1717
1772
|
|
|
1718
1773
|
/** Set the innerHTML of the element */
|
|
1719
1774
|
innerHTML?: (string) | undefined;
|
|
@@ -1841,6 +1896,15 @@ attribute would put the whole path into the markup twice. */
|
|
|
1841
1896
|
textContent?: (string | number) | undefined;
|
|
1842
1897
|
};
|
|
1843
1898
|
|
|
1899
|
+
/** `HelixHeadlessButtonGroup` component event */
|
|
1900
|
+
export type HelixHeadlessButtonGroupElementEvent<E = Event> = TypedEvent<
|
|
1901
|
+
HelixHeadlessButtonGroup,
|
|
1902
|
+
E
|
|
1903
|
+
>;
|
|
1904
|
+
/** `helix-before-change` event type */
|
|
1905
|
+
export type HelixHeadlessButtonGroupHelixBeforeChangeElementEvent =
|
|
1906
|
+
HelixHeadlessButtonGroupElementEvent<HelixBeforeChangeEvent>;
|
|
1907
|
+
|
|
1844
1908
|
export type HelixHeadlessButtonGroupProps = {
|
|
1845
1909
|
/** The group's name, read by screen readers.
|
|
1846
1910
|
|
|
@@ -1865,6 +1929,31 @@ buttons sharing edges as one shape, and a wrapped row carries the corners of
|
|
|
1865
1929
|
a first row into a second. Stacked, the same three keep one shape and one
|
|
1866
1930
|
column. */
|
|
1867
1931
|
orientation?: (HelixHeadlessButtonGroup["orientation"]) | undefined;
|
|
1932
|
+
/** Whether the buttons stay pressed: `single` keeps one pressed at a time and
|
|
1933
|
+
`multiple` any number. Unset, they are action buttons, each its own tab
|
|
1934
|
+
stop, as before.
|
|
1935
|
+
|
|
1936
|
+
Optional, so the attribute is absent until a consumer writes it. */
|
|
1937
|
+
"selection-mode"?: (HelixHeadlessButtonGroup["selectionMode"]) | undefined;
|
|
1938
|
+
/** Whether the buttons stay pressed: `single` keeps one pressed at a time and
|
|
1939
|
+
`multiple` any number. Unset, they are action buttons, each its own tab
|
|
1940
|
+
stop, as before.
|
|
1941
|
+
|
|
1942
|
+
Optional, so the attribute is absent until a consumer writes it. */
|
|
1943
|
+
selectionMode?: (HelixHeadlessButtonGroup["selectionMode"]) | undefined;
|
|
1944
|
+
/** The values of the pressed buttons, comma separated, in a selection mode.
|
|
1945
|
+
A button's own `value` names it, so a value holds no comma.
|
|
1946
|
+
|
|
1947
|
+
The attribute is the seed, and a press changes the property, which does
|
|
1948
|
+
not reflect, as a native control's `value` does not. */
|
|
1949
|
+
value?: (HelixHeadlessButtonGroup["value"]) | undefined;
|
|
1950
|
+
|
|
1951
|
+
/** Fired after a press changes `value`, in a selection mode. */
|
|
1952
|
+
onchange?: ((e: HelixHeadlessButtonGroupElementEvent) => void) | undefined;
|
|
1953
|
+
/** Fired before a press changes `value`, with the value it would leave in `detail.value`. Cancelable: call `preventDefault()` to keep the buttons as they are. */
|
|
1954
|
+
"onhelix-before-change"?: ((
|
|
1955
|
+
e: HelixHeadlessButtonGroupHelixBeforeChangeElementEvent,
|
|
1956
|
+
) => void) | undefined;
|
|
1868
1957
|
};
|
|
1869
1958
|
|
|
1870
1959
|
export type HelixHeadlessButtonGroupSolidJsProps = {
|
|
@@ -1891,6 +1980,30 @@ buttons sharing edges as one shape, and a wrapped row carries the corners of
|
|
|
1891
1980
|
a first row into a second. Stacked, the same three keep one shape and one
|
|
1892
1981
|
column. */
|
|
1893
1982
|
"prop:orientation"?: (HelixHeadlessButtonGroup["orientation"]) | undefined;
|
|
1983
|
+
/** Whether the buttons stay pressed: `single` keeps one pressed at a time and
|
|
1984
|
+
`multiple` any number. Unset, they are action buttons, each its own tab
|
|
1985
|
+
stop, as before.
|
|
1986
|
+
|
|
1987
|
+
Optional, so the attribute is absent until a consumer writes it. */
|
|
1988
|
+
"attr:selection-mode"?: (HelixHeadlessButtonGroup["selectionMode"]) | undefined;
|
|
1989
|
+
/** Whether the buttons stay pressed: `single` keeps one pressed at a time and
|
|
1990
|
+
`multiple` any number. Unset, they are action buttons, each its own tab
|
|
1991
|
+
stop, as before.
|
|
1992
|
+
|
|
1993
|
+
Optional, so the attribute is absent until a consumer writes it. */
|
|
1994
|
+
"prop:selectionMode"?: (HelixHeadlessButtonGroup["selectionMode"]) | undefined;
|
|
1995
|
+
/** The values of the pressed buttons, comma separated, in a selection mode.
|
|
1996
|
+
A button's own `value` names it, so a value holds no comma.
|
|
1997
|
+
|
|
1998
|
+
The attribute is the seed, and a press changes the property, which does
|
|
1999
|
+
not reflect, as a native control's `value` does not. */
|
|
2000
|
+
"prop:value"?: (HelixHeadlessButtonGroup["value"]) | undefined;
|
|
2001
|
+
/** Fired after a press changes `value`, in a selection mode. */
|
|
2002
|
+
"on:change"?: ((e: HelixHeadlessButtonGroupElementEvent) => void) | undefined;
|
|
2003
|
+
/** Fired before a press changes `value`, with the value it would leave in `detail.value`. Cancelable: call `preventDefault()` to keep the buttons as they are. */
|
|
2004
|
+
"on:helix-before-change"?: ((
|
|
2005
|
+
e: HelixHeadlessButtonGroupHelixBeforeChangeElementEvent,
|
|
2006
|
+
) => void) | undefined;
|
|
1894
2007
|
|
|
1895
2008
|
/** Set the innerHTML of the element */
|
|
1896
2009
|
innerHTML?: (string) | undefined;
|
|
@@ -2749,6 +2862,20 @@ as the list.
|
|
|
2749
2862
|
The list is joined the way the page's language joins one, "Second and
|
|
2750
2863
|
Third", rather than with a comma this component chose. */
|
|
2751
2864
|
leadsToLabel?: (HelixHeadlessCanvas["leadsToLabel"]) | undefined;
|
|
2865
|
+
/** What screen readers hear after a key moves a card, with `{name}` for the
|
|
2866
|
+
card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
2867
|
+
|
|
2868
|
+
**A move a reader cannot see has to be said.** Shift with an arrow moved
|
|
2869
|
+
the card and said nothing, so a reader moving one by keys could not tell
|
|
2870
|
+
whether it had moved, or how far. */
|
|
2871
|
+
"moved-label"?: (HelixHeadlessCanvas["movedLabel"]) | undefined;
|
|
2872
|
+
/** What screen readers hear after a key moves a card, with `{name}` for the
|
|
2873
|
+
card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
2874
|
+
|
|
2875
|
+
**A move a reader cannot see has to be said.** Shift with an arrow moved
|
|
2876
|
+
the card and said nothing, so a reader moving one by keys could not tell
|
|
2877
|
+
whether it had moved, or how far. */
|
|
2878
|
+
movedLabel?: (HelixHeadlessCanvas["movedLabel"]) | undefined;
|
|
2752
2879
|
/** The order the arrow keys and screen readers move through the cards:
|
|
2753
2880
|
`spatial` or `edges`.
|
|
2754
2881
|
|
|
@@ -2789,6 +2916,14 @@ walk the cards. */
|
|
|
2789
2916
|
/** The text announced when a connection's end is picked up, with `{from}` and
|
|
2790
2917
|
`{to}`. */
|
|
2791
2918
|
reconnectingLabel?: (HelixHeadlessCanvas["reconnectingLabel"]) | undefined;
|
|
2919
|
+
/** What screen readers hear after a key resizes a card, with `{name}` for the
|
|
2920
|
+
card and `{width}` and `{height}` for its new size, in the document's
|
|
2921
|
+
units. */
|
|
2922
|
+
"resized-label"?: (HelixHeadlessCanvas["resizedLabel"]) | undefined;
|
|
2923
|
+
/** What screen readers hear after a key resizes a card, with `{name}` for the
|
|
2924
|
+
card and `{width}` and `{height}` for its new size, in the document's
|
|
2925
|
+
units. */
|
|
2926
|
+
resizedLabel?: (HelixHeadlessCanvas["resizedLabel"]) | undefined;
|
|
2792
2927
|
/** The names of the selected cards and connections, comma separated. Empty
|
|
2793
2928
|
when nothing is selected.
|
|
2794
2929
|
|
|
@@ -2809,6 +2944,43 @@ on its board across cards and connections both, and may not hold a comma.
|
|
|
2809
2944
|
|
|
2810
2945
|
Written to select from outside, and read to act on the selection. */
|
|
2811
2946
|
selected?: (HelixHeadlessCanvas["selected"]) | undefined;
|
|
2947
|
+
/** What a selected card or connection adds to what screen readers hear on
|
|
2948
|
+
it, before its tone and its connections. Empty adds nothing.
|
|
2949
|
+
|
|
2950
|
+
A card is an article and a connection a button, and neither has a selected
|
|
2951
|
+
state for `aria-selected` to carry, so the state is said in words. */
|
|
2952
|
+
"selected-label"?: (HelixHeadlessCanvas["selectedLabel"]) | undefined;
|
|
2953
|
+
/** What a selected card or connection adds to what screen readers hear on
|
|
2954
|
+
it, before its tone and its connections. Empty adds nothing.
|
|
2955
|
+
|
|
2956
|
+
A card is an article and a connection a button, and neither has a selected
|
|
2957
|
+
state for `aria-selected` to carry, so the state is said in words. */
|
|
2958
|
+
selectedLabel?: (HelixHeadlessCanvas["selectedLabel"]) | undefined;
|
|
2959
|
+
/** What screen readers hear after the selection grows or shrinks, with
|
|
2960
|
+
`{count}` for how many cards and connections are selected: by Space, a
|
|
2961
|
+
click with Shift, Command or Control, Command or Control with A, a box
|
|
2962
|
+
drawn across the board, or Escape.
|
|
2963
|
+
|
|
2964
|
+
A selection of one made by arriving on a card or clicking it is not said,
|
|
2965
|
+
since the card is. */
|
|
2966
|
+
"selection-label"?: (HelixHeadlessCanvas["selectionLabel"]) | undefined;
|
|
2967
|
+
/** What screen readers hear after the selection grows or shrinks, with
|
|
2968
|
+
`{count}` for how many cards and connections are selected: by Space, a
|
|
2969
|
+
click with Shift, Command or Control, Command or Control with A, a box
|
|
2970
|
+
drawn across the board, or Escape.
|
|
2971
|
+
|
|
2972
|
+
A selection of one made by arriving on a card or clicking it is not said,
|
|
2973
|
+
since the card is. */
|
|
2974
|
+
selectionLabel?: (HelixHeadlessCanvas["selectionLabel"]) | undefined;
|
|
2975
|
+
/** Snaps the cards a reader moves or resizes to a multiple of this many of the
|
|
2976
|
+
document's units, such as `32` to land on the lines `grid` draws.
|
|
2977
|
+
|
|
2978
|
+
**A drag lets go on the nearest line and a key goes to the next one.**
|
|
2979
|
+
Shift with an arrow moves a card to the next line that way, rather than
|
|
2980
|
+
by its step of 16, and Alt with an arrow moves its bottom right corner
|
|
2981
|
+
the same way. A group moves with what it carries, so a card inside one
|
|
2982
|
+
keeps its place in it. Absent, cards land where they are let go. */
|
|
2983
|
+
snap?: (HelixHeadlessCanvas["snap"]) | undefined;
|
|
2812
2984
|
/** The text announced when a connection is stopped before it is requested. */
|
|
2813
2985
|
"stopped-label"?: (HelixHeadlessCanvas["stoppedLabel"]) | undefined;
|
|
2814
2986
|
/** The text announced when a connection is stopped before it is requested. */
|
|
@@ -2831,6 +3003,12 @@ red is "blocked" on one board and "urgent" on the next. A reader who can
|
|
|
2831
3003
|
see the board is told by the color; this is how a reader who cannot is
|
|
2832
3004
|
told the same. A tone left out is not read. */
|
|
2833
3005
|
toneLabels?: (HelixHeadlessCanvas["toneLabels"]) | undefined;
|
|
3006
|
+
/** What screen readers hear after a zoom button or key, with `{zoom}` for the
|
|
3007
|
+
zoom as a percentage, written the way the page's language writes one. */
|
|
3008
|
+
"zoomed-label"?: (HelixHeadlessCanvas["zoomedLabel"]) | undefined;
|
|
3009
|
+
/** What screen readers hear after a zoom button or key, with `{zoom}` for the
|
|
3010
|
+
zoom as a percentage, written the way the page's language writes one. */
|
|
3011
|
+
zoomedLabel?: (HelixHeadlessCanvas["zoomedLabel"]) | undefined;
|
|
2834
3012
|
/** The hint shown when a surface waiting to be pressed is scrolled or
|
|
2835
3013
|
swiped over, with `gestures="activate"`. Absent is the family's own. */
|
|
2836
3014
|
"activate-hint-label"?: (HelixHeadlessCanvas["activateHintLabel"]) | undefined;
|
|
@@ -3113,6 +3291,20 @@ as the list.
|
|
|
3113
3291
|
The list is joined the way the page's language joins one, "Second and
|
|
3114
3292
|
Third", rather than with a comma this component chose. */
|
|
3115
3293
|
"prop:leadsToLabel"?: (HelixHeadlessCanvas["leadsToLabel"]) | undefined;
|
|
3294
|
+
/** What screen readers hear after a key moves a card, with `{name}` for the
|
|
3295
|
+
card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
3296
|
+
|
|
3297
|
+
**A move a reader cannot see has to be said.** Shift with an arrow moved
|
|
3298
|
+
the card and said nothing, so a reader moving one by keys could not tell
|
|
3299
|
+
whether it had moved, or how far. */
|
|
3300
|
+
"attr:moved-label"?: (HelixHeadlessCanvas["movedLabel"]) | undefined;
|
|
3301
|
+
/** What screen readers hear after a key moves a card, with `{name}` for the
|
|
3302
|
+
card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
3303
|
+
|
|
3304
|
+
**A move a reader cannot see has to be said.** Shift with an arrow moved
|
|
3305
|
+
the card and said nothing, so a reader moving one by keys could not tell
|
|
3306
|
+
whether it had moved, or how far. */
|
|
3307
|
+
"prop:movedLabel"?: (HelixHeadlessCanvas["movedLabel"]) | undefined;
|
|
3116
3308
|
/** The order the arrow keys and screen readers move through the cards:
|
|
3117
3309
|
`spatial` or `edges`.
|
|
3118
3310
|
|
|
@@ -3153,6 +3345,14 @@ walk the cards. */
|
|
|
3153
3345
|
/** The text announced when a connection's end is picked up, with `{from}` and
|
|
3154
3346
|
`{to}`. */
|
|
3155
3347
|
"prop:reconnectingLabel"?: (HelixHeadlessCanvas["reconnectingLabel"]) | undefined;
|
|
3348
|
+
/** What screen readers hear after a key resizes a card, with `{name}` for the
|
|
3349
|
+
card and `{width}` and `{height}` for its new size, in the document's
|
|
3350
|
+
units. */
|
|
3351
|
+
"attr:resized-label"?: (HelixHeadlessCanvas["resizedLabel"]) | undefined;
|
|
3352
|
+
/** What screen readers hear after a key resizes a card, with `{name}` for the
|
|
3353
|
+
card and `{width}` and `{height}` for its new size, in the document's
|
|
3354
|
+
units. */
|
|
3355
|
+
"prop:resizedLabel"?: (HelixHeadlessCanvas["resizedLabel"]) | undefined;
|
|
3156
3356
|
/** The names of the selected cards and connections, comma separated. Empty
|
|
3157
3357
|
when nothing is selected.
|
|
3158
3358
|
|
|
@@ -3173,6 +3373,43 @@ on its board across cards and connections both, and may not hold a comma.
|
|
|
3173
3373
|
|
|
3174
3374
|
Written to select from outside, and read to act on the selection. */
|
|
3175
3375
|
"prop:selected"?: (HelixHeadlessCanvas["selected"]) | undefined;
|
|
3376
|
+
/** What a selected card or connection adds to what screen readers hear on
|
|
3377
|
+
it, before its tone and its connections. Empty adds nothing.
|
|
3378
|
+
|
|
3379
|
+
A card is an article and a connection a button, and neither has a selected
|
|
3380
|
+
state for `aria-selected` to carry, so the state is said in words. */
|
|
3381
|
+
"attr:selected-label"?: (HelixHeadlessCanvas["selectedLabel"]) | undefined;
|
|
3382
|
+
/** What a selected card or connection adds to what screen readers hear on
|
|
3383
|
+
it, before its tone and its connections. Empty adds nothing.
|
|
3384
|
+
|
|
3385
|
+
A card is an article and a connection a button, and neither has a selected
|
|
3386
|
+
state for `aria-selected` to carry, so the state is said in words. */
|
|
3387
|
+
"prop:selectedLabel"?: (HelixHeadlessCanvas["selectedLabel"]) | undefined;
|
|
3388
|
+
/** What screen readers hear after the selection grows or shrinks, with
|
|
3389
|
+
`{count}` for how many cards and connections are selected: by Space, a
|
|
3390
|
+
click with Shift, Command or Control, Command or Control with A, a box
|
|
3391
|
+
drawn across the board, or Escape.
|
|
3392
|
+
|
|
3393
|
+
A selection of one made by arriving on a card or clicking it is not said,
|
|
3394
|
+
since the card is. */
|
|
3395
|
+
"attr:selection-label"?: (HelixHeadlessCanvas["selectionLabel"]) | undefined;
|
|
3396
|
+
/** What screen readers hear after the selection grows or shrinks, with
|
|
3397
|
+
`{count}` for how many cards and connections are selected: by Space, a
|
|
3398
|
+
click with Shift, Command or Control, Command or Control with A, a box
|
|
3399
|
+
drawn across the board, or Escape.
|
|
3400
|
+
|
|
3401
|
+
A selection of one made by arriving on a card or clicking it is not said,
|
|
3402
|
+
since the card is. */
|
|
3403
|
+
"prop:selectionLabel"?: (HelixHeadlessCanvas["selectionLabel"]) | undefined;
|
|
3404
|
+
/** Snaps the cards a reader moves or resizes to a multiple of this many of the
|
|
3405
|
+
document's units, such as `32` to land on the lines `grid` draws.
|
|
3406
|
+
|
|
3407
|
+
**A drag lets go on the nearest line and a key goes to the next one.**
|
|
3408
|
+
Shift with an arrow moves a card to the next line that way, rather than
|
|
3409
|
+
by its step of 16, and Alt with an arrow moves its bottom right corner
|
|
3410
|
+
the same way. A group moves with what it carries, so a card inside one
|
|
3411
|
+
keeps its place in it. Absent, cards land where they are let go. */
|
|
3412
|
+
"prop:snap"?: (HelixHeadlessCanvas["snap"]) | undefined;
|
|
3176
3413
|
/** The text announced when a connection is stopped before it is requested. */
|
|
3177
3414
|
"attr:stopped-label"?: (HelixHeadlessCanvas["stoppedLabel"]) | undefined;
|
|
3178
3415
|
/** The text announced when a connection is stopped before it is requested. */
|
|
@@ -3195,6 +3432,12 @@ red is "blocked" on one board and "urgent" on the next. A reader who can
|
|
|
3195
3432
|
see the board is told by the color; this is how a reader who cannot is
|
|
3196
3433
|
told the same. A tone left out is not read. */
|
|
3197
3434
|
"prop:toneLabels"?: (HelixHeadlessCanvas["toneLabels"]) | undefined;
|
|
3435
|
+
/** What screen readers hear after a zoom button or key, with `{zoom}` for the
|
|
3436
|
+
zoom as a percentage, written the way the page's language writes one. */
|
|
3437
|
+
"attr:zoomed-label"?: (HelixHeadlessCanvas["zoomedLabel"]) | undefined;
|
|
3438
|
+
/** What screen readers hear after a zoom button or key, with `{zoom}` for the
|
|
3439
|
+
zoom as a percentage, written the way the page's language writes one. */
|
|
3440
|
+
"prop:zoomedLabel"?: (HelixHeadlessCanvas["zoomedLabel"]) | undefined;
|
|
3198
3441
|
/** The hint shown when a surface waiting to be pressed is scrolled or
|
|
3199
3442
|
swiped over, with `gestures="activate"`. Absent is the family's own. */
|
|
3200
3443
|
"attr:activate-hint-label"?: (HelixHeadlessCanvas["activateHintLabel"]) | undefined;
|
|
@@ -5108,16 +5351,18 @@ block lays out. Not for a diff, whose files each scroll on their own. */
|
|
|
5108
5351
|
"expand-label"?: (HelixHeadlessCodeBlock["expandLabel"]) | undefined;
|
|
5109
5352
|
/** The expand button's words while the cap hides lines. */
|
|
5110
5353
|
expandLabel?: (HelixHeadlessCodeBlock["expandLabel"]) | undefined;
|
|
5111
|
-
/** The block's name, usually a file name
|
|
5354
|
+
/** The block's name, usually a file name, drawn in the header.
|
|
5112
5355
|
|
|
5113
|
-
|
|
5114
|
-
|
|
5356
|
+
Absent, the block is named by `language` where there is one. In a diff,
|
|
5357
|
+
each file is named from the patch, and this names a patch that carries no
|
|
5358
|
+
name of its own. */
|
|
5115
5359
|
label?: (HelixHeadlessCodeBlock["label"]) | undefined;
|
|
5116
5360
|
/** The language the code is written in, such as `ts` or `css`, handed to
|
|
5117
5361
|
`highlight` as its second argument.
|
|
5118
5362
|
|
|
5119
|
-
|
|
5120
|
-
|
|
5363
|
+
A block with no `label` is named by it, in the header and on the copy
|
|
5364
|
+
button, as a docs site names a snippet by its language. Absent hands
|
|
5365
|
+
`highlight` an empty string and names nothing. */
|
|
5121
5366
|
language?: (HelixHeadlessCodeBlock["language"]) | undefined;
|
|
5122
5367
|
/** Whether the lines are numbered in a gutter beside the code.
|
|
5123
5368
|
|
|
@@ -5240,16 +5485,18 @@ block lays out. Not for a diff, whose files each scroll on their own. */
|
|
|
5240
5485
|
"attr:expand-label"?: (HelixHeadlessCodeBlock["expandLabel"]) | undefined;
|
|
5241
5486
|
/** The expand button's words while the cap hides lines. */
|
|
5242
5487
|
"prop:expandLabel"?: (HelixHeadlessCodeBlock["expandLabel"]) | undefined;
|
|
5243
|
-
/** The block's name, usually a file name
|
|
5488
|
+
/** The block's name, usually a file name, drawn in the header.
|
|
5244
5489
|
|
|
5245
|
-
|
|
5246
|
-
|
|
5490
|
+
Absent, the block is named by `language` where there is one. In a diff,
|
|
5491
|
+
each file is named from the patch, and this names a patch that carries no
|
|
5492
|
+
name of its own. */
|
|
5247
5493
|
"prop:label"?: (HelixHeadlessCodeBlock["label"]) | undefined;
|
|
5248
5494
|
/** The language the code is written in, such as `ts` or `css`, handed to
|
|
5249
5495
|
`highlight` as its second argument.
|
|
5250
5496
|
|
|
5251
|
-
|
|
5252
|
-
|
|
5497
|
+
A block with no `label` is named by it, in the header and on the copy
|
|
5498
|
+
button, as a docs site names a snippet by its language. Absent hands
|
|
5499
|
+
`highlight` an empty string and names nothing. */
|
|
5253
5500
|
"prop:language"?: (HelixHeadlessCodeBlock["language"]) | undefined;
|
|
5254
5501
|
/** Whether the lines are numbered in a gutter beside the code.
|
|
5255
5502
|
|
|
@@ -6539,12 +6786,19 @@ leaves the field or presses Enter with nothing highlighted, and text that
|
|
|
6539
6786
|
names an option takes that option. Unlike `creatable`, no event asks
|
|
6540
6787
|
first and no option is expected to be added: the value is the text. */
|
|
6541
6788
|
allowsCustomValue?: (HelixHeadlessCombobox["allowsCustomValue"]) | undefined;
|
|
6542
|
-
/** What the browser may autofill
|
|
6789
|
+
/** What the browser may autofill, as a platform token such as `country`.
|
|
6543
6790
|
|
|
6544
6791
|
**Defaults to `off`, which is not the platform's default and is the
|
|
6545
6792
|
point.** The field filters a list rather than collecting a value, so a
|
|
6546
6793
|
browser offering to fill it with a saved address is competing for the same
|
|
6547
|
-
keystrokes as the listbox. A consumer who wants autofill can still ask.
|
|
6794
|
+
keystrokes as the listbox. A consumer who wants autofill can still ask.
|
|
6795
|
+
|
|
6796
|
+
Set, a combobox whose answer is one of its options keeps a hidden native
|
|
6797
|
+
`<select>` with the same options for the browser to fill, as React Aria's
|
|
6798
|
+
combobox and Select do, and the option the browser picks, by its value or
|
|
6799
|
+
its words, becomes the value. The text field itself stays `off`, so the
|
|
6800
|
+
browser fills the answer and not the filter. With `allows-custom-value`
|
|
6801
|
+
the token goes on the text field, whose words are the answer. */
|
|
6548
6802
|
autocomplete?: (HelixHeadlessCombobox["autocomplete"]) | undefined;
|
|
6549
6803
|
/** Whether the user can add a value that is not in the list.
|
|
6550
6804
|
|
|
@@ -6583,12 +6837,14 @@ every keystroke. See Listbox's `filter-delay`. */
|
|
|
6583
6837
|
/** The list's name, read by screen readers. The list has no visible name. */
|
|
6584
6838
|
listLabel?: (HelixHeadlessCombobox["listLabel"]) | undefined;
|
|
6585
6839
|
/** What the list says when its options could not be loaded, such as after a
|
|
6586
|
-
request to a server fails. Empty
|
|
6587
|
-
|
|
6840
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
6841
|
+
removing the attribute clears it. Passed to the list, which shows it
|
|
6842
|
+
under any options there are and tells screen readers. */
|
|
6588
6843
|
"load-error"?: (HelixHeadlessCombobox["loadError"]) | undefined;
|
|
6589
6844
|
/** What the list says when its options could not be loaded, such as after a
|
|
6590
|
-
request to a server fails. Empty
|
|
6591
|
-
|
|
6845
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
6846
|
+
removing the attribute clears it. Passed to the list, which shows it
|
|
6847
|
+
under any options there are and tells screen readers. */
|
|
6592
6848
|
loadError?: (HelixHeadlessCombobox["loadError"]) | undefined;
|
|
6593
6849
|
/** Whether the options are still loading.
|
|
6594
6850
|
|
|
@@ -6671,6 +6927,12 @@ two. */
|
|
|
6671
6927
|
options. `{count}` is the count, and `Intl.PluralRules` picks between the
|
|
6672
6928
|
two. */
|
|
6673
6929
|
resultsLabel?: (HelixHeadlessCombobox["resultsLabel"]) | undefined;
|
|
6930
|
+
/** What VoiceOver hears for a chosen option, as the highlight reaches it and
|
|
6931
|
+
once it is chosen, on Apple devices. `{name}` is the option's words. */
|
|
6932
|
+
"selected-label"?: (HelixHeadlessCombobox["selectedLabel"]) | undefined;
|
|
6933
|
+
/** What VoiceOver hears for a chosen option, as the highlight reaches it and
|
|
6934
|
+
once it is chosen, on Apple devices. `{name}` is the option's words. */
|
|
6935
|
+
selectedLabel?: (HelixHeadlessCombobox["selectedLabel"]) | undefined;
|
|
6674
6936
|
/** Whether the field completes the word as the user types.
|
|
6675
6937
|
|
|
6676
6938
|
`suggest` rather than `autocomplete`, which is a real HTML attribute this
|
|
@@ -6839,12 +7101,19 @@ leaves the field or presses Enter with nothing highlighted, and text that
|
|
|
6839
7101
|
names an option takes that option. Unlike `creatable`, no event asks
|
|
6840
7102
|
first and no option is expected to be added: the value is the text. */
|
|
6841
7103
|
"prop:allowsCustomValue"?: (HelixHeadlessCombobox["allowsCustomValue"]) | undefined;
|
|
6842
|
-
/** What the browser may autofill
|
|
7104
|
+
/** What the browser may autofill, as a platform token such as `country`.
|
|
6843
7105
|
|
|
6844
7106
|
**Defaults to `off`, which is not the platform's default and is the
|
|
6845
7107
|
point.** The field filters a list rather than collecting a value, so a
|
|
6846
7108
|
browser offering to fill it with a saved address is competing for the same
|
|
6847
|
-
keystrokes as the listbox. A consumer who wants autofill can still ask.
|
|
7109
|
+
keystrokes as the listbox. A consumer who wants autofill can still ask.
|
|
7110
|
+
|
|
7111
|
+
Set, a combobox whose answer is one of its options keeps a hidden native
|
|
7112
|
+
`<select>` with the same options for the browser to fill, as React Aria's
|
|
7113
|
+
combobox and Select do, and the option the browser picks, by its value or
|
|
7114
|
+
its words, becomes the value. The text field itself stays `off`, so the
|
|
7115
|
+
browser fills the answer and not the filter. With `allows-custom-value`
|
|
7116
|
+
the token goes on the text field, whose words are the answer. */
|
|
6848
7117
|
"prop:autocomplete"?: (HelixHeadlessCombobox["autocomplete"]) | undefined;
|
|
6849
7118
|
/** Whether the user can add a value that is not in the list.
|
|
6850
7119
|
|
|
@@ -6883,12 +7152,14 @@ every keystroke. See Listbox's `filter-delay`. */
|
|
|
6883
7152
|
/** The list's name, read by screen readers. The list has no visible name. */
|
|
6884
7153
|
"prop:listLabel"?: (HelixHeadlessCombobox["listLabel"]) | undefined;
|
|
6885
7154
|
/** What the list says when its options could not be loaded, such as after a
|
|
6886
|
-
request to a server fails. Empty
|
|
6887
|
-
|
|
7155
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
7156
|
+
removing the attribute clears it. Passed to the list, which shows it
|
|
7157
|
+
under any options there are and tells screen readers. */
|
|
6888
7158
|
"attr:load-error"?: (HelixHeadlessCombobox["loadError"]) | undefined;
|
|
6889
7159
|
/** What the list says when its options could not be loaded, such as after a
|
|
6890
|
-
request to a server fails. Empty
|
|
6891
|
-
|
|
7160
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
7161
|
+
removing the attribute clears it. Passed to the list, which shows it
|
|
7162
|
+
under any options there are and tells screen readers. */
|
|
6892
7163
|
"prop:loadError"?: (HelixHeadlessCombobox["loadError"]) | undefined;
|
|
6893
7164
|
/** Whether the options are still loading.
|
|
6894
7165
|
|
|
@@ -6971,6 +7242,12 @@ two. */
|
|
|
6971
7242
|
options. `{count}` is the count, and `Intl.PluralRules` picks between the
|
|
6972
7243
|
two. */
|
|
6973
7244
|
"prop:resultsLabel"?: (HelixHeadlessCombobox["resultsLabel"]) | undefined;
|
|
7245
|
+
/** What VoiceOver hears for a chosen option, as the highlight reaches it and
|
|
7246
|
+
once it is chosen, on Apple devices. `{name}` is the option's words. */
|
|
7247
|
+
"attr:selected-label"?: (HelixHeadlessCombobox["selectedLabel"]) | undefined;
|
|
7248
|
+
/** What VoiceOver hears for a chosen option, as the highlight reaches it and
|
|
7249
|
+
once it is chosen, on Apple devices. `{name}` is the option's words. */
|
|
7250
|
+
"prop:selectedLabel"?: (HelixHeadlessCombobox["selectedLabel"]) | undefined;
|
|
6974
7251
|
/** Whether the field completes the word as the user types.
|
|
6975
7252
|
|
|
6976
7253
|
`suggest` rather than `autocomplete`, which is a real HTML attribute this
|
|
@@ -7172,12 +7449,14 @@ with: one key, said once. */
|
|
|
7172
7449
|
/** Accessible name for the overlay, which has no visible heading. */
|
|
7173
7450
|
label?: (HelixHeadlessCommand["label"]) | undefined;
|
|
7174
7451
|
/** What the list says when its commands could not be loaded, such as after a
|
|
7175
|
-
request to a server fails. Empty
|
|
7176
|
-
|
|
7452
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
7453
|
+
removing the attribute clears it. Passed to the list, which shows it
|
|
7454
|
+
under any commands there are and tells screen readers. */
|
|
7177
7455
|
"load-error"?: (HelixHeadlessCommand["loadError"]) | undefined;
|
|
7178
7456
|
/** What the list says when its commands could not be loaded, such as after a
|
|
7179
|
-
request to a server fails. Empty
|
|
7180
|
-
|
|
7457
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
7458
|
+
removing the attribute clears it. Passed to the list, which shows it
|
|
7459
|
+
under any commands there are and tells screen readers. */
|
|
7181
7460
|
loadError?: (HelixHeadlessCommand["loadError"]) | undefined;
|
|
7182
7461
|
/** Whether the commands are still loading, for a palette that asks a server
|
|
7183
7462
|
for them as the user types.
|
|
@@ -7272,12 +7551,14 @@ with: one key, said once. */
|
|
|
7272
7551
|
/** Accessible name for the overlay, which has no visible heading. */
|
|
7273
7552
|
"prop:label"?: (HelixHeadlessCommand["label"]) | undefined;
|
|
7274
7553
|
/** What the list says when its commands could not be loaded, such as after a
|
|
7275
|
-
request to a server fails. Empty
|
|
7276
|
-
|
|
7554
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
7555
|
+
removing the attribute clears it. Passed to the list, which shows it
|
|
7556
|
+
under any commands there are and tells screen readers. */
|
|
7277
7557
|
"attr:load-error"?: (HelixHeadlessCommand["loadError"]) | undefined;
|
|
7278
7558
|
/** What the list says when its commands could not be loaded, such as after a
|
|
7279
|
-
request to a server fails. Empty
|
|
7280
|
-
|
|
7559
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
7560
|
+
removing the attribute clears it. Passed to the list, which shows it
|
|
7561
|
+
under any commands there are and tells screen readers. */
|
|
7281
7562
|
"prop:loadError"?: (HelixHeadlessCommand["loadError"]) | undefined;
|
|
7282
7563
|
/** Whether the commands are still loading, for a palette that asks a server
|
|
7283
7564
|
for them as the user types.
|
|
@@ -10065,38 +10346,44 @@ survives to it and a consumer reading one back gets what they wrote. */
|
|
|
10065
10346
|
};
|
|
10066
10347
|
|
|
10067
10348
|
export type HelixHeadlessDividerProps = {
|
|
10068
|
-
/** Whether screen readers announce the line as a separator
|
|
10069
|
-
|
|
10070
|
-
|
|
10071
|
-
|
|
10072
|
-
|
|
10073
|
-
|
|
10074
|
-
|
|
10075
|
-
An opt-in, not a `decorative` opt-out, because a boolean attribute cannot
|
|
10076
|
-
be turned off: `decorative="false"` parses as `true`, which would put the
|
|
10077
|
-
quiet default out of reach from HTML and leave it settable only as a
|
|
10078
|
-
property. An opt-in is absent by default, which every reflected property
|
|
10079
|
-
here has to be. */
|
|
10349
|
+
/** Whether screen readers announce the line as a separator, which they now do
|
|
10350
|
+
by default.
|
|
10351
|
+
|
|
10352
|
+
It dates from when the line was decorative by default. It is still read,
|
|
10353
|
+
and it wins over `decorative`, so a divider written with it stays a
|
|
10354
|
+
separator. */
|
|
10080
10355
|
announced?: (HelixHeadlessDivider["announced"]) | undefined;
|
|
10081
|
-
/**
|
|
10356
|
+
/** Takes the line out of the accessibility tree, for a rule that separates
|
|
10357
|
+
nothing: one under a heading, or between the facts of a byline.
|
|
10358
|
+
|
|
10359
|
+
Absent, the line is a separator, as `<hr>` is. Radix Separator's opt-out
|
|
10360
|
+
has the same name. It turns the role off because a boolean attribute that
|
|
10361
|
+
is on by default cannot be turned off from HTML. */
|
|
10362
|
+
decorative?: (HelixHeadlessDivider["decorative"]) | undefined;
|
|
10363
|
+
/** The direction the line runs: `horizontal` or `vertical`.
|
|
10364
|
+
|
|
10365
|
+
Unset is horizontal, or across the toolbar the divider sits in. */
|
|
10082
10366
|
orientation?: (HelixHeadlessDivider["orientation"]) | undefined;
|
|
10083
10367
|
};
|
|
10084
10368
|
|
|
10085
10369
|
export type HelixHeadlessDividerSolidJsProps = {
|
|
10086
|
-
/** Whether screen readers announce the line as a separator
|
|
10087
|
-
|
|
10088
|
-
|
|
10089
|
-
|
|
10090
|
-
|
|
10091
|
-
|
|
10092
|
-
|
|
10093
|
-
An opt-in, not a `decorative` opt-out, because a boolean attribute cannot
|
|
10094
|
-
be turned off: `decorative="false"` parses as `true`, which would put the
|
|
10095
|
-
quiet default out of reach from HTML and leave it settable only as a
|
|
10096
|
-
property. An opt-in is absent by default, which every reflected property
|
|
10097
|
-
here has to be. */
|
|
10370
|
+
/** Whether screen readers announce the line as a separator, which they now do
|
|
10371
|
+
by default.
|
|
10372
|
+
|
|
10373
|
+
It dates from when the line was decorative by default. It is still read,
|
|
10374
|
+
and it wins over `decorative`, so a divider written with it stays a
|
|
10375
|
+
separator. */
|
|
10098
10376
|
"prop:announced"?: (HelixHeadlessDivider["announced"]) | undefined;
|
|
10099
|
-
/**
|
|
10377
|
+
/** Takes the line out of the accessibility tree, for a rule that separates
|
|
10378
|
+
nothing: one under a heading, or between the facts of a byline.
|
|
10379
|
+
|
|
10380
|
+
Absent, the line is a separator, as `<hr>` is. Radix Separator's opt-out
|
|
10381
|
+
has the same name. It turns the role off because a boolean attribute that
|
|
10382
|
+
is on by default cannot be turned off from HTML. */
|
|
10383
|
+
"prop:decorative"?: (HelixHeadlessDivider["decorative"]) | undefined;
|
|
10384
|
+
/** The direction the line runs: `horizontal` or `vertical`.
|
|
10385
|
+
|
|
10386
|
+
Unset is horizontal, or across the toolbar the divider sits in. */
|
|
10100
10387
|
"prop:orientation"?: (HelixHeadlessDivider["orientation"]) | undefined;
|
|
10101
10388
|
|
|
10102
10389
|
/** Set the innerHTML of the element */
|
|
@@ -11829,6 +12116,14 @@ few characters and a date is not. */
|
|
|
11829
12116
|
elapsed?: (HelixHeadlessFormatDate["elapsed"]) | undefined;
|
|
11830
12117
|
/** How the era is written, such as AD, where a date is shown. */
|
|
11831
12118
|
era?: (HelixHeadlessFormatDate["era"]) | undefined;
|
|
12119
|
+
/** Draws each field of a date in a part of its own: `weekday`, `day`,
|
|
12120
|
+
`month`, `year`, `era`, `hour`, `minute`, `second`, `day-period` and
|
|
12121
|
+
`time-zone-name`, so `::part(year)` can set the year apart.
|
|
12122
|
+
|
|
12123
|
+
Off by default, which draws the date as one run of text, as Shoelace and
|
|
12124
|
+
Web Awesome do. An `elapsed` or `relative` reading is one phrase either
|
|
12125
|
+
way. */
|
|
12126
|
+
fields?: (HelixHeadlessFormatDate["fields"]) | undefined;
|
|
11832
12127
|
/** Draws an `elapsed` or `relative` reading once and leaves it, where it
|
|
11833
12128
|
would otherwise move on as it goes stale.
|
|
11834
12129
|
|
|
@@ -11935,6 +12230,14 @@ few characters and a date is not. */
|
|
|
11935
12230
|
"prop:elapsed"?: (HelixHeadlessFormatDate["elapsed"]) | undefined;
|
|
11936
12231
|
/** How the era is written, such as AD, where a date is shown. */
|
|
11937
12232
|
"prop:era"?: (HelixHeadlessFormatDate["era"]) | undefined;
|
|
12233
|
+
/** Draws each field of a date in a part of its own: `weekday`, `day`,
|
|
12234
|
+
`month`, `year`, `era`, `hour`, `minute`, `second`, `day-period` and
|
|
12235
|
+
`time-zone-name`, so `::part(year)` can set the year apart.
|
|
12236
|
+
|
|
12237
|
+
Off by default, which draws the date as one run of text, as Shoelace and
|
|
12238
|
+
Web Awesome do. An `elapsed` or `relative` reading is one phrase either
|
|
12239
|
+
way. */
|
|
12240
|
+
"prop:fields"?: (HelixHeadlessFormatDate["fields"]) | undefined;
|
|
11938
12241
|
/** Draws an `elapsed` or `relative` reading once and leaves it, where it
|
|
11939
12242
|
would otherwise move on as it goes stale.
|
|
11940
12243
|
|
|
@@ -12689,6 +12992,14 @@ calendar heatmap does: a week is a column, so the strip reads along the
|
|
|
12689
12992
|
line in weeks, from the right on a right-to-left page, and top to bottom in
|
|
12690
12993
|
days. */
|
|
12691
12994
|
rows?: (HelixHeadlessHeatmap["rows"]) | undefined;
|
|
12995
|
+
/** What the readout adds for a selected cell, under `selection-mode`, after
|
|
12996
|
+
where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
|
|
12997
|
+
nothing. */
|
|
12998
|
+
"selected-label"?: (HelixHeadlessHeatmap["selectedLabel"]) | undefined;
|
|
12999
|
+
/** What the readout adds for a selected cell, under `selection-mode`, after
|
|
13000
|
+
where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
|
|
13001
|
+
nothing. */
|
|
13002
|
+
selectedLabel?: (HelixHeadlessHeatmap["selectedLabel"]) | undefined;
|
|
12692
13003
|
/** What the `selection` part says after the selection changes, with `{count}` for
|
|
12693
13004
|
how many cells are selected. */
|
|
12694
13005
|
"selection-label"?: (HelixHeadlessHeatmap["selectionLabel"]) | undefined;
|
|
@@ -12840,6 +13151,14 @@ calendar heatmap does: a week is a column, so the strip reads along the
|
|
|
12840
13151
|
line in weeks, from the right on a right-to-left page, and top to bottom in
|
|
12841
13152
|
days. */
|
|
12842
13153
|
"prop:rows"?: (HelixHeadlessHeatmap["rows"]) | undefined;
|
|
13154
|
+
/** What the readout adds for a selected cell, under `selection-mode`, after
|
|
13155
|
+
where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
|
|
13156
|
+
nothing. */
|
|
13157
|
+
"attr:selected-label"?: (HelixHeadlessHeatmap["selectedLabel"]) | undefined;
|
|
13158
|
+
/** What the readout adds for a selected cell, under `selection-mode`, after
|
|
13159
|
+
where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
|
|
13160
|
+
nothing. */
|
|
13161
|
+
"prop:selectedLabel"?: (HelixHeadlessHeatmap["selectedLabel"]) | undefined;
|
|
12843
13162
|
/** What the `selection` part says after the selection changes, with `{count}` for
|
|
12844
13163
|
how many cells are selected. */
|
|
12845
13164
|
"attr:selection-label"?: (HelixHeadlessHeatmap["selectionLabel"]) | undefined;
|
|
@@ -15280,12 +15599,16 @@ export type HelixHeadlessListboxHelixLoadMoreElementEvent =
|
|
|
15280
15599
|
HelixHeadlessListboxElementEvent<HelixLoadMoreEvent>;
|
|
15281
15600
|
|
|
15282
15601
|
export type HelixHeadlessListboxProps = {
|
|
15283
|
-
/** What
|
|
15602
|
+
/** What a browser's autofill may choose, as a platform token such as
|
|
15603
|
+
`country` or `cc-exp-month`, as a native `<select>` takes it.
|
|
15284
15604
|
|
|
15285
|
-
|
|
15286
|
-
|
|
15287
|
-
|
|
15288
|
-
|
|
15605
|
+
Set, the list draws a hidden native `<select>` with the same options for
|
|
15606
|
+
the browser to fill, as React Aria's `HiddenSelect` does, and a fill
|
|
15607
|
+
chooses the option. `off`, the default, draws none.
|
|
15608
|
+
|
|
15609
|
+
**The filter field is never filled.** It narrows the list rather than
|
|
15610
|
+
collecting a value, so a browser offering it a saved address competes
|
|
15611
|
+
with the reader for the same keystrokes: it is always `off`. */
|
|
15289
15612
|
autocomplete?: (HelixHeadlessListbox["autocomplete"]) | undefined;
|
|
15290
15613
|
/** The filter text the list starts with, when `filter` is not set. */
|
|
15291
15614
|
"default-filter"?: (HelixHeadlessListbox["defaultFilter"]) | undefined;
|
|
@@ -15339,14 +15662,27 @@ act on the list the reader expects. */
|
|
|
15339
15662
|
"filter-label"?: (HelixHeadlessListbox["filterLabel"]) | undefined;
|
|
15340
15663
|
/** Placeholder text for the filter field. */
|
|
15341
15664
|
filterLabel?: (HelixHeadlessListbox["filterLabel"]) | undefined;
|
|
15665
|
+
/** How the options are laid out, which the arrow keys follow: `stack`, one
|
|
15666
|
+
under another, or `grid`, in rows and columns, as React Aria's `ListBox`
|
|
15667
|
+
lays out cards or photos. With `grid`, Up and Down move within a column,
|
|
15668
|
+
and Left and Right along the list, mirrored right to left.
|
|
15669
|
+
|
|
15670
|
+
The columns are the stylesheet's: the styled tier draws them at
|
|
15671
|
+
`--listbox-column-min-inline-size` or wider, and a headless list lays out
|
|
15672
|
+
`::part(items)` as it likes, since the keys read where each option is
|
|
15673
|
+
drawn. A list of `items` stays a stack. Left out, the list is a stack,
|
|
15674
|
+
and the host carries no attribute for it. */
|
|
15675
|
+
layout?: (HelixHeadlessListbox["layout"]) | undefined;
|
|
15342
15676
|
/** What the list says when its options could not be loaded, such as after a
|
|
15343
|
-
request to a server fails. Empty is no error
|
|
15677
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
15678
|
+
removing the attribute clears it.
|
|
15344
15679
|
|
|
15345
15680
|
Set, it shows under any options there are, in place of `empty-text` and
|
|
15346
15681
|
`loading-text`, and a screen reader hears it. Clear it when you ask again. */
|
|
15347
15682
|
"load-error"?: (HelixHeadlessListbox["loadError"]) | undefined;
|
|
15348
15683
|
/** What the list says when its options could not be loaded, such as after a
|
|
15349
|
-
request to a server fails. Empty is no error
|
|
15684
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
15685
|
+
removing the attribute clears it.
|
|
15350
15686
|
|
|
15351
15687
|
Set, it shows under any options there are, in place of `empty-text` and
|
|
15352
15688
|
`loading-text`, and a screen reader hears it. Clear it when you ask again. */
|
|
@@ -15390,6 +15726,12 @@ options. `{count}` is the count.
|
|
|
15390
15726
|
pair: a language with more forms than two picks the one for its `one` and
|
|
15391
15727
|
writes the rest here. */
|
|
15392
15728
|
resultsLabel?: (HelixHeadlessListbox["resultsLabel"]) | undefined;
|
|
15729
|
+
/** What VoiceOver hears as the highlight reaches a chosen option from the
|
|
15730
|
+
filter field, on Apple devices. `{name}` is the option's words. */
|
|
15731
|
+
"selected-label"?: (HelixHeadlessListbox["selectedLabel"]) | undefined;
|
|
15732
|
+
/** What VoiceOver hears as the highlight reaches a chosen option from the
|
|
15733
|
+
filter field, on Apple devices. `{name}` is the option's words. */
|
|
15734
|
+
selectedLabel?: (HelixHeadlessListbox["selectedLabel"]) | undefined;
|
|
15393
15735
|
/** Whether the rows are still loading.
|
|
15394
15736
|
|
|
15395
15737
|
Reflected, because a stylesheet needs it: the rows that are already there
|
|
@@ -15473,6 +15815,23 @@ imperatively later, and nothing is hydrating by then.
|
|
|
15473
15815
|
|
|
15474
15816
|
Here rather than on each control. */
|
|
15475
15817
|
name?: (HelixHeadlessListbox["name"]) | undefined;
|
|
15818
|
+
/** The options as data, for a list too long to draw whole: each a value,
|
|
15819
|
+
which is also its words, or a record with a `value`, a `label` and
|
|
15820
|
+
`disabled`. Set, the list draws only the options in sight, and the ones
|
|
15821
|
+
you write as children are not read.
|
|
15822
|
+
|
|
15823
|
+
**Every option is still reachable.** The keyboard, the typeahead, the
|
|
15824
|
+
filter and the value work over the whole set, and the option the keyboard
|
|
15825
|
+
is on is drawn wherever it is, so a screen reader is told about it. Each
|
|
15826
|
+
drawn option says its place in the set (`aria-posinset`, `aria-setsize`).
|
|
15827
|
+
React Aria virtualizes a `ListBox` with its `Virtualizer`; this is core's
|
|
15828
|
+
`VirtualizeController`.
|
|
15829
|
+
|
|
15830
|
+
**The list needs a height to scroll in**: the styled tier's
|
|
15831
|
+
`--listbox-max-block-size`, or a `max-block-size` on `::part(items)` in the
|
|
15832
|
+
headless tier. Import the Option family as well, whose elements are drawn.
|
|
15833
|
+
A server sends the list empty, and the options are drawn once it hydrates. */
|
|
15834
|
+
items?: (HelixHeadlessListbox["items"]) | undefined;
|
|
15476
15835
|
/** Which option is chosen, as an index, or `-1` where none is.
|
|
15477
15836
|
|
|
15478
15837
|
`<select>`'s own pair, and this control is what stands in for one. The
|
|
@@ -15502,12 +15861,16 @@ that can. */
|
|
|
15502
15861
|
};
|
|
15503
15862
|
|
|
15504
15863
|
export type HelixHeadlessListboxSolidJsProps = {
|
|
15505
|
-
/** What
|
|
15864
|
+
/** What a browser's autofill may choose, as a platform token such as
|
|
15865
|
+
`country` or `cc-exp-month`, as a native `<select>` takes it.
|
|
15506
15866
|
|
|
15507
|
-
|
|
15508
|
-
|
|
15509
|
-
|
|
15510
|
-
|
|
15867
|
+
Set, the list draws a hidden native `<select>` with the same options for
|
|
15868
|
+
the browser to fill, as React Aria's `HiddenSelect` does, and a fill
|
|
15869
|
+
chooses the option. `off`, the default, draws none.
|
|
15870
|
+
|
|
15871
|
+
**The filter field is never filled.** It narrows the list rather than
|
|
15872
|
+
collecting a value, so a browser offering it a saved address competes
|
|
15873
|
+
with the reader for the same keystrokes: it is always `off`. */
|
|
15511
15874
|
"prop:autocomplete"?: (HelixHeadlessListbox["autocomplete"]) | undefined;
|
|
15512
15875
|
/** The filter text the list starts with, when `filter` is not set. */
|
|
15513
15876
|
"attr:default-filter"?: (HelixHeadlessListbox["defaultFilter"]) | undefined;
|
|
@@ -15561,14 +15924,27 @@ act on the list the reader expects. */
|
|
|
15561
15924
|
"attr:filter-label"?: (HelixHeadlessListbox["filterLabel"]) | undefined;
|
|
15562
15925
|
/** Placeholder text for the filter field. */
|
|
15563
15926
|
"prop:filterLabel"?: (HelixHeadlessListbox["filterLabel"]) | undefined;
|
|
15927
|
+
/** How the options are laid out, which the arrow keys follow: `stack`, one
|
|
15928
|
+
under another, or `grid`, in rows and columns, as React Aria's `ListBox`
|
|
15929
|
+
lays out cards or photos. With `grid`, Up and Down move within a column,
|
|
15930
|
+
and Left and Right along the list, mirrored right to left.
|
|
15931
|
+
|
|
15932
|
+
The columns are the stylesheet's: the styled tier draws them at
|
|
15933
|
+
`--listbox-column-min-inline-size` or wider, and a headless list lays out
|
|
15934
|
+
`::part(items)` as it likes, since the keys read where each option is
|
|
15935
|
+
drawn. A list of `items` stays a stack. Left out, the list is a stack,
|
|
15936
|
+
and the host carries no attribute for it. */
|
|
15937
|
+
"prop:layout"?: (HelixHeadlessListbox["layout"]) | undefined;
|
|
15564
15938
|
/** What the list says when its options could not be loaded, such as after a
|
|
15565
|
-
request to a server fails. Empty is no error
|
|
15939
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
15940
|
+
removing the attribute clears it.
|
|
15566
15941
|
|
|
15567
15942
|
Set, it shows under any options there are, in place of `empty-text` and
|
|
15568
15943
|
`loading-text`, and a screen reader hears it. Clear it when you ask again. */
|
|
15569
15944
|
"attr:load-error"?: (HelixHeadlessListbox["loadError"]) | undefined;
|
|
15570
15945
|
/** What the list says when its options could not be loaded, such as after a
|
|
15571
|
-
request to a server fails. Empty is no error
|
|
15946
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
15947
|
+
removing the attribute clears it.
|
|
15572
15948
|
|
|
15573
15949
|
Set, it shows under any options there are, in place of `empty-text` and
|
|
15574
15950
|
`loading-text`, and a screen reader hears it. Clear it when you ask again. */
|
|
@@ -15612,6 +15988,12 @@ options. `{count}` is the count.
|
|
|
15612
15988
|
pair: a language with more forms than two picks the one for its `one` and
|
|
15613
15989
|
writes the rest here. */
|
|
15614
15990
|
"prop:resultsLabel"?: (HelixHeadlessListbox["resultsLabel"]) | undefined;
|
|
15991
|
+
/** What VoiceOver hears as the highlight reaches a chosen option from the
|
|
15992
|
+
filter field, on Apple devices. `{name}` is the option's words. */
|
|
15993
|
+
"attr:selected-label"?: (HelixHeadlessListbox["selectedLabel"]) | undefined;
|
|
15994
|
+
/** What VoiceOver hears as the highlight reaches a chosen option from the
|
|
15995
|
+
filter field, on Apple devices. `{name}` is the option's words. */
|
|
15996
|
+
"prop:selectedLabel"?: (HelixHeadlessListbox["selectedLabel"]) | undefined;
|
|
15615
15997
|
/** Whether the rows are still loading.
|
|
15616
15998
|
|
|
15617
15999
|
Reflected, because a stylesheet needs it: the rows that are already there
|
|
@@ -15695,6 +16077,23 @@ imperatively later, and nothing is hydrating by then.
|
|
|
15695
16077
|
|
|
15696
16078
|
Here rather than on each control. */
|
|
15697
16079
|
"prop:name"?: (HelixHeadlessListbox["name"]) | undefined;
|
|
16080
|
+
/** The options as data, for a list too long to draw whole: each a value,
|
|
16081
|
+
which is also its words, or a record with a `value`, a `label` and
|
|
16082
|
+
`disabled`. Set, the list draws only the options in sight, and the ones
|
|
16083
|
+
you write as children are not read.
|
|
16084
|
+
|
|
16085
|
+
**Every option is still reachable.** The keyboard, the typeahead, the
|
|
16086
|
+
filter and the value work over the whole set, and the option the keyboard
|
|
16087
|
+
is on is drawn wherever it is, so a screen reader is told about it. Each
|
|
16088
|
+
drawn option says its place in the set (`aria-posinset`, `aria-setsize`).
|
|
16089
|
+
React Aria virtualizes a `ListBox` with its `Virtualizer`; this is core's
|
|
16090
|
+
`VirtualizeController`.
|
|
16091
|
+
|
|
16092
|
+
**The list needs a height to scroll in**: the styled tier's
|
|
16093
|
+
`--listbox-max-block-size`, or a `max-block-size` on `::part(items)` in the
|
|
16094
|
+
headless tier. Import the Option family as well, whose elements are drawn.
|
|
16095
|
+
A server sends the list empty, and the options are drawn once it hydrates. */
|
|
16096
|
+
"prop:items"?: (HelixHeadlessListbox["items"]) | undefined;
|
|
15698
16097
|
/** Which option is chosen, as an index, or `-1` where none is.
|
|
15699
16098
|
|
|
15700
16099
|
`<select>`'s own pair, and this control is what stands in for one. The
|
|
@@ -18381,6 +18780,20 @@ export type HelixHeadlessNotificationsHelixReadElementEvent =
|
|
|
18381
18780
|
export type HelixHeadlessNotificationsProps = {
|
|
18382
18781
|
/** The feed's name, read by screen readers. */
|
|
18383
18782
|
label?: (HelixHeadlessNotifications["label"]) | undefined;
|
|
18783
|
+
/** What the feed says when a page of it could not be loaded, such as after a
|
|
18784
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
18785
|
+
removing the attribute clears it.
|
|
18786
|
+
|
|
18787
|
+
Set, it shows under the rows there are, in place of `empty-text` and
|
|
18788
|
+
`loading-text`, and a screen reader hears it. Clear it when you ask again. */
|
|
18789
|
+
"load-error"?: (HelixHeadlessNotifications["loadError"]) | undefined;
|
|
18790
|
+
/** What the feed says when a page of it could not be loaded, such as after a
|
|
18791
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
18792
|
+
removing the attribute clears it.
|
|
18793
|
+
|
|
18794
|
+
Set, it shows under the rows there are, in place of `empty-text` and
|
|
18795
|
+
`loading-text`, and a screen reader hears it. Clear it when you ask again. */
|
|
18796
|
+
loadError?: (HelixHeadlessNotifications["loadError"]) | undefined;
|
|
18384
18797
|
/** Whether to draw a button after the list that asks for the next page, by
|
|
18385
18798
|
sending `helix-load-more`. Take it off once there is nothing more. */
|
|
18386
18799
|
"load-more"?: (HelixHeadlessNotifications["loadMore"]) | undefined;
|
|
@@ -18435,6 +18848,20 @@ say that without the component knowing what a row looks like. */
|
|
|
18435
18848
|
export type HelixHeadlessNotificationsSolidJsProps = {
|
|
18436
18849
|
/** The feed's name, read by screen readers. */
|
|
18437
18850
|
"prop:label"?: (HelixHeadlessNotifications["label"]) | undefined;
|
|
18851
|
+
/** What the feed says when a page of it could not be loaded, such as after a
|
|
18852
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
18853
|
+
removing the attribute clears it.
|
|
18854
|
+
|
|
18855
|
+
Set, it shows under the rows there are, in place of `empty-text` and
|
|
18856
|
+
`loading-text`, and a screen reader hears it. Clear it when you ask again. */
|
|
18857
|
+
"attr:load-error"?: (HelixHeadlessNotifications["loadError"]) | undefined;
|
|
18858
|
+
/** What the feed says when a page of it could not be loaded, such as after a
|
|
18859
|
+
request to a server fails. Empty, null or no attribute is no error, so
|
|
18860
|
+
removing the attribute clears it.
|
|
18861
|
+
|
|
18862
|
+
Set, it shows under the rows there are, in place of `empty-text` and
|
|
18863
|
+
`loading-text`, and a screen reader hears it. Clear it when you ask again. */
|
|
18864
|
+
"prop:loadError"?: (HelixHeadlessNotifications["loadError"]) | undefined;
|
|
18438
18865
|
/** Whether to draw a button after the list that asks for the next page, by
|
|
18439
18866
|
sending `helix-load-more`. Take it off once there is nothing more. */
|
|
18440
18867
|
"bool:load-more"?: (HelixHeadlessNotifications["loadMore"]) | undefined;
|
|
@@ -22194,6 +22621,14 @@ export type HelixHeadlessSelectToggleElementEvent =
|
|
|
22194
22621
|
HelixHeadlessSelectElementEvent<ToggleEvent>;
|
|
22195
22622
|
|
|
22196
22623
|
export type HelixHeadlessSelectProps = {
|
|
22624
|
+
/** What a browser's autofill may fill in, as a platform token such as
|
|
22625
|
+
`country` or `cc-exp-month`, as on a native `<select>`.
|
|
22626
|
+
|
|
22627
|
+
Set, the select keeps a hidden native `<select>` with the same options for
|
|
22628
|
+
the browser to fill, as React Aria's `HiddenSelect` does, and takes the
|
|
22629
|
+
option the browser picks, by its value or its words, as the value. Empty
|
|
22630
|
+
draws no hidden select, and a browser fills nothing. */
|
|
22631
|
+
autocomplete?: (HelixHeadlessSelect["autocomplete"]) | undefined;
|
|
22197
22632
|
/** The text shown when no options match the filter. */
|
|
22198
22633
|
"empty-text"?: (HelixHeadlessSelect["emptyText"]) | undefined;
|
|
22199
22634
|
/** The text shown when no options match the filter. */
|
|
@@ -22389,6 +22824,14 @@ differently: they are one chooser to a consumer. */
|
|
|
22389
22824
|
};
|
|
22390
22825
|
|
|
22391
22826
|
export type HelixHeadlessSelectSolidJsProps = {
|
|
22827
|
+
/** What a browser's autofill may fill in, as a platform token such as
|
|
22828
|
+
`country` or `cc-exp-month`, as on a native `<select>`.
|
|
22829
|
+
|
|
22830
|
+
Set, the select keeps a hidden native `<select>` with the same options for
|
|
22831
|
+
the browser to fill, as React Aria's `HiddenSelect` does, and takes the
|
|
22832
|
+
option the browser picks, by its value or its words, as the value. Empty
|
|
22833
|
+
draws no hidden select, and a browser fills nothing. */
|
|
22834
|
+
"prop:autocomplete"?: (HelixHeadlessSelect["autocomplete"]) | undefined;
|
|
22392
22835
|
/** The text shown when no options match the filter. */
|
|
22393
22836
|
"attr:empty-text"?: (HelixHeadlessSelect["emptyText"]) | undefined;
|
|
22394
22837
|
/** The text shown when no options match the filter. */
|
|
@@ -23327,6 +23770,21 @@ not. */
|
|
|
23327
23770
|
textContent?: (string | number) | undefined;
|
|
23328
23771
|
};
|
|
23329
23772
|
|
|
23773
|
+
export type HelixHeadlessSpeedDialGroupProps = {
|
|
23774
|
+
/** The group's name, drawn above its actions and read by screen readers. */
|
|
23775
|
+
label?: (HelixHeadlessSpeedDialGroup["label"]) | undefined;
|
|
23776
|
+
};
|
|
23777
|
+
|
|
23778
|
+
export type HelixHeadlessSpeedDialGroupSolidJsProps = {
|
|
23779
|
+
/** The group's name, drawn above its actions and read by screen readers. */
|
|
23780
|
+
"prop:label"?: (HelixHeadlessSpeedDialGroup["label"]) | undefined;
|
|
23781
|
+
|
|
23782
|
+
/** Set the innerHTML of the element */
|
|
23783
|
+
innerHTML?: (string) | undefined;
|
|
23784
|
+
/** Set the textContent of the element */
|
|
23785
|
+
textContent?: (string | number) | undefined;
|
|
23786
|
+
};
|
|
23787
|
+
|
|
23330
23788
|
/** `HelixHeadlessSpeedDialItem` component event */
|
|
23331
23789
|
export type HelixHeadlessSpeedDialItemElementEvent<E = Event> = TypedEvent<
|
|
23332
23790
|
HelixHeadlessSpeedDialItem,
|
|
@@ -23339,6 +23797,10 @@ export type HelixHeadlessSpeedDialItemHelixSelectElementEvent =
|
|
|
23339
23797
|
export type HelixHeadlessSpeedDialItemProps = {
|
|
23340
23798
|
/** Whether the action is disabled, so it cannot be chosen. */
|
|
23341
23799
|
disabled?: (HelixHeadlessSpeedDialItem["disabled"]) | undefined;
|
|
23800
|
+
/** The action's keyboard shortcut as a chord, such as `mod+s`, carried as
|
|
23801
|
+
`aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
|
|
23802
|
+
keyboard and Control elsewhere. Showing a shortcut does not bind it. */
|
|
23803
|
+
shortcut?: (HelixHeadlessSpeedDialItem["shortcut"]) | undefined;
|
|
23342
23804
|
/** The action's value, sent in `helix-select` when the action is chosen. */
|
|
23343
23805
|
value?: (HelixHeadlessSpeedDialItem["value"]) | undefined;
|
|
23344
23806
|
|
|
@@ -23351,6 +23813,10 @@ export type HelixHeadlessSpeedDialItemProps = {
|
|
|
23351
23813
|
export type HelixHeadlessSpeedDialItemSolidJsProps = {
|
|
23352
23814
|
/** Whether the action is disabled, so it cannot be chosen. */
|
|
23353
23815
|
"prop:disabled"?: (HelixHeadlessSpeedDialItem["disabled"]) | undefined;
|
|
23816
|
+
/** The action's keyboard shortcut as a chord, such as `mod+s`, carried as
|
|
23817
|
+
`aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
|
|
23818
|
+
keyboard and Control elsewhere. Showing a shortcut does not bind it. */
|
|
23819
|
+
"prop:shortcut"?: (HelixHeadlessSpeedDialItem["shortcut"]) | undefined;
|
|
23354
23820
|
/** The action's value, sent in `helix-select` when the action is chosen. */
|
|
23355
23821
|
"prop:value"?: (HelixHeadlessSpeedDialItem["value"]) | undefined;
|
|
23356
23822
|
/** The action was chosen. Cancelable: cancel it to keep the dial open. */
|
|
@@ -23385,8 +23851,32 @@ export type HelixHeadlessSpeedDialToggleElementEvent =
|
|
|
23385
23851
|
export type HelixHeadlessSpeedDialProps = {
|
|
23386
23852
|
/** Accessible name for the trigger and the set of actions it opens. */
|
|
23387
23853
|
label?: (HelixHeadlessSpeedDial["label"]) | undefined;
|
|
23854
|
+
/** The description the trigger gives under `open-on="long-press"`, saying how
|
|
23855
|
+
its actions are reached.
|
|
23856
|
+
|
|
23857
|
+
A slotted trigger is described by the dial, which carries the words as
|
|
23858
|
+
its own label for that: a Helix button's inner control at once, and a
|
|
23859
|
+
plain element of yours once a reader reaches it, after hydration, unless
|
|
23860
|
+
you described or labeled it yourself. */
|
|
23861
|
+
"long-press-label"?: (HelixHeadlessSpeedDial["longPressLabel"]) | undefined;
|
|
23862
|
+
/** The description the trigger gives under `open-on="long-press"`, saying how
|
|
23863
|
+
its actions are reached.
|
|
23864
|
+
|
|
23865
|
+
A slotted trigger is described by the dial, which carries the words as
|
|
23866
|
+
its own label for that: a Helix button's inner control at once, and a
|
|
23867
|
+
plain element of yours once a reader reaches it, after hydration, unless
|
|
23868
|
+
you described or labeled it yourself. */
|
|
23869
|
+
longPressLabel?: (HelixHeadlessSpeedDial["longPressLabel"]) | undefined;
|
|
23388
23870
|
/** Space between the trigger and the actions, in pixels. */
|
|
23389
23871
|
offset?: (HelixHeadlessSpeedDial["offset"]) | undefined;
|
|
23872
|
+
/** What opens the dial. `click` opens it on a press of the trigger. Under
|
|
23873
|
+
`long-press`, a press is the trigger's own action, and the dial opens on a
|
|
23874
|
+
press held for half a second, or on Alt+Down or Alt+Up. */
|
|
23875
|
+
"open-on"?: (HelixHeadlessSpeedDial["openOn"]) | undefined;
|
|
23876
|
+
/** What opens the dial. `click` opens it on a press of the trigger. Under
|
|
23877
|
+
`long-press`, a press is the trigger's own action, and the dial opens on a
|
|
23878
|
+
press held for half a second, or on Alt+Down or Alt+Up. */
|
|
23879
|
+
openOn?: (HelixHeadlessSpeedDial["openOn"]) | undefined;
|
|
23390
23880
|
/** The direction the actions open in. They move to another side if that side
|
|
23391
23881
|
does not fit.
|
|
23392
23882
|
|
|
@@ -23428,8 +23918,32 @@ the resolved state for stylesheets, which is what the mirror is for. */
|
|
|
23428
23918
|
export type HelixHeadlessSpeedDialSolidJsProps = {
|
|
23429
23919
|
/** Accessible name for the trigger and the set of actions it opens. */
|
|
23430
23920
|
"prop:label"?: (HelixHeadlessSpeedDial["label"]) | undefined;
|
|
23921
|
+
/** The description the trigger gives under `open-on="long-press"`, saying how
|
|
23922
|
+
its actions are reached.
|
|
23923
|
+
|
|
23924
|
+
A slotted trigger is described by the dial, which carries the words as
|
|
23925
|
+
its own label for that: a Helix button's inner control at once, and a
|
|
23926
|
+
plain element of yours once a reader reaches it, after hydration, unless
|
|
23927
|
+
you described or labeled it yourself. */
|
|
23928
|
+
"attr:long-press-label"?: (HelixHeadlessSpeedDial["longPressLabel"]) | undefined;
|
|
23929
|
+
/** The description the trigger gives under `open-on="long-press"`, saying how
|
|
23930
|
+
its actions are reached.
|
|
23931
|
+
|
|
23932
|
+
A slotted trigger is described by the dial, which carries the words as
|
|
23933
|
+
its own label for that: a Helix button's inner control at once, and a
|
|
23934
|
+
plain element of yours once a reader reaches it, after hydration, unless
|
|
23935
|
+
you described or labeled it yourself. */
|
|
23936
|
+
"prop:longPressLabel"?: (HelixHeadlessSpeedDial["longPressLabel"]) | undefined;
|
|
23431
23937
|
/** Space between the trigger and the actions, in pixels. */
|
|
23432
23938
|
"prop:offset"?: (HelixHeadlessSpeedDial["offset"]) | undefined;
|
|
23939
|
+
/** What opens the dial. `click` opens it on a press of the trigger. Under
|
|
23940
|
+
`long-press`, a press is the trigger's own action, and the dial opens on a
|
|
23941
|
+
press held for half a second, or on Alt+Down or Alt+Up. */
|
|
23942
|
+
"attr:open-on"?: (HelixHeadlessSpeedDial["openOn"]) | undefined;
|
|
23943
|
+
/** What opens the dial. `click` opens it on a press of the trigger. Under
|
|
23944
|
+
`long-press`, a press is the trigger's own action, and the dial opens on a
|
|
23945
|
+
press held for half a second, or on Alt+Down or Alt+Up. */
|
|
23946
|
+
"prop:openOn"?: (HelixHeadlessSpeedDial["openOn"]) | undefined;
|
|
23433
23947
|
/** The direction the actions open in. They move to another side if that side
|
|
23434
23948
|
does not fit.
|
|
23435
23949
|
|
|
@@ -23629,7 +24143,7 @@ The arrow keys move by `step` and do not snap. */
|
|
|
23629
24143
|
"onhelix-resized"?: ((
|
|
23630
24144
|
e: HelixHeadlessSplitterHelixResizedElementEvent,
|
|
23631
24145
|
) => void) | undefined;
|
|
23632
|
-
/** Fired each time
|
|
24146
|
+
/** Fired each time the divider moves, as a range input does: on each step of a drag, and before `helix-resized` for a key, a double click or a corner. Read `position` for where it is now. */
|
|
23633
24147
|
oninput?: ((e: HelixHeadlessSplitterElementEvent) => void) | undefined;
|
|
23634
24148
|
};
|
|
23635
24149
|
|
|
@@ -23769,7 +24283,7 @@ The arrow keys move by `step` and do not snap. */
|
|
|
23769
24283
|
"on:helix-resized"?: ((
|
|
23770
24284
|
e: HelixHeadlessSplitterHelixResizedElementEvent,
|
|
23771
24285
|
) => void) | undefined;
|
|
23772
|
-
/** Fired each time
|
|
24286
|
+
/** Fired each time the divider moves, as a range input does: on each step of a drag, and before `helix-resized` for a key, a double click or a corner. Read `position` for where it is now. */
|
|
23773
24287
|
"on:input"?: ((e: HelixHeadlessSplitterElementEvent) => void) | undefined;
|
|
23774
24288
|
|
|
23775
24289
|
/** Set the innerHTML of the element */
|
|
@@ -24788,6 +25302,14 @@ is set. */
|
|
|
24788
25302
|
"descending-label"?: (HelixHeadlessTable["descendingLabel"]) | undefined;
|
|
24789
25303
|
/** The word for a descending sort, in `sorted-label`. */
|
|
24790
25304
|
descendingLabel?: (HelixHeadlessTable["descendingLabel"]) | undefined;
|
|
25305
|
+
/** Makes the table a grid: one tab stop, and the arrow keys, Home, End and the
|
|
25306
|
+
Page keys move focus between its cells, the headings included. Enter moves
|
|
25307
|
+
into a cell's controls, and Tab leaves the table.
|
|
25308
|
+
|
|
25309
|
+
Off by default, where the table is a static `table` and Tab reaches each
|
|
25310
|
+
link and control in it. On, the table writes a `tabindex` onto each of its
|
|
25311
|
+
cells, which is the one way a cell of your markup can take focus. */
|
|
25312
|
+
grid?: (HelixHeadlessTable["grid"]) | undefined;
|
|
24791
25313
|
/** Accessible name for the table.
|
|
24792
25314
|
|
|
24793
25315
|
An `aria-label` or `aria-labelledby` on the host names the table too, and
|
|
@@ -24909,6 +25431,14 @@ is set. */
|
|
|
24909
25431
|
"attr:descending-label"?: (HelixHeadlessTable["descendingLabel"]) | undefined;
|
|
24910
25432
|
/** The word for a descending sort, in `sorted-label`. */
|
|
24911
25433
|
"prop:descendingLabel"?: (HelixHeadlessTable["descendingLabel"]) | undefined;
|
|
25434
|
+
/** Makes the table a grid: one tab stop, and the arrow keys, Home, End and the
|
|
25435
|
+
Page keys move focus between its cells, the headings included. Enter moves
|
|
25436
|
+
into a cell's controls, and Tab leaves the table.
|
|
25437
|
+
|
|
25438
|
+
Off by default, where the table is a static `table` and Tab reaches each
|
|
25439
|
+
link and control in it. On, the table writes a `tabindex` onto each of its
|
|
25440
|
+
cells, which is the one way a cell of your markup can take focus. */
|
|
25441
|
+
"prop:grid"?: (HelixHeadlessTable["grid"]) | undefined;
|
|
24912
25442
|
/** Accessible name for the table.
|
|
24913
25443
|
|
|
24914
25444
|
An `aria-label` or `aria-labelledby` on the host names the table too, and
|
|
@@ -30642,6 +31172,23 @@ export type CustomElements = {
|
|
|
30642
31172
|
* announcement beside it, move focus yourself, for example to the page's main
|
|
30643
31173
|
* heading.
|
|
30644
31174
|
*
|
|
31175
|
+
* **The announcement is a landmark region**, named by `label`, "Announcement"
|
|
31176
|
+
* unless you set it, so a screen reader lists it among the page's regions.
|
|
31177
|
+
* `hotkey`, F6 unless you set it, moves focus to the announcement's first
|
|
31178
|
+
* control, an action or the dismiss button, and pressed there moves focus
|
|
31179
|
+
* back to where it was, as React Aria's toast region does. An announcement
|
|
31180
|
+
* with no control leaves the key to the browser. When an announcement that
|
|
31181
|
+
* the key moved focus into is removed with focus still inside, focus goes
|
|
31182
|
+
* back to where it was before the key.
|
|
31183
|
+
*
|
|
31184
|
+
* **Set `queued` to show several announcements one at a time.** A queued
|
|
31185
|
+
* announcement waits while a queued announcement before it in the same parent
|
|
31186
|
+
* is still there, and shows when that one is removed: its message is then
|
|
31187
|
+
* read out, and its `duration` starts. While it waits it renders nothing,
|
|
31188
|
+
* is no region, and carries `:state(waiting)`. A server cannot see the
|
|
31189
|
+
* announcements beside it, so a served page shows every one until the script
|
|
31190
|
+
* runs.
|
|
31191
|
+
*
|
|
30645
31192
|
* Set `duration` to dismiss it after a time. The clock stops while the pointer
|
|
30646
31193
|
* or focus is on the announcement, and continues from what was left, so a
|
|
30647
31194
|
* reader partway through is not cut off. It stops while the page is hidden too,
|
|
@@ -30659,6 +31206,19 @@ export type CustomElements = {
|
|
|
30659
31206
|
*
|
|
30660
31207
|
* Read once when the announcement is first rendered, as `Toast` reads its
|
|
30661
31208
|
* own. The clock stops while the pointer or focus is on the announcement.
|
|
31209
|
+
* - `hotkey`: The key that moves focus to the announcement's first control, and back
|
|
31210
|
+
* to where it was, written as keys joined by `+`, such as `F6` or `Alt+A`.
|
|
31211
|
+
*
|
|
31212
|
+
* F6 by default, the key React Aria's regions answer to. Empty turns it
|
|
31213
|
+
* off. With several announcements, the first one in the page takes focus.
|
|
31214
|
+
* - `label`: The name of the announcement's region, which screen readers list among
|
|
31215
|
+
* the page's landmarks. Translate it with the rest of your interface.
|
|
31216
|
+
*
|
|
31217
|
+
* Empty leaves the announcement no region.
|
|
31218
|
+
* - `queued`: Whether the announcement waits its turn behind the queued announcements
|
|
31219
|
+
* before it in the same parent, showing when the last of them is removed.
|
|
31220
|
+
*
|
|
31221
|
+
* Off by default, so every announcement on a page shows at once.
|
|
30662
31222
|
* - `tone`: The band's color.
|
|
30663
31223
|
*
|
|
30664
31224
|
* Paint only: unlike `Callout`, no value here draws a mark, changes the label,
|
|
@@ -30743,6 +31303,7 @@ export type CustomElements = {
|
|
|
30743
31303
|
* These can be used to apply styling when a component is in a given state.
|
|
30744
31304
|
*
|
|
30745
31305
|
* - `paused`: The clock `duration` started is stopped, while the pointer or focus is on the announcement or the page is hidden.
|
|
31306
|
+
* - `waiting`: The announcement is `queued` behind another, and renders nothing until that one is removed.
|
|
30746
31307
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
30747
31308
|
*/
|
|
30748
31309
|
"helix-headless-announcement": Partial<
|
|
@@ -31049,6 +31610,9 @@ export type CustomElements = {
|
|
|
31049
31610
|
*
|
|
31050
31611
|
* A column's heading is the cell's name in every row, so the first row
|
|
31051
31612
|
* answers for the column.
|
|
31613
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
31614
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
31615
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
31052
31616
|
*
|
|
31053
31617
|
* ## CSS Parts
|
|
31054
31618
|
*
|
|
@@ -31646,6 +32210,9 @@ export type CustomElements = {
|
|
|
31646
32210
|
*
|
|
31647
32211
|
* A column's heading is the cell's name in every row, so the first row
|
|
31648
32212
|
* answers for the column.
|
|
32213
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
32214
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
32215
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
31649
32216
|
*
|
|
31650
32217
|
* ## CSS Custom Properties
|
|
31651
32218
|
*
|
|
@@ -31705,13 +32272,33 @@ export type CustomElements = {
|
|
|
31705
32272
|
>;
|
|
31706
32273
|
|
|
31707
32274
|
/**
|
|
31708
|
-
* Renders a
|
|
32275
|
+
* Renders a figure holding the `<blockquote>` and a caption for the
|
|
31709
32276
|
* attribution, the structure the HTML spec describes. The attribution sits
|
|
31710
32277
|
* outside the quotation because it is about the quotation, and it names the
|
|
31711
32278
|
* figure, so a screen reader reads the source as the figure's caption.
|
|
31712
32279
|
*
|
|
31713
|
-
* The figure
|
|
31714
|
-
*
|
|
32280
|
+
* **The figure is a `<div role="figure">`**, so the headless tier draws no
|
|
32281
|
+
* space around the quotation. A `<figure>` takes a 40px indent and a line of
|
|
32282
|
+
* space above and below from the browser's own sheet, which every page had to
|
|
32283
|
+
* reset. The `<blockquote>` keeps its own margins, as a bare one does. A
|
|
32284
|
+
* screen reader meets the same figure, named by its caption.
|
|
32285
|
+
*
|
|
32286
|
+
* **A figure only while there is an attribution.** With nothing in the caption
|
|
32287
|
+
* the figure has no name and nothing to say, so the role and its name are
|
|
32288
|
+
* dropped and a reader meets the quotation alone. A server cannot see what is
|
|
32289
|
+
* slotted, so it serves the figure, and the client drops it after hydration;
|
|
32290
|
+
* an `attribution` written as words is served exactly.
|
|
32291
|
+
*
|
|
32292
|
+
* **Quotation marks follow the language**, under `marks`. The opening mark is
|
|
32293
|
+
* the one the browser sets for a `<q>` in the element's language, „ under
|
|
32294
|
+
* `lang="de"` and « under `lang="fr"`, and a `Quote` inside the passage takes
|
|
32295
|
+
* the inner marks. The mark is drawn, not read: a screen reader hears the
|
|
32296
|
+
* passage. A passage under `marks` that starts with a mark typed into the text
|
|
32297
|
+
* would show two, and warns once, with the runtime kind `typed-marks`.
|
|
32298
|
+
*
|
|
32299
|
+
* **`cite` is the source's URL**, which the browser keeps and does not show.
|
|
32300
|
+
* Words in it, such as the author's name, warn once, with the runtime kind
|
|
32301
|
+
* `cite-not-url`.
|
|
31715
32302
|
*
|
|
31716
32303
|
* For a quotation inside a sentence, use `Quote`.
|
|
31717
32304
|
*
|
|
@@ -31719,7 +32306,16 @@ export type CustomElements = {
|
|
|
31719
32306
|
*
|
|
31720
32307
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
31721
32308
|
*
|
|
31722
|
-
* - `
|
|
32309
|
+
* - `attribution`: Who said it, and where, as words, such as "Maria Lopez, operations
|
|
32310
|
+
* manager". The `attribution` slot replaces them, for markup such as a link.
|
|
32311
|
+
*
|
|
32312
|
+
* Words are served with the figure they name, where a server cannot see a
|
|
32313
|
+
* slotted attribution.
|
|
32314
|
+
* - `cite`: The URL of the source the passage came from. Who said it goes in
|
|
32315
|
+
* `attribution`: a `cite` with words in it warns once, with the runtime kind
|
|
32316
|
+
* `cite-not-url`.
|
|
32317
|
+
* - `marks`: Whether to draw an opening quotation mark before the passage, in the
|
|
32318
|
+
* element's language. Leave the marks out of the text.
|
|
31723
32319
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
31724
32320
|
*
|
|
31725
32321
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -31746,15 +32342,15 @@ export type CustomElements = {
|
|
|
31746
32342
|
* Areas where markup can be added to the component.
|
|
31747
32343
|
*
|
|
31748
32344
|
* - `(default)`: The quoted passage.
|
|
31749
|
-
* - `attribution`: Who said it, and where.
|
|
32345
|
+
* - `attribution`: Who said it, and where. Replaces the words of `attribution`.
|
|
31750
32346
|
*
|
|
31751
32347
|
* ## CSS Parts
|
|
31752
32348
|
*
|
|
31753
32349
|
* Custom selectors for styling elements within the component.
|
|
31754
32350
|
*
|
|
31755
|
-
* - `attribution`: The
|
|
32351
|
+
* - `attribution`: The caption carrying the source.
|
|
31756
32352
|
* - `blockquote`: The quotation.
|
|
31757
|
-
* - `figure`: The
|
|
32353
|
+
* - `figure`: The figure holding the quotation and its attribution, a `<div>` with `role="figure"` while the attribution has words.
|
|
31758
32354
|
*
|
|
31759
32355
|
* ## CSS States
|
|
31760
32356
|
*
|
|
@@ -31962,12 +32558,50 @@ export type CustomElements = {
|
|
|
31962
32558
|
* controls, and a development build warns once with the kind `missing-name`.
|
|
31963
32559
|
*
|
|
31964
32560
|
* The group does not manage focus, so each button keeps its own tab stop. For
|
|
31965
|
-
* one tab stop with arrow keys between
|
|
31966
|
-
* use Toolbar.
|
|
32561
|
+
* one tab stop with arrow keys between a mix of controls, the APG toolbar
|
|
32562
|
+
* pattern, use Toolbar.
|
|
31967
32563
|
*
|
|
31968
32564
|
* Buttons are slotted, so they stay your own elements and keep their own
|
|
31969
32565
|
* appearance and size.
|
|
31970
32566
|
*
|
|
32567
|
+
* **Buttons that stay pressed.** With `selection-mode`, each button with a
|
|
32568
|
+
* `value` is a toggle button: a press presses or releases it, and it says so
|
|
32569
|
+
* with `aria-pressed`. `single` keeps one pressed at a time, and a press on the
|
|
32570
|
+
* pressed one releases it. `multiple` lets any number be pressed. `value` is
|
|
32571
|
+
* the pressed values, comma separated. A press sends a cancelable
|
|
32572
|
+
* `helix-before-change` with the value it would leave, then `change`.
|
|
32573
|
+
*
|
|
32574
|
+
* The pressed state is written on the control inside each button's shadow
|
|
32575
|
+
* root, so the markup you rendered is never changed and a framework hydrating
|
|
32576
|
+
* it sees what its server sent. That is also why only Helix buttons are
|
|
32577
|
+
* toggles: a native `<button>` or a button without a `value` stays a plain
|
|
32578
|
+
* action button in the group, and a native one without its own
|
|
32579
|
+
* `aria-pressed` warns once, with the runtime kind `untold-toggle`. The inner
|
|
32580
|
+
* control also carries
|
|
32581
|
+
* `--button-group-pressed`, `1` or `0`, for a `::part(button)` rule of yours.
|
|
32582
|
+
*
|
|
32583
|
+
* Use Toggle Group instead for a choice that belongs in a form, or one where
|
|
32584
|
+
* the arrow keys choose as they move: it is a `radiogroup` of options with a
|
|
32585
|
+
* form value, `required` and validation. A Button Group in a selection mode is
|
|
32586
|
+
* a set of actions that stay on, such as bold and italic, or a view that a
|
|
32587
|
+
* press switches, and it submits nothing.
|
|
32588
|
+
*
|
|
32589
|
+
* **Keyboard.** In a selection mode the group is one tab stop: the button
|
|
32590
|
+
* focus was last on, then the first pressed one, then the first one.
|
|
32591
|
+
*
|
|
32592
|
+
* | Key | What it does |
|
|
32593
|
+
* |---|---|
|
|
32594
|
+
* | Right, Down | Moves to the next button, from the last back to the first. |
|
|
32595
|
+
* | Left, Up | Moves to the button before, from the first round to the last. |
|
|
32596
|
+
* | Home, End | Moves to the first or the last button. |
|
|
32597
|
+
* | Space, Enter | Presses or releases the focused button. |
|
|
32598
|
+
*
|
|
32599
|
+
* Left and Right swap on a right-to-left page, and a disabled button is
|
|
32600
|
+
* passed over. In a selection mode the group is a `toolbar`, with
|
|
32601
|
+
* `aria-orientation` under `orientation="vertical"`. Inside a toolbar it stays
|
|
32602
|
+
* a named `group`, and the toolbar's own arrow keys walk its buttons, so a
|
|
32603
|
+
* reader meets one toolbar.
|
|
32604
|
+
*
|
|
31971
32605
|
* ## Attributes & Properties
|
|
31972
32606
|
*
|
|
31973
32607
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -31993,6 +32627,16 @@ export type CustomElements = {
|
|
|
31993
32627
|
* buttons sharing edges as one shape, and a wrapped row carries the corners of
|
|
31994
32628
|
* a first row into a second. Stacked, the same three keep one shape and one
|
|
31995
32629
|
* column.
|
|
32630
|
+
* - `selection-mode`/`selectionMode`: Whether the buttons stay pressed: `single` keeps one pressed at a time and
|
|
32631
|
+
* `multiple` any number. Unset, they are action buttons, each its own tab
|
|
32632
|
+
* stop, as before.
|
|
32633
|
+
*
|
|
32634
|
+
* Optional, so the attribute is absent until a consumer writes it.
|
|
32635
|
+
* - `value`: The values of the pressed buttons, comma separated, in a selection mode.
|
|
32636
|
+
* A button's own `value` names it, so a value holds no comma.
|
|
32637
|
+
*
|
|
32638
|
+
* The attribute is the seed, and a press changes the property, which does
|
|
32639
|
+
* not reflect, as a native control's `value` does not.
|
|
31996
32640
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
31997
32641
|
*
|
|
31998
32642
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -32014,12 +32658,25 @@ export type CustomElements = {
|
|
|
32014
32658
|
* browser harness's awaits it alone: a browser always runs the frame, and a
|
|
32015
32659
|
* timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
|
|
32016
32660
|
*
|
|
32661
|
+
* ## Events
|
|
32662
|
+
*
|
|
32663
|
+
* Events that will be emitted by the component.
|
|
32664
|
+
*
|
|
32665
|
+
* - `change`: Fired after a press changes `value`, in a selection mode.
|
|
32666
|
+
* - `helix-before-change`: Fired before a press changes `value`, with the value it would leave in `detail.value`. Cancelable: call `preventDefault()` to keep the buttons as they are.
|
|
32667
|
+
*
|
|
32017
32668
|
* ## Slots
|
|
32018
32669
|
*
|
|
32019
32670
|
* Areas where markup can be added to the component.
|
|
32020
32671
|
*
|
|
32021
32672
|
* - `(default)`: The buttons in the group.
|
|
32022
32673
|
*
|
|
32674
|
+
* ## CSS Custom Properties
|
|
32675
|
+
*
|
|
32676
|
+
* CSS variables available for styling the component.
|
|
32677
|
+
*
|
|
32678
|
+
* - `--button-group-pressed`: Written on the control inside each toggle button of a group with `selection-mode`: `1` while it is pressed and `0` while it is not. Read it in a `::part(button)` rule to draw the pressed look.
|
|
32679
|
+
*
|
|
32023
32680
|
* ## CSS States
|
|
32024
32681
|
*
|
|
32025
32682
|
* These can be used to apply styling when a component is in a given state.
|
|
@@ -32686,20 +33343,34 @@ export type CustomElements = {
|
|
|
32686
33343
|
* keep every card in place, such as on a published board. Set `readonly` on one
|
|
32687
33344
|
* card or connection to keep only that one in place.
|
|
32688
33345
|
*
|
|
33346
|
+
* Set `snap` to a length in the document's units, such as `32`, and a card
|
|
33347
|
+
* that is moved or resized lands on a multiple of it. Carrying a card, a
|
|
33348
|
+
* corner, a connection, or the selection box near the edge of the board moves
|
|
33349
|
+
* the board under it, so a card can be taken to a place off screen in one
|
|
33350
|
+
* drag. A connection let go within 20 pixels of a card arrives at it. A
|
|
33351
|
+
* double click on the empty board zooms in about that point, and Shift with a
|
|
33352
|
+
* double click zooms out.
|
|
33353
|
+
*
|
|
32689
33354
|
* Keyboard behavior:
|
|
32690
33355
|
* - One card holds the board's tab stop.
|
|
32691
33356
|
* - The arrow keys move through the cards in reading order. The card you land
|
|
32692
33357
|
* on scrolls into view, and its connections are announced with it.
|
|
32693
|
-
* - Shift with an arrow key moves the card
|
|
33358
|
+
* - Shift with an arrow key moves the card: by 16 units, or to the next
|
|
33359
|
+
* multiple of `snap` where it is set. Alt with an arrow key resizes it from
|
|
33360
|
+
* its bottom right corner the same way.
|
|
32694
33361
|
* - The connections leaving a card are stops of their own, straight after it.
|
|
32695
33362
|
* Enter on one moves to the card it arrives at.
|
|
33363
|
+
* - What a key changes that a reader cannot see is said: where a card moved
|
|
33364
|
+
* to, its new size, how many cards are selected, and the zoom. A selected
|
|
33365
|
+
* card or connection says so when a reader arrives on it.
|
|
32696
33366
|
*
|
|
32697
33367
|
* Every drag also works with clicks, as WCAG 2.5.7 requires for a pointer that
|
|
32698
33368
|
* cannot hold a button down. Click a selected card's move handle, a corner, a
|
|
32699
33369
|
* card's connection point, or the end of a selected connection to pick it up.
|
|
32700
33370
|
* It follows the pointer with no button held, and the next click puts it down
|
|
32701
33371
|
* where a drag would have. On touch, the next tap sets where it lands. Escape,
|
|
32702
|
-
* or a press outside the board, puts it back.
|
|
33372
|
+
* or a press outside the board, puts it back. So a finger connects two cards
|
|
33373
|
+
* with three taps: the card, one of its points, and the card to connect to.
|
|
32703
33374
|
*
|
|
32704
33375
|
* Connecting and removing dispatch requests, and your code applies them:
|
|
32705
33376
|
* - Drawing from a card's handle to another card, or pressing C on one card and
|
|
@@ -32744,6 +33415,12 @@ export type CustomElements = {
|
|
|
32744
33415
|
*
|
|
32745
33416
|
* The list is joined the way the page's language joins one, "Second and
|
|
32746
33417
|
* Third", rather than with a comma this component chose.
|
|
33418
|
+
* - `moved-label`/`movedLabel`: What screen readers hear after a key moves a card, with `{name}` for the
|
|
33419
|
+
* card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
33420
|
+
*
|
|
33421
|
+
* **A move a reader cannot see has to be said.** Shift with an arrow moved
|
|
33422
|
+
* the card and said nothing, so a reader moving one by keys could not tell
|
|
33423
|
+
* whether it had moved, or how far.
|
|
32747
33424
|
* - `order`: The order the arrow keys and screen readers move through the cards:
|
|
32748
33425
|
* `spatial` or `edges`.
|
|
32749
33426
|
*
|
|
@@ -32769,6 +33446,9 @@ export type CustomElements = {
|
|
|
32769
33446
|
* walk the cards.
|
|
32770
33447
|
* - `reconnecting-label`/`reconnectingLabel`: The text announced when a connection's end is picked up, with `{from}` and
|
|
32771
33448
|
* `{to}`.
|
|
33449
|
+
* - `resized-label`/`resizedLabel`: What screen readers hear after a key resizes a card, with `{name}` for the
|
|
33450
|
+
* card and `{width}` and `{height}` for its new size, in the document's
|
|
33451
|
+
* units.
|
|
32772
33452
|
* - `selected`: The names of the selected cards and connections, comma separated. Empty
|
|
32773
33453
|
* when nothing is selected.
|
|
32774
33454
|
*
|
|
@@ -32788,6 +33468,26 @@ export type CustomElements = {
|
|
|
32788
33468
|
* on its board across cards and connections both, and may not hold a comma.
|
|
32789
33469
|
*
|
|
32790
33470
|
* Written to select from outside, and read to act on the selection.
|
|
33471
|
+
* - `selected-label`/`selectedLabel`: What a selected card or connection adds to what screen readers hear on
|
|
33472
|
+
* it, before its tone and its connections. Empty adds nothing.
|
|
33473
|
+
*
|
|
33474
|
+
* A card is an article and a connection a button, and neither has a selected
|
|
33475
|
+
* state for `aria-selected` to carry, so the state is said in words.
|
|
33476
|
+
* - `selection-label`/`selectionLabel`: What screen readers hear after the selection grows or shrinks, with
|
|
33477
|
+
* `{count}` for how many cards and connections are selected: by Space, a
|
|
33478
|
+
* click with Shift, Command or Control, Command or Control with A, a box
|
|
33479
|
+
* drawn across the board, or Escape.
|
|
33480
|
+
*
|
|
33481
|
+
* A selection of one made by arriving on a card or clicking it is not said,
|
|
33482
|
+
* since the card is.
|
|
33483
|
+
* - `snap`: Snaps the cards a reader moves or resizes to a multiple of this many of the
|
|
33484
|
+
* document's units, such as `32` to land on the lines `grid` draws.
|
|
33485
|
+
*
|
|
33486
|
+
* **A drag lets go on the nearest line and a key goes to the next one.**
|
|
33487
|
+
* Shift with an arrow moves a card to the next line that way, rather than
|
|
33488
|
+
* by its step of 16, and Alt with an arrow moves its bottom right corner
|
|
33489
|
+
* the same way. A group moves with what it carries, so a card inside one
|
|
33490
|
+
* keeps its place in it. Absent, cards land where they are let go.
|
|
32791
33491
|
* - `stopped-label`/`stoppedLabel`: The text announced when a connection is stopped before it is requested.
|
|
32792
33492
|
* - `tone-labels`/`toneLabels`: What each tone means on this board, in words read out with the cards and
|
|
32793
33493
|
* connections in it, such as `{"danger": "Blocked", "success": "Done"}`.
|
|
@@ -32797,6 +33497,8 @@ export type CustomElements = {
|
|
|
32797
33497
|
* red is "blocked" on one board and "urgent" on the next. A reader who can
|
|
32798
33498
|
* see the board is told by the color; this is how a reader who cannot is
|
|
32799
33499
|
* told the same. A tone left out is not read.
|
|
33500
|
+
* - `zoomed-label`/`zoomedLabel`: What screen readers hear after a zoom button or key, with `{zoom}` for the
|
|
33501
|
+
* zoom as a percentage, written the way the page's language writes one.
|
|
32800
33502
|
* - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
|
|
32801
33503
|
* swiped over, with `gestures="activate"`. Absent is the family's own.
|
|
32802
33504
|
* - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
|
|
@@ -32943,7 +33645,14 @@ export type CustomElements = {
|
|
|
32943
33645
|
* - `(default)`: The board's `helix-canvas-node` and `helix-canvas-edge` elements, drawn on the plane.
|
|
32944
33646
|
* - `empty`: Content shown when the document has no nodes.
|
|
32945
33647
|
* - `footer`: Content below the board.
|
|
33648
|
+
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
32946
33649
|
* - `header`: Content above the board.
|
|
33650
|
+
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
33651
|
+
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
33652
|
+
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
33653
|
+
* - `pan-up-icon`: Replaces the glyph inside the pan up button.
|
|
33654
|
+
* - `zoom-in-icon`: Replaces the glyph inside the zoom-in button.
|
|
33655
|
+
* - `zoom-out-icon`: Replaces the glyph inside the zoom-out button.
|
|
32947
33656
|
*
|
|
32948
33657
|
* ## Methods
|
|
32949
33658
|
*
|
|
@@ -34492,15 +35201,17 @@ export type CustomElements = {
|
|
|
34492
35201
|
* the button is drawn only while the cap hides something, measured as the
|
|
34493
35202
|
* block lays out. Not for a diff, whose files each scroll on their own.
|
|
34494
35203
|
* - `expand-label`/`expandLabel`: The expand button's words while the cap hides lines.
|
|
34495
|
-
* - `label`: The block's name, usually a file name
|
|
35204
|
+
* - `label`: The block's name, usually a file name, drawn in the header.
|
|
34496
35205
|
*
|
|
34497
|
-
*
|
|
34498
|
-
*
|
|
35206
|
+
* Absent, the block is named by `language` where there is one. In a diff,
|
|
35207
|
+
* each file is named from the patch, and this names a patch that carries no
|
|
35208
|
+
* name of its own.
|
|
34499
35209
|
* - `language`: The language the code is written in, such as `ts` or `css`, handed to
|
|
34500
35210
|
* `highlight` as its second argument.
|
|
34501
35211
|
*
|
|
34502
|
-
*
|
|
34503
|
-
*
|
|
35212
|
+
* A block with no `label` is named by it, in the header and on the copy
|
|
35213
|
+
* button, as a docs site names a snippet by its language. Absent hands
|
|
35214
|
+
* `highlight` an empty string and names nothing.
|
|
34504
35215
|
* - `line-numbers`/`lineNumbers`: Whether the lines are numbered in a gutter beside the code.
|
|
34505
35216
|
*
|
|
34506
35217
|
* The numbers are hidden from the accessibility tree and are not part of a
|
|
@@ -34610,7 +35321,7 @@ export type CustomElements = {
|
|
|
34610
35321
|
* - `gutter`: The line numbers beside the code, shown when `line-numbers` is set.
|
|
34611
35322
|
* - `header`: The bar that holds the name and the copy button, shown when there is a name.
|
|
34612
35323
|
* - `hunk`: In a diff, a `@@` line saying where the lines under it are.
|
|
34613
|
-
* - `label`: The
|
|
35324
|
+
* - `label`: The block's name: its `label`, or its `language` where it has no label.
|
|
34614
35325
|
* - `marker`: In a diff, the `+`, `-`, or space that starts a line.
|
|
34615
35326
|
* - `new`: In a split diff, the new version's `<pre>`.
|
|
34616
35327
|
* - `number`: In a diff, a line number.
|
|
@@ -35406,13 +36117,33 @@ export type CustomElements = {
|
|
|
35406
36117
|
* reopened combobox starts from the whole list.
|
|
35407
36118
|
*
|
|
35408
36119
|
* Focus stays in the text field. The arrow keys move through the list with the
|
|
35409
|
-
* listbox's public `navigate` method.
|
|
35410
|
-
*
|
|
35411
|
-
*
|
|
35412
|
-
*
|
|
35413
|
-
*
|
|
35414
|
-
*
|
|
35415
|
-
*
|
|
36120
|
+
* listbox's public `navigate` method. As typing narrows the list, a screen
|
|
36121
|
+
* reader hears how many options are left, such as "3 results". Emptying the
|
|
36122
|
+
* field and leaving it clears a single choice.
|
|
36123
|
+
*
|
|
36124
|
+
* **Keyboard.**
|
|
36125
|
+
*
|
|
36126
|
+
* | Key | What it does |
|
|
36127
|
+
* |---|---|
|
|
36128
|
+
* | Down, Up | On a closed field, opens the list on the chosen option, or the first or the last. In the open list, moves the highlight, round from the last option to the first. |
|
|
36129
|
+
* | Page Down, Page Up | In the open list, moves the highlight by as many options as the list shows at once. |
|
|
36130
|
+
* | Enter | Chooses the highlighted option. With nothing left in the list, creates what was typed with `creatable`, or takes it with `allows-custom-value`. On a closed field, submits the form. |
|
|
36131
|
+
* | Escape | Closes the list and puts the chosen words back. On a closed field, a second Escape clears a single choice. |
|
|
36132
|
+
* | Tab | Closes the list and moves on. |
|
|
36133
|
+
* | Backspace | With `multiple`, on an empty field, removes the last tag. |
|
|
36134
|
+
* | Space, Home, End, letters | Edit the text. |
|
|
36135
|
+
*
|
|
36136
|
+
* **ARIA.** The input is the `combobox`, named by the label, with
|
|
36137
|
+
* `aria-expanded`, `aria-controls` naming the list, `aria-autocomplete`
|
|
36138
|
+
* (`both` with `suggest`, `list` otherwise) and `aria-activedescendant` on
|
|
36139
|
+
* the highlighted option. The list is the listbox `Listbox` describes.
|
|
36140
|
+
*
|
|
36141
|
+
* On Apple devices, where VoiceOver does not read the option the field points
|
|
36142
|
+
* to, the field says it in a live region as the highlight moves, says how many
|
|
36143
|
+
* options there are as the list opens, and says a choice once it is made, as
|
|
36144
|
+
* React Aria's combobox does there.
|
|
36145
|
+
*
|
|
36146
|
+
* Set `autocomplete` to let a browser's autofill choose an option.
|
|
35416
36147
|
*
|
|
35417
36148
|
* With `multiple`, each chosen option is a tag in the field with its own remove
|
|
35418
36149
|
* control. The panel stays open and the filter clears after each choice, so the
|
|
@@ -35435,12 +36166,19 @@ export type CustomElements = {
|
|
|
35435
36166
|
* leaves the field or presses Enter with nothing highlighted, and text that
|
|
35436
36167
|
* names an option takes that option. Unlike `creatable`, no event asks
|
|
35437
36168
|
* first and no option is expected to be added: the value is the text.
|
|
35438
|
-
* - `autocomplete`: What the browser may autofill
|
|
36169
|
+
* - `autocomplete`: What the browser may autofill, as a platform token such as `country`.
|
|
35439
36170
|
*
|
|
35440
36171
|
* **Defaults to `off`, which is not the platform's default and is the
|
|
35441
36172
|
* point.** The field filters a list rather than collecting a value, so a
|
|
35442
36173
|
* browser offering to fill it with a saved address is competing for the same
|
|
35443
36174
|
* keystrokes as the listbox. A consumer who wants autofill can still ask.
|
|
36175
|
+
*
|
|
36176
|
+
* Set, a combobox whose answer is one of its options keeps a hidden native
|
|
36177
|
+
* `<select>` with the same options for the browser to fill, as React Aria's
|
|
36178
|
+
* combobox and Select do, and the option the browser picks, by its value or
|
|
36179
|
+
* its words, becomes the value. The text field itself stays `off`, so the
|
|
36180
|
+
* browser fills the answer and not the filter. With `allows-custom-value`
|
|
36181
|
+
* the token goes on the text field, whose words are the answer.
|
|
35444
36182
|
* - `creatable`: Whether the user can add a value that is not in the list.
|
|
35445
36183
|
*
|
|
35446
36184
|
* The row appears while what is typed matches no option's words exactly, so
|
|
@@ -35459,8 +36197,9 @@ export type CustomElements = {
|
|
|
35459
36197
|
* every keystroke. See Listbox's `filter-delay`.
|
|
35460
36198
|
* - `list-label`/`listLabel`: The list's name, read by screen readers. The list has no visible name.
|
|
35461
36199
|
* - `load-error`/`loadError`: What the list says when its options could not be loaded, such as after a
|
|
35462
|
-
* request to a server fails. Empty
|
|
35463
|
-
*
|
|
36200
|
+
* request to a server fails. Empty, null or no attribute is no error, so
|
|
36201
|
+
* removing the attribute clears it. Passed to the list, which shows it
|
|
36202
|
+
* under any options there are and tells screen readers.
|
|
35464
36203
|
* - `loading`: Whether the options are still loading.
|
|
35465
36204
|
*
|
|
35466
36205
|
* Passed straight to the list, which is where the rows are and so where the
|
|
@@ -35504,6 +36243,8 @@ export type CustomElements = {
|
|
|
35504
36243
|
* - `results-label`/`resultsLabel`: What a screen reader hears when typing leaves any other number of
|
|
35505
36244
|
* options. `{count}` is the count, and `Intl.PluralRules` picks between the
|
|
35506
36245
|
* two.
|
|
36246
|
+
* - `selected-label`/`selectedLabel`: What VoiceOver hears for a chosen option, as the highlight reaches it and
|
|
36247
|
+
* once it is chosen, on Apple devices. `{name}` is the option's words.
|
|
35507
36248
|
* - `suggest`: Whether the field completes the word as the user types.
|
|
35508
36249
|
*
|
|
35509
36250
|
* `suggest` rather than `autocomplete`, which is a real HTML attribute this
|
|
@@ -35724,6 +36465,7 @@ export type CustomElements = {
|
|
|
35724
36465
|
* - `listbox-loading`: Shown while the options are loading.
|
|
35725
36466
|
* - `listbox-search`: The region holding the field that narrows the list.
|
|
35726
36467
|
* - `listbox-search-field`: The filter field inside that region.
|
|
36468
|
+
* - `live`: The region VoiceOver hears the highlight, the count and a choice from on Apple devices, drawn once there is one to say. Visually hidden in the styled tier.
|
|
35727
36469
|
* - `rest`: The count of choices held beyond `max-tags`. A `<button>` with `expandable`, a `<span>` without it.
|
|
35728
36470
|
* - `surface`: The floating panel.
|
|
35729
36471
|
* - `tag`: One chosen option.
|
|
@@ -35739,8 +36481,10 @@ export type CustomElements = {
|
|
|
35739
36481
|
*
|
|
35740
36482
|
* These can be used to apply styling when a component is in a given state.
|
|
35741
36483
|
*
|
|
36484
|
+
* - `blank`: While nothing is chosen.
|
|
35742
36485
|
* - `error`: While `load-error` is set.
|
|
35743
36486
|
* - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
|
|
36487
|
+
* - `loading`: While `loading` is set.
|
|
35744
36488
|
* - `no-results`: What was typed hid every option of a list that has some.
|
|
35745
36489
|
* - `open`: While the list is open.
|
|
35746
36490
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
@@ -35786,8 +36530,9 @@ export type CustomElements = {
|
|
|
35786
36530
|
* with: one key, said once.
|
|
35787
36531
|
* - `label`: Accessible name for the overlay, which has no visible heading.
|
|
35788
36532
|
* - `load-error`/`loadError`: What the list says when its commands could not be loaded, such as after a
|
|
35789
|
-
* request to a server fails. Empty
|
|
35790
|
-
*
|
|
36533
|
+
* request to a server fails. Empty, null or no attribute is no error, so
|
|
36534
|
+
* removing the attribute clears it. Passed to the list, which shows it
|
|
36535
|
+
* under any commands there are and tells screen readers.
|
|
35791
36536
|
* - `loading`: Whether the commands are still loading, for a palette that asks a server
|
|
35792
36537
|
* for them as the user types.
|
|
35793
36538
|
*
|
|
@@ -37376,6 +38121,7 @@ export type CustomElements = {
|
|
|
37376
38121
|
*
|
|
37377
38122
|
* Custom selectors for styling elements within the component.
|
|
37378
38123
|
*
|
|
38124
|
+
* - `actions`: The box after the value inside its `<dd>`, holding the `actions` slot.
|
|
37379
38125
|
* - `label`: The `<dt>`, holding the label.
|
|
37380
38126
|
* - `value`: The `<dd>`, holding the value.
|
|
37381
38127
|
*
|
|
@@ -37383,6 +38129,7 @@ export type CustomElements = {
|
|
|
37383
38129
|
*
|
|
37384
38130
|
* These can be used to apply styling when a component is in a given state.
|
|
37385
38131
|
*
|
|
38132
|
+
* - `several`: The values are several `<dd>` elements of your own, so the item draws no `value` part.
|
|
37386
38133
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
37387
38134
|
*/
|
|
37388
38135
|
"helix-headless-description-list-item": Partial<
|
|
@@ -37672,30 +38419,42 @@ export type CustomElements = {
|
|
|
37672
38419
|
* rendered element. The semantics are then in the server-rendered markup, with
|
|
37673
38420
|
* no attribute written by script after the element connects.
|
|
37674
38421
|
*
|
|
37675
|
-
*
|
|
37676
|
-
*
|
|
38422
|
+
* **The line is a separator**, as `<hr>` is, and as Radix Separator, React
|
|
38423
|
+
* Aria Separator, and Web Awesome's divider are. It is named by any content
|
|
38424
|
+
* set into it, so a screen reader says "Or, separator" where you wrote "Or" on
|
|
38425
|
+
* the line. Set `decorative` on a rule that separates nothing, such as one
|
|
38426
|
+
* under a heading or between the facts of a byline, and it leaves the
|
|
38427
|
+
* accessibility tree.
|
|
37677
38428
|
*
|
|
37678
|
-
* Use `orientation="vertical"` between items on one line
|
|
37679
|
-
*
|
|
37680
|
-
*
|
|
38429
|
+
* Use `orientation="vertical"` between items on one line. A vertical divider
|
|
38430
|
+
* stretches to fit its flex parent and sets no height of its own.
|
|
38431
|
+
*
|
|
38432
|
+
* **Inside a toolbar it runs across the toolbar** without being told: vertical
|
|
38433
|
+
* in a horizontal toolbar and horizontal in a vertical one, with
|
|
38434
|
+
* `aria-orientation` to match, as React Aria's separator does inside a
|
|
38435
|
+
* toolbar. Inside means a child of Toolbar or of the page's own
|
|
38436
|
+
* `role="toolbar"`. An `orientation` you write still wins. A server cannot see
|
|
38437
|
+
* the toolbar, so the turn arrives with hydration, inside the shadow root.
|
|
37681
38438
|
*
|
|
37682
38439
|
* ## Attributes & Properties
|
|
37683
38440
|
*
|
|
37684
38441
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
37685
38442
|
*
|
|
37686
|
-
* - `announced`: Whether screen readers announce the line as a separator
|
|
38443
|
+
* - `announced`: Whether screen readers announce the line as a separator, which they now do
|
|
38444
|
+
* by default.
|
|
37687
38445
|
*
|
|
37688
|
-
*
|
|
37689
|
-
*
|
|
37690
|
-
*
|
|
37691
|
-
*
|
|
38446
|
+
* It dates from when the line was decorative by default. It is still read,
|
|
38447
|
+
* and it wins over `decorative`, so a divider written with it stays a
|
|
38448
|
+
* separator.
|
|
38449
|
+
* - `decorative`: Takes the line out of the accessibility tree, for a rule that separates
|
|
38450
|
+
* nothing: one under a heading, or between the facts of a byline.
|
|
37692
38451
|
*
|
|
37693
|
-
*
|
|
37694
|
-
*
|
|
37695
|
-
*
|
|
37696
|
-
* property. An opt-in is absent by default, which every reflected property
|
|
37697
|
-
* here has to be.
|
|
38452
|
+
* Absent, the line is a separator, as `<hr>` is. Radix Separator's opt-out
|
|
38453
|
+
* has the same name. It turns the role off because a boolean attribute that
|
|
38454
|
+
* is on by default cannot be turned off from HTML.
|
|
37698
38455
|
* - `orientation`: The direction the line runs: `horizontal` or `vertical`.
|
|
38456
|
+
*
|
|
38457
|
+
* Unset is horizontal, or across the toolbar the divider sits in.
|
|
37699
38458
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
37700
38459
|
*
|
|
37701
38460
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -37734,6 +38493,7 @@ export type CustomElements = {
|
|
|
37734
38493
|
*
|
|
37735
38494
|
* These can be used to apply styling when a component is in a given state.
|
|
37736
38495
|
*
|
|
38496
|
+
* - `vertical`: The line runs vertically: `orientation="vertical"`, or no `orientation` inside a horizontal toolbar.
|
|
37737
38497
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
37738
38498
|
*/
|
|
37739
38499
|
"helix-headless-divider": Partial<
|
|
@@ -37935,6 +38695,9 @@ export type CustomElements = {
|
|
|
37935
38695
|
*
|
|
37936
38696
|
* A column's heading is the cell's name in every row, so the first row
|
|
37937
38697
|
* answers for the column.
|
|
38698
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
38699
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
38700
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
37938
38701
|
*
|
|
37939
38702
|
* ## CSS Custom Properties
|
|
37940
38703
|
*
|
|
@@ -38467,6 +39230,13 @@ export type CustomElements = {
|
|
|
38467
39230
|
* rendering from data or on a server gets a heading a reader finds in the
|
|
38468
39231
|
* outline without writing the element. A heading slotted in replaces it.
|
|
38469
39232
|
*
|
|
39233
|
+
* **Whatever is slotted into `heading` is read as a heading.** An element that
|
|
39234
|
+
* is no heading, such as a `<span>` or a `<p>`, is set inside the `heading`
|
|
39235
|
+
* part at `heading-level`, so a screen reader still finds it in the outline.
|
|
39236
|
+
* A heading element, or an element holding one, keeps its own level. A server
|
|
39237
|
+
* cannot see the slotted element, so a served `<span>` becomes a heading once
|
|
39238
|
+
* the script runs.
|
|
39239
|
+
*
|
|
38470
39240
|
* ## Attributes & Properties
|
|
38471
39241
|
*
|
|
38472
39242
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -38511,14 +39281,14 @@ export type CustomElements = {
|
|
|
38511
39281
|
*
|
|
38512
39282
|
* - `(default)`: The message: why the region is empty, and what to do about it.
|
|
38513
39283
|
* - `actions`: The action that would put something in the region.
|
|
38514
|
-
* - `heading`: The heading, which names what is missing.
|
|
39284
|
+
* - `heading`: The heading, which names what is missing. A heading element, such as an `<h3>`, keeps its level; any other element is read as a heading at `heading-level`. Replaces the one `heading` draws.
|
|
38515
39285
|
* - `icon`: An icon above the heading.
|
|
38516
39286
|
*
|
|
38517
39287
|
* ## CSS Parts
|
|
38518
39288
|
*
|
|
38519
39289
|
* Custom selectors for styling elements within the component.
|
|
38520
39290
|
*
|
|
38521
|
-
* - `heading`: The heading
|
|
39291
|
+
* - `heading`: The heading at `heading-level`: the one `heading` draws while nothing is slotted into `heading`, or the one around a slotted element that is no heading.
|
|
38522
39292
|
* - `live`: A copy of the heading and the message, in a live region that screen readers announce when the view appears. Visually hidden in the styled tier.
|
|
38523
39293
|
*
|
|
38524
39294
|
* ## CSS States
|
|
@@ -39707,6 +40477,12 @@ export type CustomElements = {
|
|
|
39707
40477
|
* showing a date schedules none, so a long feed left open costs almost nothing.
|
|
39708
40478
|
* `frozen` draws the reading once and leaves it.
|
|
39709
40479
|
*
|
|
40480
|
+
* **`fields` draws each field of a date as a part of its own**, such as
|
|
40481
|
+
* `day`, `month` and `year`, so a stylesheet can set the year in a lighter ink
|
|
40482
|
+
* or the weekday in capitals with `::part()`. The text between the fields is
|
|
40483
|
+
* the locale's own and has no part. An `elapsed` or `relative` reading is one
|
|
40484
|
+
* phrase, with no parts inside it.
|
|
40485
|
+
*
|
|
39710
40486
|
* **The output is always `<time datetime>`**, so copy and paste and scripts
|
|
39711
40487
|
* parsing the page get the exact instant, whatever the visible text says. A
|
|
39712
40488
|
* screen reader reads the text, so an `elapsed` reading is named in full, such
|
|
@@ -39746,6 +40522,13 @@ export type CustomElements = {
|
|
|
39746
40522
|
* this is and a stylesheet has a reason to know: a compact reading is a fixed
|
|
39747
40523
|
* few characters and a date is not.
|
|
39748
40524
|
* - `era`: How the era is written, such as AD, where a date is shown.
|
|
40525
|
+
* - `fields`: Draws each field of a date in a part of its own: `weekday`, `day`,
|
|
40526
|
+
* `month`, `year`, `era`, `hour`, `minute`, `second`, `day-period` and
|
|
40527
|
+
* `time-zone-name`, so `::part(year)` can set the year apart.
|
|
40528
|
+
*
|
|
40529
|
+
* Off by default, which draws the date as one run of text, as Shoelace and
|
|
40530
|
+
* Web Awesome do. An `elapsed` or `relative` reading is one phrase either
|
|
40531
|
+
* way.
|
|
39749
40532
|
* - `frozen`: Draws an `elapsed` or `relative` reading once and leaves it, where it
|
|
39750
40533
|
* would otherwise move on as it goes stale.
|
|
39751
40534
|
*
|
|
@@ -39811,12 +40594,24 @@ export type CustomElements = {
|
|
|
39811
40594
|
*
|
|
39812
40595
|
* Custom selectors for styling elements within the component.
|
|
39813
40596
|
*
|
|
40597
|
+
* - `day`: The day of the month, with `fields`.
|
|
40598
|
+
* - `day-period`: AM or PM, or the locale's word for the part of the day, with `fields`.
|
|
40599
|
+
* - `era`: The era, such as AD, with `fields` and `era`.
|
|
40600
|
+
* - `hour`: The hour, with `fields`.
|
|
40601
|
+
* - `minute`: The minute, with `fields`.
|
|
40602
|
+
* - `month`: The month, with `fields`.
|
|
40603
|
+
* - `second`: The second, with `fields`.
|
|
39814
40604
|
* - `time`: The `<time>` element that holds the formatted text.
|
|
40605
|
+
* - `time-zone-name`: The time zone's name, with `fields`, where `time-zone-name` or a `long` or `full` `time-style` shows it.
|
|
40606
|
+
* - `weekday`: The day of the week, with `fields`.
|
|
40607
|
+
* - `year`: The year, with `fields`.
|
|
39815
40608
|
*
|
|
39816
40609
|
* ## CSS States
|
|
39817
40610
|
*
|
|
39818
40611
|
* These can be used to apply styling when a component is in a given state.
|
|
39819
40612
|
*
|
|
40613
|
+
* - `future`: An `elapsed` or `relative` reading of a moment still to come, such as "in 3 hours".
|
|
40614
|
+
* - `past`: An `elapsed` or `relative` reading of a moment gone, such as "3 hours ago".
|
|
39820
40615
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
39821
40616
|
*/
|
|
39822
40617
|
"helix-headless-format-date": Partial<
|
|
@@ -40020,7 +40815,14 @@ export type CustomElements = {
|
|
|
40020
40815
|
* - `(default)`: The renderer's box, which the drawing is made in.
|
|
40021
40816
|
* - `filter-icon`: The icon in the search field. Defaults to a magnifying glass.
|
|
40022
40817
|
* - `footer`: Content below the graph.
|
|
40818
|
+
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
40023
40819
|
* - `header`: Content above the graph.
|
|
40820
|
+
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
40821
|
+
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
40822
|
+
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
40823
|
+
* - `pan-up-icon`: Replaces the glyph inside the pan up button.
|
|
40824
|
+
* - `zoom-in-icon`: Replaces the glyph inside the zoom-in button.
|
|
40825
|
+
* - `zoom-out-icon`: Replaces the glyph inside the zoom-out button.
|
|
40024
40826
|
*
|
|
40025
40827
|
* ## Methods
|
|
40026
40828
|
*
|
|
@@ -40101,9 +40903,14 @@ export type CustomElements = {
|
|
|
40101
40903
|
*
|
|
40102
40904
|
* These can be used to apply styling when a component is in a given state.
|
|
40103
40905
|
*
|
|
40906
|
+
* - `empty`: The list holds no notes: the graph has none, or a search or the groups hid them all.
|
|
40104
40907
|
* - `fullscreen`: The graph fills the screen.
|
|
40105
40908
|
* - `idle`: The user has been still long enough for the header and footer to fade.
|
|
40909
|
+
* - `local`: The drawing shows the selected note's local graph, with `depth`.
|
|
40910
|
+
* - `panel-open`: A graph with `no-panel` has the search and the list open over the drawing.
|
|
40106
40911
|
* - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
|
|
40912
|
+
* - `searching`: The search field holds words, and the list holds only the notes they find.
|
|
40913
|
+
* - `selected`: A note is selected, in the list or in the drawing.
|
|
40107
40914
|
* - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a graph with `gestures="activate"` waits to be pressed.
|
|
40108
40915
|
* - `using`: A graph with `gestures="activate"` has been pressed and has the gestures.
|
|
40109
40916
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
@@ -40190,6 +40997,9 @@ export type CustomElements = {
|
|
|
40190
40997
|
* calendar heatmap does: a week is a column, so the strip reads along the
|
|
40191
40998
|
* line in weeks, from the right on a right-to-left page, and top to bottom in
|
|
40192
40999
|
* days.
|
|
41000
|
+
* - `selected-label`/`selectedLabel`: What the readout adds for a selected cell, under `selection-mode`, after
|
|
41001
|
+
* where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
|
|
41002
|
+
* nothing.
|
|
40193
41003
|
* - `selection-label`/`selectionLabel`: What the `selection` part says after the selection changes, with `{count}` for
|
|
40194
41004
|
* how many cells are selected.
|
|
40195
41005
|
* - `selection-mode`/`selectionMode`: How many cells a reader can select: `single` or `multiple`.
|
|
@@ -40370,6 +41180,9 @@ export type CustomElements = {
|
|
|
40370
41180
|
*
|
|
40371
41181
|
* A column's heading is the cell's name in every row, so the first row
|
|
40372
41182
|
* answers for the column.
|
|
41183
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
41184
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
41185
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
40373
41186
|
*
|
|
40374
41187
|
* ## CSS Custom Properties
|
|
40375
41188
|
*
|
|
@@ -40839,6 +41652,17 @@ export type CustomElements = {
|
|
|
40839
41652
|
* its own. The fallback is read once the picture fails, after the picture's
|
|
40840
41653
|
* `alt`, so a reader hears that it did not load, as a sighted reader sees.
|
|
40841
41654
|
*
|
|
41655
|
+
* **An image with no `alt` says so.** At its first render it reports a
|
|
41656
|
+
* `missing-alt` warning, printed in the console and counted by
|
|
41657
|
+
* `@fusion.dev/helix-diagnostics`, which names the fix: describe the picture
|
|
41658
|
+
* in `alt`, or write `alt=""` for one that is decoration. An image hidden with
|
|
41659
|
+
* `aria-hidden="true"` needs neither and is not reported.
|
|
41660
|
+
*
|
|
41661
|
+
* A sheet of yours reads the state as `:state(loading)`, `:state(loaded)`,
|
|
41662
|
+
* `:state(error)`, and `:state(waiting)`, the last while `placeholder-delay`
|
|
41663
|
+
* holds the placeholder back. It can also read `data-status` on the host once
|
|
41664
|
+
* the picture has loaded or failed.
|
|
41665
|
+
*
|
|
40842
41666
|
* ## Attributes & Properties
|
|
40843
41667
|
*
|
|
40844
41668
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -42084,6 +42908,9 @@ export type CustomElements = {
|
|
|
42084
42908
|
*
|
|
42085
42909
|
* A column's heading is the cell's name in every row, so the first row
|
|
42086
42910
|
* answers for the column.
|
|
42911
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
42912
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
42913
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
42087
42914
|
*
|
|
42088
42915
|
* ## CSS Custom Properties
|
|
42089
42916
|
*
|
|
@@ -42428,16 +43255,31 @@ export type CustomElements = {
|
|
|
42428
43255
|
* active option is where the keyboard is: the arrow keys move it, and
|
|
42429
43256
|
* `aria-activedescendant` points to it while focus stays on the list.
|
|
42430
43257
|
*
|
|
42431
|
-
* The
|
|
42432
|
-
*
|
|
42433
|
-
*
|
|
42434
|
-
*
|
|
42435
|
-
*
|
|
42436
|
-
*
|
|
42437
|
-
*
|
|
42438
|
-
*
|
|
42439
|
-
*
|
|
42440
|
-
*
|
|
43258
|
+
* **Keyboard.** The list is one tab stop, or its filter field is where there
|
|
43259
|
+
* is one. In a single-choice list the highlight is the choice unless `manual`
|
|
43260
|
+
* is set; then Enter, Space or a click chooses.
|
|
43261
|
+
*
|
|
43262
|
+
* | Key | What it does |
|
|
43263
|
+
* |---|---|
|
|
43264
|
+
* | Down, Up | Moves the highlight to the next or the previous option, round from the last to the first. With `layout="grid"`, to the option below or above, stopping at the edge. |
|
|
43265
|
+
* | Right, Left | With `layout="grid"`, moves to the next or the previous option, mirrored right to left. In a filter field, moves the caret. |
|
|
43266
|
+
* | Home, End | Moves to the first or the last option. In a filter field, moves the caret. |
|
|
43267
|
+
* | Page Down, Page Up | Moves by as many options as the list shows at once. |
|
|
43268
|
+
* | A letter or a word | Moves to the next option whose words start with what you typed. In a filter field, types it. |
|
|
43269
|
+
* | Enter | Chooses the highlighted option, or follows it where it is a link. |
|
|
43270
|
+
* | Space | Chooses the highlighted option, or with `multiple` toggles it. In a filter field, types a space. |
|
|
43271
|
+
* | Shift with Down or Up | With `multiple`, adds the option the highlight moves to. In a filter field, moves the highlight and leaves the value. |
|
|
43272
|
+
* | Shift with Space | With `multiple`, adds every option from the one last chosen to the highlighted one. In a filter field, types a space. |
|
|
43273
|
+
* | Shift with Home or End | With `multiple`, adds every option from the highlight to that end. In a filter field, hold Control as well. |
|
|
43274
|
+
* | Control or Command with A | With `multiple`, chooses every option, or none where all are chosen. In a filter field, selects the text. |
|
|
43275
|
+
* | Escape | In a filter field, clears the filter. |
|
|
43276
|
+
*
|
|
43277
|
+
* **ARIA.** The `items` part is the `listbox`, named by the label and
|
|
43278
|
+
* described by the hint and the message, with `aria-multiselectable` under
|
|
43279
|
+
* `multiple`, `aria-required`, `aria-invalid`, and `aria-busy` while loading.
|
|
43280
|
+
* Each option is an `option` with `aria-selected`. The list, or its filter
|
|
43281
|
+
* field, points `aria-activedescendant` at the highlighted option; the field
|
|
43282
|
+
* is `aria-autocomplete="list"` and controls the list.
|
|
42441
43283
|
*
|
|
42442
43284
|
* An option with `href` is a link: Enter or a press follows it and selects
|
|
42443
43285
|
* nothing, and moving onto it with the arrows does not follow it.
|
|
@@ -42450,12 +43292,16 @@ export type CustomElements = {
|
|
|
42450
43292
|
*
|
|
42451
43293
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
42452
43294
|
*
|
|
42453
|
-
* - `autocomplete`: What
|
|
43295
|
+
* - `autocomplete`: What a browser's autofill may choose, as a platform token such as
|
|
43296
|
+
* `country` or `cc-exp-month`, as a native `<select>` takes it.
|
|
42454
43297
|
*
|
|
42455
|
-
*
|
|
42456
|
-
*
|
|
42457
|
-
*
|
|
42458
|
-
*
|
|
43298
|
+
* Set, the list draws a hidden native `<select>` with the same options for
|
|
43299
|
+
* the browser to fill, as React Aria's `HiddenSelect` does, and a fill
|
|
43300
|
+
* chooses the option. `off`, the default, draws none.
|
|
43301
|
+
*
|
|
43302
|
+
* **The filter field is never filled.** It narrows the list rather than
|
|
43303
|
+
* collecting a value, so a browser offering it a saved address competes
|
|
43304
|
+
* with the reader for the same keystrokes: it is always `off`.
|
|
42459
43305
|
* - `default-filter`/`defaultFilter`: The filter text the list starts with, when `filter` is not set.
|
|
42460
43306
|
* - `empty-text`/`emptyText`: The text shown when the filter hides every option.
|
|
42461
43307
|
*
|
|
@@ -42483,8 +43329,19 @@ export type CustomElements = {
|
|
|
42483
43329
|
* letter. Enter and the arrow keys filter at once on what is typed, so they
|
|
42484
43330
|
* act on the list the reader expects.
|
|
42485
43331
|
* - `filter-label`/`filterLabel`: Placeholder text for the filter field.
|
|
43332
|
+
* - `layout`: How the options are laid out, which the arrow keys follow: `stack`, one
|
|
43333
|
+
* under another, or `grid`, in rows and columns, as React Aria's `ListBox`
|
|
43334
|
+
* lays out cards or photos. With `grid`, Up and Down move within a column,
|
|
43335
|
+
* and Left and Right along the list, mirrored right to left.
|
|
43336
|
+
*
|
|
43337
|
+
* The columns are the stylesheet's: the styled tier draws them at
|
|
43338
|
+
* `--listbox-column-min-inline-size` or wider, and a headless list lays out
|
|
43339
|
+
* `::part(items)` as it likes, since the keys read where each option is
|
|
43340
|
+
* drawn. A list of `items` stays a stack. Left out, the list is a stack,
|
|
43341
|
+
* and the host carries no attribute for it.
|
|
42486
43342
|
* - `load-error`/`loadError`: What the list says when its options could not be loaded, such as after a
|
|
42487
|
-
* request to a server fails. Empty is no error
|
|
43343
|
+
* request to a server fails. Empty, null or no attribute is no error, so
|
|
43344
|
+
* removing the attribute clears it.
|
|
42488
43345
|
*
|
|
42489
43346
|
* Set, it shows under any options there are, in place of `empty-text` and
|
|
42490
43347
|
* `loading-text`, and a screen reader hears it. Clear it when you ask again.
|
|
@@ -42507,6 +43364,8 @@ export type CustomElements = {
|
|
|
42507
43364
|
* **Two sentences, chosen by `Intl.PluralRules`**, which is Data Table's
|
|
42508
43365
|
* pair: a language with more forms than two picks the one for its `one` and
|
|
42509
43366
|
* writes the rest here.
|
|
43367
|
+
* - `selected-label`/`selectedLabel`: What VoiceOver hears as the highlight reaches a chosen option from the
|
|
43368
|
+
* filter field, on Apple devices. `{name}` is the option's words.
|
|
42510
43369
|
* - `loading`: Whether the rows are still loading.
|
|
42511
43370
|
*
|
|
42512
43371
|
* Reflected, because a stylesheet needs it: the rows that are already there
|
|
@@ -42561,6 +43420,22 @@ export type CustomElements = {
|
|
|
42561
43420
|
* imperatively later, and nothing is hydrating by then.
|
|
42562
43421
|
*
|
|
42563
43422
|
* Here rather than on each control.
|
|
43423
|
+
* - `items`: The options as data, for a list too long to draw whole: each a value,
|
|
43424
|
+
* which is also its words, or a record with a `value`, a `label` and
|
|
43425
|
+
* `disabled`. Set, the list draws only the options in sight, and the ones
|
|
43426
|
+
* you write as children are not read.
|
|
43427
|
+
*
|
|
43428
|
+
* **Every option is still reachable.** The keyboard, the typeahead, the
|
|
43429
|
+
* filter and the value work over the whole set, and the option the keyboard
|
|
43430
|
+
* is on is drawn wherever it is, so a screen reader is told about it. Each
|
|
43431
|
+
* drawn option says its place in the set (`aria-posinset`, `aria-setsize`).
|
|
43432
|
+
* React Aria virtualizes a `ListBox` with its `Virtualizer`; this is core's
|
|
43433
|
+
* `VirtualizeController`.
|
|
43434
|
+
*
|
|
43435
|
+
* **The list needs a height to scroll in**: the styled tier's
|
|
43436
|
+
* `--listbox-max-block-size`, or a `max-block-size` on `::part(items)` in the
|
|
43437
|
+
* headless tier. Import the Option family as well, whose elements are drawn.
|
|
43438
|
+
* A server sends the list empty, and the options are drawn once it hydrates. (property only)
|
|
42564
43439
|
* - `selectedIndex`: Which option is chosen, as an index, or `-1` where none is.
|
|
42565
43440
|
*
|
|
42566
43441
|
* `<select>`'s own pair, and this control is what stands in for one. The
|
|
@@ -42663,10 +43538,8 @@ export type CustomElements = {
|
|
|
42663
43538
|
* read as a dial rather than scanned as a list, which is what Time Picker's
|
|
42664
43539
|
* wheels do with three of these.
|
|
42665
43540
|
*
|
|
42666
|
-
*
|
|
42667
|
-
*
|
|
42668
|
-
* which is not this list and is not guaranteed to be anything: measuring both
|
|
42669
|
-
* rects and moving by the difference needs no such assumption.
|
|
43541
|
+
* Measured by core's `centerInView`, or, for a list of `items`, by the
|
|
43542
|
+
* arithmetic, since the chosen option may not be drawn.
|
|
42670
43543
|
* - `requestFilter(next: string) => boolean`: Requests a new filter, and returns whether the request went through.
|
|
42671
43544
|
* - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
|
|
42672
43545
|
*
|
|
@@ -43107,7 +43980,8 @@ export type CustomElements = {
|
|
|
43107
43980
|
* `name`, or its `label` if it has no name.
|
|
43108
43981
|
*
|
|
43109
43982
|
* All the markers in a map share one tab stop. The arrow keys move between
|
|
43110
|
-
* them in the order they are written.
|
|
43983
|
+
* them in the order they are written. Taking away the marker that has focus
|
|
43984
|
+
* moves focus to the next one, or to the one before where it was the last.
|
|
43111
43985
|
*
|
|
43112
43986
|
* ## Attributes & Properties
|
|
43113
43987
|
*
|
|
@@ -43646,8 +44520,20 @@ export type CustomElements = {
|
|
|
43646
44520
|
*
|
|
43647
44521
|
* - `(default)`: The element your renderer draws the map in, and the map's markers, routes, areas, positions, and points layers.
|
|
43648
44522
|
* - `attribution`: The map credit, which most tile licenses require.
|
|
44523
|
+
* - `face-north-icon`: Replaces the compass needle. It inherits `--map-needle-turn`, so `rotate: var(--map-needle-turn)` keeps it pointing north.
|
|
43649
44524
|
* - `footer`: Content below the map, such as a legend or a scale.
|
|
44525
|
+
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
43650
44526
|
* - `header`: Content above the map, such as a title or a search field.
|
|
44527
|
+
* - `layers-icon`: Replaces the glyph inside the layers button.
|
|
44528
|
+
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
44529
|
+
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
44530
|
+
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
44531
|
+
* - `pan-up-icon`: Replaces the glyph inside the pan up button.
|
|
44532
|
+
* - `rotate-left-icon`: Replaces the glyph inside the rotate left button.
|
|
44533
|
+
* - `rotate-right-icon`: Replaces the glyph inside the rotate right button.
|
|
44534
|
+
* - `tilt-icon`: Replaces the "3D" inside the 3D button.
|
|
44535
|
+
* - `zoom-in-icon`: Replaces the glyph inside the zoom-in button.
|
|
44536
|
+
* - `zoom-out-icon`: Replaces the glyph inside the zoom-out button.
|
|
43651
44537
|
*
|
|
43652
44538
|
* ## Methods
|
|
43653
44539
|
*
|
|
@@ -43734,8 +44620,11 @@ export type CustomElements = {
|
|
|
43734
44620
|
*
|
|
43735
44621
|
* - `fullscreen`: The map fills the screen.
|
|
43736
44622
|
* - `idle`: The user has been still long enough for the header and footer to fade.
|
|
44623
|
+
* - `layers-open`: The layers menu is open.
|
|
43737
44624
|
* - `ready`: The map has been drawn whole, after `helix-map-ready`.
|
|
44625
|
+
* - `rotated`: The map is turned away from north, by `bearing`.
|
|
43738
44626
|
* - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a map with `gestures="activate"` waits to be pressed.
|
|
44627
|
+
* - `tilted`: The map is tilted by `pitch`, so it no longer looks straight down.
|
|
43739
44628
|
* - `using`: A map with `gestures="activate"` has been pressed and has the gestures.
|
|
43740
44629
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
43741
44630
|
*/
|
|
@@ -44282,8 +45171,8 @@ export type CustomElements = {
|
|
|
44282
45171
|
* onto your element after it upgrades causes a hydration mismatch.
|
|
44283
45172
|
*
|
|
44284
45173
|
* Group rows under a heading with `Menu.Section`, which is a `group` named by
|
|
44285
|
-
* its heading. Between runs of rows, a `<helix-divider
|
|
44286
|
-
*
|
|
45174
|
+
* its heading. Between runs of rows, a `<helix-divider>` is a separator a
|
|
45175
|
+
* screen reader announces.
|
|
44287
45176
|
*
|
|
44288
45177
|
* Keys: Enter, Space or Down Arrow on the trigger opens the menu on its first
|
|
44289
45178
|
* row, and Up Arrow on its last. In the menu, Up and Down Arrow move between
|
|
@@ -45028,6 +45917,16 @@ export type CustomElements = {
|
|
|
45028
45917
|
* - `label`: What happened, on the first line.
|
|
45029
45918
|
* - `media`: The leading slot's box.
|
|
45030
45919
|
* - `time`: When it happened, formatted for people to read.
|
|
45920
|
+
* - `time-day`: Format Date's `day`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45921
|
+
* - `time-day-period`: Format Date's `day-period`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45922
|
+
* - `time-era`: Format Date's `era`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45923
|
+
* - `time-hour`: Format Date's `hour`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45924
|
+
* - `time-minute`: Format Date's `minute`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45925
|
+
* - `time-month`: Format Date's `month`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45926
|
+
* - `time-second`: Format Date's `second`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45927
|
+
* - `time-time-zone-name`: Format Date's `time-zone-name`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45928
|
+
* - `time-weekday`: Format Date's `weekday`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45929
|
+
* - `time-year`: Format Date's `year`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
45031
45930
|
* - `trailing`: The column holding the time and the controls.
|
|
45032
45931
|
*
|
|
45033
45932
|
* ## CSS States
|
|
@@ -45074,11 +45973,22 @@ export type CustomElements = {
|
|
|
45074
45973
|
* nothing more. While the feed is loading the button stays, so focus stays on
|
|
45075
45974
|
* it, and it is `aria-disabled` and sends nothing.
|
|
45076
45975
|
*
|
|
45976
|
+
* **`load-error` says a page could not be fetched**, such as "Could not load
|
|
45977
|
+
* notifications": it shows under the rows there are, in the `error` part, in
|
|
45978
|
+
* place of the empty and loading lines, and a screen reader hears it. Clear it
|
|
45979
|
+
* when you ask again.
|
|
45980
|
+
*
|
|
45077
45981
|
* ## Attributes & Properties
|
|
45078
45982
|
*
|
|
45079
45983
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
45080
45984
|
*
|
|
45081
45985
|
* - `label`: The feed's name, read by screen readers.
|
|
45986
|
+
* - `load-error`/`loadError`: What the feed says when a page of it could not be loaded, such as after a
|
|
45987
|
+
* request to a server fails. Empty, null or no attribute is no error, so
|
|
45988
|
+
* removing the attribute clears it.
|
|
45989
|
+
*
|
|
45990
|
+
* Set, it shows under the rows there are, in place of `empty-text` and
|
|
45991
|
+
* `loading-text`, and a screen reader hears it. Clear it when you ask again.
|
|
45082
45992
|
* - `load-more`/`loadMore`: Whether to draw a button after the list that asks for the next page, by
|
|
45083
45993
|
* sending `helix-load-more`. Take it off once there is nothing more.
|
|
45084
45994
|
* - `load-more-label`/`loadMoreLabel`: The text of the `load-more` button.
|
|
@@ -45167,6 +46077,7 @@ export type CustomElements = {
|
|
|
45167
46077
|
*
|
|
45168
46078
|
* - `(default)`: The notifications.
|
|
45169
46079
|
* - `empty`: Replaces the words of `empty-text` in the `empty` part, such as a picture and a line of your own. The live region still says `empty-text`.
|
|
46080
|
+
* - `error`: Replaces the words of `load-error` in the `error` part, such as a line with a retry button. The live region still says `load-error`.
|
|
45170
46081
|
* - `footer`: Below the list, for a link to everything.
|
|
45171
46082
|
* - `header`: Above the list, for a title and the mark-all control.
|
|
45172
46083
|
* - `loading`: Replaces the words of `loading-text` in the `loading` part, such as a loader. The live region still says `loading-text`.
|
|
@@ -45207,10 +46118,11 @@ export type CustomElements = {
|
|
|
45207
46118
|
* Custom selectors for styling elements within the component.
|
|
45208
46119
|
*
|
|
45209
46120
|
* - `empty`: Shown when there is nothing in the feed.
|
|
46121
|
+
* - `error`: Shown while `load-error` is set, under any rows there are, in place of the empty and loading lines.
|
|
45210
46122
|
* - `footer`: The region below the list.
|
|
45211
46123
|
* - `header`: The region above the list.
|
|
45212
46124
|
* - `list`: The list itself.
|
|
45213
|
-
* - `live`: A copy of the empty and
|
|
46125
|
+
* - `live`: A copy of the empty, loading and error messages, in a live region that screen readers announce when they change. Visually hidden in the styled tier.
|
|
45214
46126
|
* - `loading`: Shown while the feed is loading.
|
|
45215
46127
|
* - `mark-all`: The control that marks everything read.
|
|
45216
46128
|
* - `more`: The button after the list that asks for more, while `load-more` is set. It is `aria-disabled` while the feed is loading.
|
|
@@ -45219,7 +46131,8 @@ export type CustomElements = {
|
|
|
45219
46131
|
*
|
|
45220
46132
|
* These can be used to apply styling when a component is in a given state.
|
|
45221
46133
|
*
|
|
45222
|
-
* - `empty`: While the feed holds no notification and is not loading. Never on the server, which cannot count the rows.
|
|
46134
|
+
* - `empty`: While the feed holds no notification and is not loading, and `load-error` is not set. Never on the server, which cannot count the rows.
|
|
46135
|
+
* - `error`: While `load-error` is set.
|
|
45223
46136
|
* - `loading`: While `loading` is set.
|
|
45224
46137
|
* - `media`: While a notification in the list holds something in its media slot, so every row keeps that column.
|
|
45225
46138
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
@@ -46621,6 +47534,7 @@ export type CustomElements = {
|
|
|
46621
47534
|
* - `control-listbox-loading`: The text shown while the options load.
|
|
46622
47535
|
* - `control-listbox-search`: The region that holds the filter field.
|
|
46623
47536
|
* - `control-listbox-search-field`: The filter field.
|
|
47537
|
+
* - `control-live`: The select's `live` part, the region a screen reader hears a choice made on the closed trigger from.
|
|
46624
47538
|
* - `control-surface`: The floating panel.
|
|
46625
47539
|
* - `control-trigger`: The closed control, which shows the chosen size.
|
|
46626
47540
|
* - `control-value`: The chosen size inside the trigger.
|
|
@@ -47329,7 +48243,8 @@ export type CustomElements = {
|
|
|
47329
48243
|
* `correction` sets how much of the code can be lost. At `H` a code can lose
|
|
47330
48244
|
* thirty percent and still scan, so a mark in the center slot is safe. At `L`
|
|
47331
48245
|
* the same mark makes the code unscannable. The default is `M`, and `H` when the
|
|
47332
|
-
* `logo` slot is filled.
|
|
48246
|
+
* `logo` slot is filled. A code that holds a logo at a `correction` below `H`
|
|
48247
|
+
* warns once with the kind `unscannable-logo`.
|
|
47333
48248
|
*
|
|
47334
48249
|
* A higher level holds fewer characters, so a value that fits at `M` can be too
|
|
47335
48250
|
* long once a logo raises the level to `H`. A value too long for the level
|
|
@@ -47339,7 +48254,8 @@ export type CustomElements = {
|
|
|
47339
48254
|
* `toSvg()`, `toPng()` and `download()` give the drawn code as a file of its
|
|
47340
48255
|
* own, in the colors it is drawn in, with a slotted image or SVG logo where
|
|
47341
48256
|
* it sits, for a page that offers it to save or print, as Zag's download
|
|
47342
|
-
* trigger does.
|
|
48257
|
+
* trigger does. `download()` saves an SVG for a name ending in `.svg`, and a
|
|
48258
|
+
* PNG for any other.
|
|
47343
48259
|
*
|
|
47344
48260
|
* ## Attributes & Properties
|
|
47345
48261
|
*
|
|
@@ -47425,7 +48341,8 @@ export type CustomElements = {
|
|
|
47425
48341
|
* - `toPng(size = 512) => Promise<Blob | null>`: The code as a PNG, `size` pixels square, drawn from `toSvg()`.
|
|
47426
48342
|
*
|
|
47427
48343
|
* `null` where no code is drawn.
|
|
47428
|
-
* - `download(filename = 'qr-code.png', size = 512) => Promise<void>`: Saves the code as a
|
|
48344
|
+
* - `download(filename = 'qr-code.png', size = 512) => Promise<void>`: Saves the code as a file named `filename`, `size` pixels square: an SVG
|
|
48345
|
+
* where the name ends in `.svg`, and a PNG otherwise.
|
|
47429
48346
|
*
|
|
47430
48347
|
* Call it from a press, since a browser lets a page start a download only
|
|
47431
48348
|
* in answer to one. Does nothing where no code is drawn.
|
|
@@ -48359,12 +49276,6 @@ export type CustomElements = {
|
|
|
48359
49276
|
* The across gets no dot at all rather than a shifted one. It is an axis and
|
|
48360
49277
|
* not a series: it has a scale under the plot with its name at the end of it,
|
|
48361
49278
|
* which is where a reader is told what it is.
|
|
48362
|
-
* - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
|
|
48363
|
-
* by its column's heading. The keys and the readout pass over one a
|
|
48364
|
-
* legend hid.
|
|
48365
|
-
*
|
|
48366
|
-
* A column's heading is the cell's name in every row, so the first row
|
|
48367
|
-
* answers for the column.
|
|
48368
49279
|
* - `attributeChangedCallback(name: string, old: string | null, value: string | null) => void`: Called by the browser when an observed attribute changes. A new
|
|
48369
49280
|
* `aria-label` asks for an update, because it names the plot.
|
|
48370
49281
|
* - `showsSeries(name: string) => boolean`: Whether the series of this name is drawn, which it is unless a legend
|
|
@@ -48374,6 +49285,15 @@ export type CustomElements = {
|
|
|
48374
49285
|
* thing the two share: see `SourceController.hide`. A series keeps its
|
|
48375
49286
|
* palette slot while it is hidden, so the colors of the others do not move.
|
|
48376
49287
|
* For a ring the names are its rows, the slices being the rows.
|
|
49288
|
+
* - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
|
|
49289
|
+
* by its column's heading. The keys and the readout pass over one a
|
|
49290
|
+
* legend hid.
|
|
49291
|
+
*
|
|
49292
|
+
* A column's heading is the cell's name in every row, so the first row
|
|
49293
|
+
* answers for the column.
|
|
49294
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
49295
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
49296
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
48377
49297
|
*
|
|
48378
49298
|
* ## CSS Custom Properties
|
|
48379
49299
|
*
|
|
@@ -48594,18 +49514,48 @@ export type CustomElements = {
|
|
|
48594
49514
|
* Set `valueContent` to draw the trigger's content from the chosen options,
|
|
48595
49515
|
* and several chosen options are written as a list in the reader's language.
|
|
48596
49516
|
*
|
|
48597
|
-
*
|
|
48598
|
-
*
|
|
48599
|
-
*
|
|
48600
|
-
*
|
|
48601
|
-
*
|
|
48602
|
-
*
|
|
48603
|
-
*
|
|
49517
|
+
* **Keyboard.** On the closed trigger:
|
|
49518
|
+
*
|
|
49519
|
+
* | Key | What it does |
|
|
49520
|
+
* |---|---|
|
|
49521
|
+
* | Down, Enter, Space | Opens the list on the chosen option, or the first. |
|
|
49522
|
+
* | Up | Opens the list on the chosen option, or the last. |
|
|
49523
|
+
* | Home, End | Opens the list on the first or the last option. |
|
|
49524
|
+
* | Left, Right | Chooses the option before or after the chosen one without opening, as React Aria's Select does, in either direction of text. |
|
|
49525
|
+
* | 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. |
|
|
49526
|
+
*
|
|
49527
|
+
* In the open list, which is a `Listbox`:
|
|
49528
|
+
*
|
|
49529
|
+
* | Key | What it does |
|
|
49530
|
+
* |---|---|
|
|
49531
|
+
* | Down, Up, Home, End, Page Down, Page Up | Moves the highlight. |
|
|
49532
|
+
* | A letter or a word | Moves the highlight to the next option whose words start with what you typed. |
|
|
49533
|
+
* | Enter, Space | Chooses the highlighted option and closes the list. With `multiple`, toggles it and leaves the list open. |
|
|
49534
|
+
* | Escape | Closes the list and puts focus back on the trigger. |
|
|
49535
|
+
* | Tab | Closes the list and moves on. |
|
|
49536
|
+
*
|
|
49537
|
+
* A choice made on the closed trigger is said aloud on Apple devices, where
|
|
49538
|
+
* VoiceOver does not read the trigger's new name.
|
|
49539
|
+
*
|
|
49540
|
+
* **ARIA.** The trigger is a `button` with `aria-haspopup="listbox"` and
|
|
49541
|
+
* `aria-expanded`, named by the label and then the chosen words, as a native
|
|
49542
|
+
* `<select>` is. The list is the listbox `Listbox` describes, named by the
|
|
49543
|
+
* label, or by `list-label` where there is none.
|
|
49544
|
+
*
|
|
49545
|
+
* Set `autocomplete` to let a browser's autofill choose, as a native `<select>`
|
|
49546
|
+
* with the same attribute would.
|
|
48604
49547
|
*
|
|
48605
49548
|
* ## Attributes & Properties
|
|
48606
49549
|
*
|
|
48607
49550
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
48608
49551
|
*
|
|
49552
|
+
* - `autocomplete`: What a browser's autofill may fill in, as a platform token such as
|
|
49553
|
+
* `country` or `cc-exp-month`, as on a native `<select>`.
|
|
49554
|
+
*
|
|
49555
|
+
* Set, the select keeps a hidden native `<select>` with the same options for
|
|
49556
|
+
* the browser to fill, as React Aria's `HiddenSelect` does, and takes the
|
|
49557
|
+
* option the browser picks, by its value or its words, as the value. Empty
|
|
49558
|
+
* draws no hidden select, and a browser fills nothing.
|
|
48609
49559
|
* - `empty-text`/`emptyText`: The text shown when no options match the filter.
|
|
48610
49560
|
* - `filterable`: Whether the list can be narrowed by typing.
|
|
48611
49561
|
*
|
|
@@ -48872,6 +49822,7 @@ export type CustomElements = {
|
|
|
48872
49822
|
* - `listbox-loading`: The text shown while the options load.
|
|
48873
49823
|
* - `listbox-search`: The region that holds the filter field.
|
|
48874
49824
|
* - `listbox-search-field`: The filter field.
|
|
49825
|
+
* - `live`: The region a screen reader announces a choice made on the closed trigger from, drawn once there is one to say. Visually hidden in the styled tier.
|
|
48875
49826
|
* - `surface`: The floating panel.
|
|
48876
49827
|
* - `trigger`: The closed control, which shows the chosen value.
|
|
48877
49828
|
* - `value`: The chosen option's text inside the trigger.
|
|
@@ -49561,6 +50512,67 @@ export type CustomElements = {
|
|
|
49561
50512
|
HelixHeadlessSparklineProps & BaseProps<HelixHeadlessSparkline> & BaseEvents<HelixHeadlessSparkline>
|
|
49562
50513
|
>;
|
|
49563
50514
|
|
|
50515
|
+
/**
|
|
50516
|
+
* A `group` of the dial's menu, named by its label, as React Aria's menu
|
|
50517
|
+
* sections and Menu's groups are: a reader hears the name on entering the set,
|
|
50518
|
+
* and the arrow keys walk through every group's actions in order, from the
|
|
50519
|
+
* last action of one group to the first of the next.
|
|
50520
|
+
*
|
|
50521
|
+
* Put actions straight into the group, and the group straight into the dial.
|
|
50522
|
+
* Anything else slotted here is drawn and is not an action.
|
|
50523
|
+
*
|
|
50524
|
+
* ## Attributes & Properties
|
|
50525
|
+
*
|
|
50526
|
+
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
50527
|
+
*
|
|
50528
|
+
* - `label`: The group's name, drawn above its actions and read by screen readers.
|
|
50529
|
+
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
50530
|
+
*
|
|
50531
|
+
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
50532
|
+
* Image, Splitter and both color controls, none of them about transitions. A
|
|
50533
|
+
* base class takes the name every subclass then cannot use.
|
|
50534
|
+
*
|
|
50535
|
+
* **The state it reports cannot be watched, which is why this exists.** A
|
|
50536
|
+
* custom state is deliberately not in the DOM, so there is no
|
|
50537
|
+
* `MutationObserver` equivalent for `ElementInternals.states`. Await this
|
|
50538
|
+
* instead.
|
|
50539
|
+
*
|
|
50540
|
+
* Separate from `updateComplete`, which resolves in the microtask checkpoint
|
|
50541
|
+
* the suppression is still active in. That is the distinction `readyToMove`
|
|
50542
|
+
* in `@fusion.dev/helix-testing` is written around.
|
|
50543
|
+
*
|
|
50544
|
+
* It never resolves where `requestAnimationFrame` never fires, which is a
|
|
50545
|
+
* server, a hidden tab, and happy-dom. Callers that must not hang there race
|
|
50546
|
+
* it against a timeout, as the happy-dom harness's `readyToMove` does. The
|
|
50547
|
+
* browser harness's awaits it alone: a browser always runs the frame, and a
|
|
50548
|
+
* timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
|
|
50549
|
+
*
|
|
50550
|
+
* ## Slots
|
|
50551
|
+
*
|
|
50552
|
+
* Areas where markup can be added to the component.
|
|
50553
|
+
*
|
|
50554
|
+
* - `(default)`: The group's actions.
|
|
50555
|
+
* - `label`: The group's name, for content richer than the `label` text.
|
|
50556
|
+
*
|
|
50557
|
+
* ## CSS Parts
|
|
50558
|
+
*
|
|
50559
|
+
* Custom selectors for styling elements within the component.
|
|
50560
|
+
*
|
|
50561
|
+
* - `group`: The set, which carries the `group` role.
|
|
50562
|
+
* - `label`: The group's name, drawn above its actions while there is one.
|
|
50563
|
+
*
|
|
50564
|
+
* ## CSS States
|
|
50565
|
+
*
|
|
50566
|
+
* These can be used to apply styling when a component is in a given state.
|
|
50567
|
+
*
|
|
50568
|
+
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
50569
|
+
*/
|
|
50570
|
+
"helix-headless-speed-dial-group": Partial<
|
|
50571
|
+
HelixHeadlessSpeedDialGroupProps &
|
|
50572
|
+
BaseProps<HelixHeadlessSpeedDialGroup> &
|
|
50573
|
+
BaseEvents<HelixHeadlessSpeedDialGroup>
|
|
50574
|
+
>;
|
|
50575
|
+
|
|
49564
50576
|
/**
|
|
49565
50577
|
* Each item is a command, so it has the `menuitem` role. A megamenu holds
|
|
49566
50578
|
* destinations, so it is a disclosure of links. A speed dial holds actions,
|
|
@@ -49570,11 +50582,21 @@ export type CustomElements = {
|
|
|
49570
50582
|
* `title` on an icon shows only on hover. Visible text is read, searched, and
|
|
49571
50583
|
* translated like other text.
|
|
49572
50584
|
*
|
|
50585
|
+
* `shortcut` gives the action's keyboard shortcut as a chord, such as `mod+s`,
|
|
50586
|
+
* the grammar Menu's rows use. The action carries it as `aria-keyshortcuts`
|
|
50587
|
+
* and draws it after the name in the platform's glyphs or words, `⌘S` on an
|
|
50588
|
+
* Apple keyboard and `Ctrl+S` elsewhere, as Menu draws its rows' shortcuts.
|
|
50589
|
+
* Put a `Kbd` in the `shortcut` slot to draw it as keys instead; the dial
|
|
50590
|
+
* imports no `Kbd` of its own. Showing a shortcut does not bind it.
|
|
50591
|
+
*
|
|
49573
50592
|
* ## Attributes & Properties
|
|
49574
50593
|
*
|
|
49575
50594
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
49576
50595
|
*
|
|
49577
50596
|
* - `disabled`: Whether the action is disabled, so it cannot be chosen.
|
|
50597
|
+
* - `shortcut`: The action's keyboard shortcut as a chord, such as `mod+s`, carried as
|
|
50598
|
+
* `aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
|
|
50599
|
+
* keyboard and Control elsewhere. Showing a shortcut does not bind it.
|
|
49578
50600
|
* - `value`: The action's value, sent in `helix-select` when the action is chosen.
|
|
49579
50601
|
* - `active`: Whether the action has focus, which makes it the action the keyboard is on.
|
|
49580
50602
|
*
|
|
@@ -49615,6 +50637,7 @@ export type CustomElements = {
|
|
|
49615
50637
|
*
|
|
49616
50638
|
* - `(default)`: The action's name.
|
|
49617
50639
|
* - `icon`: The action's icon, the main way the action is recognized.
|
|
50640
|
+
* - `shortcut`: The action's keyboard shortcut, drawn after its name, such as a `Kbd`. It replaces the text drawn for `shortcut`, and is hidden from the name, which `aria-keyshortcuts` carries instead.
|
|
49618
50641
|
*
|
|
49619
50642
|
* ## Methods
|
|
49620
50643
|
*
|
|
@@ -49632,6 +50655,7 @@ export type CustomElements = {
|
|
|
49632
50655
|
* - `icon`: The box that holds the icon.
|
|
49633
50656
|
* - `item`: The control for the action.
|
|
49634
50657
|
* - `label`: The action's name, beside the icon.
|
|
50658
|
+
* - `shortcut`: The box after the name that holds the shortcut, shown while `shortcut` is set or something is in the `shortcut` slot.
|
|
49635
50659
|
*
|
|
49636
50660
|
* ## CSS States
|
|
49637
50661
|
*
|
|
@@ -49666,12 +50690,47 @@ export type CustomElements = {
|
|
|
49666
50690
|
* action whose name starts with it. The actions are one tab stop, and Tab
|
|
49667
50691
|
* closes the dial and moves on.
|
|
49668
50692
|
*
|
|
50693
|
+
* **Keyboard.** On the trigger, Enter, Space or a press opens the dial on its
|
|
50694
|
+
* first action. With the dial open:
|
|
50695
|
+
*
|
|
50696
|
+
* | Key | What it does |
|
|
50697
|
+
* |---|---|
|
|
50698
|
+
* | Down, Right | Moves to the next action, from the last back to the first. |
|
|
50699
|
+
* | Up, Left | Moves to the action before, from the first round to the last. |
|
|
50700
|
+
* | Home, End | Moves to the first or the last action. |
|
|
50701
|
+
* | A letter | Moves to the next action whose name starts with it. |
|
|
50702
|
+
* | Enter, Space | Chooses the action, and the dial closes. |
|
|
50703
|
+
* | Escape | Closes the dial and puts focus back on the trigger. |
|
|
50704
|
+
* | Tab | Closes the dial and moves on. |
|
|
50705
|
+
*
|
|
50706
|
+
* **Groups.** Put actions in `Speed Dial.Group`, named by its `label`, to set
|
|
50707
|
+
* them apart as Menu's sections do: each is a `group` of the menu, and the
|
|
50708
|
+
* arrow keys walk through every group's actions in order.
|
|
50709
|
+
*
|
|
50710
|
+
* **A trigger with its own action.** With `open-on="long-press"`, a press on
|
|
50711
|
+
* the trigger is the trigger's own, such as composing a message, and holding it
|
|
50712
|
+
* for half a second opens the dial, as React Aria's menu trigger does with
|
|
50713
|
+
* `trigger="longPress"`. Alt+Down or Alt+Up opens it from the keyboard, and
|
|
50714
|
+
* the trigger says so in its description, `long-press-label`, the drawn one
|
|
50715
|
+
* and a slotted one alike. A press that has opened the dial does not also do
|
|
50716
|
+
* the trigger's action.
|
|
50717
|
+
*
|
|
49669
50718
|
* ## Attributes & Properties
|
|
49670
50719
|
*
|
|
49671
50720
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
49672
50721
|
*
|
|
49673
50722
|
* - `label`: Accessible name for the trigger and the set of actions it opens.
|
|
50723
|
+
* - `long-press-label`/`longPressLabel`: The description the trigger gives under `open-on="long-press"`, saying how
|
|
50724
|
+
* its actions are reached.
|
|
50725
|
+
*
|
|
50726
|
+
* A slotted trigger is described by the dial, which carries the words as
|
|
50727
|
+
* its own label for that: a Helix button's inner control at once, and a
|
|
50728
|
+
* plain element of yours once a reader reaches it, after hydration, unless
|
|
50729
|
+
* you described or labeled it yourself.
|
|
49674
50730
|
* - `offset`: Space between the trigger and the actions, in pixels.
|
|
50731
|
+
* - `open-on`/`openOn`: What opens the dial. `click` opens it on a press of the trigger. Under
|
|
50732
|
+
* `long-press`, a press is the trigger's own action, and the dial opens on a
|
|
50733
|
+
* press held for half a second, or on Alt+Down or Alt+Up.
|
|
49675
50734
|
* - `placement`: The direction the actions open in. They move to another side if that side
|
|
49676
50735
|
* does not fit.
|
|
49677
50736
|
*
|
|
@@ -49772,8 +50831,9 @@ export type CustomElements = {
|
|
|
49772
50831
|
* added at `firstUpdated` and is not in the server markup. Before it appears,
|
|
49773
50832
|
* both dividers work on their own.
|
|
49774
50833
|
*
|
|
49775
|
-
* The divider has `role="separator"` and `aria-valuenow`,
|
|
49776
|
-
*
|
|
50834
|
+
* The divider has `role="separator"` and `aria-valuenow`, with
|
|
50835
|
+
* `aria-valuetext` saying the start pane's share as a percentage in the
|
|
50836
|
+
* reader's locale, and `aria-controls` names the start pane. Drag it with a pointer or move it with the arrow keys,
|
|
49777
50837
|
* press `Home` or `End` to move it to its bounds, and press `Enter` to collapse
|
|
49778
50838
|
* the start pane and open it again. A drag in progress is tracked as a state, so both dividers a
|
|
49779
50839
|
* corner moves stay lit for as long as they move.
|
|
@@ -49910,13 +50970,14 @@ export type CustomElements = {
|
|
|
49910
50970
|
* - `helix-before-resize`: Fired before the divider settles, and only when the gesture moved it. A press that moved nothing, a drag that came back, an arrow key with no room left, and a corner that moved only the other divider do not fire it. Cancelable: canceling it leaves the position to you and keeps the rest of the gesture, so a collapse the gesture reached still fires `helix-before-collapse`, which you can also cancel. A dragged divider stays where it was dropped until you set your own `position`.
|
|
49911
50971
|
* - `helix-collapse`: Fired after a pane shuts or reopens, with the side that is shut, or empty where both are open.
|
|
49912
50972
|
* - `helix-resized`: Fired after the divider settles somewhere new, with the new position.
|
|
49913
|
-
* - `input`: Fired each time
|
|
50973
|
+
* - `input`: Fired each time the divider moves, as a range input does: on each step of a drag, and before `helix-resized` for a key, a double click or a corner. Read `position` for where it is now.
|
|
49914
50974
|
*
|
|
49915
50975
|
* ## Slots
|
|
49916
50976
|
*
|
|
49917
50977
|
* Areas where markup can be added to the component.
|
|
49918
50978
|
*
|
|
49919
50979
|
* - `end`: The pane after the divider.
|
|
50980
|
+
* - `handle`: A mark drawn at the middle of the divider, such as a grip icon. It takes no focus and no pointer of its own: a press on it is a press on the divider.
|
|
49920
50981
|
* - `start`: The pane before the divider.
|
|
49921
50982
|
*
|
|
49922
50983
|
* ## Methods
|
|
@@ -49952,7 +51013,9 @@ export type CustomElements = {
|
|
|
49952
51013
|
*
|
|
49953
51014
|
* These can be used to apply styling when a component is in a given state.
|
|
49954
51015
|
*
|
|
51016
|
+
* - `collapsed`: While a pane is shut. `data-collapsed` on the host says which.
|
|
49955
51017
|
* - `dragging`: While the pointer or a corner holds the divider.
|
|
51018
|
+
* - `vertical`: While the panes are one above the other, whether `orientation` says so or `auto` turned them.
|
|
49956
51019
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
49957
51020
|
*/
|
|
49958
51021
|
"helix-headless-splitter": Partial<
|
|
@@ -50601,7 +51664,9 @@ export type CustomElements = {
|
|
|
50601
51664
|
* table with no `TableColumn` heads its columns with.
|
|
50602
51665
|
*
|
|
50603
51666
|
* The role is on the host so the cell stays a child of its row in the flat
|
|
50604
|
-
* tree, which keeps the table structure intact.
|
|
51667
|
+
* tree, which keeps the table structure intact. In a `grid` table a value is
|
|
51668
|
+
* a `gridcell`, and the table gives the cell a `tabindex` so focus can rest on
|
|
51669
|
+
* it.
|
|
50605
51670
|
*
|
|
50606
51671
|
* ## Attributes & Properties
|
|
50607
51672
|
*
|
|
@@ -50935,9 +52000,28 @@ export type CustomElements = {
|
|
|
50935
52000
|
* 4. A chosen row takes `:state(selected)`, and a screen reader hears
|
|
50936
52001
|
* `selected-label` ("2 selected") from a polite region.
|
|
50937
52002
|
*
|
|
50938
|
-
* Tab reaches each checkbox, and Space ticks it.
|
|
50939
|
-
*
|
|
50940
|
-
*
|
|
52003
|
+
* Tab reaches each checkbox, and Space ticks it. To act on one row, put a
|
|
52004
|
+
* link or a button in a cell, or give the row an `href`.
|
|
52005
|
+
*
|
|
52006
|
+
* **A grid.** `grid` makes the table one tab stop that the arrow keys move
|
|
52007
|
+
* through cell by cell, the headings included, as React Aria's table is. The
|
|
52008
|
+
* table is then a `grid` and each value a `gridcell`, and the table gives
|
|
52009
|
+
* every cell a `tabindex` so focus can rest on it: set `grid` only where the
|
|
52010
|
+
* cells may carry one. For typeahead and range selection, use `DataTable`.
|
|
52011
|
+
*
|
|
52012
|
+
* | Key | What it does |
|
|
52013
|
+
* |---|---|
|
|
52014
|
+
* | Right, Left | Moves one cell along the row. Left moves on, on a right-to-left page. |
|
|
52015
|
+
* | Down, Up | Moves one row, the headings included. |
|
|
52016
|
+
* | Home, End | Moves to the first or the last cell of the row. |
|
|
52017
|
+
* | Control with Home or End | Moves to the first or the last cell of the table. |
|
|
52018
|
+
* | Page Down, Page Up | Moves by the rows that fit in view. |
|
|
52019
|
+
* | Enter, F2 | Moves into the cell's links and controls. Escape or F2 moves back to the cell, and Tab moves between the controls of one cell. |
|
|
52020
|
+
* | Enter on a cell of a row with `href` | Follows the row's link. |
|
|
52021
|
+
* | Enter, Space on a sortable heading | Sorts by the column. |
|
|
52022
|
+
* | Space on a row, Enter or Space on its checkbox cell | Selects the row, in a `selectable` table. |
|
|
52023
|
+
* | Control or Command with A | Selects every row, in a `selectable` table. |
|
|
52024
|
+
* | Tab | Leaves the table. |
|
|
50941
52025
|
*
|
|
50942
52026
|
* The CSS custom properties listed for this component are written by it and
|
|
50943
52027
|
* read by the stylesheet that draws it. Do not set them. Each holds a number
|
|
@@ -50981,6 +52065,13 @@ export type CustomElements = {
|
|
|
50981
52065
|
* is set.
|
|
50982
52066
|
* - `default-sort`/`defaultSort`: The starting sort order, used until `sort` is set.
|
|
50983
52067
|
* - `descending-label`/`descendingLabel`: The word for a descending sort, in `sorted-label`.
|
|
52068
|
+
* - `grid`: Makes the table a grid: one tab stop, and the arrow keys, Home, End and the
|
|
52069
|
+
* Page keys move focus between its cells, the headings included. Enter moves
|
|
52070
|
+
* into a cell's controls, and Tab leaves the table.
|
|
52071
|
+
*
|
|
52072
|
+
* Off by default, where the table is a static `table` and Tab reaches each
|
|
52073
|
+
* link and control in it. On, the table writes a `tabindex` onto each of its
|
|
52074
|
+
* cells, which is the one way a cell of your markup can take focus.
|
|
50984
52075
|
* - `label`: Accessible name for the table.
|
|
50985
52076
|
*
|
|
50986
52077
|
* An `aria-label` or `aria-labelledby` on the host names the table too, and
|
|
@@ -51082,6 +52173,8 @@ export type CustomElements = {
|
|
|
51082
52173
|
* - `checkbox-mark-dash`: Added to `checkbox-mark` while it draws the dash, which it keeps until its box is checked.
|
|
51083
52174
|
* - `checkbox-mark-indeterminate`: Added to `checkbox-mark` while only some rows are selected.
|
|
51084
52175
|
* - `empty`: The text shown when there are no rows.
|
|
52176
|
+
* - `grid-end`: An empty box after the rows, in a `grid` table. Tab focuses it on its way out of the table, so the key leaves from the end.
|
|
52177
|
+
* - `grid-start`: An empty box before the rows, in a `grid` table. Shift with Tab focuses it on its way out of the table.
|
|
51085
52178
|
* - `head`: The row that holds the column headings. It has `display: contents`, so it takes no space of its own.
|
|
51086
52179
|
* - `live`: A live region that repeats the empty and loading text, so screen readers announce it when it changes. Visually hidden in the styled tier.
|
|
51087
52180
|
* - `loading`: The text shown while the rows are loading.
|
|
@@ -51112,7 +52205,8 @@ export type CustomElements = {
|
|
|
51112
52205
|
* of the row's own, and Control, Command or Shift open it the way they open a
|
|
51113
52206
|
* link. A drag that selects text follows nothing. A row in a table is not a
|
|
51114
52207
|
* stop of its own, so put the same link in a cell, usually the row header,
|
|
51115
|
-
* which is what the keyboard and a screen reader reach.
|
|
52208
|
+
* which is what the keyboard and a screen reader reach. In a `grid` table,
|
|
52209
|
+
* Enter on any cell of the row follows it as well.
|
|
51116
52210
|
*
|
|
51117
52211
|
* ## Attributes & Properties
|
|
51118
52212
|
*
|
|
@@ -52741,6 +53835,7 @@ export type CustomElements = {
|
|
|
52741
53835
|
*
|
|
52742
53836
|
* These can be used to apply styling when a component is in a given state.
|
|
52743
53837
|
*
|
|
53838
|
+
* - `blank`: While no time is chosen.
|
|
52744
53839
|
* - `invalid`: While `invalid` is set or `feedback` says what is wrong.
|
|
52745
53840
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
52746
53841
|
*/
|
|
@@ -52961,7 +54056,8 @@ export type CustomElements = {
|
|
|
52961
54056
|
*
|
|
52962
54057
|
* **Each item runs its own timer.** A timer held by the region would restart
|
|
52963
54058
|
* with each new message, and the last of three messages would stay for nine
|
|
52964
|
-
* seconds.
|
|
54059
|
+
* seconds. It pauses while the pointer or focus is on the message, and while
|
|
54060
|
+
* the page is hidden, so a message is not spent in a background tab.
|
|
52965
54061
|
*
|
|
52966
54062
|
* **Each message is an `alertdialog` named by its words**, which is how a reader
|
|
52967
54063
|
* who moves into the stack hears which message they are on. Give it a
|
|
@@ -53629,6 +54725,10 @@ export type CustomElements = {
|
|
|
53629
54725
|
* focus counts as a control, including your own elements. A child that takes no
|
|
53630
54726
|
* focus, such as a divider, is skipped. A menu is reached at its trigger.
|
|
53631
54727
|
*
|
|
54728
|
+
* A Divider in the toolbar is a separator across the toolbar's axis, as React
|
|
54729
|
+
* Aria's is: vertical in a horizontal toolbar and horizontal in a vertical
|
|
54730
|
+
* one, without an `orientation` of its own.
|
|
54731
|
+
*
|
|
53632
54732
|
* Controls inside a plain wrapper, such as a `Button Group`, are each a stop
|
|
53633
54733
|
* of the toolbar's own, as React Aria's toolbar flattens a group: the arrows
|
|
53634
54734
|
* walk through the group's buttons and on past it, and the group takes no tab
|
|
@@ -53637,6 +54737,28 @@ export type CustomElements = {
|
|
|
53637
54737
|
* The arrows wrap from the last control to the first. Set `stop-at-ends` to
|
|
53638
54738
|
* keep them at the ends, as Radix's `loop` set to false does.
|
|
53639
54739
|
*
|
|
54740
|
+
* **Keyboard.** Tab enters the toolbar on the control that last had focus, the
|
|
54741
|
+
* first control at the start, and the next Tab leaves it.
|
|
54742
|
+
*
|
|
54743
|
+
* | Key | What it does |
|
|
54744
|
+
* |---|---|
|
|
54745
|
+
* | Right | Moves to the next control in a horizontal toolbar, from the last back to the first. |
|
|
54746
|
+
* | Left | Moves to the control before in a horizontal toolbar, from the first round to the last. |
|
|
54747
|
+
* | Down, Up | The same in a vertical toolbar. |
|
|
54748
|
+
* | Home, End | Moves to the first or the last control. |
|
|
54749
|
+
*
|
|
54750
|
+
* Left and Right swap on a right-to-left page, where the first control is on
|
|
54751
|
+
* the right. The arrows across the toolbar's axis are left to the control that
|
|
54752
|
+
* has focus, so a radio-style toggle group or a select answers them itself.
|
|
54753
|
+
* The toolbar is `role="toolbar"` with `aria-orientation`, named by `label`.
|
|
54754
|
+
*
|
|
54755
|
+
* The stop moves through a control's own `focusable` property where it has
|
|
54756
|
+
* one, as Button, Select and Toggle Group do. A control without one has
|
|
54757
|
+
* `tabindex` written on the element that takes focus: a native element
|
|
54758
|
+
* itself, or the control inside a custom element's open shadow root, so the
|
|
54759
|
+
* host keeps the markup you rendered. Only a custom element whose shadow root
|
|
54760
|
+
* is closed takes it on the host.
|
|
54761
|
+
*
|
|
53640
54762
|
* A toggle group of pressed buttons, `selection-mode="multiple"`, is walked
|
|
53641
54763
|
* through the same way, each toggle a stop on the toolbar's axis, as React
|
|
53642
54764
|
* Aria's toolbar walks its toggle buttons. Another nested composite, such as a
|
|
@@ -53700,6 +54822,9 @@ export type CustomElements = {
|
|
|
53700
54822
|
*
|
|
53701
54823
|
* These can be used to apply styling when a component is in a given state.
|
|
53702
54824
|
*
|
|
54825
|
+
* - `horizontal`: The controls run along a row, which is the default.
|
|
54826
|
+
* - `nested`: The toolbar is a group inside another toolbar, which owns the keys and the tab stop.
|
|
54827
|
+
* - `vertical`: The controls run down a column, under `orientation="vertical"`.
|
|
53703
54828
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
53704
54829
|
*/
|
|
53705
54830
|
"helix-headless-toolbar": Partial<
|
|
@@ -55482,6 +56607,14 @@ export type CustomElements = {
|
|
|
55482
56607
|
*
|
|
55483
56608
|
* These can be used to apply styling when a component is in a given state.
|
|
55484
56609
|
*
|
|
56610
|
+
* - `ended`: Playback reached the end, until it starts again or the source changes.
|
|
56611
|
+
* - `error`: The source could not be played, and `failure` shows.
|
|
56612
|
+
* - `fullscreen`: The player fills the screen.
|
|
56613
|
+
* - `idle`: The video plays and the user has been still for `idle-delay`, so the bar hides.
|
|
56614
|
+
* - `muted`: The sound is off.
|
|
56615
|
+
* - `paused`: Playback is paused, which is where every player starts.
|
|
56616
|
+
* - `playing`: Playback runs, waiting for data included.
|
|
56617
|
+
* - `waiting`: Playback stopped to wait for more data, and `loading` shows.
|
|
55485
56618
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
55486
56619
|
*/
|
|
55487
56620
|
"helix-headless-video": Partial<
|
|
@@ -55980,6 +57113,23 @@ export type CustomElementsSolidJs = {
|
|
|
55980
57113
|
* announcement beside it, move focus yourself, for example to the page's main
|
|
55981
57114
|
* heading.
|
|
55982
57115
|
*
|
|
57116
|
+
* **The announcement is a landmark region**, named by `label`, "Announcement"
|
|
57117
|
+
* unless you set it, so a screen reader lists it among the page's regions.
|
|
57118
|
+
* `hotkey`, F6 unless you set it, moves focus to the announcement's first
|
|
57119
|
+
* control, an action or the dismiss button, and pressed there moves focus
|
|
57120
|
+
* back to where it was, as React Aria's toast region does. An announcement
|
|
57121
|
+
* with no control leaves the key to the browser. When an announcement that
|
|
57122
|
+
* the key moved focus into is removed with focus still inside, focus goes
|
|
57123
|
+
* back to where it was before the key.
|
|
57124
|
+
*
|
|
57125
|
+
* **Set `queued` to show several announcements one at a time.** A queued
|
|
57126
|
+
* announcement waits while a queued announcement before it in the same parent
|
|
57127
|
+
* is still there, and shows when that one is removed: its message is then
|
|
57128
|
+
* read out, and its `duration` starts. While it waits it renders nothing,
|
|
57129
|
+
* is no region, and carries `:state(waiting)`. A server cannot see the
|
|
57130
|
+
* announcements beside it, so a served page shows every one until the script
|
|
57131
|
+
* runs.
|
|
57132
|
+
*
|
|
55983
57133
|
* Set `duration` to dismiss it after a time. The clock stops while the pointer
|
|
55984
57134
|
* or focus is on the announcement, and continues from what was left, so a
|
|
55985
57135
|
* reader partway through is not cut off. It stops while the page is hidden too,
|
|
@@ -55997,6 +57147,19 @@ export type CustomElementsSolidJs = {
|
|
|
55997
57147
|
*
|
|
55998
57148
|
* Read once when the announcement is first rendered, as `Toast` reads its
|
|
55999
57149
|
* own. The clock stops while the pointer or focus is on the announcement.
|
|
57150
|
+
* - `hotkey`: The key that moves focus to the announcement's first control, and back
|
|
57151
|
+
* to where it was, written as keys joined by `+`, such as `F6` or `Alt+A`.
|
|
57152
|
+
*
|
|
57153
|
+
* F6 by default, the key React Aria's regions answer to. Empty turns it
|
|
57154
|
+
* off. With several announcements, the first one in the page takes focus.
|
|
57155
|
+
* - `label`: The name of the announcement's region, which screen readers list among
|
|
57156
|
+
* the page's landmarks. Translate it with the rest of your interface.
|
|
57157
|
+
*
|
|
57158
|
+
* Empty leaves the announcement no region.
|
|
57159
|
+
* - `queued`: Whether the announcement waits its turn behind the queued announcements
|
|
57160
|
+
* before it in the same parent, showing when the last of them is removed.
|
|
57161
|
+
*
|
|
57162
|
+
* Off by default, so every announcement on a page shows at once.
|
|
56000
57163
|
* - `tone`: The band's color.
|
|
56001
57164
|
*
|
|
56002
57165
|
* Paint only: unlike `Callout`, no value here draws a mark, changes the label,
|
|
@@ -56081,6 +57244,7 @@ export type CustomElementsSolidJs = {
|
|
|
56081
57244
|
* These can be used to apply styling when a component is in a given state.
|
|
56082
57245
|
*
|
|
56083
57246
|
* - `paused`: The clock `duration` started is stopped, while the pointer or focus is on the announcement or the page is hidden.
|
|
57247
|
+
* - `waiting`: The announcement is `queued` behind another, and renders nothing until that one is removed.
|
|
56084
57248
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
56085
57249
|
*/
|
|
56086
57250
|
"helix-headless-announcement": Partial<
|
|
@@ -56391,6 +57555,9 @@ export type CustomElementsSolidJs = {
|
|
|
56391
57555
|
*
|
|
56392
57556
|
* A column's heading is the cell's name in every row, so the first row
|
|
56393
57557
|
* answers for the column.
|
|
57558
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
57559
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
57560
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
56394
57561
|
*
|
|
56395
57562
|
* ## CSS Parts
|
|
56396
57563
|
*
|
|
@@ -56998,6 +58165,9 @@ export type CustomElementsSolidJs = {
|
|
|
56998
58165
|
*
|
|
56999
58166
|
* A column's heading is the cell's name in every row, so the first row
|
|
57000
58167
|
* answers for the column.
|
|
58168
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
58169
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
58170
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
57001
58171
|
*
|
|
57002
58172
|
* ## CSS Custom Properties
|
|
57003
58173
|
*
|
|
@@ -57060,13 +58230,33 @@ export type CustomElementsSolidJs = {
|
|
|
57060
58230
|
>;
|
|
57061
58231
|
|
|
57062
58232
|
/**
|
|
57063
|
-
* Renders a
|
|
58233
|
+
* Renders a figure holding the `<blockquote>` and a caption for the
|
|
57064
58234
|
* attribution, the structure the HTML spec describes. The attribution sits
|
|
57065
58235
|
* outside the quotation because it is about the quotation, and it names the
|
|
57066
58236
|
* figure, so a screen reader reads the source as the figure's caption.
|
|
57067
58237
|
*
|
|
57068
|
-
* The figure
|
|
57069
|
-
*
|
|
58238
|
+
* **The figure is a `<div role="figure">`**, so the headless tier draws no
|
|
58239
|
+
* space around the quotation. A `<figure>` takes a 40px indent and a line of
|
|
58240
|
+
* space above and below from the browser's own sheet, which every page had to
|
|
58241
|
+
* reset. The `<blockquote>` keeps its own margins, as a bare one does. A
|
|
58242
|
+
* screen reader meets the same figure, named by its caption.
|
|
58243
|
+
*
|
|
58244
|
+
* **A figure only while there is an attribution.** With nothing in the caption
|
|
58245
|
+
* the figure has no name and nothing to say, so the role and its name are
|
|
58246
|
+
* dropped and a reader meets the quotation alone. A server cannot see what is
|
|
58247
|
+
* slotted, so it serves the figure, and the client drops it after hydration;
|
|
58248
|
+
* an `attribution` written as words is served exactly.
|
|
58249
|
+
*
|
|
58250
|
+
* **Quotation marks follow the language**, under `marks`. The opening mark is
|
|
58251
|
+
* the one the browser sets for a `<q>` in the element's language, „ under
|
|
58252
|
+
* `lang="de"` and « under `lang="fr"`, and a `Quote` inside the passage takes
|
|
58253
|
+
* the inner marks. The mark is drawn, not read: a screen reader hears the
|
|
58254
|
+
* passage. A passage under `marks` that starts with a mark typed into the text
|
|
58255
|
+
* would show two, and warns once, with the runtime kind `typed-marks`.
|
|
58256
|
+
*
|
|
58257
|
+
* **`cite` is the source's URL**, which the browser keeps and does not show.
|
|
58258
|
+
* Words in it, such as the author's name, warn once, with the runtime kind
|
|
58259
|
+
* `cite-not-url`.
|
|
57070
58260
|
*
|
|
57071
58261
|
* For a quotation inside a sentence, use `Quote`.
|
|
57072
58262
|
*
|
|
@@ -57074,7 +58264,16 @@ export type CustomElementsSolidJs = {
|
|
|
57074
58264
|
*
|
|
57075
58265
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
57076
58266
|
*
|
|
57077
|
-
* - `
|
|
58267
|
+
* - `attribution`: Who said it, and where, as words, such as "Maria Lopez, operations
|
|
58268
|
+
* manager". The `attribution` slot replaces them, for markup such as a link.
|
|
58269
|
+
*
|
|
58270
|
+
* Words are served with the figure they name, where a server cannot see a
|
|
58271
|
+
* slotted attribution.
|
|
58272
|
+
* - `cite`: The URL of the source the passage came from. Who said it goes in
|
|
58273
|
+
* `attribution`: a `cite` with words in it warns once, with the runtime kind
|
|
58274
|
+
* `cite-not-url`.
|
|
58275
|
+
* - `marks`: Whether to draw an opening quotation mark before the passage, in the
|
|
58276
|
+
* element's language. Leave the marks out of the text.
|
|
57078
58277
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
57079
58278
|
*
|
|
57080
58279
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -57101,15 +58300,15 @@ export type CustomElementsSolidJs = {
|
|
|
57101
58300
|
* Areas where markup can be added to the component.
|
|
57102
58301
|
*
|
|
57103
58302
|
* - `(default)`: The quoted passage.
|
|
57104
|
-
* - `attribution`: Who said it, and where.
|
|
58303
|
+
* - `attribution`: Who said it, and where. Replaces the words of `attribution`.
|
|
57105
58304
|
*
|
|
57106
58305
|
* ## CSS Parts
|
|
57107
58306
|
*
|
|
57108
58307
|
* Custom selectors for styling elements within the component.
|
|
57109
58308
|
*
|
|
57110
|
-
* - `attribution`: The
|
|
58309
|
+
* - `attribution`: The caption carrying the source.
|
|
57111
58310
|
* - `blockquote`: The quotation.
|
|
57112
|
-
* - `figure`: The
|
|
58311
|
+
* - `figure`: The figure holding the quotation and its attribution, a `<div>` with `role="figure"` while the attribution has words.
|
|
57113
58312
|
*
|
|
57114
58313
|
* ## CSS States
|
|
57115
58314
|
*
|
|
@@ -57320,12 +58519,50 @@ export type CustomElementsSolidJs = {
|
|
|
57320
58519
|
* controls, and a development build warns once with the kind `missing-name`.
|
|
57321
58520
|
*
|
|
57322
58521
|
* The group does not manage focus, so each button keeps its own tab stop. For
|
|
57323
|
-
* one tab stop with arrow keys between
|
|
57324
|
-
* use Toolbar.
|
|
58522
|
+
* one tab stop with arrow keys between a mix of controls, the APG toolbar
|
|
58523
|
+
* pattern, use Toolbar.
|
|
57325
58524
|
*
|
|
57326
58525
|
* Buttons are slotted, so they stay your own elements and keep their own
|
|
57327
58526
|
* appearance and size.
|
|
57328
58527
|
*
|
|
58528
|
+
* **Buttons that stay pressed.** With `selection-mode`, each button with a
|
|
58529
|
+
* `value` is a toggle button: a press presses or releases it, and it says so
|
|
58530
|
+
* with `aria-pressed`. `single` keeps one pressed at a time, and a press on the
|
|
58531
|
+
* pressed one releases it. `multiple` lets any number be pressed. `value` is
|
|
58532
|
+
* the pressed values, comma separated. A press sends a cancelable
|
|
58533
|
+
* `helix-before-change` with the value it would leave, then `change`.
|
|
58534
|
+
*
|
|
58535
|
+
* The pressed state is written on the control inside each button's shadow
|
|
58536
|
+
* root, so the markup you rendered is never changed and a framework hydrating
|
|
58537
|
+
* it sees what its server sent. That is also why only Helix buttons are
|
|
58538
|
+
* toggles: a native `<button>` or a button without a `value` stays a plain
|
|
58539
|
+
* action button in the group, and a native one without its own
|
|
58540
|
+
* `aria-pressed` warns once, with the runtime kind `untold-toggle`. The inner
|
|
58541
|
+
* control also carries
|
|
58542
|
+
* `--button-group-pressed`, `1` or `0`, for a `::part(button)` rule of yours.
|
|
58543
|
+
*
|
|
58544
|
+
* Use Toggle Group instead for a choice that belongs in a form, or one where
|
|
58545
|
+
* the arrow keys choose as they move: it is a `radiogroup` of options with a
|
|
58546
|
+
* form value, `required` and validation. A Button Group in a selection mode is
|
|
58547
|
+
* a set of actions that stay on, such as bold and italic, or a view that a
|
|
58548
|
+
* press switches, and it submits nothing.
|
|
58549
|
+
*
|
|
58550
|
+
* **Keyboard.** In a selection mode the group is one tab stop: the button
|
|
58551
|
+
* focus was last on, then the first pressed one, then the first one.
|
|
58552
|
+
*
|
|
58553
|
+
* | Key | What it does |
|
|
58554
|
+
* |---|---|
|
|
58555
|
+
* | Right, Down | Moves to the next button, from the last back to the first. |
|
|
58556
|
+
* | Left, Up | Moves to the button before, from the first round to the last. |
|
|
58557
|
+
* | Home, End | Moves to the first or the last button. |
|
|
58558
|
+
* | Space, Enter | Presses or releases the focused button. |
|
|
58559
|
+
*
|
|
58560
|
+
* Left and Right swap on a right-to-left page, and a disabled button is
|
|
58561
|
+
* passed over. In a selection mode the group is a `toolbar`, with
|
|
58562
|
+
* `aria-orientation` under `orientation="vertical"`. Inside a toolbar it stays
|
|
58563
|
+
* a named `group`, and the toolbar's own arrow keys walk its buttons, so a
|
|
58564
|
+
* reader meets one toolbar.
|
|
58565
|
+
*
|
|
57329
58566
|
* ## Attributes & Properties
|
|
57330
58567
|
*
|
|
57331
58568
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -57351,6 +58588,16 @@ export type CustomElementsSolidJs = {
|
|
|
57351
58588
|
* buttons sharing edges as one shape, and a wrapped row carries the corners of
|
|
57352
58589
|
* a first row into a second. Stacked, the same three keep one shape and one
|
|
57353
58590
|
* column.
|
|
58591
|
+
* - `selection-mode`/`selectionMode`: Whether the buttons stay pressed: `single` keeps one pressed at a time and
|
|
58592
|
+
* `multiple` any number. Unset, they are action buttons, each its own tab
|
|
58593
|
+
* stop, as before.
|
|
58594
|
+
*
|
|
58595
|
+
* Optional, so the attribute is absent until a consumer writes it.
|
|
58596
|
+
* - `value`: The values of the pressed buttons, comma separated, in a selection mode.
|
|
58597
|
+
* A button's own `value` names it, so a value holds no comma.
|
|
58598
|
+
*
|
|
58599
|
+
* The attribute is the seed, and a press changes the property, which does
|
|
58600
|
+
* not reflect, as a native control's `value` does not.
|
|
57354
58601
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
57355
58602
|
*
|
|
57356
58603
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -57372,12 +58619,25 @@ export type CustomElementsSolidJs = {
|
|
|
57372
58619
|
* browser harness's awaits it alone: a browser always runs the frame, and a
|
|
57373
58620
|
* timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
|
|
57374
58621
|
*
|
|
58622
|
+
* ## Events
|
|
58623
|
+
*
|
|
58624
|
+
* Events that will be emitted by the component.
|
|
58625
|
+
*
|
|
58626
|
+
* - `change`: Fired after a press changes `value`, in a selection mode.
|
|
58627
|
+
* - `helix-before-change`: Fired before a press changes `value`, with the value it would leave in `detail.value`. Cancelable: call `preventDefault()` to keep the buttons as they are.
|
|
58628
|
+
*
|
|
57375
58629
|
* ## Slots
|
|
57376
58630
|
*
|
|
57377
58631
|
* Areas where markup can be added to the component.
|
|
57378
58632
|
*
|
|
57379
58633
|
* - `(default)`: The buttons in the group.
|
|
57380
58634
|
*
|
|
58635
|
+
* ## CSS Custom Properties
|
|
58636
|
+
*
|
|
58637
|
+
* CSS variables available for styling the component.
|
|
58638
|
+
*
|
|
58639
|
+
* - `--button-group-pressed`: Written on the control inside each toggle button of a group with `selection-mode`: `1` while it is pressed and `0` while it is not. Read it in a `::part(button)` rule to draw the pressed look.
|
|
58640
|
+
*
|
|
57381
58641
|
* ## CSS States
|
|
57382
58642
|
*
|
|
57383
58643
|
* These can be used to apply styling when a component is in a given state.
|
|
@@ -58053,20 +59313,34 @@ export type CustomElementsSolidJs = {
|
|
|
58053
59313
|
* keep every card in place, such as on a published board. Set `readonly` on one
|
|
58054
59314
|
* card or connection to keep only that one in place.
|
|
58055
59315
|
*
|
|
59316
|
+
* Set `snap` to a length in the document's units, such as `32`, and a card
|
|
59317
|
+
* that is moved or resized lands on a multiple of it. Carrying a card, a
|
|
59318
|
+
* corner, a connection, or the selection box near the edge of the board moves
|
|
59319
|
+
* the board under it, so a card can be taken to a place off screen in one
|
|
59320
|
+
* drag. A connection let go within 20 pixels of a card arrives at it. A
|
|
59321
|
+
* double click on the empty board zooms in about that point, and Shift with a
|
|
59322
|
+
* double click zooms out.
|
|
59323
|
+
*
|
|
58056
59324
|
* Keyboard behavior:
|
|
58057
59325
|
* - One card holds the board's tab stop.
|
|
58058
59326
|
* - The arrow keys move through the cards in reading order. The card you land
|
|
58059
59327
|
* on scrolls into view, and its connections are announced with it.
|
|
58060
|
-
* - Shift with an arrow key moves the card
|
|
59328
|
+
* - Shift with an arrow key moves the card: by 16 units, or to the next
|
|
59329
|
+
* multiple of `snap` where it is set. Alt with an arrow key resizes it from
|
|
59330
|
+
* its bottom right corner the same way.
|
|
58061
59331
|
* - The connections leaving a card are stops of their own, straight after it.
|
|
58062
59332
|
* Enter on one moves to the card it arrives at.
|
|
59333
|
+
* - What a key changes that a reader cannot see is said: where a card moved
|
|
59334
|
+
* to, its new size, how many cards are selected, and the zoom. A selected
|
|
59335
|
+
* card or connection says so when a reader arrives on it.
|
|
58063
59336
|
*
|
|
58064
59337
|
* Every drag also works with clicks, as WCAG 2.5.7 requires for a pointer that
|
|
58065
59338
|
* cannot hold a button down. Click a selected card's move handle, a corner, a
|
|
58066
59339
|
* card's connection point, or the end of a selected connection to pick it up.
|
|
58067
59340
|
* It follows the pointer with no button held, and the next click puts it down
|
|
58068
59341
|
* where a drag would have. On touch, the next tap sets where it lands. Escape,
|
|
58069
|
-
* or a press outside the board, puts it back.
|
|
59342
|
+
* or a press outside the board, puts it back. So a finger connects two cards
|
|
59343
|
+
* with three taps: the card, one of its points, and the card to connect to.
|
|
58070
59344
|
*
|
|
58071
59345
|
* Connecting and removing dispatch requests, and your code applies them:
|
|
58072
59346
|
* - Drawing from a card's handle to another card, or pressing C on one card and
|
|
@@ -58111,6 +59385,12 @@ export type CustomElementsSolidJs = {
|
|
|
58111
59385
|
*
|
|
58112
59386
|
* The list is joined the way the page's language joins one, "Second and
|
|
58113
59387
|
* Third", rather than with a comma this component chose.
|
|
59388
|
+
* - `moved-label`/`movedLabel`: What screen readers hear after a key moves a card, with `{name}` for the
|
|
59389
|
+
* card and `{x}` and `{y}` for where it now is, in the document's units.
|
|
59390
|
+
*
|
|
59391
|
+
* **A move a reader cannot see has to be said.** Shift with an arrow moved
|
|
59392
|
+
* the card and said nothing, so a reader moving one by keys could not tell
|
|
59393
|
+
* whether it had moved, or how far.
|
|
58114
59394
|
* - `order`: The order the arrow keys and screen readers move through the cards:
|
|
58115
59395
|
* `spatial` or `edges`.
|
|
58116
59396
|
*
|
|
@@ -58136,6 +59416,9 @@ export type CustomElementsSolidJs = {
|
|
|
58136
59416
|
* walk the cards.
|
|
58137
59417
|
* - `reconnecting-label`/`reconnectingLabel`: The text announced when a connection's end is picked up, with `{from}` and
|
|
58138
59418
|
* `{to}`.
|
|
59419
|
+
* - `resized-label`/`resizedLabel`: What screen readers hear after a key resizes a card, with `{name}` for the
|
|
59420
|
+
* card and `{width}` and `{height}` for its new size, in the document's
|
|
59421
|
+
* units.
|
|
58139
59422
|
* - `selected`: The names of the selected cards and connections, comma separated. Empty
|
|
58140
59423
|
* when nothing is selected.
|
|
58141
59424
|
*
|
|
@@ -58155,6 +59438,26 @@ export type CustomElementsSolidJs = {
|
|
|
58155
59438
|
* on its board across cards and connections both, and may not hold a comma.
|
|
58156
59439
|
*
|
|
58157
59440
|
* Written to select from outside, and read to act on the selection.
|
|
59441
|
+
* - `selected-label`/`selectedLabel`: What a selected card or connection adds to what screen readers hear on
|
|
59442
|
+
* it, before its tone and its connections. Empty adds nothing.
|
|
59443
|
+
*
|
|
59444
|
+
* A card is an article and a connection a button, and neither has a selected
|
|
59445
|
+
* state for `aria-selected` to carry, so the state is said in words.
|
|
59446
|
+
* - `selection-label`/`selectionLabel`: What screen readers hear after the selection grows or shrinks, with
|
|
59447
|
+
* `{count}` for how many cards and connections are selected: by Space, a
|
|
59448
|
+
* click with Shift, Command or Control, Command or Control with A, a box
|
|
59449
|
+
* drawn across the board, or Escape.
|
|
59450
|
+
*
|
|
59451
|
+
* A selection of one made by arriving on a card or clicking it is not said,
|
|
59452
|
+
* since the card is.
|
|
59453
|
+
* - `snap`: Snaps the cards a reader moves or resizes to a multiple of this many of the
|
|
59454
|
+
* document's units, such as `32` to land on the lines `grid` draws.
|
|
59455
|
+
*
|
|
59456
|
+
* **A drag lets go on the nearest line and a key goes to the next one.**
|
|
59457
|
+
* Shift with an arrow moves a card to the next line that way, rather than
|
|
59458
|
+
* by its step of 16, and Alt with an arrow moves its bottom right corner
|
|
59459
|
+
* the same way. A group moves with what it carries, so a card inside one
|
|
59460
|
+
* keeps its place in it. Absent, cards land where they are let go.
|
|
58158
59461
|
* - `stopped-label`/`stoppedLabel`: The text announced when a connection is stopped before it is requested.
|
|
58159
59462
|
* - `tone-labels`/`toneLabels`: What each tone means on this board, in words read out with the cards and
|
|
58160
59463
|
* connections in it, such as `{"danger": "Blocked", "success": "Done"}`.
|
|
@@ -58164,6 +59467,8 @@ export type CustomElementsSolidJs = {
|
|
|
58164
59467
|
* red is "blocked" on one board and "urgent" on the next. A reader who can
|
|
58165
59468
|
* see the board is told by the color; this is how a reader who cannot is
|
|
58166
59469
|
* told the same. A tone left out is not read.
|
|
59470
|
+
* - `zoomed-label`/`zoomedLabel`: What screen readers hear after a zoom button or key, with `{zoom}` for the
|
|
59471
|
+
* zoom as a percentage, written the way the page's language writes one.
|
|
58167
59472
|
* - `activate-hint-label`/`activateHintLabel`: The hint shown when a surface waiting to be pressed is scrolled or
|
|
58168
59473
|
* swiped over, with `gestures="activate"`. Absent is the family's own.
|
|
58169
59474
|
* - `controls`: Which controls to show, as a list such as `pan zoom fullscreen`, or
|
|
@@ -58310,7 +59615,14 @@ export type CustomElementsSolidJs = {
|
|
|
58310
59615
|
* - `(default)`: The board's `helix-canvas-node` and `helix-canvas-edge` elements, drawn on the plane.
|
|
58311
59616
|
* - `empty`: Content shown when the document has no nodes.
|
|
58312
59617
|
* - `footer`: Content below the board.
|
|
59618
|
+
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
58313
59619
|
* - `header`: Content above the board.
|
|
59620
|
+
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
59621
|
+
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
59622
|
+
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
59623
|
+
* - `pan-up-icon`: Replaces the glyph inside the pan up button.
|
|
59624
|
+
* - `zoom-in-icon`: Replaces the glyph inside the zoom-in button.
|
|
59625
|
+
* - `zoom-out-icon`: Replaces the glyph inside the zoom-out button.
|
|
58314
59626
|
*
|
|
58315
59627
|
* ## Methods
|
|
58316
59628
|
*
|
|
@@ -59877,15 +61189,17 @@ export type CustomElementsSolidJs = {
|
|
|
59877
61189
|
* the button is drawn only while the cap hides something, measured as the
|
|
59878
61190
|
* block lays out. Not for a diff, whose files each scroll on their own.
|
|
59879
61191
|
* - `expand-label`/`expandLabel`: The expand button's words while the cap hides lines.
|
|
59880
|
-
* - `label`: The block's name, usually a file name
|
|
61192
|
+
* - `label`: The block's name, usually a file name, drawn in the header.
|
|
59881
61193
|
*
|
|
59882
|
-
*
|
|
59883
|
-
*
|
|
61194
|
+
* Absent, the block is named by `language` where there is one. In a diff,
|
|
61195
|
+
* each file is named from the patch, and this names a patch that carries no
|
|
61196
|
+
* name of its own.
|
|
59884
61197
|
* - `language`: The language the code is written in, such as `ts` or `css`, handed to
|
|
59885
61198
|
* `highlight` as its second argument.
|
|
59886
61199
|
*
|
|
59887
|
-
*
|
|
59888
|
-
*
|
|
61200
|
+
* A block with no `label` is named by it, in the header and on the copy
|
|
61201
|
+
* button, as a docs site names a snippet by its language. Absent hands
|
|
61202
|
+
* `highlight` an empty string and names nothing.
|
|
59889
61203
|
* - `line-numbers`/`lineNumbers`: Whether the lines are numbered in a gutter beside the code.
|
|
59890
61204
|
*
|
|
59891
61205
|
* The numbers are hidden from the accessibility tree and are not part of a
|
|
@@ -59995,7 +61309,7 @@ export type CustomElementsSolidJs = {
|
|
|
59995
61309
|
* - `gutter`: The line numbers beside the code, shown when `line-numbers` is set.
|
|
59996
61310
|
* - `header`: The bar that holds the name and the copy button, shown when there is a name.
|
|
59997
61311
|
* - `hunk`: In a diff, a `@@` line saying where the lines under it are.
|
|
59998
|
-
* - `label`: The
|
|
61312
|
+
* - `label`: The block's name: its `label`, or its `language` where it has no label.
|
|
59999
61313
|
* - `marker`: In a diff, the `+`, `-`, or space that starts a line.
|
|
60000
61314
|
* - `new`: In a split diff, the new version's `<pre>`.
|
|
60001
61315
|
* - `number`: In a diff, a line number.
|
|
@@ -60799,13 +62113,33 @@ export type CustomElementsSolidJs = {
|
|
|
60799
62113
|
* reopened combobox starts from the whole list.
|
|
60800
62114
|
*
|
|
60801
62115
|
* Focus stays in the text field. The arrow keys move through the list with the
|
|
60802
|
-
* listbox's public `navigate` method.
|
|
60803
|
-
*
|
|
60804
|
-
*
|
|
60805
|
-
*
|
|
60806
|
-
*
|
|
60807
|
-
*
|
|
60808
|
-
*
|
|
62116
|
+
* listbox's public `navigate` method. As typing narrows the list, a screen
|
|
62117
|
+
* reader hears how many options are left, such as "3 results". Emptying the
|
|
62118
|
+
* field and leaving it clears a single choice.
|
|
62119
|
+
*
|
|
62120
|
+
* **Keyboard.**
|
|
62121
|
+
*
|
|
62122
|
+
* | Key | What it does |
|
|
62123
|
+
* |---|---|
|
|
62124
|
+
* | Down, Up | On a closed field, opens the list on the chosen option, or the first or the last. In the open list, moves the highlight, round from the last option to the first. |
|
|
62125
|
+
* | Page Down, Page Up | In the open list, moves the highlight by as many options as the list shows at once. |
|
|
62126
|
+
* | Enter | Chooses the highlighted option. With nothing left in the list, creates what was typed with `creatable`, or takes it with `allows-custom-value`. On a closed field, submits the form. |
|
|
62127
|
+
* | Escape | Closes the list and puts the chosen words back. On a closed field, a second Escape clears a single choice. |
|
|
62128
|
+
* | Tab | Closes the list and moves on. |
|
|
62129
|
+
* | Backspace | With `multiple`, on an empty field, removes the last tag. |
|
|
62130
|
+
* | Space, Home, End, letters | Edit the text. |
|
|
62131
|
+
*
|
|
62132
|
+
* **ARIA.** The input is the `combobox`, named by the label, with
|
|
62133
|
+
* `aria-expanded`, `aria-controls` naming the list, `aria-autocomplete`
|
|
62134
|
+
* (`both` with `suggest`, `list` otherwise) and `aria-activedescendant` on
|
|
62135
|
+
* the highlighted option. The list is the listbox `Listbox` describes.
|
|
62136
|
+
*
|
|
62137
|
+
* On Apple devices, where VoiceOver does not read the option the field points
|
|
62138
|
+
* to, the field says it in a live region as the highlight moves, says how many
|
|
62139
|
+
* options there are as the list opens, and says a choice once it is made, as
|
|
62140
|
+
* React Aria's combobox does there.
|
|
62141
|
+
*
|
|
62142
|
+
* Set `autocomplete` to let a browser's autofill choose an option.
|
|
60809
62143
|
*
|
|
60810
62144
|
* With `multiple`, each chosen option is a tag in the field with its own remove
|
|
60811
62145
|
* control. The panel stays open and the filter clears after each choice, so the
|
|
@@ -60828,12 +62162,19 @@ export type CustomElementsSolidJs = {
|
|
|
60828
62162
|
* leaves the field or presses Enter with nothing highlighted, and text that
|
|
60829
62163
|
* names an option takes that option. Unlike `creatable`, no event asks
|
|
60830
62164
|
* first and no option is expected to be added: the value is the text.
|
|
60831
|
-
* - `autocomplete`: What the browser may autofill
|
|
62165
|
+
* - `autocomplete`: What the browser may autofill, as a platform token such as `country`.
|
|
60832
62166
|
*
|
|
60833
62167
|
* **Defaults to `off`, which is not the platform's default and is the
|
|
60834
62168
|
* point.** The field filters a list rather than collecting a value, so a
|
|
60835
62169
|
* browser offering to fill it with a saved address is competing for the same
|
|
60836
62170
|
* keystrokes as the listbox. A consumer who wants autofill can still ask.
|
|
62171
|
+
*
|
|
62172
|
+
* Set, a combobox whose answer is one of its options keeps a hidden native
|
|
62173
|
+
* `<select>` with the same options for the browser to fill, as React Aria's
|
|
62174
|
+
* combobox and Select do, and the option the browser picks, by its value or
|
|
62175
|
+
* its words, becomes the value. The text field itself stays `off`, so the
|
|
62176
|
+
* browser fills the answer and not the filter. With `allows-custom-value`
|
|
62177
|
+
* the token goes on the text field, whose words are the answer.
|
|
60837
62178
|
* - `creatable`: Whether the user can add a value that is not in the list.
|
|
60838
62179
|
*
|
|
60839
62180
|
* The row appears while what is typed matches no option's words exactly, so
|
|
@@ -60852,8 +62193,9 @@ export type CustomElementsSolidJs = {
|
|
|
60852
62193
|
* every keystroke. See Listbox's `filter-delay`.
|
|
60853
62194
|
* - `list-label`/`listLabel`: The list's name, read by screen readers. The list has no visible name.
|
|
60854
62195
|
* - `load-error`/`loadError`: What the list says when its options could not be loaded, such as after a
|
|
60855
|
-
* request to a server fails. Empty
|
|
60856
|
-
*
|
|
62196
|
+
* request to a server fails. Empty, null or no attribute is no error, so
|
|
62197
|
+
* removing the attribute clears it. Passed to the list, which shows it
|
|
62198
|
+
* under any options there are and tells screen readers.
|
|
60857
62199
|
* - `loading`: Whether the options are still loading.
|
|
60858
62200
|
*
|
|
60859
62201
|
* Passed straight to the list, which is where the rows are and so where the
|
|
@@ -60897,6 +62239,8 @@ export type CustomElementsSolidJs = {
|
|
|
60897
62239
|
* - `results-label`/`resultsLabel`: What a screen reader hears when typing leaves any other number of
|
|
60898
62240
|
* options. `{count}` is the count, and `Intl.PluralRules` picks between the
|
|
60899
62241
|
* two.
|
|
62242
|
+
* - `selected-label`/`selectedLabel`: What VoiceOver hears for a chosen option, as the highlight reaches it and
|
|
62243
|
+
* once it is chosen, on Apple devices. `{name}` is the option's words.
|
|
60900
62244
|
* - `suggest`: Whether the field completes the word as the user types.
|
|
60901
62245
|
*
|
|
60902
62246
|
* `suggest` rather than `autocomplete`, which is a real HTML attribute this
|
|
@@ -61117,6 +62461,7 @@ export type CustomElementsSolidJs = {
|
|
|
61117
62461
|
* - `listbox-loading`: Shown while the options are loading.
|
|
61118
62462
|
* - `listbox-search`: The region holding the field that narrows the list.
|
|
61119
62463
|
* - `listbox-search-field`: The filter field inside that region.
|
|
62464
|
+
* - `live`: The region VoiceOver hears the highlight, the count and a choice from on Apple devices, drawn once there is one to say. Visually hidden in the styled tier.
|
|
61120
62465
|
* - `rest`: The count of choices held beyond `max-tags`. A `<button>` with `expandable`, a `<span>` without it.
|
|
61121
62466
|
* - `surface`: The floating panel.
|
|
61122
62467
|
* - `tag`: One chosen option.
|
|
@@ -61132,8 +62477,10 @@ export type CustomElementsSolidJs = {
|
|
|
61132
62477
|
*
|
|
61133
62478
|
* These can be used to apply styling when a component is in a given state.
|
|
61134
62479
|
*
|
|
62480
|
+
* - `blank`: While nothing is chosen.
|
|
61135
62481
|
* - `error`: While `load-error` is set.
|
|
61136
62482
|
* - `invalid`: The control has an error to show, from the browser's validation or from your `feedback`.
|
|
62483
|
+
* - `loading`: While `loading` is set.
|
|
61137
62484
|
* - `no-results`: What was typed hid every option of a list that has some.
|
|
61138
62485
|
* - `open`: While the list is open.
|
|
61139
62486
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
@@ -61182,8 +62529,9 @@ export type CustomElementsSolidJs = {
|
|
|
61182
62529
|
* with: one key, said once.
|
|
61183
62530
|
* - `label`: Accessible name for the overlay, which has no visible heading.
|
|
61184
62531
|
* - `load-error`/`loadError`: What the list says when its commands could not be loaded, such as after a
|
|
61185
|
-
* request to a server fails. Empty
|
|
61186
|
-
*
|
|
62532
|
+
* request to a server fails. Empty, null or no attribute is no error, so
|
|
62533
|
+
* removing the attribute clears it. Passed to the list, which shows it
|
|
62534
|
+
* under any commands there are and tells screen readers.
|
|
61187
62535
|
* - `loading`: Whether the commands are still loading, for a palette that asks a server
|
|
61188
62536
|
* for them as the user types.
|
|
61189
62537
|
*
|
|
@@ -62783,6 +64131,7 @@ export type CustomElementsSolidJs = {
|
|
|
62783
64131
|
*
|
|
62784
64132
|
* Custom selectors for styling elements within the component.
|
|
62785
64133
|
*
|
|
64134
|
+
* - `actions`: The box after the value inside its `<dd>`, holding the `actions` slot.
|
|
62786
64135
|
* - `label`: The `<dt>`, holding the label.
|
|
62787
64136
|
* - `value`: The `<dd>`, holding the value.
|
|
62788
64137
|
*
|
|
@@ -62790,6 +64139,7 @@ export type CustomElementsSolidJs = {
|
|
|
62790
64139
|
*
|
|
62791
64140
|
* These can be used to apply styling when a component is in a given state.
|
|
62792
64141
|
*
|
|
64142
|
+
* - `several`: The values are several `<dd>` elements of your own, so the item draws no `value` part.
|
|
62793
64143
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
62794
64144
|
*/
|
|
62795
64145
|
"helix-headless-description-list-item": Partial<
|
|
@@ -63084,30 +64434,42 @@ export type CustomElementsSolidJs = {
|
|
|
63084
64434
|
* rendered element. The semantics are then in the server-rendered markup, with
|
|
63085
64435
|
* no attribute written by script after the element connects.
|
|
63086
64436
|
*
|
|
63087
|
-
*
|
|
63088
|
-
*
|
|
64437
|
+
* **The line is a separator**, as `<hr>` is, and as Radix Separator, React
|
|
64438
|
+
* Aria Separator, and Web Awesome's divider are. It is named by any content
|
|
64439
|
+
* set into it, so a screen reader says "Or, separator" where you wrote "Or" on
|
|
64440
|
+
* the line. Set `decorative` on a rule that separates nothing, such as one
|
|
64441
|
+
* under a heading or between the facts of a byline, and it leaves the
|
|
64442
|
+
* accessibility tree.
|
|
64443
|
+
*
|
|
64444
|
+
* Use `orientation="vertical"` between items on one line. A vertical divider
|
|
64445
|
+
* stretches to fit its flex parent and sets no height of its own.
|
|
63089
64446
|
*
|
|
63090
|
-
*
|
|
63091
|
-
*
|
|
63092
|
-
*
|
|
64447
|
+
* **Inside a toolbar it runs across the toolbar** without being told: vertical
|
|
64448
|
+
* in a horizontal toolbar and horizontal in a vertical one, with
|
|
64449
|
+
* `aria-orientation` to match, as React Aria's separator does inside a
|
|
64450
|
+
* toolbar. Inside means a child of Toolbar or of the page's own
|
|
64451
|
+
* `role="toolbar"`. An `orientation` you write still wins. A server cannot see
|
|
64452
|
+
* the toolbar, so the turn arrives with hydration, inside the shadow root.
|
|
63093
64453
|
*
|
|
63094
64454
|
* ## Attributes & Properties
|
|
63095
64455
|
*
|
|
63096
64456
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
63097
64457
|
*
|
|
63098
|
-
* - `announced`: Whether screen readers announce the line as a separator
|
|
64458
|
+
* - `announced`: Whether screen readers announce the line as a separator, which they now do
|
|
64459
|
+
* by default.
|
|
63099
64460
|
*
|
|
63100
|
-
*
|
|
63101
|
-
*
|
|
63102
|
-
*
|
|
63103
|
-
*
|
|
64461
|
+
* It dates from when the line was decorative by default. It is still read,
|
|
64462
|
+
* and it wins over `decorative`, so a divider written with it stays a
|
|
64463
|
+
* separator.
|
|
64464
|
+
* - `decorative`: Takes the line out of the accessibility tree, for a rule that separates
|
|
64465
|
+
* nothing: one under a heading, or between the facts of a byline.
|
|
63104
64466
|
*
|
|
63105
|
-
*
|
|
63106
|
-
*
|
|
63107
|
-
*
|
|
63108
|
-
* property. An opt-in is absent by default, which every reflected property
|
|
63109
|
-
* here has to be.
|
|
64467
|
+
* Absent, the line is a separator, as `<hr>` is. Radix Separator's opt-out
|
|
64468
|
+
* has the same name. It turns the role off because a boolean attribute that
|
|
64469
|
+
* is on by default cannot be turned off from HTML.
|
|
63110
64470
|
* - `orientation`: The direction the line runs: `horizontal` or `vertical`.
|
|
64471
|
+
*
|
|
64472
|
+
* Unset is horizontal, or across the toolbar the divider sits in.
|
|
63111
64473
|
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
63112
64474
|
*
|
|
63113
64475
|
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
@@ -63146,6 +64508,7 @@ export type CustomElementsSolidJs = {
|
|
|
63146
64508
|
*
|
|
63147
64509
|
* These can be used to apply styling when a component is in a given state.
|
|
63148
64510
|
*
|
|
64511
|
+
* - `vertical`: The line runs vertically: `orientation="vertical"`, or no `orientation` inside a horizontal toolbar.
|
|
63149
64512
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
63150
64513
|
*/
|
|
63151
64514
|
"helix-headless-divider": Partial<
|
|
@@ -63350,6 +64713,9 @@ export type CustomElementsSolidJs = {
|
|
|
63350
64713
|
*
|
|
63351
64714
|
* A column's heading is the cell's name in every row, so the first row
|
|
63352
64715
|
* answers for the column.
|
|
64716
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
64717
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
64718
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
63353
64719
|
*
|
|
63354
64720
|
* ## CSS Custom Properties
|
|
63355
64721
|
*
|
|
@@ -63890,6 +65256,13 @@ export type CustomElementsSolidJs = {
|
|
|
63890
65256
|
* rendering from data or on a server gets a heading a reader finds in the
|
|
63891
65257
|
* outline without writing the element. A heading slotted in replaces it.
|
|
63892
65258
|
*
|
|
65259
|
+
* **Whatever is slotted into `heading` is read as a heading.** An element that
|
|
65260
|
+
* is no heading, such as a `<span>` or a `<p>`, is set inside the `heading`
|
|
65261
|
+
* part at `heading-level`, so a screen reader still finds it in the outline.
|
|
65262
|
+
* A heading element, or an element holding one, keeps its own level. A server
|
|
65263
|
+
* cannot see the slotted element, so a served `<span>` becomes a heading once
|
|
65264
|
+
* the script runs.
|
|
65265
|
+
*
|
|
63893
65266
|
* ## Attributes & Properties
|
|
63894
65267
|
*
|
|
63895
65268
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -63934,14 +65307,14 @@ export type CustomElementsSolidJs = {
|
|
|
63934
65307
|
*
|
|
63935
65308
|
* - `(default)`: The message: why the region is empty, and what to do about it.
|
|
63936
65309
|
* - `actions`: The action that would put something in the region.
|
|
63937
|
-
* - `heading`: The heading, which names what is missing.
|
|
65310
|
+
* - `heading`: The heading, which names what is missing. A heading element, such as an `<h3>`, keeps its level; any other element is read as a heading at `heading-level`. Replaces the one `heading` draws.
|
|
63938
65311
|
* - `icon`: An icon above the heading.
|
|
63939
65312
|
*
|
|
63940
65313
|
* ## CSS Parts
|
|
63941
65314
|
*
|
|
63942
65315
|
* Custom selectors for styling elements within the component.
|
|
63943
65316
|
*
|
|
63944
|
-
* - `heading`: The heading
|
|
65317
|
+
* - `heading`: The heading at `heading-level`: the one `heading` draws while nothing is slotted into `heading`, or the one around a slotted element that is no heading.
|
|
63945
65318
|
* - `live`: A copy of the heading and the message, in a live region that screen readers announce when the view appears. Visually hidden in the styled tier.
|
|
63946
65319
|
*
|
|
63947
65320
|
* ## CSS States
|
|
@@ -65141,6 +66514,12 @@ export type CustomElementsSolidJs = {
|
|
|
65141
66514
|
* showing a date schedules none, so a long feed left open costs almost nothing.
|
|
65142
66515
|
* `frozen` draws the reading once and leaves it.
|
|
65143
66516
|
*
|
|
66517
|
+
* **`fields` draws each field of a date as a part of its own**, such as
|
|
66518
|
+
* `day`, `month` and `year`, so a stylesheet can set the year in a lighter ink
|
|
66519
|
+
* or the weekday in capitals with `::part()`. The text between the fields is
|
|
66520
|
+
* the locale's own and has no part. An `elapsed` or `relative` reading is one
|
|
66521
|
+
* phrase, with no parts inside it.
|
|
66522
|
+
*
|
|
65144
66523
|
* **The output is always `<time datetime>`**, so copy and paste and scripts
|
|
65145
66524
|
* parsing the page get the exact instant, whatever the visible text says. A
|
|
65146
66525
|
* screen reader reads the text, so an `elapsed` reading is named in full, such
|
|
@@ -65180,6 +66559,13 @@ export type CustomElementsSolidJs = {
|
|
|
65180
66559
|
* this is and a stylesheet has a reason to know: a compact reading is a fixed
|
|
65181
66560
|
* few characters and a date is not.
|
|
65182
66561
|
* - `era`: How the era is written, such as AD, where a date is shown.
|
|
66562
|
+
* - `fields`: Draws each field of a date in a part of its own: `weekday`, `day`,
|
|
66563
|
+
* `month`, `year`, `era`, `hour`, `minute`, `second`, `day-period` and
|
|
66564
|
+
* `time-zone-name`, so `::part(year)` can set the year apart.
|
|
66565
|
+
*
|
|
66566
|
+
* Off by default, which draws the date as one run of text, as Shoelace and
|
|
66567
|
+
* Web Awesome do. An `elapsed` or `relative` reading is one phrase either
|
|
66568
|
+
* way.
|
|
65183
66569
|
* - `frozen`: Draws an `elapsed` or `relative` reading once and leaves it, where it
|
|
65184
66570
|
* would otherwise move on as it goes stale.
|
|
65185
66571
|
*
|
|
@@ -65245,12 +66631,24 @@ export type CustomElementsSolidJs = {
|
|
|
65245
66631
|
*
|
|
65246
66632
|
* Custom selectors for styling elements within the component.
|
|
65247
66633
|
*
|
|
66634
|
+
* - `day`: The day of the month, with `fields`.
|
|
66635
|
+
* - `day-period`: AM or PM, or the locale's word for the part of the day, with `fields`.
|
|
66636
|
+
* - `era`: The era, such as AD, with `fields` and `era`.
|
|
66637
|
+
* - `hour`: The hour, with `fields`.
|
|
66638
|
+
* - `minute`: The minute, with `fields`.
|
|
66639
|
+
* - `month`: The month, with `fields`.
|
|
66640
|
+
* - `second`: The second, with `fields`.
|
|
65248
66641
|
* - `time`: The `<time>` element that holds the formatted text.
|
|
66642
|
+
* - `time-zone-name`: The time zone's name, with `fields`, where `time-zone-name` or a `long` or `full` `time-style` shows it.
|
|
66643
|
+
* - `weekday`: The day of the week, with `fields`.
|
|
66644
|
+
* - `year`: The year, with `fields`.
|
|
65249
66645
|
*
|
|
65250
66646
|
* ## CSS States
|
|
65251
66647
|
*
|
|
65252
66648
|
* These can be used to apply styling when a component is in a given state.
|
|
65253
66649
|
*
|
|
66650
|
+
* - `future`: An `elapsed` or `relative` reading of a moment still to come, such as "in 3 hours".
|
|
66651
|
+
* - `past`: An `elapsed` or `relative` reading of a moment gone, such as "3 hours ago".
|
|
65254
66652
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
65255
66653
|
*/
|
|
65256
66654
|
"helix-headless-format-date": Partial<
|
|
@@ -65455,7 +66853,14 @@ export type CustomElementsSolidJs = {
|
|
|
65455
66853
|
* - `(default)`: The renderer's box, which the drawing is made in.
|
|
65456
66854
|
* - `filter-icon`: The icon in the search field. Defaults to a magnifying glass.
|
|
65457
66855
|
* - `footer`: Content below the graph.
|
|
66856
|
+
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
65458
66857
|
* - `header`: Content above the graph.
|
|
66858
|
+
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
66859
|
+
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
66860
|
+
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
66861
|
+
* - `pan-up-icon`: Replaces the glyph inside the pan up button.
|
|
66862
|
+
* - `zoom-in-icon`: Replaces the glyph inside the zoom-in button.
|
|
66863
|
+
* - `zoom-out-icon`: Replaces the glyph inside the zoom-out button.
|
|
65459
66864
|
*
|
|
65460
66865
|
* ## Methods
|
|
65461
66866
|
*
|
|
@@ -65536,9 +66941,14 @@ export type CustomElementsSolidJs = {
|
|
|
65536
66941
|
*
|
|
65537
66942
|
* These can be used to apply styling when a component is in a given state.
|
|
65538
66943
|
*
|
|
66944
|
+
* - `empty`: The list holds no notes: the graph has none, or a search or the groups hid them all.
|
|
65539
66945
|
* - `fullscreen`: The graph fills the screen.
|
|
65540
66946
|
* - `idle`: The user has been still long enough for the header and footer to fade.
|
|
66947
|
+
* - `local`: The drawing shows the selected note's local graph, with `depth`.
|
|
66948
|
+
* - `panel-open`: A graph with `no-panel` has the search and the list open over the drawing.
|
|
65541
66949
|
* - `ready`: The graph has been drawn whole, after `helix-graph-ready`.
|
|
66950
|
+
* - `searching`: The search field holds words, and the list holds only the notes they find.
|
|
66951
|
+
* - `selected`: A note is selected, in the list or in the drawing.
|
|
65542
66952
|
* - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a graph with `gestures="activate"` waits to be pressed.
|
|
65543
66953
|
* - `using`: A graph with `gestures="activate"` has been pressed and has the gestures.
|
|
65544
66954
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
@@ -65628,6 +67038,9 @@ export type CustomElementsSolidJs = {
|
|
|
65628
67038
|
* calendar heatmap does: a week is a column, so the strip reads along the
|
|
65629
67039
|
* line in weeks, from the right on a right-to-left page, and top to bottom in
|
|
65630
67040
|
* days.
|
|
67041
|
+
* - `selected-label`/`selectedLabel`: What the readout adds for a selected cell, under `selection-mode`, after
|
|
67042
|
+
* where the cell stands: "Day 1: 0 (1 of 14, selected)". Empty adds
|
|
67043
|
+
* nothing.
|
|
65631
67044
|
* - `selection-label`/`selectionLabel`: What the `selection` part says after the selection changes, with `{count}` for
|
|
65632
67045
|
* how many cells are selected.
|
|
65633
67046
|
* - `selection-mode`/`selectionMode`: How many cells a reader can select: `single` or `multiple`.
|
|
@@ -65808,6 +67221,9 @@ export type CustomElementsSolidJs = {
|
|
|
65808
67221
|
*
|
|
65809
67222
|
* A column's heading is the cell's name in every row, so the first row
|
|
65810
67223
|
* answers for the column.
|
|
67224
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
67225
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
67226
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
65811
67227
|
*
|
|
65812
67228
|
* ## CSS Custom Properties
|
|
65813
67229
|
*
|
|
@@ -66284,6 +67700,17 @@ export type CustomElementsSolidJs = {
|
|
|
66284
67700
|
* its own. The fallback is read once the picture fails, after the picture's
|
|
66285
67701
|
* `alt`, so a reader hears that it did not load, as a sighted reader sees.
|
|
66286
67702
|
*
|
|
67703
|
+
* **An image with no `alt` says so.** At its first render it reports a
|
|
67704
|
+
* `missing-alt` warning, printed in the console and counted by
|
|
67705
|
+
* `@fusion.dev/helix-diagnostics`, which names the fix: describe the picture
|
|
67706
|
+
* in `alt`, or write `alt=""` for one that is decoration. An image hidden with
|
|
67707
|
+
* `aria-hidden="true"` needs neither and is not reported.
|
|
67708
|
+
*
|
|
67709
|
+
* A sheet of yours reads the state as `:state(loading)`, `:state(loaded)`,
|
|
67710
|
+
* `:state(error)`, and `:state(waiting)`, the last while `placeholder-delay`
|
|
67711
|
+
* holds the placeholder back. It can also read `data-status` on the host once
|
|
67712
|
+
* the picture has loaded or failed.
|
|
67713
|
+
*
|
|
66287
67714
|
* ## Attributes & Properties
|
|
66288
67715
|
*
|
|
66289
67716
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
@@ -67545,6 +68972,9 @@ export type CustomElementsSolidJs = {
|
|
|
67545
68972
|
*
|
|
67546
68973
|
* A column's heading is the cell's name in every row, so the first row
|
|
67547
68974
|
* answers for the column.
|
|
68975
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
68976
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
68977
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
67548
68978
|
*
|
|
67549
68979
|
* ## CSS Custom Properties
|
|
67550
68980
|
*
|
|
@@ -67898,16 +69328,31 @@ export type CustomElementsSolidJs = {
|
|
|
67898
69328
|
* active option is where the keyboard is: the arrow keys move it, and
|
|
67899
69329
|
* `aria-activedescendant` points to it while focus stays on the list.
|
|
67900
69330
|
*
|
|
67901
|
-
* The
|
|
67902
|
-
*
|
|
67903
|
-
*
|
|
67904
|
-
*
|
|
67905
|
-
*
|
|
67906
|
-
*
|
|
67907
|
-
*
|
|
67908
|
-
*
|
|
67909
|
-
*
|
|
67910
|
-
*
|
|
69331
|
+
* **Keyboard.** The list is one tab stop, or its filter field is where there
|
|
69332
|
+
* is one. In a single-choice list the highlight is the choice unless `manual`
|
|
69333
|
+
* is set; then Enter, Space or a click chooses.
|
|
69334
|
+
*
|
|
69335
|
+
* | Key | What it does |
|
|
69336
|
+
* |---|---|
|
|
69337
|
+
* | Down, Up | Moves the highlight to the next or the previous option, round from the last to the first. With `layout="grid"`, to the option below or above, stopping at the edge. |
|
|
69338
|
+
* | Right, Left | With `layout="grid"`, moves to the next or the previous option, mirrored right to left. In a filter field, moves the caret. |
|
|
69339
|
+
* | Home, End | Moves to the first or the last option. In a filter field, moves the caret. |
|
|
69340
|
+
* | Page Down, Page Up | Moves by as many options as the list shows at once. |
|
|
69341
|
+
* | A letter or a word | Moves to the next option whose words start with what you typed. In a filter field, types it. |
|
|
69342
|
+
* | Enter | Chooses the highlighted option, or follows it where it is a link. |
|
|
69343
|
+
* | Space | Chooses the highlighted option, or with `multiple` toggles it. In a filter field, types a space. |
|
|
69344
|
+
* | Shift with Down or Up | With `multiple`, adds the option the highlight moves to. In a filter field, moves the highlight and leaves the value. |
|
|
69345
|
+
* | Shift with Space | With `multiple`, adds every option from the one last chosen to the highlighted one. In a filter field, types a space. |
|
|
69346
|
+
* | Shift with Home or End | With `multiple`, adds every option from the highlight to that end. In a filter field, hold Control as well. |
|
|
69347
|
+
* | Control or Command with A | With `multiple`, chooses every option, or none where all are chosen. In a filter field, selects the text. |
|
|
69348
|
+
* | Escape | In a filter field, clears the filter. |
|
|
69349
|
+
*
|
|
69350
|
+
* **ARIA.** The `items` part is the `listbox`, named by the label and
|
|
69351
|
+
* described by the hint and the message, with `aria-multiselectable` under
|
|
69352
|
+
* `multiple`, `aria-required`, `aria-invalid`, and `aria-busy` while loading.
|
|
69353
|
+
* Each option is an `option` with `aria-selected`. The list, or its filter
|
|
69354
|
+
* field, points `aria-activedescendant` at the highlighted option; the field
|
|
69355
|
+
* is `aria-autocomplete="list"` and controls the list.
|
|
67911
69356
|
*
|
|
67912
69357
|
* An option with `href` is a link: Enter or a press follows it and selects
|
|
67913
69358
|
* nothing, and moving onto it with the arrows does not follow it.
|
|
@@ -67920,12 +69365,16 @@ export type CustomElementsSolidJs = {
|
|
|
67920
69365
|
*
|
|
67921
69366
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
67922
69367
|
*
|
|
67923
|
-
* - `autocomplete`: What
|
|
69368
|
+
* - `autocomplete`: What a browser's autofill may choose, as a platform token such as
|
|
69369
|
+
* `country` or `cc-exp-month`, as a native `<select>` takes it.
|
|
67924
69370
|
*
|
|
67925
|
-
*
|
|
67926
|
-
*
|
|
67927
|
-
*
|
|
67928
|
-
*
|
|
69371
|
+
* Set, the list draws a hidden native `<select>` with the same options for
|
|
69372
|
+
* the browser to fill, as React Aria's `HiddenSelect` does, and a fill
|
|
69373
|
+
* chooses the option. `off`, the default, draws none.
|
|
69374
|
+
*
|
|
69375
|
+
* **The filter field is never filled.** It narrows the list rather than
|
|
69376
|
+
* collecting a value, so a browser offering it a saved address competes
|
|
69377
|
+
* with the reader for the same keystrokes: it is always `off`.
|
|
67929
69378
|
* - `default-filter`/`defaultFilter`: The filter text the list starts with, when `filter` is not set.
|
|
67930
69379
|
* - `empty-text`/`emptyText`: The text shown when the filter hides every option.
|
|
67931
69380
|
*
|
|
@@ -67953,8 +69402,19 @@ export type CustomElementsSolidJs = {
|
|
|
67953
69402
|
* letter. Enter and the arrow keys filter at once on what is typed, so they
|
|
67954
69403
|
* act on the list the reader expects.
|
|
67955
69404
|
* - `filter-label`/`filterLabel`: Placeholder text for the filter field.
|
|
69405
|
+
* - `layout`: How the options are laid out, which the arrow keys follow: `stack`, one
|
|
69406
|
+
* under another, or `grid`, in rows and columns, as React Aria's `ListBox`
|
|
69407
|
+
* lays out cards or photos. With `grid`, Up and Down move within a column,
|
|
69408
|
+
* and Left and Right along the list, mirrored right to left.
|
|
69409
|
+
*
|
|
69410
|
+
* The columns are the stylesheet's: the styled tier draws them at
|
|
69411
|
+
* `--listbox-column-min-inline-size` or wider, and a headless list lays out
|
|
69412
|
+
* `::part(items)` as it likes, since the keys read where each option is
|
|
69413
|
+
* drawn. A list of `items` stays a stack. Left out, the list is a stack,
|
|
69414
|
+
* and the host carries no attribute for it.
|
|
67956
69415
|
* - `load-error`/`loadError`: What the list says when its options could not be loaded, such as after a
|
|
67957
|
-
* request to a server fails. Empty is no error
|
|
69416
|
+
* request to a server fails. Empty, null or no attribute is no error, so
|
|
69417
|
+
* removing the attribute clears it.
|
|
67958
69418
|
*
|
|
67959
69419
|
* Set, it shows under any options there are, in place of `empty-text` and
|
|
67960
69420
|
* `loading-text`, and a screen reader hears it. Clear it when you ask again.
|
|
@@ -67977,6 +69437,8 @@ export type CustomElementsSolidJs = {
|
|
|
67977
69437
|
* **Two sentences, chosen by `Intl.PluralRules`**, which is Data Table's
|
|
67978
69438
|
* pair: a language with more forms than two picks the one for its `one` and
|
|
67979
69439
|
* writes the rest here.
|
|
69440
|
+
* - `selected-label`/`selectedLabel`: What VoiceOver hears as the highlight reaches a chosen option from the
|
|
69441
|
+
* filter field, on Apple devices. `{name}` is the option's words.
|
|
67980
69442
|
* - `loading`: Whether the rows are still loading.
|
|
67981
69443
|
*
|
|
67982
69444
|
* Reflected, because a stylesheet needs it: the rows that are already there
|
|
@@ -68031,6 +69493,22 @@ export type CustomElementsSolidJs = {
|
|
|
68031
69493
|
* imperatively later, and nothing is hydrating by then.
|
|
68032
69494
|
*
|
|
68033
69495
|
* Here rather than on each control.
|
|
69496
|
+
* - `items`: The options as data, for a list too long to draw whole: each a value,
|
|
69497
|
+
* which is also its words, or a record with a `value`, a `label` and
|
|
69498
|
+
* `disabled`. Set, the list draws only the options in sight, and the ones
|
|
69499
|
+
* you write as children are not read.
|
|
69500
|
+
*
|
|
69501
|
+
* **Every option is still reachable.** The keyboard, the typeahead, the
|
|
69502
|
+
* filter and the value work over the whole set, and the option the keyboard
|
|
69503
|
+
* is on is drawn wherever it is, so a screen reader is told about it. Each
|
|
69504
|
+
* drawn option says its place in the set (`aria-posinset`, `aria-setsize`).
|
|
69505
|
+
* React Aria virtualizes a `ListBox` with its `Virtualizer`; this is core's
|
|
69506
|
+
* `VirtualizeController`.
|
|
69507
|
+
*
|
|
69508
|
+
* **The list needs a height to scroll in**: the styled tier's
|
|
69509
|
+
* `--listbox-max-block-size`, or a `max-block-size` on `::part(items)` in the
|
|
69510
|
+
* headless tier. Import the Option family as well, whose elements are drawn.
|
|
69511
|
+
* A server sends the list empty, and the options are drawn once it hydrates. (property only)
|
|
68034
69512
|
* - `selectedIndex`: Which option is chosen, as an index, or `-1` where none is.
|
|
68035
69513
|
*
|
|
68036
69514
|
* `<select>`'s own pair, and this control is what stands in for one. The
|
|
@@ -68133,10 +69611,8 @@ export type CustomElementsSolidJs = {
|
|
|
68133
69611
|
* read as a dial rather than scanned as a list, which is what Time Picker's
|
|
68134
69612
|
* wheels do with three of these.
|
|
68135
69613
|
*
|
|
68136
|
-
*
|
|
68137
|
-
*
|
|
68138
|
-
* which is not this list and is not guaranteed to be anything: measuring both
|
|
68139
|
-
* rects and moving by the difference needs no such assumption.
|
|
69614
|
+
* Measured by core's `centerInView`, or, for a list of `items`, by the
|
|
69615
|
+
* arithmetic, since the chosen option may not be drawn.
|
|
68140
69616
|
* - `requestFilter(next: string) => boolean`: Requests a new filter, and returns whether the request went through.
|
|
68141
69617
|
* - `requestValue(next: string) => boolean`: Requests a new value, and returns whether the change was applied.
|
|
68142
69618
|
*
|
|
@@ -68589,7 +70065,8 @@ export type CustomElementsSolidJs = {
|
|
|
68589
70065
|
* `name`, or its `label` if it has no name.
|
|
68590
70066
|
*
|
|
68591
70067
|
* All the markers in a map share one tab stop. The arrow keys move between
|
|
68592
|
-
* them in the order they are written.
|
|
70068
|
+
* them in the order they are written. Taking away the marker that has focus
|
|
70069
|
+
* moves focus to the next one, or to the one before where it was the last.
|
|
68593
70070
|
*
|
|
68594
70071
|
* ## Attributes & Properties
|
|
68595
70072
|
*
|
|
@@ -69138,8 +70615,20 @@ export type CustomElementsSolidJs = {
|
|
|
69138
70615
|
*
|
|
69139
70616
|
* - `(default)`: The element your renderer draws the map in, and the map's markers, routes, areas, positions, and points layers.
|
|
69140
70617
|
* - `attribution`: The map credit, which most tile licenses require.
|
|
70618
|
+
* - `face-north-icon`: Replaces the compass needle. It inherits `--map-needle-turn`, so `rotate: var(--map-needle-turn)` keeps it pointing north.
|
|
69141
70619
|
* - `footer`: Content below the map, such as a legend or a scale.
|
|
70620
|
+
* - `fullscreen-icon`: Replaces the glyph inside the fullscreen button.
|
|
69142
70621
|
* - `header`: Content above the map, such as a title or a search field.
|
|
70622
|
+
* - `layers-icon`: Replaces the glyph inside the layers button.
|
|
70623
|
+
* - `pan-down-icon`: Replaces the glyph inside the pan down button.
|
|
70624
|
+
* - `pan-end-icon`: Replaces the glyph inside the button that pans toward the end of a line of text.
|
|
70625
|
+
* - `pan-start-icon`: Replaces the glyph inside the button that pans toward the start of a line of text.
|
|
70626
|
+
* - `pan-up-icon`: Replaces the glyph inside the pan up button.
|
|
70627
|
+
* - `rotate-left-icon`: Replaces the glyph inside the rotate left button.
|
|
70628
|
+
* - `rotate-right-icon`: Replaces the glyph inside the rotate right button.
|
|
70629
|
+
* - `tilt-icon`: Replaces the "3D" inside the 3D button.
|
|
70630
|
+
* - `zoom-in-icon`: Replaces the glyph inside the zoom-in button.
|
|
70631
|
+
* - `zoom-out-icon`: Replaces the glyph inside the zoom-out button.
|
|
69143
70632
|
*
|
|
69144
70633
|
* ## Methods
|
|
69145
70634
|
*
|
|
@@ -69226,8 +70715,11 @@ export type CustomElementsSolidJs = {
|
|
|
69226
70715
|
*
|
|
69227
70716
|
* - `fullscreen`: The map fills the screen.
|
|
69228
70717
|
* - `idle`: The user has been still long enough for the header and footer to fade.
|
|
70718
|
+
* - `layers-open`: The layers menu is open.
|
|
69229
70719
|
* - `ready`: The map has been drawn whole, after `helix-map-ready`.
|
|
70720
|
+
* - `rotated`: The map is turned away from north, by `bearing`.
|
|
69230
70721
|
* - `sharing`: The page keeps the plain wheel and one finger, with `gestures="cooperative"` or while a map with `gestures="activate"` waits to be pressed.
|
|
70722
|
+
* - `tilted`: The map is tilted by `pitch`, so it no longer looks straight down.
|
|
69231
70723
|
* - `using`: A map with `gestures="activate"` has been pressed and has the gestures.
|
|
69232
70724
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
69233
70725
|
*/
|
|
@@ -69787,8 +71279,8 @@ export type CustomElementsSolidJs = {
|
|
|
69787
71279
|
* onto your element after it upgrades causes a hydration mismatch.
|
|
69788
71280
|
*
|
|
69789
71281
|
* Group rows under a heading with `Menu.Section`, which is a `group` named by
|
|
69790
|
-
* its heading. Between runs of rows, a `<helix-divider
|
|
69791
|
-
*
|
|
71282
|
+
* its heading. Between runs of rows, a `<helix-divider>` is a separator a
|
|
71283
|
+
* screen reader announces.
|
|
69792
71284
|
*
|
|
69793
71285
|
* Keys: Enter, Space or Down Arrow on the trigger opens the menu on its first
|
|
69794
71286
|
* row, and Up Arrow on its last. In the menu, Up and Down Arrow move between
|
|
@@ -70542,6 +72034,16 @@ export type CustomElementsSolidJs = {
|
|
|
70542
72034
|
* - `label`: What happened, on the first line.
|
|
70543
72035
|
* - `media`: The leading slot's box.
|
|
70544
72036
|
* - `time`: When it happened, formatted for people to read.
|
|
72037
|
+
* - `time-day`: Format Date's `day`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
72038
|
+
* - `time-day-period`: Format Date's `day-period`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
72039
|
+
* - `time-era`: Format Date's `era`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
72040
|
+
* - `time-hour`: Format Date's `hour`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
72041
|
+
* - `time-minute`: Format Date's `minute`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
72042
|
+
* - `time-month`: Format Date's `month`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
72043
|
+
* - `time-second`: Format Date's `second`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
72044
|
+
* - `time-time-zone-name`: Format Date's `time-zone-name`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
72045
|
+
* - `time-weekday`: Format Date's `weekday`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
72046
|
+
* - `time-year`: Format Date's `year`, forwarded for a time drawn as fields. An elapsed time draws none.
|
|
70545
72047
|
* - `trailing`: The column holding the time and the controls.
|
|
70546
72048
|
*
|
|
70547
72049
|
* ## CSS States
|
|
@@ -70589,11 +72091,22 @@ export type CustomElementsSolidJs = {
|
|
|
70589
72091
|
* nothing more. While the feed is loading the button stays, so focus stays on
|
|
70590
72092
|
* it, and it is `aria-disabled` and sends nothing.
|
|
70591
72093
|
*
|
|
72094
|
+
* **`load-error` says a page could not be fetched**, such as "Could not load
|
|
72095
|
+
* notifications": it shows under the rows there are, in the `error` part, in
|
|
72096
|
+
* place of the empty and loading lines, and a screen reader hears it. Clear it
|
|
72097
|
+
* when you ask again.
|
|
72098
|
+
*
|
|
70592
72099
|
* ## Attributes & Properties
|
|
70593
72100
|
*
|
|
70594
72101
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
70595
72102
|
*
|
|
70596
72103
|
* - `label`: The feed's name, read by screen readers.
|
|
72104
|
+
* - `load-error`/`loadError`: What the feed says when a page of it could not be loaded, such as after a
|
|
72105
|
+
* request to a server fails. Empty, null or no attribute is no error, so
|
|
72106
|
+
* removing the attribute clears it.
|
|
72107
|
+
*
|
|
72108
|
+
* Set, it shows under the rows there are, in place of `empty-text` and
|
|
72109
|
+
* `loading-text`, and a screen reader hears it. Clear it when you ask again.
|
|
70597
72110
|
* - `load-more`/`loadMore`: Whether to draw a button after the list that asks for the next page, by
|
|
70598
72111
|
* sending `helix-load-more`. Take it off once there is nothing more.
|
|
70599
72112
|
* - `load-more-label`/`loadMoreLabel`: The text of the `load-more` button.
|
|
@@ -70682,6 +72195,7 @@ export type CustomElementsSolidJs = {
|
|
|
70682
72195
|
*
|
|
70683
72196
|
* - `(default)`: The notifications.
|
|
70684
72197
|
* - `empty`: Replaces the words of `empty-text` in the `empty` part, such as a picture and a line of your own. The live region still says `empty-text`.
|
|
72198
|
+
* - `error`: Replaces the words of `load-error` in the `error` part, such as a line with a retry button. The live region still says `load-error`.
|
|
70685
72199
|
* - `footer`: Below the list, for a link to everything.
|
|
70686
72200
|
* - `header`: Above the list, for a title and the mark-all control.
|
|
70687
72201
|
* - `loading`: Replaces the words of `loading-text` in the `loading` part, such as a loader. The live region still says `loading-text`.
|
|
@@ -70722,10 +72236,11 @@ export type CustomElementsSolidJs = {
|
|
|
70722
72236
|
* Custom selectors for styling elements within the component.
|
|
70723
72237
|
*
|
|
70724
72238
|
* - `empty`: Shown when there is nothing in the feed.
|
|
72239
|
+
* - `error`: Shown while `load-error` is set, under any rows there are, in place of the empty and loading lines.
|
|
70725
72240
|
* - `footer`: The region below the list.
|
|
70726
72241
|
* - `header`: The region above the list.
|
|
70727
72242
|
* - `list`: The list itself.
|
|
70728
|
-
* - `live`: A copy of the empty and
|
|
72243
|
+
* - `live`: A copy of the empty, loading and error messages, in a live region that screen readers announce when they change. Visually hidden in the styled tier.
|
|
70729
72244
|
* - `loading`: Shown while the feed is loading.
|
|
70730
72245
|
* - `mark-all`: The control that marks everything read.
|
|
70731
72246
|
* - `more`: The button after the list that asks for more, while `load-more` is set. It is `aria-disabled` while the feed is loading.
|
|
@@ -70734,7 +72249,8 @@ export type CustomElementsSolidJs = {
|
|
|
70734
72249
|
*
|
|
70735
72250
|
* These can be used to apply styling when a component is in a given state.
|
|
70736
72251
|
*
|
|
70737
|
-
* - `empty`: While the feed holds no notification and is not loading. Never on the server, which cannot count the rows.
|
|
72252
|
+
* - `empty`: While the feed holds no notification and is not loading, and `load-error` is not set. Never on the server, which cannot count the rows.
|
|
72253
|
+
* - `error`: While `load-error` is set.
|
|
70738
72254
|
* - `loading`: While `loading` is set.
|
|
70739
72255
|
* - `media`: While a notification in the list holds something in its media slot, so every row keeps that column.
|
|
70740
72256
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
@@ -72148,6 +73664,7 @@ export type CustomElementsSolidJs = {
|
|
|
72148
73664
|
* - `control-listbox-loading`: The text shown while the options load.
|
|
72149
73665
|
* - `control-listbox-search`: The region that holds the filter field.
|
|
72150
73666
|
* - `control-listbox-search-field`: The filter field.
|
|
73667
|
+
* - `control-live`: The select's `live` part, the region a screen reader hears a choice made on the closed trigger from.
|
|
72151
73668
|
* - `control-surface`: The floating panel.
|
|
72152
73669
|
* - `control-trigger`: The closed control, which shows the chosen size.
|
|
72153
73670
|
* - `control-value`: The chosen size inside the trigger.
|
|
@@ -72867,7 +74384,8 @@ export type CustomElementsSolidJs = {
|
|
|
72867
74384
|
* `correction` sets how much of the code can be lost. At `H` a code can lose
|
|
72868
74385
|
* thirty percent and still scan, so a mark in the center slot is safe. At `L`
|
|
72869
74386
|
* the same mark makes the code unscannable. The default is `M`, and `H` when the
|
|
72870
|
-
* `logo` slot is filled.
|
|
74387
|
+
* `logo` slot is filled. A code that holds a logo at a `correction` below `H`
|
|
74388
|
+
* warns once with the kind `unscannable-logo`.
|
|
72871
74389
|
*
|
|
72872
74390
|
* A higher level holds fewer characters, so a value that fits at `M` can be too
|
|
72873
74391
|
* long once a logo raises the level to `H`. A value too long for the level
|
|
@@ -72877,7 +74395,8 @@ export type CustomElementsSolidJs = {
|
|
|
72877
74395
|
* `toSvg()`, `toPng()` and `download()` give the drawn code as a file of its
|
|
72878
74396
|
* own, in the colors it is drawn in, with a slotted image or SVG logo where
|
|
72879
74397
|
* it sits, for a page that offers it to save or print, as Zag's download
|
|
72880
|
-
* trigger does.
|
|
74398
|
+
* trigger does. `download()` saves an SVG for a name ending in `.svg`, and a
|
|
74399
|
+
* PNG for any other.
|
|
72881
74400
|
*
|
|
72882
74401
|
* ## Attributes & Properties
|
|
72883
74402
|
*
|
|
@@ -72963,7 +74482,8 @@ export type CustomElementsSolidJs = {
|
|
|
72963
74482
|
* - `toPng(size = 512) => Promise<Blob | null>`: The code as a PNG, `size` pixels square, drawn from `toSvg()`.
|
|
72964
74483
|
*
|
|
72965
74484
|
* `null` where no code is drawn.
|
|
72966
|
-
* - `download(filename = 'qr-code.png', size = 512) => Promise<void>`: Saves the code as a
|
|
74485
|
+
* - `download(filename = 'qr-code.png', size = 512) => Promise<void>`: Saves the code as a file named `filename`, `size` pixels square: an SVG
|
|
74486
|
+
* where the name ends in `.svg`, and a PNG otherwise.
|
|
72967
74487
|
*
|
|
72968
74488
|
* Call it from a press, since a browser lets a page start a download only
|
|
72969
74489
|
* in answer to one. Does nothing where no code is drawn.
|
|
@@ -73910,12 +75430,6 @@ export type CustomElementsSolidJs = {
|
|
|
73910
75430
|
* The across gets no dot at all rather than a shifted one. It is an axis and
|
|
73911
75431
|
* not a series: it has a scale under the plot with its name at the end of it,
|
|
73912
75432
|
* which is where a reader is told what it is.
|
|
73913
|
-
* - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
|
|
73914
|
-
* by its column's heading. The keys and the readout pass over one a
|
|
73915
|
-
* legend hid.
|
|
73916
|
-
*
|
|
73917
|
-
* A column's heading is the cell's name in every row, so the first row
|
|
73918
|
-
* answers for the column.
|
|
73919
75433
|
* - `attributeChangedCallback(name: string, old: string | null, value: string | null) => void`: Called by the browser when an observed attribute changes. A new
|
|
73920
75434
|
* `aria-label` asks for an update, because it names the plot.
|
|
73921
75435
|
* - `showsSeries(name: string) => boolean`: Whether the series of this name is drawn, which it is unless a legend
|
|
@@ -73925,6 +75439,15 @@ export type CustomElementsSolidJs = {
|
|
|
73925
75439
|
* thing the two share: see `SourceController.hide`. A series keeps its
|
|
73926
75440
|
* palette slot while it is hidden, so the colors of the others do not move.
|
|
73927
75441
|
* For a ring the names are its rows, the slices being the rows.
|
|
75442
|
+
* - `showsColumn(cell: number) => boolean`: Whether the series read from the cell at this place in a row is drawn,
|
|
75443
|
+
* by its column's heading. The keys and the readout pass over one a
|
|
75444
|
+
* legend hid.
|
|
75445
|
+
*
|
|
75446
|
+
* A column's heading is the cell's name in every row, so the first row
|
|
75447
|
+
* answers for the column.
|
|
75448
|
+
* - `columnName(cell: number) => string`: The heading of the column at this place in a row: a cell's name is its
|
|
75449
|
+
* column's heading, read from the first row that has a cell there, so a
|
|
75450
|
+
* short first row does not lose the heading. `''` where no row has one.
|
|
73928
75451
|
*
|
|
73929
75452
|
* ## CSS Custom Properties
|
|
73930
75453
|
*
|
|
@@ -74147,18 +75670,48 @@ export type CustomElementsSolidJs = {
|
|
|
74147
75670
|
* Set `valueContent` to draw the trigger's content from the chosen options,
|
|
74148
75671
|
* and several chosen options are written as a list in the reader's language.
|
|
74149
75672
|
*
|
|
74150
|
-
*
|
|
74151
|
-
*
|
|
74152
|
-
*
|
|
74153
|
-
*
|
|
74154
|
-
*
|
|
74155
|
-
*
|
|
74156
|
-
*
|
|
75673
|
+
* **Keyboard.** On the closed trigger:
|
|
75674
|
+
*
|
|
75675
|
+
* | Key | What it does |
|
|
75676
|
+
* |---|---|
|
|
75677
|
+
* | Down, Enter, Space | Opens the list on the chosen option, or the first. |
|
|
75678
|
+
* | Up | Opens the list on the chosen option, or the last. |
|
|
75679
|
+
* | Home, End | Opens the list on the first or the last option. |
|
|
75680
|
+
* | Left, Right | Chooses the option before or after the chosen one without opening, as React Aria's Select does, in either direction of text. |
|
|
75681
|
+
* | 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. |
|
|
75682
|
+
*
|
|
75683
|
+
* In the open list, which is a `Listbox`:
|
|
75684
|
+
*
|
|
75685
|
+
* | Key | What it does |
|
|
75686
|
+
* |---|---|
|
|
75687
|
+
* | Down, Up, Home, End, Page Down, Page Up | Moves the highlight. |
|
|
75688
|
+
* | A letter or a word | Moves the highlight to the next option whose words start with what you typed. |
|
|
75689
|
+
* | Enter, Space | Chooses the highlighted option and closes the list. With `multiple`, toggles it and leaves the list open. |
|
|
75690
|
+
* | Escape | Closes the list and puts focus back on the trigger. |
|
|
75691
|
+
* | Tab | Closes the list and moves on. |
|
|
75692
|
+
*
|
|
75693
|
+
* A choice made on the closed trigger is said aloud on Apple devices, where
|
|
75694
|
+
* VoiceOver does not read the trigger's new name.
|
|
75695
|
+
*
|
|
75696
|
+
* **ARIA.** The trigger is a `button` with `aria-haspopup="listbox"` and
|
|
75697
|
+
* `aria-expanded`, named by the label and then the chosen words, as a native
|
|
75698
|
+
* `<select>` is. The list is the listbox `Listbox` describes, named by the
|
|
75699
|
+
* label, or by `list-label` where there is none.
|
|
75700
|
+
*
|
|
75701
|
+
* Set `autocomplete` to let a browser's autofill choose, as a native `<select>`
|
|
75702
|
+
* with the same attribute would.
|
|
74157
75703
|
*
|
|
74158
75704
|
* ## Attributes & Properties
|
|
74159
75705
|
*
|
|
74160
75706
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
74161
75707
|
*
|
|
75708
|
+
* - `autocomplete`: What a browser's autofill may fill in, as a platform token such as
|
|
75709
|
+
* `country` or `cc-exp-month`, as on a native `<select>`.
|
|
75710
|
+
*
|
|
75711
|
+
* Set, the select keeps a hidden native `<select>` with the same options for
|
|
75712
|
+
* the browser to fill, as React Aria's `HiddenSelect` does, and takes the
|
|
75713
|
+
* option the browser picks, by its value or its words, as the value. Empty
|
|
75714
|
+
* draws no hidden select, and a browser fills nothing.
|
|
74162
75715
|
* - `empty-text`/`emptyText`: The text shown when no options match the filter.
|
|
74163
75716
|
* - `filterable`: Whether the list can be narrowed by typing.
|
|
74164
75717
|
*
|
|
@@ -74425,6 +75978,7 @@ export type CustomElementsSolidJs = {
|
|
|
74425
75978
|
* - `listbox-loading`: The text shown while the options load.
|
|
74426
75979
|
* - `listbox-search`: The region that holds the filter field.
|
|
74427
75980
|
* - `listbox-search-field`: The filter field.
|
|
75981
|
+
* - `live`: The region a screen reader announces a choice made on the closed trigger from, drawn once there is one to say. Visually hidden in the styled tier.
|
|
74428
75982
|
* - `surface`: The floating panel.
|
|
74429
75983
|
* - `trigger`: The closed control, which shows the chosen value.
|
|
74430
75984
|
* - `value`: The chosen option's text inside the trigger.
|
|
@@ -75129,6 +76683,68 @@ export type CustomElementsSolidJs = {
|
|
|
75129
76683
|
BaseEvents<HelixHeadlessSparkline>
|
|
75130
76684
|
>;
|
|
75131
76685
|
|
|
76686
|
+
/**
|
|
76687
|
+
* A `group` of the dial's menu, named by its label, as React Aria's menu
|
|
76688
|
+
* sections and Menu's groups are: a reader hears the name on entering the set,
|
|
76689
|
+
* and the arrow keys walk through every group's actions in order, from the
|
|
76690
|
+
* last action of one group to the first of the next.
|
|
76691
|
+
*
|
|
76692
|
+
* Put actions straight into the group, and the group straight into the dial.
|
|
76693
|
+
* Anything else slotted here is drawn and is not an action.
|
|
76694
|
+
*
|
|
76695
|
+
* ## Attributes & Properties
|
|
76696
|
+
*
|
|
76697
|
+
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
76698
|
+
*
|
|
76699
|
+
* - `label`: The group's name, drawn above its actions and read by screen readers.
|
|
76700
|
+
* - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
|
|
76701
|
+
*
|
|
76702
|
+
* **Named `whenSettled` because `settled` is taken four times over**, by
|
|
76703
|
+
* Image, Splitter and both color controls, none of them about transitions. A
|
|
76704
|
+
* base class takes the name every subclass then cannot use.
|
|
76705
|
+
*
|
|
76706
|
+
* **The state it reports cannot be watched, which is why this exists.** A
|
|
76707
|
+
* custom state is deliberately not in the DOM, so there is no
|
|
76708
|
+
* `MutationObserver` equivalent for `ElementInternals.states`. Await this
|
|
76709
|
+
* instead.
|
|
76710
|
+
*
|
|
76711
|
+
* Separate from `updateComplete`, which resolves in the microtask checkpoint
|
|
76712
|
+
* the suppression is still active in. That is the distinction `readyToMove`
|
|
76713
|
+
* in `@fusion.dev/helix-testing` is written around.
|
|
76714
|
+
*
|
|
76715
|
+
* It never resolves where `requestAnimationFrame` never fires, which is a
|
|
76716
|
+
* server, a hidden tab, and happy-dom. Callers that must not hang there race
|
|
76717
|
+
* it against a timeout, as the happy-dom harness's `readyToMove` does. The
|
|
76718
|
+
* browser harness's awaits it alone: a browser always runs the frame, and a
|
|
76719
|
+
* timer beside it was a bet on how long one takes, which a busy run lost. (property only) (readonly)
|
|
76720
|
+
*
|
|
76721
|
+
* ## Slots
|
|
76722
|
+
*
|
|
76723
|
+
* Areas where markup can be added to the component.
|
|
76724
|
+
*
|
|
76725
|
+
* - `(default)`: The group's actions.
|
|
76726
|
+
* - `label`: The group's name, for content richer than the `label` text.
|
|
76727
|
+
*
|
|
76728
|
+
* ## CSS Parts
|
|
76729
|
+
*
|
|
76730
|
+
* Custom selectors for styling elements within the component.
|
|
76731
|
+
*
|
|
76732
|
+
* - `group`: The set, which carries the `group` role.
|
|
76733
|
+
* - `label`: The group's name, drawn above its actions while there is one.
|
|
76734
|
+
*
|
|
76735
|
+
* ## CSS States
|
|
76736
|
+
*
|
|
76737
|
+
* These can be used to apply styling when a component is in a given state.
|
|
76738
|
+
*
|
|
76739
|
+
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
76740
|
+
*/
|
|
76741
|
+
"helix-headless-speed-dial-group": Partial<
|
|
76742
|
+
HelixHeadlessSpeedDialGroupProps &
|
|
76743
|
+
HelixHeadlessSpeedDialGroupSolidJsProps &
|
|
76744
|
+
BaseProps<HelixHeadlessSpeedDialGroup> &
|
|
76745
|
+
BaseEvents<HelixHeadlessSpeedDialGroup>
|
|
76746
|
+
>;
|
|
76747
|
+
|
|
75132
76748
|
/**
|
|
75133
76749
|
* Each item is a command, so it has the `menuitem` role. A megamenu holds
|
|
75134
76750
|
* destinations, so it is a disclosure of links. A speed dial holds actions,
|
|
@@ -75138,11 +76754,21 @@ export type CustomElementsSolidJs = {
|
|
|
75138
76754
|
* `title` on an icon shows only on hover. Visible text is read, searched, and
|
|
75139
76755
|
* translated like other text.
|
|
75140
76756
|
*
|
|
76757
|
+
* `shortcut` gives the action's keyboard shortcut as a chord, such as `mod+s`,
|
|
76758
|
+
* the grammar Menu's rows use. The action carries it as `aria-keyshortcuts`
|
|
76759
|
+
* and draws it after the name in the platform's glyphs or words, `⌘S` on an
|
|
76760
|
+
* Apple keyboard and `Ctrl+S` elsewhere, as Menu draws its rows' shortcuts.
|
|
76761
|
+
* Put a `Kbd` in the `shortcut` slot to draw it as keys instead; the dial
|
|
76762
|
+
* imports no `Kbd` of its own. Showing a shortcut does not bind it.
|
|
76763
|
+
*
|
|
75141
76764
|
* ## Attributes & Properties
|
|
75142
76765
|
*
|
|
75143
76766
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
75144
76767
|
*
|
|
75145
76768
|
* - `disabled`: Whether the action is disabled, so it cannot be chosen.
|
|
76769
|
+
* - `shortcut`: The action's keyboard shortcut as a chord, such as `mod+s`, carried as
|
|
76770
|
+
* `aria-keyshortcuts` and drawn after the name. `mod` is Command on an Apple
|
|
76771
|
+
* keyboard and Control elsewhere. Showing a shortcut does not bind it.
|
|
75146
76772
|
* - `value`: The action's value, sent in `helix-select` when the action is chosen.
|
|
75147
76773
|
* - `active`: Whether the action has focus, which makes it the action the keyboard is on.
|
|
75148
76774
|
*
|
|
@@ -75183,6 +76809,7 @@ export type CustomElementsSolidJs = {
|
|
|
75183
76809
|
*
|
|
75184
76810
|
* - `(default)`: The action's name.
|
|
75185
76811
|
* - `icon`: The action's icon, the main way the action is recognized.
|
|
76812
|
+
* - `shortcut`: The action's keyboard shortcut, drawn after its name, such as a `Kbd`. It replaces the text drawn for `shortcut`, and is hidden from the name, which `aria-keyshortcuts` carries instead.
|
|
75186
76813
|
*
|
|
75187
76814
|
* ## Methods
|
|
75188
76815
|
*
|
|
@@ -75200,6 +76827,7 @@ export type CustomElementsSolidJs = {
|
|
|
75200
76827
|
* - `icon`: The box that holds the icon.
|
|
75201
76828
|
* - `item`: The control for the action.
|
|
75202
76829
|
* - `label`: The action's name, beside the icon.
|
|
76830
|
+
* - `shortcut`: The box after the name that holds the shortcut, shown while `shortcut` is set or something is in the `shortcut` slot.
|
|
75203
76831
|
*
|
|
75204
76832
|
* ## CSS States
|
|
75205
76833
|
*
|
|
@@ -75235,12 +76863,47 @@ export type CustomElementsSolidJs = {
|
|
|
75235
76863
|
* action whose name starts with it. The actions are one tab stop, and Tab
|
|
75236
76864
|
* closes the dial and moves on.
|
|
75237
76865
|
*
|
|
76866
|
+
* **Keyboard.** On the trigger, Enter, Space or a press opens the dial on its
|
|
76867
|
+
* first action. With the dial open:
|
|
76868
|
+
*
|
|
76869
|
+
* | Key | What it does |
|
|
76870
|
+
* |---|---|
|
|
76871
|
+
* | Down, Right | Moves to the next action, from the last back to the first. |
|
|
76872
|
+
* | Up, Left | Moves to the action before, from the first round to the last. |
|
|
76873
|
+
* | Home, End | Moves to the first or the last action. |
|
|
76874
|
+
* | A letter | Moves to the next action whose name starts with it. |
|
|
76875
|
+
* | Enter, Space | Chooses the action, and the dial closes. |
|
|
76876
|
+
* | Escape | Closes the dial and puts focus back on the trigger. |
|
|
76877
|
+
* | Tab | Closes the dial and moves on. |
|
|
76878
|
+
*
|
|
76879
|
+
* **Groups.** Put actions in `Speed Dial.Group`, named by its `label`, to set
|
|
76880
|
+
* them apart as Menu's sections do: each is a `group` of the menu, and the
|
|
76881
|
+
* arrow keys walk through every group's actions in order.
|
|
76882
|
+
*
|
|
76883
|
+
* **A trigger with its own action.** With `open-on="long-press"`, a press on
|
|
76884
|
+
* the trigger is the trigger's own, such as composing a message, and holding it
|
|
76885
|
+
* for half a second opens the dial, as React Aria's menu trigger does with
|
|
76886
|
+
* `trigger="longPress"`. Alt+Down or Alt+Up opens it from the keyboard, and
|
|
76887
|
+
* the trigger says so in its description, `long-press-label`, the drawn one
|
|
76888
|
+
* and a slotted one alike. A press that has opened the dial does not also do
|
|
76889
|
+
* the trigger's action.
|
|
76890
|
+
*
|
|
75238
76891
|
* ## Attributes & Properties
|
|
75239
76892
|
*
|
|
75240
76893
|
* Component attributes and properties that can be applied to the element or by using JavaScript.
|
|
75241
76894
|
*
|
|
75242
76895
|
* - `label`: Accessible name for the trigger and the set of actions it opens.
|
|
76896
|
+
* - `long-press-label`/`longPressLabel`: The description the trigger gives under `open-on="long-press"`, saying how
|
|
76897
|
+
* its actions are reached.
|
|
76898
|
+
*
|
|
76899
|
+
* A slotted trigger is described by the dial, which carries the words as
|
|
76900
|
+
* its own label for that: a Helix button's inner control at once, and a
|
|
76901
|
+
* plain element of yours once a reader reaches it, after hydration, unless
|
|
76902
|
+
* you described or labeled it yourself.
|
|
75243
76903
|
* - `offset`: Space between the trigger and the actions, in pixels.
|
|
76904
|
+
* - `open-on`/`openOn`: What opens the dial. `click` opens it on a press of the trigger. Under
|
|
76905
|
+
* `long-press`, a press is the trigger's own action, and the dial opens on a
|
|
76906
|
+
* press held for half a second, or on Alt+Down or Alt+Up.
|
|
75244
76907
|
* - `placement`: The direction the actions open in. They move to another side if that side
|
|
75245
76908
|
* does not fit.
|
|
75246
76909
|
*
|
|
@@ -75344,8 +77007,9 @@ export type CustomElementsSolidJs = {
|
|
|
75344
77007
|
* added at `firstUpdated` and is not in the server markup. Before it appears,
|
|
75345
77008
|
* both dividers work on their own.
|
|
75346
77009
|
*
|
|
75347
|
-
* The divider has `role="separator"` and `aria-valuenow`,
|
|
75348
|
-
*
|
|
77010
|
+
* The divider has `role="separator"` and `aria-valuenow`, with
|
|
77011
|
+
* `aria-valuetext` saying the start pane's share as a percentage in the
|
|
77012
|
+
* reader's locale, and `aria-controls` names the start pane. Drag it with a pointer or move it with the arrow keys,
|
|
75349
77013
|
* press `Home` or `End` to move it to its bounds, and press `Enter` to collapse
|
|
75350
77014
|
* the start pane and open it again. A drag in progress is tracked as a state, so both dividers a
|
|
75351
77015
|
* corner moves stay lit for as long as they move.
|
|
@@ -75482,13 +77146,14 @@ export type CustomElementsSolidJs = {
|
|
|
75482
77146
|
* - `helix-before-resize`: Fired before the divider settles, and only when the gesture moved it. A press that moved nothing, a drag that came back, an arrow key with no room left, and a corner that moved only the other divider do not fire it. Cancelable: canceling it leaves the position to you and keeps the rest of the gesture, so a collapse the gesture reached still fires `helix-before-collapse`, which you can also cancel. A dragged divider stays where it was dropped until you set your own `position`.
|
|
75483
77147
|
* - `helix-collapse`: Fired after a pane shuts or reopens, with the side that is shut, or empty where both are open.
|
|
75484
77148
|
* - `helix-resized`: Fired after the divider settles somewhere new, with the new position.
|
|
75485
|
-
* - `input`: Fired each time
|
|
77149
|
+
* - `input`: Fired each time the divider moves, as a range input does: on each step of a drag, and before `helix-resized` for a key, a double click or a corner. Read `position` for where it is now.
|
|
75486
77150
|
*
|
|
75487
77151
|
* ## Slots
|
|
75488
77152
|
*
|
|
75489
77153
|
* Areas where markup can be added to the component.
|
|
75490
77154
|
*
|
|
75491
77155
|
* - `end`: The pane after the divider.
|
|
77156
|
+
* - `handle`: A mark drawn at the middle of the divider, such as a grip icon. It takes no focus and no pointer of its own: a press on it is a press on the divider.
|
|
75492
77157
|
* - `start`: The pane before the divider.
|
|
75493
77158
|
*
|
|
75494
77159
|
* ## Methods
|
|
@@ -75524,7 +77189,9 @@ export type CustomElementsSolidJs = {
|
|
|
75524
77189
|
*
|
|
75525
77190
|
* These can be used to apply styling when a component is in a given state.
|
|
75526
77191
|
*
|
|
77192
|
+
* - `collapsed`: While a pane is shut. `data-collapsed` on the host says which.
|
|
75527
77193
|
* - `dragging`: While the pointer or a corner holds the divider.
|
|
77194
|
+
* - `vertical`: While the panes are one above the other, whether `orientation` says so or `auto` turned them.
|
|
75528
77195
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
75529
77196
|
*/
|
|
75530
77197
|
"helix-headless-splitter": Partial<
|
|
@@ -76191,7 +77858,9 @@ export type CustomElementsSolidJs = {
|
|
|
76191
77858
|
* table with no `TableColumn` heads its columns with.
|
|
76192
77859
|
*
|
|
76193
77860
|
* The role is on the host so the cell stays a child of its row in the flat
|
|
76194
|
-
* tree, which keeps the table structure intact.
|
|
77861
|
+
* tree, which keeps the table structure intact. In a `grid` table a value is
|
|
77862
|
+
* a `gridcell`, and the table gives the cell a `tabindex` so focus can rest on
|
|
77863
|
+
* it.
|
|
76195
77864
|
*
|
|
76196
77865
|
* ## Attributes & Properties
|
|
76197
77866
|
*
|
|
@@ -76529,9 +78198,28 @@ export type CustomElementsSolidJs = {
|
|
|
76529
78198
|
* 4. A chosen row takes `:state(selected)`, and a screen reader hears
|
|
76530
78199
|
* `selected-label` ("2 selected") from a polite region.
|
|
76531
78200
|
*
|
|
76532
|
-
* Tab reaches each checkbox, and Space ticks it.
|
|
76533
|
-
*
|
|
76534
|
-
*
|
|
78201
|
+
* Tab reaches each checkbox, and Space ticks it. To act on one row, put a
|
|
78202
|
+
* link or a button in a cell, or give the row an `href`.
|
|
78203
|
+
*
|
|
78204
|
+
* **A grid.** `grid` makes the table one tab stop that the arrow keys move
|
|
78205
|
+
* through cell by cell, the headings included, as React Aria's table is. The
|
|
78206
|
+
* table is then a `grid` and each value a `gridcell`, and the table gives
|
|
78207
|
+
* every cell a `tabindex` so focus can rest on it: set `grid` only where the
|
|
78208
|
+
* cells may carry one. For typeahead and range selection, use `DataTable`.
|
|
78209
|
+
*
|
|
78210
|
+
* | Key | What it does |
|
|
78211
|
+
* |---|---|
|
|
78212
|
+
* | Right, Left | Moves one cell along the row. Left moves on, on a right-to-left page. |
|
|
78213
|
+
* | Down, Up | Moves one row, the headings included. |
|
|
78214
|
+
* | Home, End | Moves to the first or the last cell of the row. |
|
|
78215
|
+
* | Control with Home or End | Moves to the first or the last cell of the table. |
|
|
78216
|
+
* | Page Down, Page Up | Moves by the rows that fit in view. |
|
|
78217
|
+
* | Enter, F2 | Moves into the cell's links and controls. Escape or F2 moves back to the cell, and Tab moves between the controls of one cell. |
|
|
78218
|
+
* | Enter on a cell of a row with `href` | Follows the row's link. |
|
|
78219
|
+
* | Enter, Space on a sortable heading | Sorts by the column. |
|
|
78220
|
+
* | Space on a row, Enter or Space on its checkbox cell | Selects the row, in a `selectable` table. |
|
|
78221
|
+
* | Control or Command with A | Selects every row, in a `selectable` table. |
|
|
78222
|
+
* | Tab | Leaves the table. |
|
|
76535
78223
|
*
|
|
76536
78224
|
* The CSS custom properties listed for this component are written by it and
|
|
76537
78225
|
* read by the stylesheet that draws it. Do not set them. Each holds a number
|
|
@@ -76575,6 +78263,13 @@ export type CustomElementsSolidJs = {
|
|
|
76575
78263
|
* is set.
|
|
76576
78264
|
* - `default-sort`/`defaultSort`: The starting sort order, used until `sort` is set.
|
|
76577
78265
|
* - `descending-label`/`descendingLabel`: The word for a descending sort, in `sorted-label`.
|
|
78266
|
+
* - `grid`: Makes the table a grid: one tab stop, and the arrow keys, Home, End and the
|
|
78267
|
+
* Page keys move focus between its cells, the headings included. Enter moves
|
|
78268
|
+
* into a cell's controls, and Tab leaves the table.
|
|
78269
|
+
*
|
|
78270
|
+
* Off by default, where the table is a static `table` and Tab reaches each
|
|
78271
|
+
* link and control in it. On, the table writes a `tabindex` onto each of its
|
|
78272
|
+
* cells, which is the one way a cell of your markup can take focus.
|
|
76578
78273
|
* - `label`: Accessible name for the table.
|
|
76579
78274
|
*
|
|
76580
78275
|
* An `aria-label` or `aria-labelledby` on the host names the table too, and
|
|
@@ -76676,6 +78371,8 @@ export type CustomElementsSolidJs = {
|
|
|
76676
78371
|
* - `checkbox-mark-dash`: Added to `checkbox-mark` while it draws the dash, which it keeps until its box is checked.
|
|
76677
78372
|
* - `checkbox-mark-indeterminate`: Added to `checkbox-mark` while only some rows are selected.
|
|
76678
78373
|
* - `empty`: The text shown when there are no rows.
|
|
78374
|
+
* - `grid-end`: An empty box after the rows, in a `grid` table. Tab focuses it on its way out of the table, so the key leaves from the end.
|
|
78375
|
+
* - `grid-start`: An empty box before the rows, in a `grid` table. Shift with Tab focuses it on its way out of the table.
|
|
76679
78376
|
* - `head`: The row that holds the column headings. It has `display: contents`, so it takes no space of its own.
|
|
76680
78377
|
* - `live`: A live region that repeats the empty and loading text, so screen readers announce it when it changes. Visually hidden in the styled tier.
|
|
76681
78378
|
* - `loading`: The text shown while the rows are loading.
|
|
@@ -76709,7 +78406,8 @@ export type CustomElementsSolidJs = {
|
|
|
76709
78406
|
* of the row's own, and Control, Command or Shift open it the way they open a
|
|
76710
78407
|
* link. A drag that selects text follows nothing. A row in a table is not a
|
|
76711
78408
|
* stop of its own, so put the same link in a cell, usually the row header,
|
|
76712
|
-
* which is what the keyboard and a screen reader reach.
|
|
78409
|
+
* which is what the keyboard and a screen reader reach. In a `grid` table,
|
|
78410
|
+
* Enter on any cell of the row follows it as well.
|
|
76713
78411
|
*
|
|
76714
78412
|
* ## Attributes & Properties
|
|
76715
78413
|
*
|
|
@@ -78362,6 +80060,7 @@ export type CustomElementsSolidJs = {
|
|
|
78362
80060
|
*
|
|
78363
80061
|
* These can be used to apply styling when a component is in a given state.
|
|
78364
80062
|
*
|
|
80063
|
+
* - `blank`: While no time is chosen.
|
|
78365
80064
|
* - `invalid`: While `invalid` is set or `feedback` says what is wrong.
|
|
78366
80065
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
78367
80066
|
*/
|
|
@@ -78588,7 +80287,8 @@ export type CustomElementsSolidJs = {
|
|
|
78588
80287
|
*
|
|
78589
80288
|
* **Each item runs its own timer.** A timer held by the region would restart
|
|
78590
80289
|
* with each new message, and the last of three messages would stay for nine
|
|
78591
|
-
* seconds.
|
|
80290
|
+
* seconds. It pauses while the pointer or focus is on the message, and while
|
|
80291
|
+
* the page is hidden, so a message is not spent in a background tab.
|
|
78592
80292
|
*
|
|
78593
80293
|
* **Each message is an `alertdialog` named by its words**, which is how a reader
|
|
78594
80294
|
* who moves into the stack hears which message they are on. Give it a
|
|
@@ -79266,6 +80966,10 @@ export type CustomElementsSolidJs = {
|
|
|
79266
80966
|
* focus counts as a control, including your own elements. A child that takes no
|
|
79267
80967
|
* focus, such as a divider, is skipped. A menu is reached at its trigger.
|
|
79268
80968
|
*
|
|
80969
|
+
* A Divider in the toolbar is a separator across the toolbar's axis, as React
|
|
80970
|
+
* Aria's is: vertical in a horizontal toolbar and horizontal in a vertical
|
|
80971
|
+
* one, without an `orientation` of its own.
|
|
80972
|
+
*
|
|
79269
80973
|
* Controls inside a plain wrapper, such as a `Button Group`, are each a stop
|
|
79270
80974
|
* of the toolbar's own, as React Aria's toolbar flattens a group: the arrows
|
|
79271
80975
|
* walk through the group's buttons and on past it, and the group takes no tab
|
|
@@ -79274,6 +80978,28 @@ export type CustomElementsSolidJs = {
|
|
|
79274
80978
|
* The arrows wrap from the last control to the first. Set `stop-at-ends` to
|
|
79275
80979
|
* keep them at the ends, as Radix's `loop` set to false does.
|
|
79276
80980
|
*
|
|
80981
|
+
* **Keyboard.** Tab enters the toolbar on the control that last had focus, the
|
|
80982
|
+
* first control at the start, and the next Tab leaves it.
|
|
80983
|
+
*
|
|
80984
|
+
* | Key | What it does |
|
|
80985
|
+
* |---|---|
|
|
80986
|
+
* | Right | Moves to the next control in a horizontal toolbar, from the last back to the first. |
|
|
80987
|
+
* | Left | Moves to the control before in a horizontal toolbar, from the first round to the last. |
|
|
80988
|
+
* | Down, Up | The same in a vertical toolbar. |
|
|
80989
|
+
* | Home, End | Moves to the first or the last control. |
|
|
80990
|
+
*
|
|
80991
|
+
* Left and Right swap on a right-to-left page, where the first control is on
|
|
80992
|
+
* the right. The arrows across the toolbar's axis are left to the control that
|
|
80993
|
+
* has focus, so a radio-style toggle group or a select answers them itself.
|
|
80994
|
+
* The toolbar is `role="toolbar"` with `aria-orientation`, named by `label`.
|
|
80995
|
+
*
|
|
80996
|
+
* The stop moves through a control's own `focusable` property where it has
|
|
80997
|
+
* one, as Button, Select and Toggle Group do. A control without one has
|
|
80998
|
+
* `tabindex` written on the element that takes focus: a native element
|
|
80999
|
+
* itself, or the control inside a custom element's open shadow root, so the
|
|
81000
|
+
* host keeps the markup you rendered. Only a custom element whose shadow root
|
|
81001
|
+
* is closed takes it on the host.
|
|
81002
|
+
*
|
|
79277
81003
|
* A toggle group of pressed buttons, `selection-mode="multiple"`, is walked
|
|
79278
81004
|
* through the same way, each toggle a stop on the toolbar's axis, as React
|
|
79279
81005
|
* Aria's toolbar walks its toggle buttons. Another nested composite, such as a
|
|
@@ -79337,6 +81063,9 @@ export type CustomElementsSolidJs = {
|
|
|
79337
81063
|
*
|
|
79338
81064
|
* These can be used to apply styling when a component is in a given state.
|
|
79339
81065
|
*
|
|
81066
|
+
* - `horizontal`: The controls run along a row, which is the default.
|
|
81067
|
+
* - `nested`: The toolbar is a group inside another toolbar, which owns the keys and the tab stop.
|
|
81068
|
+
* - `vertical`: The controls run down a column, under `orientation="vertical"`.
|
|
79340
81069
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
79341
81070
|
*/
|
|
79342
81071
|
"helix-headless-toolbar": Partial<
|
|
@@ -81143,6 +82872,14 @@ export type CustomElementsSolidJs = {
|
|
|
81143
82872
|
*
|
|
81144
82873
|
* These can be used to apply styling when a component is in a given state.
|
|
81145
82874
|
*
|
|
82875
|
+
* - `ended`: Playback reached the end, until it starts again or the source changes.
|
|
82876
|
+
* - `error`: The source could not be played, and `failure` shows.
|
|
82877
|
+
* - `fullscreen`: The player fills the screen.
|
|
82878
|
+
* - `idle`: The video plays and the user has been still for `idle-delay`, so the bar hides.
|
|
82879
|
+
* - `muted`: The sound is off.
|
|
82880
|
+
* - `paused`: Playback is paused, which is where every player starts.
|
|
82881
|
+
* - `playing`: Playback runs, waiting for data included.
|
|
82882
|
+
* - `waiting`: Playback stopped to wait for more data, and `loading` shows.
|
|
81146
82883
|
* - `settled`: Set one frame after the first render. Transitions wait for it, so an element does not animate its own arrival.
|
|
81147
82884
|
*/
|
|
81148
82885
|
"helix-headless-video": Partial<
|
|
@@ -81368,6 +83105,8 @@ export type CustomCssProperties = {
|
|
|
81368
83105
|
"--bar-chart-secondary"?: (string) | undefined;
|
|
81369
83106
|
/** The gradient for a bar, named per bar so the styled tier can use it as the `fill`. It is always drawn, and used only when `wash="gradient"` is set. */
|
|
81370
83107
|
"--chart-bar-wash"?: (string) | undefined;
|
|
83108
|
+
/** Written on the control inside each toggle button of a group with `selection-mode`: `1` while it is pressed and `0` while it is not. Read it in a `::part(button)` rule to draw the pressed look. */
|
|
83109
|
+
"--button-group-pressed"?: (string) | undefined;
|
|
81371
83110
|
/** Space between slides. Your stylesheet sets it, and the component uses it to measure the run. */
|
|
81372
83111
|
"--carousel-gap"?: (string) | undefined;
|
|
81373
83112
|
/** The size of one pane. Your stylesheet sets it, and the component uses it to measure the run. */
|